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

Loop- en Exit-constructs in VHDL: Een praktische gids

In de vorige tutorial behandelden we timing-vertragingen met het wait for-statement en verkenden we proceslussen. Nu richten we ons op een kern-VHDL-construct waarmee je code eenmaal uitvoert en daarna een blok herhaalt tot een specifieke voorwaarde is vervuld: het loop-statement.

Hoewel een proces oneindig kan draaien, heb je vaak een gecontroleerde lus nodig die netjes kan worden afgebroken. Het loop-statement in VHDL is de eenvormste vorm van zo'n construct, en het eindigt alleen wanneer een exit wordt tegengekomen.

Syntaxis van een simpele lus

loop
  -- statements
end loop;

Elke exit breekt direct uit de innerste lus waarin het zich bevindt, en kan in elk lustype voorkomen.

Oefening

Deze tutorial demonstreert hoe een basis lus te bouwen en deze na één iteratie te verlaten.

Voorbeeldcode

entity T03_LoopTb is end entity;
architecture sim of T03_LoopTb is
begin
  process is
  begin
    report "Hallo!";
    loop
      report "Kiekeboe!";
      exit; -- Breek na eerste iteratie af
    end loop;
    report "Vaarwel!";
    wait; -- Schort het proces oneindig op
  end process;
end architecture;

Simulatie-output (ModelSim)

VSIM 2> run
# ** Note: Hallo!
# Time: 0 ns Iteration: 0 Instance: /t03_looptb
# ** Note: Kiekeboe!
# Time: 0 ns Iteration: 0 Instance: /t03_looptb
# ** Note: Vaarwel!
# Time: 0 ns Iteration: 0 Instance: /t03_looptb

De console toont dat alle berichten op tijdstip 0 ns voorkomen, wat bevestigt dat statements behalve wait geen simulatiatijd consumeren. Het exit-statement stopt de lus na één iteratie, waarna het proces de finale wait raakt en idle blijft.

Analyse

Door de timestamps te inspecteren, zie je de exacte uitvoeringsvolgorde: report "Hallo!" → report "Kiekeboe!" → exit → report "Vaarwel!". Dit voorbeeld demonstreert hoe loop en exit gebruikt kunnen worden voor stroomcontrole zonder complexe toestandsmachines.

Belangrijkste punten

  • loop creëert een oneindige lus die draait tot exit aangeroepen wordt.
  • exit beëindigt onmiddellijk de huidige lus, ongeacht nestingsniveau.

Ga naar de volgende tutorial »

VHDL

  1. PIC18-microcontrollers: kenmerken, prestaties en hoe u ze gebruikt
  2. Referentieaanduidingen begrijpen: hoe PCB-montageverbindingen te labelen
  3. In-process procedures benutten voor schonere VHDL FSM-ontwerpen
  4. Impure functies in VHDL gebruiken: FSM-leesbaarheid en onderhoudbaarheid verbeteren
  5. VHDL-functies onder de knie krijgen: een praktische gids voor efficiënt ontwerp
  6. Procedures in VHDL gebruiken: je ontwerp vereenvoudigen met herbruikbare code
  7. Een betrouwbare timer in VHDL bouwen: klokcycli tellen tot uren
  8. Constants en generic maps in VHDL benutten voor flexibele modulontwerpen
  9. VHDL port map instantiation onder de knie krijgen: een praktische gids
  10. De Case-When-statement in VHDL onder de knie krijgen: efficiënte multiplexer-ontwerpen
  11. Gratis VHDL-simulator & editor setup: Een studentengids