[工学]VHDL设计方法ppt课件_第1页
[工学]VHDL设计方法ppt课件_第2页
[工学]VHDL设计方法ppt课件_第3页
[工学]VHDL设计方法ppt课件_第4页
[工学]VHDL设计方法ppt课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 VHDL设计中的一些问题设计中的一些问题一、一、 VHDL源代码的综合源代码的综合n功能一样但是编写不同的代码会产生不同功能一样但是编写不同的代码会产生不同的综合效果;的综合效果;n不能够依赖软件工具去综合一个编写很差不能够依赖软件工具去综合一个编写很差的源代码;的源代码;n假设能很好了解所作设计的硬件构造,那假设能很好了解所作设计的硬件构造,那么会使设计有一个良好的开端。么会使设计有一个良好的开端。三个重要的方面三个重要的方面1. 思索硬件构造思索硬件构造编写可以描画硬件拓扑构造的代码;编写可以描画硬件拓扑构造的代码;不要编写仿真模型;不要编写仿真模型;2. 思索同步逻辑思索同步逻辑n同步

2、逻辑在综合、测试、仿真和布线中同步逻辑在综合、测试、仿真和布线中都比较方便;都比较方便;n异步逻辑需求人为操作及一些扩展的仿异步逻辑需求人为操作及一些扩展的仿真功能才干进展验证。将异步逻辑划真功能才干进展验证。将异步逻辑划分成独立的块单元来编译。分成独立的块单元来编译。?3. 思索思索RTL级描画级描画n用用RTL级的描画意味着描画:级的描画意味着描画:n 存放器的构造;存放器的构造;n 电路构造;电路构造;n 存放器之间的功能。存放器之间的功能。n由编译器优化存放器之间的逻辑,但不优化存由编译器优化存放器之间的逻辑,但不优化存放器的规划。放器的规划。IF语句的综合语句的综合nIF-ELSE语

3、句隐含了一个多路选择器的硬件构造。语句隐含了一个多路选择器的硬件构造。n例:例: IF (Aflag = 1) THENn OutData = A + B;n ELSEn OutDate = C + D;n END IF;多路选择器的位置取决于多路选择器的位置取决于IF-ELSE语句的构造语句的构造 IF (Aflag = 1) THEN Op1 = A; Op2 = B; ELSE Op1 = C; Op2 = D; END IF; OutData = Op1+Op2;假设假设IF语句不带语句不带ELSE,可以表示锁存,可以表示锁存nVHDL言语的定义要求信号在没有被赋予新值言语的定义要求信

4、号在没有被赋予新值前坚持原来的值。前坚持原来的值。n锁存功能在硬件上实现了以上要求。锁存功能在硬件上实现了以上要求。n例:例:LS373: PROCESS (ALE, ADBUS)n BEGINn IF (ALE =1) THENn ABUS = ADBUS;n END IF;n END PROCESS LS373;一个二输入与门的设计一个二输入与门的设计由于没有由于没有ELSE,综合时会被默以为其他情况,综合时会被默以为其他情况时:时:c = c; PROCESS (a, b) BEGIN IF (a =1 and b =1) THEN c = 1; END IF;END PROCESS;I

5、F-THEN-ELSIF语句语句nIF-THEN-ELSIF语句隐含了优先级的关系,语句隐含了优先级的关系,因此在电路设计中假设有优先级的要求才运用因此在电路设计中假设有优先级的要求才运用该语句;该语句;n假设在没有优先级设计要求的情况下运用该语假设在没有优先级设计要求的情况下运用该语句,那么综合后的逻辑电路会比较复杂,速度句,那么综合后的逻辑电路会比较复杂,速度较慢;较慢;n例:中断优先级控制器,例:中断优先级控制器,int0优先级最高优先级最高中断优先级控制器的实现中断优先级控制器的实现 IF (int0 = 1) THEN active(0) = 1; ELSIF (int1 = 1)

