第4章 VHDL语言构造体的描述方式

上传人:资****亨 文档编号:133873470 上传时间:2020-05-31 格式:PPT 页数:61 大小:899KB
返回 下载 相关 举报
第4章 VHDL语言构造体的描述方式_第1页
第1页 / 共61页
第4章 VHDL语言构造体的描述方式_第2页
第2页 / 共61页
第4章 VHDL语言构造体的描述方式_第3页
第3页 / 共61页
第4章 VHDL语言构造体的描述方式_第4页
第4页 / 共61页
第4章 VHDL语言构造体的描述方式_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《第4章 VHDL语言构造体的描述方式》由会员分享,可在线阅读,更多相关《第4章 VHDL语言构造体的描述方式(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 aNOR bNANDc 具有延时时间的代入语句如下所示 a bAFTER5ns 该语句表示 当b发生新的变化5ns以后才被代入到信号a 门电路都存在固有延时 既当输入端发生变化以后 门电路的输出端的新的输出总要比输入端的变化延时若干时间 例如延时5ns 门电路的

4、这种输出特性就可以用具有延时时间的代入语句来描述 例4 1 ENTITYand21SPORT a b INBIT c OUTBIT ENDand2 ARCHITECTUREand2 behavOFand21SBEGINC aANDbAFTER5ns ENDand2 behav 例4 2 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYmux41SPORT i0 i1 i2 i3 a b INSTD LOGIC q OUTSTD LOGIC ENDmux4 ARCHITECTUREbehavO

5、Fmux41SSIGNALsel INTEGER BEGINWITHselSELECTq i0AFTER10nsWHEN0 i1AFTER10nsWHEN1 i2AFTER10nsWHEN2 i3AFTER10nsWHEN3 X AFTER10nsWHENOTHERS sel 0WHENa 0 ANDb 0 ELSE1WHENa 1 ANDb 0 ELSE2WHENa 0 ANDb 1 ELSE3WHENa 1 ANDb 1 ELSE4 ENDbehav 4 1 2延时语句 VHDL语言中存在两种延时类型 惯性延时传输延时这两种延时常用于VHDL语言的行为描述方式 4 1 2延时语句 1 惯性

6、延时在VHDL语言中 惯性延时是缺省的 即在语句中如果不作特别说明 产生的延时一定是惯性延时 这是因为大多数器件在行为仿真时都会呈现这种惯性延时 惯性延时有一个重要的特点 即当一个系统或器件 它的输入信号变化周期小于系统或器件的惯性 或惯性延时 时 其输出将保持不变 几乎所有器件都存在惯性延时 因此 硬件电路的设计人员为了逼真地仿真硬件电路的实际工作情况 在代入语句中总要加上惯性延时时间的说明 例如 b aAFTER10ns 惯性延时说明只在行为仿真时有意义 逻辑综合时将被忽略 或者在逻辑综合前必须去掉延时说明 4 1 2延时语句 2 传输延时在VHDL语言中 传输延时必须在语句中明确说明 T

7、RANSPORT 是专门用于说明传输延时的前置词 传输延时用于描述总线延时 连接线的延时及ASIC芯片中的路径延时 具有传输延时的代入语句如下所示 b TRANSPORTaAFTER20ns 第一个图分析 当一个系统或器件 它的输入信号变化周期小于系统或器件的惯性 或惯性延时 时 其输出将保持不变 第二个图分析 当有10ns的脉冲波形输入时 经20ns传输延时以后 在输出端产生10ns的脉冲波形 也就是说 输出端的信号除延时规定时间外 将完全复现输入端的输入波形 而不管输入波形的形状和宽窄如何 4 2构造体的寄存器传输 RTL 描述方式 采用行为描述方式的VHDL语言程序 在一般情况下只能用于

8、行为层次的仿真 而不能进行逻辑综合 对于用行为描述方式的VHDL语言程序只有改写为RTL描述方式才能进行逻辑综合 也就是说RTL描述方式才是真正可以进行逻辑综合的描述方式 RTL描述方式也称为数据流描述方式 4 2 1RTL描述方式的特点 RTL描述方式 是一种明确规定寄存器描述的方法 由于受逻辑综合的限制 在采用RTL描述方式时 所使用的VHDL语言的语句有一定限制 其限制情况如附录A所示 在RTL描述方式中要么采用寄存器硬件的一一对应的直接描述 要么采用寄存器之间的功能描述 例4 7 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LO

9、GIC UNSIGEND ALL ENTITYmux2ISPORT input INSTD LOGIC VECTOR 1DOWNTO0 sel INSTD LOGIC y OUTSTD LOGIC ENDmux2 ARCHITECTURErtlOFmux2ISBEGINy input 0 WHENsel 1 ELSEinput 1 ENDrtl 例4 8 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGEND ALL ENTITYmux2ISPORT d0 dl sel INSTD LOGIC q OUTSTD LOG

10、IC ENDmux2 ARCHITECTURErtlOFmux2ISSIGNALaa ab STD LOGIC BEGINaa d0ANDsel ab d1AND NOTsel y aaORab ENDrtl 对于例4 7 是将二选一电路看成一个黑框 编程者无需了解二选一内部的细节 只要知道外部特性和功能就可以进行正确的描述 而对于4 8 编程者就必须了解二选一电路是怎样构成的 内部采用了哪些门电路 所以从编程效率及编程难度来看 应该选择4 7这样的编程方法 来编写RTL描述方式的程序 4 2 2使用RTL描述方式应注意的几个问题 1 X 状态的传递在目前的RTL设计中要对所设计的程序进行仿真

11、检验 而且在逻辑电路综合以后还有必要对综合的结果进行仿真 之所以要进行二次仿真 这是因为在仿真过程中存在 X 传递的影响 它可以使得RTL仿真和门级电路仿真产生不一致的结果 所谓 X 状态的传递 实质上是不确定信号状态的传递 它将使逻辑电路产生不确定的结果 不确定 状态 在RTL仿真时是允许出现的 但是在逻辑综合后的门级电路仿真中是不允许出现的 例4 9 PROCESS sel BEGINIF sel 1 THENy 0 ELSEy 1 ENDIF ENDPROCESS 例4 10 PROCESS sel BEGINIF sel 0 THENy 1 ELSEy 0 ENDIF ENDPROCE

12、SS PROCESS sel BEGINIF sel 1 THENy 0 ELSIF sel 0 THENy 1 ELSEy X ENDIF ENDPROCESS 在上例中ELSE项以前 将sel所有的可能取值都作了明确的约束 当sel X 时 其输出y也将变为 X 就不会出现不合理的结果 在逻辑综合时 ELSE项是被忽略的 这样RTL仿真结果就和逻辑综合的仿真结果是一样的 2 寄存器RTL描述的限制 由RTL描述所生成的逻辑电路中 一般来说寄存器的个数和位置与RTL描述的情况是一致的 但是 寄存器RTL描述不是任意的 而是有一定限制的 1 禁止在一个进程中存在两个寄存器描述 例4 11 PR

13、OCESS clk1 clk2 BEGINIF clk1 EVENTANDclk1 1 THENy a ENDIF IF clk2 EVENTANDclk2 1 THENz b ENDIF ENDPROCESS 2 禁止使用IF语句中的ELSE项 例4 12 PROCESS clk BEGINIF clk EVENTANDclk 1 THENy a ELSE 禁止使用y b ENDIF ENDPROCESS 3 寄存器描述中必须代入信号值 例4 13 PROCESS clk VARIABLEtmp STD LOGIC BEGINIF clk EVENTANDclk 1 THENtmp a EN

14、DIF y tmp ENDPROCESS 3 关联性强的信号应放在一个进程中 在设计 与 及 或 这样部件时 如果在原理图上是并行放置的 那么通常进程和部件是一一对应的 但是 在许多较复杂的电路中 它有多个输入和输出 有些信号互相的关联度很高 而有些信号互相的关联度就很低 在这种情况下 为了在逻辑综合以后 使其电路的面积和速度指标更高 通常将关联度高的信号放在一个进程中 将电路分成几个进程来描述 例4 14 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYexlISPORT a b c zin yin INSTD LOGIC dout eout fou

15、t gout OUTSTD LOGIC ENDexl ARCHITECTURErtlOFexlISBEGINPROCESS a b c zin yin BEGINIF a 1 ANDb 0 THENdout 1 eout zin fout 0 gout 0 ELSIF a 0 ANDb 0 THEN dout 0 eout yin fout 0 gout 0 ELSIF a 0 ANDb 1 THENdout 0 eout yin fout 1 gout 0 ELSIF c 1 THENdout 1 eout zin fout 1 gout 1 ELSE dout 1 eout zin out

16、 1 gout 0 ENDIF ENDPROCESS ENDrtl 例4 15 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYex2ISPORT a b c zin yin INSTD LOGIC dout eout fout gout OUTSTD LOGIC ENDex2 ARCHITECTURErtlOFex2ISBEGINPR0CESS a zin yin BEGINIF a 1 THENdout 1 eout zin ELSEdout 0 eout yin ENDIF ENDPROCESS PROCESS b BEGINIF b 1 THENfout 1 ELSEfout 0 ENDIF ENDPROCESS PROCESS a b c BEGINIF a 1 ANDb 1 ANDc 1 THENgout 1 ELSEgout 0 ENDIF ENDPROCESS ENDrtl 4 3构造体的结构描述方式 所谓构造体的结构描述方式 就是在多层次的设计中 高层次的设计模块调用低层次的设计模块 或者直接用门电路设计单元来构成一个复杂的逻

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号