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

掌握VHDL并发语句实战指南

VHDL中并发语句是直接放在架构中、位于任何process块外部的信号赋值。也称并发赋值或并发进程。

编写并发语句时,实际上创建了一个自动敏感于赋值右侧所有信号的进程。换言之,并发赋值是带完整敏感性列表进程的语法糖。

当想实现驱动单一信号的简单组合逻辑时,此简写特别方便。无需拼写带敏感性列表的完整process结构,可直接在架构体中赋值给目标信号。

本教程属基础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波形窗口:

掌握VHDL并发语句实战指南

波形显示Mul1、Mul2和Mul3行为完全相同。这证实并发语句与我们写的两个进程完全等价。

并发语句像进程一样工作:出现在<=右侧的所有信号隐式加入其敏感性列表。因此左侧信号在任何求值信号变化时更新。

本例中用左移位将Uns信号乘4。所有信号为unsigned类型,编译器视为数值。在二进制数右侧添加两个零位等价于乘4。

掌握VHDL并发语句实战指南

要点

进入下一教程 »

VHDL

  1. VHDL过程示例:标准逻辑向量自增
  2. VHDL 字符串列表创建:最佳实践与示例
  3. 基于 Tcl 驱动的 VHDL 密码锁模块测试平台
  4. 优雅结束 VHDL 测试平台仿真
  5. VHDL 实现 PWM 控制器:设计、仿真与 FPGA 演示
  6. 在块RAM中设计健壮的VHDL环形缓冲区FIFO
  7. 构建VHDL自检测试平台实战指南
  8. 用VHDL受保护类型和访问指针实现动态链表
  9. 利用进程内过程简化VHDL状态机设计
  10. 使用VHDL不纯函数提升FSM可读性与可维护性
  11. 掌握VHDL函数:高效设计实战指南
  12. 用VHDL设计有限状态机:红绿灯实战范例