您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 《VHDL实用教程》完整版【汉语版】-9第七章
杭州康芯电子有限公司第7章VHDL的描述风格153KONXINKONXIN第7章VHDL的描述风格从前面几章的叙述可以看出VHDL的结构体具体描述整个设计实体的逻辑功能对于所希望的电路功能行为可以在结构体中用不同的语句类型和描述方式来表达对于相同的逻辑行为可以有不同的语句表达方式在VHDL结构体中这种不同的描述方式或者说建模方法通常可归纳为行为描述RTL描述和结构描述其中RTL寄存器传输语言描述方式也称为数据流描述方式VHDL可以通过这三种描述方法或称描述风格从不同的侧面描述结构体的行为方式在实际应用中为了能兼顾整个设计的功能资源性能几方面的因素通常混合使用这三种描述方式§7.1行为描述如果VHDL的结构体只描述了所希望电路的功能或者说电路行为而没有直接指明或涉及实现这些行为的硬件结构包括硬件特性连线方式逻辑行为方式则称为行为风格的描述或行为描述行为描述只表示输入与输出间转换的行为它不包含任何结构信息行为描述主要指顺序语句描述即通常是指含有进程的非结构化的逻辑描述行为描述的设计模型定义了系统的行为这种描述方式通常有一个或多个进程构成每一个进程又包含了一系列顺序语句这里所谓的硬件结构是指具体硬件电路的连接结构逻辑门的组成结构元件或其它各种功能单元的层次结构等试比较以下两例的描述风格程序7-1是有异步复位功能的8位二进制加法计数器的VHDL描述程序7-2也是有异步复位功能的8位二进制加法计数器但却是用ABEL-HDL语言来描述的程序7-1LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALLENTITYcunter_upISPORT(reset,clock:INSTD_LOGIC;counter:OUTSTD_LOGIC_VECTOR(7DOWNTO0));END;ARCHITECTUREbehvofcunter_upIS154VHDL实用教程SIGNALcnt_ff:UNSIGNED(7DOWNTO0);BEGINPROCESS(clock,reset,cnt_ff)BEGINIFreset='1'THENcnt_ff=X00;ELSIF(clock='1'ANDclock'EVENT)THENcnt_ff=cnt_ff+1;ENDIF;ENDPROCESS;counter=STD_LOGIC_VECTOR(cnt_ff);ENDARCHITECTUREbehv程序7-2MODULEcounter_upClock,reset,PIN;Counter7..counter0PINISTYPE'COM';Cnt_ff7..cnt_ff0NODEISTYPE'REG';Counter=[counter7..counter0];Cnt=[cnt_ff7..cnt_ff0];EQUATIONSCnt.CLK=clock;Cnt.AR=reset;Cnt:=cnt.FB+1;Counter=cnt;ENDcounter_up程序7-1和程序7-2是用两种不同的硬件描述语言描述的同一种器件即具有异步复位功能的8位二进制加法计数器首先让我们来看程序7-2这是一个完整的ABEL-HDL程序其中第四行语句明确指出了计数器将由8个时序元件'REG'即8个寄存器组成而在第三行语句中的'COM'标明了输出方式是组合逻辑方式语句cnt.CLK=clcok也明确标明了内部器件的连接方式即将输入信号CLK与cnt中的8个触发器上的每一时钟输入端clock相连形成同步逻辑方式而语句cnt.AR=reset的含义相同即将复位信号线reset与cnt中的每一触发器的异步清零端AR相连语句cnt:=cnt.FB+1中的.FB表示反馈线相连将加1锁存后的值反馈回cnt的输入端从程序7-2的程序不难看出程序中一部分内容描述了输入输出的硬件方式以及完成计数功能的硬件方式另一部分内容描述内部信号线的连接关系和连接方式余下的部分则是描述算法和信号传送方式显然这种描述方式与最低层的硬件结构关系很大如果对组成有关的PLD器件内部结构不了解或是不了解怎样连接才能构成一个计数器则会对这样一个简单计数器的设计无从下手问题就出在ABEL语言的语句描述方式与器件结构有很大的相关性相比之下程序7-1的描述具有明显的优势在程序中不存在任何与硬件选择相关的语句也不存在任何有关硬件内部连线方面的语句整个程序中从表面上看不出是杭州康芯电子有限公司第7章VHDL的描述风格155KONXINKONXIN否引入寄存器方面的信息或是使用组合逻辑还是时序逻辑方面的信息也不存在类似ABEL-HDL使用组合逻辑或时序逻辑方面的指示性语句整个程序只是对所设计的电路系统的行为功能作了描述不涉及任何具体器件方面的内容这就是所谓的行为描述方式或行为描述风格程序中最典型的行为描述语句就是其中的ELSIF(clock='1'ANDclock’EVENT)THEN它对加法器计数时钟信号的触发要求作了明确而详细的描述对时钟信号特定的行为方式所能产生的信息后果作了准确的定位这充分展现了VHDL语言最为闪光之处VHDL的大系统描述能力正是基于这种强大的行为描述方式相比之下程序7-2的时钟测试语句cnt.CLK=clock仅仅描述了时钟信号线与计数器的连接关系至于计数过程中究竟是上升沿还是下降沿或是电平触发全都无法通过语句得到控制剩下的全凭实际目标器件中的寄存器本身的性质来决定如果它是上升沿触发型寄存器则此语句的功能为上升沿触发若为下降沿触发型寄存器则此语句便代表下降沿触发方式依此类推因此对于设计者来说在编写ABEL-HDL程序前首先必须弄清楚此程序最终将落实在哪一类芯片中了解此类芯片中的寄存器是什么样的触发方式还要了解是否能进行同步或异步置位等功能由此可见VHDL的行为描述功能确实具有很独特之处和很大的优越性在应用VHDL进行系统设计时行为描述方式是最重要的逻辑描述方式行为描述方式是VHDL编程的核心可以说没有行为描述就没有VHDL正因为这样有人把VHDL称为行为描述语言因此只有VHDL作为硬件电路的行为描述语言才能满足自顶向下设计流程的要求从而成为电子线路系统级仿真和设计的最佳选择相比之下Verilog-HDL只能属于RTL级硬件描述语言将VHDL的行为描述语句转换成可综合的门级描述是VHDL综合器的任务这是一项十分复杂的工作不同的VHDL综合器其综合和优化效率是不尽一致的优秀的VHDL综合器对VHDL设计的数字系统产品的工作性能和性价比都会有良好的影响所以对于产品开发或科研对应的VHDL综合器应作适当的选择CadenceSynplicitySynopsys和Viewlogic等著名EDA公司的VHDL综合器都具有上佳的表现§7.2数据流描述数据流描述风格也称RTL描述方式RTL是寄存器传输语言的简称RTL级描述是以规定设计中的各种寄存器形式为特征然后在寄存器之间插入组合逻辑这类寄存器或者显式地通过元件具体装配或者通过推论作隐含的描述一般地VHDL的RTL描述方式类似于布尔方程可以描述时序电路也可以描述组合电路它既含有逻辑单元的结构信息又隐含表示某种行为数据流描述主要是指非结构化的并行语句描述数据流的描述风格是建立在用并行信号赋值语句描述基础上的当语句中任一输入信号的值发生改变时赋值语句就被激活随着这种语句对电路行为的描述大量的有关这种结构的信息也从这种逻辑描述中流出认为数据是从一个设计中流出从输入到156VHDL实用教程输出流出的观点称为数据流风格数据流描述方式能比较直观地表达底层逻辑行为程序7-3是这种描述方式的一个示例程序7-3ENTITY\74LS18\ISPORT(I0_A,I0_B,I1_A,I1_B,I2_A:INSTD_LOGIC;I2_BI3_AI3_B:INSTD_LOGIC;O_A:OUTSTD_LOGIC;O_B:OUTSTD_LOGIC);END\74LS18\;ARCHITECTUREmodelOF\74LS18\ISBEGINO_A=NOT(I0_AANDI1_AANDI2_AANDI3_A)AFTER55ns;O_B=NOT(I0_BANDI1_BANDI2_BANDI3_B)AFTER55ns;ENDmodel;§7.3结构描述VHDL结构型描述风格是基于元件例化语句或生成语句的应用利用这种语句可以用不同类型的结构来完成多层次的工程即从简单的门到非常复杂的元件包括各种已完成的设计实体子模块来描述整个系统元件间的连接是通过定义的端口界面来实现的其风格最接近实际的硬件结构即设计中的元件是互连的结构描述就是表示元件之间的互连这种描述允许互连元件的层次式安置像网表本身的构建一样结构描述建模步骤如下元件说明描述局部接口元件例化相对于其它元件放置元件元件配置指定元件所用的设计实体即对一个给定实体如果有多个可用的结构体则由配置决定模拟中所用的一个结构元件的定义或使用声明以及元件例化是用VHDL实现层次化模块化设计的手段与传统原理图设计输入方式相仿在综合时VHDL综合器会根据相应的元件声明搜索与元件同名的实体将此实体合并到生成的门级网表中下面是以上述结构描述方式完成的一个结构体的示例程序7-4ARCHITECTURESTRUCTUREOFCOUNTER3ISCOMPONENTDFFPORT(CLK,DATA:INBIT;Q:OUTBIT);ENDCOMPONENT;COMPONENTAND2PORT(I1,I2:INBIT;O:OUTBIT);ENDCOMPONENT;COMPONENTOR2PORT(I1,I2:INBIT;O:OUTBIT);杭州康芯电子有限公司第7章VHDL的描述风格157KONXINKONXINENDCOMPONENT;COMPONENTNAND2PORT(I1,I2:INBIT;O:OUTBIT);ENDCOMPONENT;COMPONENTXNOR2PORT(I1,I2:INBIT;O:OUTBIT);ENDCOMPONENT;COMPONENTINVPORT(I:INBIT;O:OUTBIT);ENDCOMPONENT;SIGNALN1,N2,N3,N4,N5,N6,N7,N8,N9:BIT;BEGINu1:DFFPORTMAP(CLK,N1,N2);u2:DFFPORTMAP(CLK,N5,N3);u3:DFFPORTMAP(CLK,N9,N4);u4:INVPORTMAP(N2,N1);u5:OR2PORTMAP(N3,N1,N6);u6:NAND2PORTMAP(N1,N3,N7);u7:NAND2PORTMAP(N6,N7,N5);u8:XNOR2PORTMAP(N8,N4,N9);u9:NAND2PORTMAP(N2,N3,N8);COUNT(0)=N2;COUNT(1)=N3;COUNT(2)=N4;ENDSTRUCTURE;利用结构描述方式可以采用结构化模块化设计思想将一个大的设计划分为许多小的模块逐一设计调试完成然后利用结构描述方法将它们组装起来形成更为复杂的设计显然在三种描述风格中行为描述的抽象程度最高最能体现VHDL描述高层次结构和系统的能力正是VHDL语言的行为描述能力使自顶向下的设计方式成为可能认为VHDL综合器不支持行为描述方式是一种比较早期的认识因为那时EDA工具的综合能力和综合规模都十分有限由于EDA技术应用的不断深入超大规模可编程逻辑器件的不断推出和VHDL系统级设计功能的提高有力地促进了EDA工具的完善事实上当今流行的EDA综合器除本书中提到的一些语句不支持外将支持任何方式描述风格的VHDL语言结构至于综合器不支持或忽略的那些语句其原因也并非在综合器本身而是硬件电路中目前尚无与之对应的结构习题7-1什么是VHDL结构体的行为描述风格叙述行为描述的优缺点7-2结构化描述与调用子程序有何异同点VHDL程序中是如何进行结构化描述的结构化描述需要哪些语句7-3试举一例在一个结构体中同时含有三种不同描述风格的VHDL语句结构7-4以数据流的方式设计
本文标题:《VHDL实用教程》完整版【汉语版】-9第七章
链接地址:https://www.777doc.com/doc-2864977 .html