vhdl中的信号与变量仿真.docVIP

  • 23
  • 0
  • 约8.17千字
  • 约 17页
  • 2017-08-20 发布于重庆
  • 举报
vhdl中的信号与变量仿真

从仿真语义的角度看VHDL中的信号与变量 VARIABLE A : STD_LOGIC :=’1’; 虽然变量定义时可以定义初始值,但是综合器并不支持设置初始值。故定义变量时多从仿真的角度出发,定义表述如下: VARIABLE 变量名 : 数据类型 ; 然后,在需要的时候再对该变量进行赋值,变量赋值的表述如下: 目标变量名 := 表达式; 赋值语句右方的“表达式”必须是一个与“目标变量名”具有相同数据类型的数值,这个表达式可以是一个运算表达式,也可以是一个数值。而且,新的变量值的获得是立即发生的。 信号 信号是描述硬件系统的基本数据对象,它的性质类似于连接线。信号可以作为设计实体中并行语句模块间的信息交流通道。 信号定义的语句格式如下: SIGNAL 信号名 : 数据类型 := 初始值 ; 信号的赋值语句格式一般如下: 目标信号名 = 表达式 AFTER 时间量; 同变量一样,信号的初始值的设置也不是必需的,而且初始值仅在VHDL的行为仿真中有效。而与变量相比,信号的硬件特征更为明显,它具有全局的特性。信号的使用、定义范围是实体、结构体和程序包,在进程和子程序的顺序语句中不允许定义信号。另外,在进程中只能将信号列入敏感表,而不能将变量列入敏感表。 这里的“表达式”可以是一个运算表达式,也可以是数据对象(变量、信号或常量)。数据信息的传入可以设置延时量,如AFTER 3ns。因此,目标信号获得传入的数据并不是即时的。即使是零延时(不做任何显式的延时设置,即等效于AFTER 0ns),也要经历一个特定的延时,即δ延时。因此,符号“=”两边的数值并不总是一致的,这与实际器件的传播延迟特性是相吻合的,因此这与变量的赋值过程有很大的差别。 信号的赋值可以出现在一个进程中,也可以直接出现在结构体的并行语句结构中,但他们运行的含义不一样。前者属于顺序信号赋值,这时的信号赋值操作要视进程是否已经被启动,并且允许对同一目标信号进行多次赋值;后者属于并行信号赋值,其赋值操作是各自独立并行地发生的,且不允许对同一目标信号进行多次赋值。 变量与信号的相同之处 初始值的功效相同。 变量和信号定义的初始值都不是必需的,即使设置了,经综合后的硬件电路也不支持。 变量与信号都具有能够接受赋值这一重要的共性。 在不完整的条件语句中,单独的变量赋值语句和信号赋值语句都能产生相同的时序电路,但此时变量已经不是简单的数据临时储存结构。 下面分别用利用变量和信号的VHDL描述构成一个D触发器。 程序清单1 D触发器(变量) LIBRARY IEEE; Use IEEE.STD_LOGIC_1164.ALL; entity D_variable is port ( -- Input ports CLK : in STD_LOGIC; D : in STD_LOGIC; -- Output ports Q : out STD_LOGIC ); end D_variable; architecture EXP of D_variable is BEGIN PROCESS(CLK) VARIABLE Temp_QV : STD_LOGIC; begin if CLKEVENT AND CLK=1 then Temp_QV :=D; end if; Q =Temp_QV; END PROCESS; --Q =Temp_Q; end EXP; 此代码在QUARTUS II中综合的时间戳如图1: 图1 变量的VHDL描述构成D触发器在quartus综合的时间戳 工作时序如图2: 图2 变量的VHDL描述构成D触发器的工作时序 生成的RTL电路如图3: 图3 变量的VHDL描述构成D触发器的RTL电路 此代码在Synplify Pro 9.0.1中综合的报告信息、时间戳如图4: 图4 变量的VHDL描述构成D触发器在Synplify综合的时间戳 Synplify生成的RTL电路如图5: 图5 变量的VHDL描述构成D触发器在Synplify中产生的RTL电路 程序清单2 D触发器(信号) LIBRARY IEEE; Use IEEE.STD_LOGIC_1164.ALL; entity D_signal is port ( -- Input ports CLK : in STD_LOGIC; D : in STD_LOGIC; -- Output ports Q : out STD_LOGIC ); end D_signal; architecture EXP of D_signal is SIGNAL Temp_QS:STD_LOGIC; B

文档评论(0)

1亿VIP精品文档

相关文档