二、VHDL数据对象<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
三种对象:常量(Constant)
变量(Variable)
信号(Signal)
三种对象的物理含义:
?常量代表数字电路中的电源、地、恒定逻
辑值等常数;
?变量代表暂存某些值的载体,常用于描述
算法;
?信号代表物理设计中的某一条硬件连接线,
包括输入、输出端口。
67
三种对象的特点及说明场合:
信号:全局量, 用于architecture、
package、entitiy。
变量:局部量,用于process、function、
procedure。
常量:全局量,可用于上面两种场合。
68
1、常量说明
常量说明:对某一个常量名赋予一个固定的值。
格式:
例:
constant data:bit_vector(3 downto 0):=“<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1010”
constant width: integer: = 8;
constant x: new_bit: = ‘x’;
常量数据类型必须与表达式的数据类型一致。
constant 常数名:数据类型:= 表达式;
69
常量的可视性(作用范围):
库、程序包
实体(Entity)
结构体1
进 程1
结构体2
进 程2
常量是全局量,其作用范围取决于常量被定义的位置。
70
2、变量说明
变量是一个局部量,只能在进程和子程序中
定义、使用。其作用范围仅限于定义了变量的进
程和子程序中。
格式:
例:
variable a, b : bit;
variable count:integer range 0 to 255:= 10;
变量的初值可用于仿真,但综合时被忽略。
variable 变量名:数据类型 约束条件:= 表达式;
71
3、信号说明
电子硬件系统运行的基本特性:
各部分电路工作的并行特性;
信号传输过程中的延时特性;
多驱动源的总线特性;
时序电路中触发器的记忆特性等。
信号是电子系统内部硬件连接和硬件特性的抽象表示。用来描述硬件系统的基本特性。
格式:
signal 信号名:数据类型 约束条件:=表达式;
72
例:
signal a, b : bit;
signal init : integer := -1;
signal s1: std_logic := ‘0’;
signal s2: std_logic_vector(15 downto 0);
注:a. 综合时初值被忽略。
b. 信号是全局量。可在结构体、实体、块中
说明和使用信号。
c. 在进程和子程序中只能使用信号,不能说
明信号。
73
例:进程中信号与变量的使用
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;
74
信号与端口的区别:
除没有方向说明外,信号与 实体的“端口
(PORT)” 概念相似。端口是一种隐形的信号。
entity exam is
port([signal] a, b: in std_logic;
[signal] c: out std_logic);
end exam;
端口是一种有方向的信号。即输出端口不能
读出数据,只能写入数据;输入端口不能写入数
据,只能读出数据。
信号本身无方向,可读可写。
************************************************************
文章评论(0条评论)
登录后参与讨论