VHDL变量与信号的差异

1,
赋值方式的不同
      变量 := 表达式 ;
      信号 <= 表达式 ;
2,
硬件实现的功能不同
信号代表电路单元,功能模块间的互联,代表实际的硬件连线
变量代表电路单元内部的操作,代表暂存的临时数据
3,
有效范围不同
信号(全局量):程序包,实体,结构体
变量(局部量):进程,子程序
注:在进程和子程序中,信号只能被使用,不能被定义说明
4,
赋值行为的不同
信号赋值延时更新数值,一般生成时序电路
变量赋值立即更新数值,一般生成组合电路
5,
信号的多次赋值
a, 一个进程中:仅最后一次赋值有效
b, 多个进程中:称为多源驱动(如总线结构)
                综合成硬件电路的多源驱动有三种:线与,线或,三态
例子
ARCHITECTURE  rtl OF sig IS

SIGNAL a,b : STD_LOGIC; --
定义信号
BEGIN

PROCESS(a,b)

  BEGIN

   a <= b;

   b <= a;
END PROCESS;

END rtl ;
由于信号赋值的延时性(赋新值发生在进程结束时),所以结果是 a,b 的值互换

ARCHITECTURE rtl OF var IS

BEGIN

PROCESS


VARIABLE a,b : STD_LOGIC;--
定义变量

BEGIN

a := b;

b := a;

END PROCESS;

END rtl ;
由于变量赋值的立即更新,所以结果是 a b 的值均为 b

转载于:https://www.cnblogs.com/liuxing1893/archive/2009/05/20/1468421.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值