Inhoudsopgave:

VHDL-stopwatch: 8 stappen (met afbeeldingen)
VHDL-stopwatch: 8 stappen (met afbeeldingen)

Video: VHDL-stopwatch: 8 stappen (met afbeeldingen)

Video: VHDL-stopwatch: 8 stappen (met afbeeldingen)
Video: How to create a timer in VHDL 2024, November
Anonim
VHDL-stopwatch
VHDL-stopwatch

Dit is een tutorial over het maken van een stopwatch met VHDL en een FPGA-printplaat, zoals een Basys3 Atrix-7-bord. De stopwatch kan tellen van 00.00 seconden tot 99,99 seconden. Het maakt gebruik van twee knoppen, een voor de start/stop-knop en een andere voor de reset-knop. De cijfers worden weergegeven op het zevensegmentendisplay van het bord met behulp van de anodes en kathodes. Er zijn drie verschillende bestanden nodig om deze stopwatch te laten werken.

Stap 1: Hardware/software

  • Basys3 Atrix-7 FPGA-bord
  • Vivado Design Suite van Xilinx
  • USB 2.0 A Male naar Micro-B Male

Stap 2: Blokdiagram

Blokdiagram
Blokdiagram

De algehele stopwatch heeft drie ingangen en twee uitgangen. De drie ingangen zijn de start/stop, reset en klok. De start/stop en de reset zijn knoppen en de klok is de 100MHz klok van het bord. De twee uitgangen zijn de anodes en kathodes voor het zevensegmentendisplay.

De eerste module (klokverdeler) heeft één ingang en twee uitgangen. De ingang is de 100 MHz-klok van het bord en de uitgangen zijn twee afzonderlijke klokken, een op 480 Hz en een andere op 0,5 MHz.

De tweede module (display) heeft vijf ingangen en twee uitgangen. De ingangen zijn de 100MHz-klok van het bord, de twee klokken van de klokverdelermodule en de start/stop- en reset-knoppen. De uitgangen zijn de anodes en kathoden.

De laatste module (gemodelleerd door het hele blokschema) heeft drie ingangen en twee uitgangen. Dit is het bestand dat alles samenbrengt. De ingangen zijn de 100 MHz van het bord en de start/stop- en reset-knoppen. De uitgangen zijn de anodes en kathoden die het zevensegmentendisplay aansturen. Alle in- en uitgangen bevinden zich fysiek op het bord voor de laatste module.

Stap 3: Staatsdiagram

Staatsdiagram
Staatsdiagram

De afbeelding hierboven toont het statusdiagram voor hoe de stopwatch werkt. Het indrukken van de resetknop heeft geen invloed op de status van de stopwatch. De volgende status wordt bepaald door de start/stop-knop. De start/stop is "HOOG" wanneer ingedrukt, maar niet wanneer deze ingedrukt wordt gehouden, en "LAAG" wanneer de knop is teruggesprongen of ingedrukt wordt gehouden nadat hij even "HOOG" was.

Als de stopwatch aan het tellen is en de start/stop-knop op "HOOG" gaat, stopt hij met tellen. Als de stopwatch is gestopt en de start/stop-knop op "HOOG" gaat, begint hij opnieuw te tellen. Voor beide toestanden, als de start/stop-knop "LAAG" is, blijft deze in de staat waarin hij zich momenteel bevindt.

Stap 4: Klokverdelermodule

De klokverdelermodule heeft één ingang, de 100 MHz klok van het bord, en twee uitgangen, de 480 Hz en de 0,5 MHz klokken. De 480Hz-klok wordt gebruikt om alle LED's op het zevensegmentendisplay tegelijkertijd "aan" te houden door snel door de vier te schakelen. De klok van 0,5 MHz wordt gebruikt om de stopwatch daadwerkelijk per centiseconden te laten tellen.

Stap 5: Weergavemodule

Deze displaymodule heeft vijf ingangen, de 100MHz-klok van het bord, de twee klokken van de klokmodule en de start/stop- en reset-knoppen, en twee uitgangen, de anodes en kathodes. Deze module heeft ook de "logica" voor hoe de stopwatch telt en bevat de eindige-toestandsmachine.

Stap 6: Inbindmodule

Deze laatste module is degene die de andere twee modules samenbrengt. Het heeft drie ingangen, de 100MHz-klok van het bord en de start/stop- en reset-knoppen, en twee uitgangen, de anodes en kathoden. De 100MHz-klok gaat naar de klokverdelermodule en de displaymodule, en de start/stop- en reset-knoppen gaan naar de displaymodule. De uitgangen van de klokdelermodule (480Hz en 0,5MHz) gaan naar de twee klokingangen van de displaymodule. De uitgangen van de displaymodule (anodes en kathodes) gaan naar de uitgangen van de laatste module.

Stap 7: Beperkingen

Beperkingen
Beperkingen

De twee ingangen kunnen willekeurige knoppen op het Basys3 Atrix-7 FPGA-bord zijn en de uitgangen zullen de vier anodes en de acht kathoden zijn (omdat je ook een decimaalteken tussen seconden en milliseconden wilt) voor het zevensegmentendisplay.

Stap 8: Klaar

Upload het programma naar je Basys3 Atrix-7 FPGA Board en druk op je start/stop-knop om de stopwatch aan de gang te krijgen!

Aanbevolen: