Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> VHDL

Prozeduranweisung – VHDL-Beispiel

Prozeduren sind Teil einer Gruppe von Strukturen, die Unterprogramme genannt werden. Prozeduren sind kleine Codeabschnitte, die eine Operation ausführen, die im gesamten Code wiederverwendet wird. Dies dient dazu, Code zu bereinigen und Wiederverwendbarkeit zu ermöglichen.

Prozeduren können Eingaben annehmen und Ausgaben erzeugen. Sie können im Allgemeinen komplizierter sein als Funktionen. Es ist nicht erforderlich, irgendwelche Signale an eine Prozedur zu übergeben. Im Beispiel unten gibt es eine Prozedur p_INCREMENT_SLV, deren Zweck es ist, einen Standardlogikvektor um 1 zu inkrementieren und mit dem Ergebnis ein Signal zu erzeugen.

Ein zusätzlicher Hinweis zur Verwendung von Wait-Anweisungen:
Warteanweisungen KÖNNEN in einer Prozedur verwendet werden, solange der Prozess, der die Prozedur aufruft, keine Sensitivitätsliste hat. Im Beispiel unten hat die Prozedur eine 1-ns-Warteanweisung, um dies zu demonstrieren. Dies macht Prozeduren nützlich, um Testbench-Code zu erstellen.

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity example_procedure_simple is
end example_procedure_simple;

architecture behave of ex_procedure_simple is

  signal r_TEST : std_logic_vector(7 downto 0) := X"42";

  -- Purpose: Increments a std_logic_vector by 1
  procedure p_INCREMENT_SLV (
    signal r_IN  : in  std_logic_vector(7 downto 0);
    signal r_OUT : out std_logic_vector(7 downto 0)
    ) is
  begin
    r_OUT <= std_logic_vector(unsigned(r_IN) + 1);
    wait for 1 ns;                      -- Wait is OK here.
  end p_INCREMENT_SLV;

  
begin

  process is
  begin
    wait for 10 ns;
    p_INCREMENT_SLV(r_TEST, r_TEST);
    wait for 10 ns;
    p_INCREMENT_SLV(r_TEST, r_TEST);
    wait for 10 ns;
    p_INCREMENT_SLV(r_TEST, r_TEST);
    wait;
  end process;  
  
end behave;



Beliebteste Nandland-Seiten

VHDL

  1. Lernprogramm - Einführung in VHDL
  2. Beispiele für VHDL-Konvertierungen
  3. Aufzeichnungen - VHDL-Beispiel
  4. Signiert vs. Unsigniert in VHDL
  5. C#-switch-Anweisung
  6. C# break-Anweisung
  7. C#-Continue-Anweisung
  8. So erstellen Sie eine Liste von Zeichenfolgen in VHDL
  9. C++ Switch Case-Anweisung mit BEISPIEL
  10. Schreibverfahren:einfach und effizient durch Digitalisierung