Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> VHDL

Instruction de procédure - Exemple VHDL

Les procédures font partie d'un groupe de structures appelées sous-programmes. Les procédures sont de petites sections de code qui effectuent une opération qui est réutilisée dans votre code. Cela sert à nettoyer le code et à permettre la réutilisation.

Les procédures peuvent prendre des entrées et générer des sorties. Ils peuvent généralement être plus compliqués que les fonctions. Il n'est pas nécessaire de transmettre des signaux à une procédure. Dans l'exemple ci-dessous il y a une procédure p_INCREMENT_SLV dont le but est d'incrémenter un vecteur logique standard de 1 et de générer un signal avec le résultat.

Une note supplémentaire sur l'utilisation des instructions d'attente :
Les instructions d'attente PEUVENT être utilisées dans une procédure, tant que le processus qui appelle la procédure n'a pas de liste de sensibilité. Dans l'exemple ci-dessous, la procédure comporte une instruction d'attente de 1 ns pour le démontrer. Cela rend les procédures utiles pour créer du code de testbench.

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;



Pages Nandland les plus populaires

VHDL

  1. Tutoriel - Introduction au VHDL
  2. Exemples de conversions VHDL
  3. Enregistrements - Exemple VHDL
  4. Instruction de commutateur C #
  5. Instruction de rupture C#
  6. Instruction continue C #
  7. Comment créer une liste de chaînes en VHDL
  8. Instruction C++ Switch Case avec EXAMPLE
  9. Procédures de rédaction :simples et efficaces en passant au numérique