Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> VHDL

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

  1. Een procedure gebruiken in een proces in VHDL
  2. Een onzuivere functie gebruiken in VHDL
  3. Een functie gebruiken in VHDL
  4. Een procedure gebruiken in VHDL
  5. Een timer maken in VHDL
  6. Constanten en generieke kaart gebruiken in VHDL
  7. Hoe Port Map-instantiatie te gebruiken in VHDL
  8. Een Case-When-statement gebruiken in VHDL
  9. Hoe een VHDL-simulator en -editor gratis te installeren
  10. PIC18 Microcontroller:wat het is en hoe het te gebruiken?
  11. Wat is een referentie-aanduiding en hoe gebruiken we deze bij assemblage?