Hoe Loop en Exit te gebruiken in VHDL
In de vorige tutorial hebben we geleerd hoe je de tijd kunt uitstellen met behulp van de wait for
uitspraak. We leerden ook over de proceslus. We weten nu dat als we het toestaan, de proces-thread voor altijd in het proces zal blijven lopen.
Maar wat als we iets slechts één keer willen doen aan het begin van het proces? En aan het eind nog een andere code herhalen? De eenvoudigste soort lus in VHDL kan worden gemaakt met behulp van de loop
verklaring.
Deze blogpost maakt deel uit van de serie Basic VHDL Tutorials.
De syntaxis voor de eenvoudige lus is:
loop
end loop;
Zo'n lus zal oneindig doorgaan, of tot een exit;
wordt aangetroffen. De exit
statement kan worden gebruikt om uit elke lus te breken.
Oefening
Deze video-tutorial leert u hoe u een eenvoudige lus kunt maken en hoe u deze kunt doorbreken:
De laatste code die we in deze tutorial hebben gemaakt:
entity T03_LoopTb is end entity; architecture sim of T03_LoopTb is begin process is begin report "Hello!"; loop report "Peekaboo!"; exit; end loop; report "Goodbye!"; wait; end process; end architecture;
De uitvoer naar de simulatorconsole toen we op de run-knop in ModelSim drukten:
VSIM 2> run # ** Note: Hello! # Time: 0 ns Iteration: 0 Instance: /t03_looptb # ** Note: Peekaboo! # Time: 0 ns Iteration: 0 Instance: /t03_looptb # ** Note: Goodbye! # Time: 0 ns Iteration: 0 Instance: /t03_looptb
Analyse
Bij het uitvoeren van de laatste code in de simulator zagen we dat de eerste "Hallo!" is afgedrukt naar de ModelSim-console. Dan, de "Kiekeboe!" tussen de loop;
en end loop;
werd gedrukt. Op de volgende regel raakte het programma de exit;
statement, waardoor het programma uit de lus breekt. Tot slot:"Tot ziens!" werd gedrukt. Hierna gebeurt er niets meer omdat het programma voor altijd is gepauzeerd op de wait;
verklaring.
We kunnen aan de tijdstempels van de afdrukken zien dat alles gebeurde op een simulatietijd van 0 ns. Zoals we van de vorige tutorial hebben geleerd, is alles behalve wait
verklaringen verbruiken geen tijd.
Afhaalmaaltijden
- De
loop
statement implementeert een oneindige lus - De
exit
statement breekt uit elke lus
Ga naar de volgende tutorial »
VHDL
- Een procedure gebruiken in een proces in VHDL
- Een onzuivere functie gebruiken in VHDL
- Een functie gebruiken in VHDL
- Een procedure gebruiken in VHDL
- Een timer maken in VHDL
- Constanten en generieke kaart gebruiken in VHDL
- Hoe Port Map-instantiatie te gebruiken in VHDL
- Een Case-When-statement gebruiken in VHDL
- Hoe een VHDL-simulator en -editor gratis te installeren
- PIC18 Microcontroller:wat het is en hoe het te gebruiken?
- Wat is een referentie-aanduiding en hoe gebruiken we deze bij assemblage?