Stap 4: Maak teller-modules
Allereerst moeten we ontwerpen de logica om te ontdekken van de rand van het signaal van de knop, omdat voor ontdendering doel. Er zijn twee knoppen – start_stop knop en resetknop. We moeten een register variabele voor het opslaan van de waarde - button_n_ff en reset_n_ff te maken. Daarnaast moeten we twee signalen - start_stop maken en opnieuw instellen. Ik gebruikte de gebeurtenis trigger procedurele klok, evenals niet-blokkerende toewijzing en de voorwaardelijke instructie. De knop is de actieve laag. Wanneer er verschil tussen de waarde van de knop en de register-variabele is, zal er verandering voor het start_stop of reset signaal.
Ik heb verwezen naar het voorbeeld van Leren door voorbeeld Verilog ontwerpen van de logica van de teller. Het recht de meeste zeven segment display cijfer is het minst significante cijfer terwijl links meest het meest significante cijfer is. Er zijn drie voorwaarden:
Een voorwaarde
Zowel de start_stop als de reset signalen zijn beweerd. Alle cijfers zijn waarde nul
Voorwaarde 2:
Slechts start_stop signaal wordt beweerd. Sla de vorige telling. Wanneer stopknop opnieuw wordt ingedrukt, hervat vanaf de vorige telling.
Voorwaarde drie:
start_stop signaal wordt niet beweerd. Ik gebruikte de geneste if anders als verklaring aan het tellen van de juiste meeste naar links de meeste cijfers. Wanneer de tellen voor een cijfer is maximaal 9, het zal worden opnieuw terug naar 0 en verplaats naar het volgende cijfer.