变量与信号的异同?/p>
1
)变量是局部量,只能在进程和子程序中使用,不能将信息带出对它做出定?/p>
的当前结构,
主要用作进程中的临时数据存储单元?/p>
信号是电路内部硬件实体相
互连接的抽象表示?/p>
相当于电路内部的连接线,
具有全局性特征,
信号定义和使
用的范围是实体?/p>
结构体和程序包,
可以作为设计实体中的并行语句模块
(进程)
之间交流信息的通道?/p>
2
)变量的赋值是理想化的数据传输,立即发生,不存在延时;信号的赋值可?/p>
设置延时量,即使是零延时,也要经历一个特定的延时,即
δ
延时,与实际器件
的传播延迟特性相吻合
,
在进程的最后才对信号赋值?/p>
3
)变量定义在进程或子程序中,信号不可以?/p>
4
)信号可以列入进程的敏感表,但是变量不行?/p>
5
)信号赋值有并行赋值和顺序赋值,并行赋值不允许有多个驱动源,进程中?/p>
顺序信号赋值语句可以有多个驱动源,但是只有最后的赋值语句被启动?/p>
6
)很多情况下,综合后对应的硬件电路结构中信号和变量是没有什么区别的?/p>
A<=5
?/p>
1
D
触发器之变量
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY dff1 IS
PORT(CLK,D1:IN STD_LOGIC;
Q1:OUT STD_LOGIC);
END;
ARCHITECTURE behav OF dff1 IS
BEGIN
PROCESS(CLK,d1)
V
ARIABLE QQ:STD_LOGIC;
BEGIN
IF CLK'EVENT AND CLK='1' THEN
QQ:=D1;
END IF;
Q1<=QQ;
END PROCESS;
--Q1<=QQ;
END;
?/p>
2
D
触发器之信号
LIBRARY IEEE;
D
ENA
Q
PRE
CLR
CLK
D1
Q1