6、THEN active(1) = 1; ELSIF (int2 = 1) THEN active(2) = 1; ELSE active(3) = 1; END IF;FOR-LOOP语句的综合语句的综合nFOR-LOOP语句首先进展语句首先进展“翻译,然后再进翻译,然后再进展综合。展综合。PROCESS (a, b) BEGIN FOR i IN 0 to 3 LOOP out(i) = a(i) AND b(3-i); END LOOP; END PROCESS; out(0) = a(0) AND b(3); out(1) = a(1) AND b(2); out(2) = a(2) A

7、ND b(1); out(3) = a(3) AND b(0);实现奇偶校验的例子实现奇偶校验的例子 PROCESS (data) VARIABLE sum: INTEGER; BEGIN sum := 0; FOR I IN 0 to 7 LOOP -数1的个数 sum := data(i) + sum; END LOOP; odd_parity = sum mod 2; -校验奇偶性 END PROCESS;综合后综合后操作符对综合结果的影响操作符对综合结果的影响nVHDL编译器对表达式从左至右进展语法编译器对表达式从左至右进展语法分析;分析;n圆括号可以改动编译的顺序;圆括号可以改动编译

8、的顺序;n例例1:n ADD = A + B + C + D ; (1)n ADD = (A + B) + (C + D) ; (2) + A0 A1 A2 A3 B0 B1 B2 B3 + C0 C1 C2 C3 + D0 D1 D2 D3 综合后结果:综合后结果: ADD = A+B + C+D ;综合后结果:综合后结果: ADD = (A+B) + (C+D) ; + A0 A1 A2 A3 B0 B1 B2 B3 + + C0 C1 C2 C3 D0 D1 D2 D3 例例2: SUM = A*B + C*D + E + F + G; 综合后结果:综合后结果:改动顺序或加括号来改动构造

9、改动顺序或加括号来改动构造nSUM = E + F + G + C*D + A*B;nSUM = (A*B) +( C*D) +( E + F) + G);二、可综合代码的设计特点二、可综合代码的设计特点1. 比较综合和仿真的结果比较综合和仿真的结果VHDL言语是一种硬件描画和仿真言语;言语是一种硬件描画和仿真言语;一些仿真构造在综合器中不被支持;一些仿真构造在综合器中不被支持;2. 防止运用防止运用nWAIT FOR xx ns 语句;语句;nAFTER xx ns 语句;语句;n信号和变量的赋初值语句信号和变量的赋初值语句;3. 运用运用CASE和和IF_ELSE语句语句nIF_ELSE描

10、画一个优先级编码的逻辑;描画一个优先级编码的逻辑;nCASE语句描画一种对称平衡的行为;语句描画一种对称平衡的行为;n仿真结果一致仿真结果一致;n综合出来的设计速度会有不同。综合出来的设计速度会有不同。4. 遵照一定的编代码规那么遵照一定的编代码规那么n选择运用大小写字母的规那么;选择运用大小写字母的规那么;n文件名与实体名匹配;文件名与实体名匹配;n给程序添加标号、注释给程序添加标号、注释;n运用代码缩进、空行、空格等;运用代码缩进、空行、空格等;n建议运用建议运用std_logic类型;类型;5. 例子例子n设计实现一个设计实现一个2-4译码器译码器 led(3) led(2) led(1

11、) led(0) bcd(1) bcd(0) bcd (1) bcd(0)Led(3) led(2) led(1) led(0)0 00 0 0 10 1 0 0 1 01 00 1 0 01 1 1 0 0 0方法一方法一: 构造描画法构造描画法n基于元件例化和基于元件例化和GENERATE语句;语句;n建立层次构造;建立层次构造;n可用简单的逻辑门和复杂的元件来描画可用简单的逻辑门和复杂的元件来描画系统;系统;n互连经过端口实现。互连经过端口实现。 a b bcd1.0 d b a Inverter:Inv1 Inverter:Inv2 ANDGate:A1 ANDGate:A2 ANDG

