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

Procedureverklaring - VHDL-voorbeeld

Procedures maken deel uit van een groep structuren die subprogramma's worden genoemd. Procedures zijn kleine stukjes code die een bewerking uitvoeren die in uw hele code wordt hergebruikt. Dit dient om code op te schonen en herbruikbaarheid mogelijk te maken.

Procedures kunnen inputs aannemen en outputs genereren. Ze kunnen over het algemeen ingewikkelder zijn dan functies. Het is niet verplicht om signalen door te geven aan een procedure. In het onderstaande voorbeeld is er een procedure p_INCREMENT_SLV waarvan het doel is om een ​​standaard logische vector met 1 te verhogen en een signaal te genereren met het resultaat.

Een aanvullende opmerking over het gebruik van wait-statements:
Wait-statements KUNNEN worden gebruikt in een procedure, zolang het proces dat de procedure aanroept geen gevoeligheidslijst heeft. In het onderstaande voorbeeld heeft de procedure een 1 ns wait-statement om dit aan te tonen. Dit maakt procedures nuttig voor het maken van testbench-code.

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;



Meest populaire Nandland-pagina's

VHDL

  1. Zelfstudie - Inleiding tot VHDL
  2. Voorbeelden van VHDL-conversies
  3. Records - VHDL-voorbeeld
  4. Ondertekend versus niet-ondertekend in VHDL
  5. Variabelen - VHDL-voorbeeld
  6. C# switch-instructie
  7. C# break-instructie
  8. C# doorgaan Verklaring
  9. Een lijst met strings maken in VHDL
  10. C++ Switch Case Statement met VOORBEELD
  11. Schrijfprocedures:eenvoudig en efficiënt door digitaal te gaan