Den fantastiska labyrint spel för Nexys 3 (30 / 31 steg)
Steg 30: Summer
Summern tar in timer, tenthCLK, win och gränsen, och utgångar pinut. Nedräkningen är timer integrerad motsvarande tidsfrist är integrerad motsvarande gräns. Trigger är en två lite logik vektor som förmedlar information om värdet av förhållandet mellan nedräkning till tidsfrist.
Den trigger_type processen jämför nedräkning till bråkdelar av tidsfrist att avgöra hur ofta du aktivera summern med en "om" trädet.
Beep processen förklarar först en massa variabler som räknar twentieths sekunder för olika fall. På stigande kanten av tenthCLK, kommer att pip antingen utföra en serie seger signaler om win är på, hålla en ton om nedräkningen är 0, vilket betyder en förlust, eller annars utför normal drift. Denna består av ett case-uttryck baserat på trigger som ökar antalet relevanta och piper när räkningen återställs till angivet värde.
Den resulterande beteendet är att när nedräkningen är större än hälften, det finns inga pip. När nedräkningen är annars större än en fjärdedel, inträffar Piper varannan sekund. Mellan en fjärdedel och en tiondel Piper inträffar varje sekund, och slutligen på mindre än en tiondel kvar, det blir pip varje halv sekund.