文章首发于我的个人博客
变量(VARIABLE)
在VHDL中,变量只能在进程(PROCESS)
和子程序(SUBPROGRAM)
中使用。变量不能将信息带出它所被定义的设计单元。变量的赋值是一种理想的数据传输,是立即发生的,没有延时的。
定义变量的语句
VARIABLE 变量名 : 数据类型;
变量赋值(:=
)
变量名 := 表达式;
其中表达式可以为运算表达式或者数值。
信号(SIGNAL)
在VHDL中,信号的定义和使用范围是实体(ENTITY)
,结构体(ARCHITECTURE)
和程序包(PACKAGE)
。在进程和子程序中不允许定义变量。信号是描述硬件系统的基本数据对象,它类似于连线。信号的传输过程存在延时。注意,在同一进程中,同一信号赋值目标有多个赋值源时,信号赋值目标获得的是最后一个赋值源的值,之前的赋值不起作用。
定义信号的语句
SIGNAL 信号名 := 数据类型;
信号赋值(<=
)
信号名 <= 表达式;
信号与变量的区别
(1)在进程中只能将信号加入信号敏感表,而不能将变量加入信号敏感表。因为只有信号才能将进