VHDL语言构造体的描述方式.ppt
《VHDL语言构造体的描述方式.ppt》由会员分享,可在线阅读,更多相关《VHDL语言构造体的描述方式.ppt(61页珍藏版)》请在三一办公上搜索。
1、第4章VHDL语言构造体的描述方式,4.1 构造体的行为描述方式 4.2 构造体的寄存器传输(RTL)描述方式 4.3 构造体的结构描述方式 习题,VHDL的结构体具体描述整个设计实体的逻辑功能,对于所希望的电路功能行为,可以在结构体中用不同的语句类型和描述方式来表达,即对于相同的逻辑行为,可以有不同的语句表达方式。对硬件系统进行描述,可以采用3种描述方式,即行为描述方式、寄存器传输(或数据流)描述方式和结构化的描述方式。这3种描述方式从不同的角度对硬件系统进行行为和功能的描述。在当前情况下,采用后两种描述方式的VHDL语言程序可以进行逻辑综合,而采用行为描述的VHDL语言程序,大部分只用于系
2、统仿真,少数的也可以进行逻辑综合。在实际应用中,为了能兼顾整个设计的功能、资源、性能几方面的因素,通常混合使用这三种描述方式。,4.1 构造体的行为描述方式,所谓行为描述可以有两个含义 从VHDL仿真的角度看,凡是可以在VHDL仿真器上进行仿真测试的,且可含有任何不可综合语句的系统描述模型都可以称为行为描述模型。从具体的描述方法上看,VHDL的结构体只描述了所希望电路的功能或者说电路行为,而没有直接指明或涉及实现这些行为的硬件结构,包括硬件特征、连线方式、逻辑行为方式,则称为行为风格的描述或行为描述模型。,4.1 构造体的行为描述方式,行为描述方式是对系统数学模型的描述,其抽象程度比寄存器传输
3、描述方式和结构化描述方式的更高。在行为描述方式的程序中大量采用算术运算、关系运算、惯性延时、传输延时等难于进行逻辑综合和不能进行逻辑综合的VHDL语句。采用行为描述方式的VHDL语言程序主要用于系统数学模型的仿真或者系统工作原理的仿真。,4.1.1 代人语句,代入语句是VHDL语言中进行行为描述的最基本的语句。格式为:信号量=敏感信号量表达式;例如:a=b;z=a NOR(b NAND c);,具有延时时间的代入语句如下所示:a=b AFTER 5 ns;该语句表示,当b发生新的变化5ns以后才被代入到信号a。门电路都存在固有延时,既当输入端发生变化以后,门电路的输出端的新的输出总要比输入端的
4、变化延时若干时间,例如延时5ns。门电路的这种输出特性就可以用具有延时时间的代入语句来描述。,例41ENTITY and2 1SPORT(a,b:IN BIT;c:OUT BIT);END and2;ARCHITECTURE and2_behav OF and2 1SBEGIN C=a AND b AFTER 5 ns;END and2_behav;,例42,LIBRARY IEEE;USE IEEESTD_LOGIC_1164ALL;USE IEEESTD_LOGIC_UNSIGNEDALL;ENTITY mux4 1S PORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;q
5、:OUT STDLOGIC);END mux4;ARCHITECTURE behav OF mux4 1S SIGNAL sel:INTEGER;BEGIN WITH sel SELECT q i0 AFTER 10 ns WHEN 0,i1 AFTER 10 ns WHEN 1,i2 AFTER 10 ns WHEN 2,i3 AFTER 10 ns WHEN 3,XAFTER 10 ns WHEN OTHERS;sel 0 WHEN a0AND b0 ELSE 1 WHEN a1AND b0 ELSE 2 WHEN a0AND b1 ELSE 3 WHEN a1AND b1 ELSE 4;
6、END behav;,4.1.2 延时语句,VHDL语言中存在两种延时类型:惯性延时 传输延时 这两种延时常用于VHDL语言的行为描述方式。,4.1.2 延时语句,1惯性延时 在VHDL语言中,惯性延时是缺省的,即在语句中如果不作特别说明,产生的延时一定是惯性延时。这是因为大多数器件在行为仿真时都会呈现这种惯性延时。,惯性延时有一个重要的特点,即当一个系统或器件,它的输入信号变化周期小于系统或器件的惯性(或惯性延时)时,其输出将保持不变。,几乎所有器件都存在惯性延时,因此,硬件电路的设计人员为了逼真地仿真硬件电路的实际工作情况,在代入语句中总要加上惯性延时时间的说明。例如:b a AFTER
7、10 ns;惯性延时说明只在行为仿真时有意义,逻辑综合时将被忽略,或者在逻辑综合前必须去掉延时说明。,4.1.2 延时语句,2传输延时 在VHDL语言中,传输延时必须在语句中明确说明。“TRANSPORT”是专门用于说明传输延时的前置词。传输延时用于描述总线延时、连接线的延时及ASIC芯片中的路径延时。具有传输延时的代入语句如下所示:b=TRANSPORT a AFTER 20 ns;,第一个图分析:当一个系统或器件,它的输入信号变化周期小于系统或器件的惯性(或惯性延时)时,其输出将保持不变。第二个图分析:当有10ns的脉冲波形输入时,经20ns传输延时以后,在输出端产生10ns的脉冲波形。也
8、就是说,输出端的信号除延时规定时间外,将完全复现输入端的输入波形,而不管输入波形的形状和宽窄如何。,4.2 构造体的寄存器传输(RTL)描述方式,采用行为描述方式的VHDL语言程序,在一般情况下只能用于行为层次的仿真,而不能进行逻辑综合。对于用行为描述方式的VHDL语言程序只有改写为 RTL描述方式才能进行逻辑综合,也就是说RTL描述方式才是真正可以进行逻辑综合的描述方式。RTL描述方式也称为数据流描述方式。,4.2.1 RTL描述方式的特点,RTL描述方式,是一种明确规定寄存器描述的方法。由于受逻辑综合的限制,在采用RTL描述方式时,所使用的VHDL语言的语句有一定限制,其限制情况如附录A所
9、示。在RTL描述方式中要么采用寄存器硬件的一一对应的直接描述,要么采用寄存器之间的功能描述。,例4-7LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGEND.ALL;ENTITY mux2 IS PORT(input:IN STD_LOGIC_VECTOR(1 DOWNTO 0);sel:IN STD_LOGIC;y:OUT STD_LOGIC);END mux2;ARCHITECTURE rtl OF mux2 ISBEGIN y=input(0)WHEN sel1 ELSE input(1);END rtl;
10、,例4-8 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGEND.ALL;ENTITY mux2 IS PORT(d0,dl,sel:IN STD_LOGIC;q:OUT STD_LOGIC);END mux2;ARCHITECTURE rtl OF mux2 IS SIGNAL aa,ab:STD_LOGIC;BEGIN aa=d0 AND sel;ab=d1 AND(NOT sel);y=aa OR ab;END rtl;,对于例47,是将二选一电路看成一个黑框,编程者无需了解二选一内部的细节,只要知道外部
11、特性和功能就可以进行正确的描述。而对于48,编程者就必须了解二选一电路是怎样构成的,内部采用了哪些门电路。所以从编程效率及编程难度来看,应该选择47这样的编程方法,来编写RTL描述方式的程序。,4.2.2 使用RTL描述方式应注意的几个问题,1“X”状态的传递 在目前的RTL设计中要对所设计的程序进行仿真检验,而且在逻辑电路综合以后还有必要对综合的结果进行仿真。之所以要进行二次仿真,这是因为在仿真过程中存在“X”传递的影响。它可以使得RTL仿真和门级电路仿真产生不一致的结果。,所谓“X”状态的传递,实质上是不确定信号状态的传递,它将使逻辑电路产生不确定的结果,不确定“状态”在RTL仿真时是允许
12、出现的,但是在逻辑综合后的门级电路仿真中是不允许出现的。例49 PROCESS(sel)BEGIN IF(sel=1)THEN y=0;ELSE y=1;END IF;END PROCESS;,例410 PROCESS(sel)BEGIN IF(sel0)THEN y=1;ELSE y=0;END IF;END PROCESS;,PROCESS(sel)BEGIN IF(sel=1)THEN y=0;ELSIF(sel=0)THEN y=1;ELSE y=X;END IF;END PROCESS;,在上例中ELSE项以前,将sel所有的可能取值都作了明确的约束,当selX时,其输出y也将变为“
13、X”,就不会出现不合理的结果。在逻辑综合时,ELSE项是被忽略的,这样RTL仿真结果就和逻辑综合的仿真结果是一样的。,2寄存器RTL描述的限制,由RTL描述所生成的逻辑电路中,一般来说寄存器的个数和位置与RTL描述的情况是一致的。但是,寄存器RTL描述不是任意的,而是有一定限制的。,1)禁止在一个进程中存在两个寄 存器描述,例4-11 PROCESS(clk1,clk2)BEGIN IF(clk1EVENT AND clk11)THEN y=a;END IF;IF(clk2EVENT AND clk21)THEN z=b;END IF;END PROCESS;,2)禁止使用IF语句中的ELSE
14、项,例4-12 PROCESS(clk)BEGIN IF(clkEVENT AND clk=1)THEN y=a;ELSE 禁止使用 y=b;END IF;END PROCESS;,3)寄存器描述中必须代入信号值,例4-13 PROCESS(clk)VARIABLE tmp:STD_LOGIC;BEGIN IF(clkEVENT AND clk1)THEN tmp:=a;END IF;y=tmp;END PROCESS;,3关联性强的信号应放在一个进程中,在设计“与”及“或”这样部件时,如果在原理图上是并行放置的,那么通常进程和部件是一一对应的。但是,在许多较复杂的电路中,它有多个输入和输出,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言 构造 描述 方式
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5452216.html