Étape 5: Module principal
Ce module pièces tous les autres modules pour obtenir le système d’alarme complet. Il reçoit des informations directement à partir du capteur de faisceau IR pause pour déterminer l’État déclenchée et reconnaît que le système soit armé ou désarmé ou non. Le système est armé par curseurs sur le bas de la carte FPGA ; une broche pour allumer le système et un pour éteindre le système une fois qu’il est partit. Les broches pour les interrupteurs se trouvent aux pages 36 du manuel de l’utilisateur.
Ce module donne entrée à la fois des autres modules.
Le code est comme suit :
Module principal
module finalproject (armedIn, faisceau, clk, disarmedIn, armedState, beamOut, disarmedState, orateur, SSD, SSD1, SSD2, triggeredState) ;
armedIn d’entrée ; // SW0
faisceau d’entrée ;
clk d’entrée ;
disarmedIn d’entrée ; // SW1
regarmedState de sortie = 0 ; //LEDR17
sortie beamOut ; //LEDG0
regdisarmedState de sortie = 1 ; //LEDR16
sortie haut-parleur ;
sortie [6:0] SSD, SSD1, SSD2 ;
sortie reg triggeredState = 0 ;
paramètre on = 1 ;
paramètre off = 0 ;
beamOut affecter = faisceau ; / / indiqué sur ledg0 si le faisceau est rompu
Je regarde toutes les entrées
toujours disarmedIn, faisceau)
commencer
if (armedIn)
commencer
armedState < = on ;
disarmedState < = off ;
fin
if (disarmedIn)
commencer
armedState < = off ;
disarmedState < = on ;
triggeredState < = off ;
fin
if ((Beam == 0) & & (armedState == 1) & & (disarmedState == 0))
triggeredState < = on ;
fin
armedStatusDisplay display1(armedState,SSD,SSD1,SSD2) ; / / affiche l’état actuel de l’alarme sur SSD
f alarm1 (speaker, clk, triggeredState) ; / / tirer la sonnette d’alarme
endmodule