VHDL设计电路优化探讨

   2023-08-21 互联网2510
核心提示:  在1980年,因为美国军事工业需要描述电子系统的方法,美国国防部开始进行VHDL的开发。1987年,由IEEE(Institute of Electric

  在1980年,因为美国军事工业需要描述电子系统的方法,美国国防部开始进行VHDL的开发。1987年,由IEEE(Institute of Electrical and ElectroNIcs Engineers)将VHDL制定为标准。参考手册为IEEEVHDL语言参考手册 标准草案1076/B版,于1987年批准,称为IEEE 1076-1987. VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)是随着可编程逻辑器件(PLD)的发展而发展起来的一种硬件描述语言。他是一种面向设计的、多层次、多领域且得到一致认同的标准硬件描述语言,是集行为描述、RTL方式描述、门级描述功能为一体的语言,利用VHDL语言进行PLD设计开发,虽然在使用软件方面可以找到最佳的组合(例如Altera公司提供的Max+plusⅡ或QuartusⅡ软件与Mentor Graphics公司的Leonardo-Spectrum软件综合共同开发系统),但在设计思路和语言使用方面对系统的综合质量也有重要的影响。

  1 应用VHDL开发PLD的流程

  在设计入口(design entry)阶段可以采用逻辑图和VHDL混合输入,一般使用芯片生产商提供的一些新的开发工具,接下来的一步是VHDLSynthesis,通常称为逻辑综合,由3个过程组成:VHDL语言合成(LanguageSynthesis或HDLCompilation)、逻辑优化(Optimization)、目标映射(Technology Mapping)。最后一步是为了适应不同公司的编译器而生成EDIF(Electronic Design Interchange Format)的中间文件,也有的生成AHDL,DSL,QDIF,XNF等内部网单描述文件。

  在早期的EDA解决方案中,一般采用编写测试向量或加激励波形的方法,但这只能对逻辑的输出信号进行模拟,而对于一些重要的内部信号则无能为力了。采用VHDL后,可以借助VHDLSynthesis生成的VHDL格式的内部网单,使用一些特殊的调试器对VHDL源程序进行类似于高级语言调试的单步跟踪调试。这样,不仅可以观察重要的内部信号,而且可以清楚地看到程序执行的流程。比较常用的调试器有Aldec的Active-HDL等。接下来就是适配Fitter(Place&Route),这里要用各个芯片厂商提供的编译器(TargetCompiler)来生成JEDEC文件,用于下载(Download)和逻辑编程。在生成JEDEC后,一般还要经过时序模拟(Timing Simulatior)。在全部的开发过程中,设计入口VHDL的输入对最终运行速度、器件面积等影响很大,所以一定注意VHDL的优化设计。

  2 优化VHDL编码的几种方法

  VHDL是行为级的设计,所带来的问题是设计者的设计思考与电路结构相脱节,即使最后综合出的电路都能实现相同的逻辑功能,其电路的复杂程度和时延特性都会有很大的差别,甚至某些额外的电路还使得系统运行效率达不到要求。下面给出了几点简化VHDL的设计优化方法。

  2.1 避免过多使用寄存器、触发器

  用VHDL进行设计,其最终综合出的电路的复杂程度除取决于设计要求实现的功能的难度外,还受设计工程师对电路的描述方法的影响。最常见的使电路复杂化的原因之一是设计中存在许多本不必要的类似LATCH的结构。而且由于这些结构通常都由大量的触发器组成,不仅使电路更复杂,工作速度降低,而且由于时序配合的原因可能导致不好的结果。例如对于同一译码电路有不同描述:

  以上两段程序描述了同一个译码电路。第2个程序由于when…else的语句不能生成锁存器的结构且else后一定要有结果,所以不会有问题,而第1个程序如果不加elsestepsize<=″0000000″这句,则会生成一个含有7 b寄存器的结构,虽然都能实现相同的译码功能,但是程序1电路复杂度会大增。

  2.2 使用具有范围限制的整数

  在VHDL中无约束整数的范围是-2 147 483 647~+2 147 483 647。这意味着至少需要32 b来表示,但通常这会造成资源的浪费,有些综合软件会自动优化,但所消耗的时间是相当可观的。因此,如果不需要全范围的整型数据,最好指定范围,这样可以最终使例如:signalsmall_int:integerrange 255 down to 0;small_int在本例中只需要8 b,而不是32 b,有效地节约了器件面积。

  2.3 资源共享

  例如下面的两段代码中,程序3中需要2个加法器,而完成同样的功能,略做修改,程序4中只需要1个加法器,有效地减少了使用面积。有时适当地利用圆括号进行重新组合,也可以实现资源的共享,这样使得电路结构得到优化。如下面两段代码5和6,6中输入信号b和c即可实现加法器的共享。

  2.4 高级设计优化

  上述方法是在没有改变其功能性的情况下进行综合优化的,有时候可以在不妨碍设计规格约束的前提下,稍微改变其功能,来提高综合效率,参考下面2个例子7和8。

  

  在程序7中,综合建立递增计数器和完整的比较器; 在程序8中,综合建立递减计数器和对于常数零的比较器。因为和常数做比较更易于实现,且占用逻辑单元更少,因此程序8得到执行更高效。

  3 结 语

  功能强大的EDA开发软件和专业的综合工具的不断发展,应用VHDL进行PLD设计变得更简单、更快捷;但决不能忽视VHDL语言使用,文中论述了VHDL的几个简化和优化电路设计,有3个值得注意的方面:

  (1)要求不高的情况下,尽量运用重复电路设计,使得大部分模块能够重复使用,将电路实体减到最小。

  (2)在电路设计中,如果需要存储变量或信号,触发器或锁存器的使用尽量减小。

  (3)在编写程序前要先对整个设计进行较深入的了解和科学的划分,多设想几种方案然后再进行比较,用多个较少位数的单元取代较多位数的单元,有时为了更高的进行综合,考虑压缩电路层次。


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