微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 信号变量是在过程块中被赋值的必须把它声明为寄存器类型变量

信号变量是在过程块中被赋值的必须把它声明为寄存器类型变量

时间:10-02 整理:3721RD 点击:
在看verilogHDL语法遇到如下想法:
如果信号变量是在过程块 (initial块 或 always块)中被赋值的,必须把它声明为寄存器类型变量。
为什么会有这个要求呢?
如果always中实现的是个组合逻辑,那他的输出也要用寄存器寄存吗?在仿真的时候感觉输出波形是组合逻辑运算后直接输出的,没有寄存器延时。
       那这个寄存器类型在综合的时候是什么样子呢?特性像线网,是寄存器类型,但是没有clk驱动。感觉困惑!估计是我想偏了,望各位DX指正!

每当声明一个always块的时候,都相当于声明了一个寄存器。

过程块中的信号变量,确实比需要声明为reg型。
但是综合的时候不一定综合成reg型。
对于沿触发的就是reg型,对于电平触发的可以是wire型,但是此时还要注意latch生成。
always可以描述时序逻辑也可以描述组合逻辑。

谢谢,我明白了。不一定综合生成寄存器。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top