3.3 VHDL语言要素
2.3 信号声明 信号是电子电路内部硬件连接的抽象。除没有方向外,与 “端口” 概念相似。 格式: signal 信号名:数据类型 约束条件:= 表达式; 例: signal a, b : bit; signal init : integer := -1; 注:a. 综合时初值被忽略。 b. 可在结构体、实体、块中声明和使用信号,在进程和子程序中只能使用信号,不能声明信号。
例:信号与变量的使用 Entity ex is port(…..); end ex; architecture arch_ex of ex is signal a, b :std_logic; begin process(a, b) variable c, d : std_logic; begin c:= a + b; d:= a - b; …… end process; end arch_ex;
三者的使用比较 (1)从硬件电路系统来看,常量相当于电路中的恒定电平,如GND或VCC接口,而变量和信号则相当于组合电路系统中门与门间的连接及其连线上的信号值。 (2)从行为仿真和VHDL语句功能上看,二者的区别主要表现在接受和保持信号的方式、信息保持与传递的区域大小上。例如信号可以设置延时量,而变量则不能;变量只能作为局部的信息载体,而信号则可作为模块间的信息载体。变量的设置有时只是一种过渡,最后的信息传输和界面间的通信都靠信号来完成。 (3)从综合后所对应的硬件电路结构来看,信号一般将对应更多的硬件结构,但在许多情况下,信号和变量并没有什么区别。例如在满足一定条件的进程中,综合后它们都能引入寄存器。这时它们都具有能够接受赋值这一重要的共性,而VHDL综合器并不理会它们在接受赋值时存在的延时特性。 (4)虽然VHDL仿真器允许变量和信号设置初始值,但在实际运用中,VHDL综合器并不会把这些信息综合进去。这是因为实际的FPGA/CPLD芯片在上电后,并不能确保其初始状态的取向。因此,对于时序仿真来说,设置的初始值在综合时是没有实际意义的。
|
|||