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

VHDL Procedure Voorbeeld: Een Standard Logic Vector Incrementeren

Wat Is Een VHDL Procedure?

Procedures behoren tot de subprogramma-familie in VHDL. Ze inkapselen herbruikbare logica, wat codeduplicatie vermindert en onderhoudbaarheid verbetert. Door een procedure eenmaal te definiëren, kunt u deze aanroepen vanuit meerdere processen of architecturen, wat consistent gedrag garandeert.

Voorbeeld: Een std_logic_vector Incrementeren

Het volgende voorbeeld demonstreert een procedure die een 8-bit std_logic_vector inneemt, er één aan toevoegt, en het resultaat retourneert. De procedure bevat ook een 1-ns wait om timingcontrole binnen een testbench te illustreren.

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";

 -- Doel: Incrementeert een std_logic_vector met 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 hier.
 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;

Waarom Een Wait Statement Opnemen?

Wait-statements zijn legaal binnen een procedure mits het aanroepende proces geen gevoeligheidslijst heeft. Deze functie is met name nuttig in testbenches, waar u deterministische vertragingen wilt introduceren zonder de hoofdfunctie te verwarren.

Belangrijkste Punten

  • Procedures kunnen zowel IN als OUT signalen hebben.
  • Ze zijn ideaal voor veelvoorkomende operaties zoals rekenkunde op std_logic_vector.
  • Wait binnen een procedure houdt testbench-logica netjes.

VHDL

  1. Digitale procedure-ontwerp: eenvoudig, efficiënt en betrouwbaar
  2. De C# Switch Statement: Syntaxis, Voorbeelden & Best Practices
  3. C# Break Statement: Hoe en Wanneer Te Gebruiken
  4. C# Continue Statement: Effectief Lusiteraties Overslaan
  5. C++ Switch‑Case Onder de Knie: Syntaxis, Gebruik en Praktische Voorbeelden
  6. Inleiding tot VHDL: Uw Eerste AND-poort Bouwen
  7. Uitgebreide Gids voor VHDL Type Conversies met Numeric_Std en Std_Logic_Arith
  8. VHDL Records Gebruiken voor Schone, Herbruikbare FIFO-interfaces
  9. Signed vs. Unsigned Typen in VHDL: Praktische Inzichten
  10. VHDL Variabelen Uitgelegd: Praktische Voorbeelden & Regels voor Betrouwbaar Ontwerp
  11. Dynamische string-lijsten in VHDL: Best Practices & Voorbeeld