Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> VHDL

Declaração de Procedimento - Exemplo de VHDL


Os procedimentos fazem parte de um grupo de estruturas chamadas subprogramas. Os procedimentos são pequenas seções de código que executam uma operação que é reutilizada em todo o código. Isso serve para limpar o código, bem como permitir a reutilização.

Os procedimentos podem receber entradas e gerar saídas. Eles geralmente podem ser mais complicados do que funções. Não é necessário passar nenhum sinal para um procedimento. No exemplo abaixo existe um procedimento p_INCREMENT_SLV cuja finalidade é incrementar um vetor lógico padrão em 1 e gerar um sinal com o resultado.

Uma observação adicional sobre o uso de instruções de espera:
As instruções de espera PODEM ser usadas em um procedimento, desde que o processo que chama o procedimento não tenha uma lista de sensibilidade. No exemplo abaixo, o procedimento tem uma instrução de espera de 1 ns para demonstrar isso. Isso torna os procedimentos úteis para criar código 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;



Páginas mais populares de Nandland

VHDL

  1. Tutorial - Introdução ao VHDL
  2. Exemplos de conversões de VHDL
  3. Registros - Exemplo de VHDL
  4. Assinado vs. Não assinado em VHDL
  5. Instrução C# switch
  6. Instrução C# break
  7. C# continue declaração
  8. Como criar uma lista de strings em VHDL
  9. Instrução C++ Switch Case com EXEMPLO
  10. Procedimentos de escrita:simples e eficientes ao digital