12、ate:A3 ANDGate:A4 led30 a b d b a d b a d b a n调用两个元件调用两个元件: 与门与门ANDGate (调用调用4次次)n 非门非门Inverter (调用调用2次次)方法二方法二: 数据流描画数据流描画n采用并发代入语句实现;采用并发代入语句实现;n经过输入信号值的改动来激活代入语经过输入信号值的改动来激活代入语句。句。n采用并发代入语句;采用并发代入语句; bcd1.0 led3.0 led0 led1 led2 led3 方法三:行为描画法方法三:行为描画法n描画的是电路的功能,而不是电路的构描画的是电路的功能,而不是电路的构造;造;n采用采用

13、PROCESS和和CASE语句;语句; SEL1.0 DATA3.0 OUT MUX Mux0 bcd1.0 led3.0 Mux1 Mux2 Mux3 MUX MUX MUX SEL1.0 DATA3.0 OUT SEL1.0 DATA3.0 OUT SEL1.0 DATA3.0 OUT 三、三、FPGA中的一些设计方法中的一些设计方法n竞争和冒险景象竞争和冒险景象n去除和置位信号去除和置位信号n触发器和锁存器触发器和锁存器n同步设计同步设计n延时电路的产生延时电路的产生n多时钟系统多时钟系统1. 竞争和冒险竞争和冒险n信号在信号在FPGA中传送会有不一样延迟;中传送会有不一样延迟;n当多个

14、输入信号同时发生变化时,其组当多个输入信号同时发生变化时,其组合逻辑就能够发生合逻辑就能够发生“毛刺;毛刺;n毛刺会向下一级传送;毛刺会向下一级传送;n毛刺会影响电路的稳定性。毛刺会影响电路的稳定性。“毛刺的例子毛刺的例子处理毛刺问题的方法处理毛刺问题的方法n改动设计:比如采用格雷码计数器替代改动设计:比如采用格雷码计数器替代普通的二进制计数器,由于格雷码计数普通的二进制计数器,由于格雷码计数器的输出每次只需一位跳变;器的输出每次只需一位跳变;n采用同步电路:毛刺在时钟的上升沿不采用同步电路:毛刺在时钟的上升沿不能构成有效的操作;能构成有效的操作;n采用对毛刺不敏感的采用对毛刺不敏感的D触发器

15、输出信号;触发器输出信号;2. 去除和置位信号去除和置位信号n去除和置位信号对毛刺很敏感;去除和置位信号对毛刺很敏感;n有时可以运用同步置位的方法来替代异有时可以运用同步置位的方法来替代异步清零。步清零。3. 触发器和锁存器触发器和锁存器n触发器在时钟沿锁存数据;触发器在时钟沿锁存数据;n锁存器是用电平来锁存数据;锁存器是用电平来锁存数据;n建议尽量运用触发器。建议尽量运用触发器。锁存器4. 同步设计同步设计n异步设计不是总能满足建立和坚持时间的异步设计不是总能满足建立和坚持时间的要求;要求;n异步设计经常会将错误的数据锁存到触发异步设计经常会将错误的数据锁存到触发器中;器中;n导致触发器出现

16、亚稳态,不能识别导致触发器出现亚稳态,不能识别1或或0;n尽量采用同步设计,以全局时钟为基准。尽量采用同步设计,以全局时钟为基准。FPGA中的时钟树中的时钟树FPGA中的时钟树中的时钟树n全局时钟为规划布线的延时参数提取、全局时钟为规划布线的延时参数提取、分析提供了基准;分析提供了基准;n假设不运用时钟树的时钟,那么延时数假设不运用时钟树的时钟,那么延时数据将不准确;据将不准确;n设计中应留意以全局时钟为参考。设计中应留意以全局时钟为参考。分频器的例子不规范分频器的例子不规范分频器的例子正确分频器的例子正确clkShift_reg5. 延时电路的产生延时电路的产生n有时候需求对信号进展延时处置来顺应有时候需求对信号进展延时处置来顺应外接端口的时序关系;外接端口的时序关系;n可综合的延时方法有:可综合的延时方法有:n 使信号经过逻辑门如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论