亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> VHDL

过程语句 - VHDL 示例

过程是称为子程序的一组结构的一部分。过程是一小段代码,它们执行在整个代码中重复使用的操作。这有助于清理代码并实现可重用性。

过程可以接受输入并产生输出。它们通常比函数更复杂。不需要将任何信号传递给过程。在下面的示例中,有一个过程 p_INCREMENT_SLV,其目的是将标准逻辑向量增加 1 并生成带有结果的信号。

关于使用等待语句的附加说明:
可以在过程中使用等待语句,只要调用该过程的进程没有敏感度列表。在下面的示例中,该过程有一个 1 ns 的等待语句来说明这一点。这使得过程对于创建测试台代码很有用。

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;



最受欢迎的 Nandland 页面

VHDL

  1. 教程 - VHDL 简介
  2. VHDL 转换示例
  3. 记录 - VHDL 示例
  4. VHDL 中的有符号与无符号
  5. 变量 - VHDL 示例
  6. C# switch 语句
  7. C# 中断语句
  8. C# continue 语句
  9. C if...else 语句
  10. 如何在 VHDL 中创建字符串列表
  11. 带有示例的 C++ Switch Case 语句
  12. 编写程序:数字化简单高效