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