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

Wait-for-statements in VHDL voor uitstel van uitvoering

In onze vorige tutorial vergelijken we een VHDL-proces met een programma-thread en introduceerden we het wait;-statement, dat een proces oneindig opschort. Maar wat als je een proces voor een specifieke duur wilt pauzeren?

Het weglaten van wait; helt een compiler-fout, omdat elk VHDL-proces een oneindige lus is die minstens één wait-statement moet bevatten. De lus draait continu tussen de begin en end process; begrenzingen.

Dit artikel is onderdeel van de serie Basistutorials VHDL.

Terwijl wait; de uitvoering voor altijd stopt, stelt het wait for-construct je in staat om een proces voor een gewenst tijdsinterval te vertragen.

De syntaxis van wait for is:

wait for <tijdwaarde> <tijdeenheid>;

waarbij <tijdwaarde> een numerieke letterlijke waarde is en <tijdeenheid> een van de volgende kan zijn:

fsfemtoseconden
pspicoseconden
nsnanoseconden
usmicroseconden
msmilliseconden
secseconden
minminuten
hruren

Oefening

Bekijk de tutorial-video om wait for in actie te zien, een proces pauzeren voor een door de gebruiker gedefinieerde periode.

De voorbeeld-VHDL die we bouwden:

entity T02_WaitForTb is end entity;
architecture sim of T02_WaitForTb is
begin
  process is
  begin
    -- Proces "thread" start hier
    report "Kiekeboe!";
    wait for 10 ns; -- Terug naar start
  end process;
end architecture;

Draaien in ModelSim levert de volgende console-output:

VSIM 2> run
# ** Note: Kiekeboe!
# Time: 0 ns Iteration: 0 Instance: /t02_waitfortb
# ** Note: Kiekeboe!
# Time: 10 ns Iteration: 0 Instance: /t02_waitfortb
# ** Note: Kiekeboe!
# Time: 20 ns Iteration: 0 Instance: /t02_waitfortb ...

Analyse

In dit voorbeeld is de 10 ns vertraging typisch voor logica die op MHz-frequenties werkt, waar nanoseconde-granulariteit overeenkomt met klokperiodes.

Tijdens simulatie consumeren het report-statement en luscontrole nul tijd; alleen het wait for-statement bevordert de simulatiatijd.

Wait-for-statements in VHDL voor uitstel van uitvoering

Kernpunt

  • Een VHDL-proces pauzeert precies voor de duur gespecificeerd in wait for.
  • Alle andere statements in een proces voeren instantaan uit in simulatiatijd.

Ga verder naar de volgende tutorial →


VHDL

  1. Detail en efficiëntie balanceren in onderhoudsjobplannen
  2. Eerste Autoverzekering: Stapsgewijze Gids voor Betaalbare Dekking
  3. Tijd bereiken tot doelspanning in RC en RL circuits
  4. Nauwkeurige levertijdschattingen voor metaalfabricatie-outsourcing
  5. Versnel Robotlas Training: Tijd Winst, Efficiëntie Boost
  6. Wanneer Kraneremmen Onderhouden: Belangrijke Indicatoren
  7. Dynamische string-lijsten in VHDL: Best Practices & Voorbeeld
  8. Een Tcl-gedreven testbench maken voor een VHDL code-lock module
  9. In-process procedures benutten voor schonere VHDL FSM-ontwerpen
  10. VHDL-functies onder de knie krijgen: een praktische gids voor efficiënt ontwerp
  11. Gratis VHDL-simulator & editor setup: Een studentengids