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

如何在 VHDL 中创建并发语句

VHDL 中的并发语句是架构内的信号分配,但在正常流程构造之外。并发语句也称为并发赋值或并发进程。

当您创建并发语句时,您实际上是在创建一个具有某些明确定义的特征的流程。并发语句总是等价于使用敏感度列表的过程,其中信号赋值运算符右侧的所有信号都在敏感度列表中。

当您想要创建导致分配单个信号的简单逻辑时,这些速记符号过程很有用。您可以直接在架构中简单地分配给目标信号,而不是输入带有灵敏度列表的完整过程结构和所有这些。

这篇博文是基本 VHDL 教程系列的一部分。

如果使用得当,代码的意图仍然很清楚。无需为您想要翻转的每一位创建一个流程。

运动

在本视频中,我们将学习如何创建并发语句:

我们在本教程中创建的最终代码:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity T13_ConcurrentProcsTb is
end entity;

architecture sim of T13_ConcurrentProcsTb is

    signal Uns :  unsigned(5 downto 0) := (others => '0');
    signal Mul1 : unsigned(7 downto 0);
    signal Mul2 : unsigned(7 downto 0);
    signal Mul3 : unsigned(7 downto 0);

begin

    process is
    begin

        Uns <= Uns + 1;

        wait for 10 ns;
    end process;

    -- Process multiplying Uns by 4
    process is
    begin

        Mul1 <= Uns & "00";

        wait on Uns;

    end process;

    -- Equivalent process using sensitivity list
    process(Uns) is
    begin

        Mul2 <= Uns & "00";

    end process;

    -- Equivalent process using a concurrent statement
    Mul3 <= Uns & "00";

end architecture;

我们按下运行后 ModelSim 中的波形窗口,并在时间轴上放大:

分析

从波形可以看出Mul1 , Mul2 , 和 Mul3 行为完全相同。这是因为并发语句和我们创建的两个进程是等价的。

并发语句就像一个进程一样工作。 <= 右侧的所有信号 会自动添加到敏感度列表中。这意味着 <= 左侧的信号 每当评估的信号之一发生变化时都会更新。

在 VHDL 中有很多方法可以将数字相乘。在这个练习中,我们乘以 Uns 信号 4,使用位移。我们所有的信号都是 unsigned 类型,表示它们由数字解释。在二进制数的右边加一个 0 和乘以 2 是一样的。

这是波形中光标处发生的情况的说明:

外卖

转到下一个教程 »


VHDL

  1. 过程语句 - VHDL 示例
  2. 如何在 VHDL 中创建字符串列表
  3. 如何为 VHDL 代码锁定模块创建 Tcl 驱动的测试平台
  4. 如何在 VHDL 测试平台中停止仿真
  5. 如何在 VHDL 中创建 PWM 控制器
  6. 如何在 VHDL 中创建环形缓冲区 FIFO
  7. 如何创建自检测试平台
  8. 如何在 VHDL 中创建链接列表
  9. 如何在 VHDL 中的进程中使用过程
  10. 如何在 VHDL 中使用不纯函数
  11. 如何在 VHDL 中使用函数
  12. 如何在 VHDL 中创建有限状态机