VHDL设计中电路优化问题探讨

发布者:CW13236066525最新更新时间:2006-04-29 来源: 单片机及嵌入式系统应用关键字:电路  语句  器件  优化 手机看文章 扫描二维码
随时随地手机看文章

近年来,随着集成电路技术和EDA技术的不断发展,集设计、模拟、综合和测试功能为一体的VHDL语言,已作为IEEE标准化的硬件描述语言。由于其在语法和风格上类似于现代高级汇编语言,具有良好的可读性,描述能力强,设计方法灵活,易于修改,又具有可移植性,可重复利用他人的IP模块(具有知识产权的功能模块)等诸多优势而成为EDA设计方法的首选。VHDL设计是行为级设计,所带来的问题是设计者的设计思考与电路结构相脱节。设计者主要是根据VHDL的语法规则,对系统目标的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译和优化,并通过仿真工具进行逻辑功能仿真和系统时延的仿真。实际设计过程中,由于每个工程师对语言规则和电路行为的理解程度不同,每个人的编程风格各异,往往同样的系统功能,描述的方式不一,综合出来的电路结构更是大相径庭。即使最终综合出的电路都能实现相同的逻辑功能,但其电路的复杂程度和时延特性差别很大,甚至某些臃肿的电路还会产生难以预料的问题。因此,对VHDL设计中简化电路结构,优化电路设计的问题进行深入探讨,很有必要。

VHDL电路设计的优化与VHDL描述语句、EDA工具以及可编程器件(PLD)的选用都有着直接的关系。设计人员首先应注意到以下基本问题:

① PLD器件的逻辑资源是有限的。

② 可编程器件具有特定的结构,应注意器件结构与实际系统的匹配,使系统性能达到最佳。
  
③ 不是所有的设计都能实现到任意选择的结构中去。
  
④ 电路优化的目标相当于求最优解的问题。

1 VHDL设计中提高硬件综合效率的主要策略

VHDL作为一种硬件描述和仿真语言,最终要实现的是实际硬件电路。但是其设计初衷并非综合,某些语句并不被综合器支持,所以在选择语句时应考虑到综合与仿真的效率。只有使用综合工具支持的语句,设计出的程序才有意义。在编程时要注意以下几点:

① 尽量不使用WAIT FOR XX ns语句和AFTER XX ns语句。XX ns表明在执行下一操作之前需要等待的时间,但综合器不予支持,一般忽略该时间,而不会综合成某种元件,故对于包含此类语句的程序,仿真结果与综合结果往往不一致。

② 声明信号和变量时尽量不赋初值,定义某确定数值时,使用常量而不用变量赋初值的形式。因为大多数综合工具将忽略赋值等初始化语句,诸如:VARIABAL S∶INTEGER∶=0。

③ 函数或过程调用时尽量使用名称关联。因为名称关联可以比位置关联更好地防止产生不正确的端口连接和元件声明,也不要在同一个语句中同时使用两种关联。诸如:
  
clk_1:bufes port map(I=>clock_in,clock_out);(不正确的用法)
  
clk_1:bufes port map(I=>clock_in,O=>clock_out);(正确的用法)

④ 正确使用when_else语句、if_else语句和case语句。VHDL设计电路的复杂程度除取决于设计功能的难度外,还受设计工程师对电路描述方法的影响。最常见的使电路复杂化的原因之一是,设计中存在许多本不必要的类似LATCH的结构,并且这些结构通常都由大量的触发器组成,不仅使电路更复杂,工作速度降低,而且由于时序配合的原因还会导致不可预料的结果。例如,描述译码电路时,由于每个工程师的写作习惯不同,有的喜欢用IF...ELSE语句,有的喜欢用WHEN...ELSE方式,而用IF...ELSE时,稍不注意,在描述不需要寄存器的电路时没加ELSE,则会引起电路不必要的开销。

例程1: if ina=″00000″ then
         Outy<=″0000111″;
    elsif ina=″00001″ then
         Outy<=″0001000″;
    elsif ina=″00010″ then
         Outy<=″0001001″;
         ……
    else
         Outy<=″0000000″;
    end if;

例程2: Outy<=″0000111″ when ina=″00000″ else
        ″0001000″ when ina=″00001″ else
        ″0001001″ when ina=″00010″ else
         ……
        ″0000000″;

例程2由于使用WHEN...ELSE完整条件语句,不会生成锁存器结构,所以不会有问题。而例程1若不加else Outy<=″0000000″语句,则属于不完整条件表达方式,会生成一个含有7位寄存器的结构。虽然上述例程都能实现相同的译码功能,但是电路复杂度会大不相同。

⑤ 注意算术功能的设计优化。例如下面两条语句:

          Out<=A+B+C+D;
          Out<=(A+B)+(C+D);

第一条语句综合后将会连续叠放3个加法器(((A+B)+C)+D);第二条语句(A+B)和(C+D)使用两个并行的加法器,同时进行加法运算,再将运算结果通过第三个加法器进行组合。虽然使用资源数量相同,但第二条语句速度更快。以4位和16位加法器为例,选用Altera公司EPF10K30AQC240_3芯片,通过synopsys FPGA Express综合工具实现的结果进行测试,比较结果如表1所列。     

2 优化系统速度的VHDL设计策略

选用基于VHDL设计的CPLD/FPGA器件往往首先是为了满足高速运行的需要,如通信系统。系统运行速度与电路节点之间的延时直接相关,因此,减少冗余逻辑,缩短节点延时是提高系统速度的关键。速度优化与电路结构设计(如器件结构特性、系统电路构成和PCB制板情况)和软件使用(如综合器性能和VHDL描述方式)都有关系。

2.1 电路结构方面速度优化的主要方法

① 流水线设计是最常用的速度优化技术。采用流水线设计虽然不能缩短总工作周期,但通过把一个工作周期内的逻辑操作分成几步较小操作,并连续同步实现的策略,可大大提高系统总体运行速度。

② 合理使用嵌入式阵列块EAB资源和LPM宏单元库。在DSP、图像处理等领域,乘法器是应用最广泛、最基本的模块,其速度往往制约着整个系统性能。而EAB是PLD器件中非常有效的高速资源,利用EAB单元和参数化模块LPM,可以设计出乘法器等高速电路。

③ 关键路径优化。所谓关键路径是指从输入到输出延时最长的逻辑通道。关键路径优化是保证系统速度优化的有效方法。

2.2 软件使用方面速度优化的方法

一般EDA软件尤其是综合器,均会提供一些针对具体器件和设计的优化选项。设计者在使用软件时应注意根据优化目标的要求,适当修改软件设置。在MAX+plusII中,就可以使用Assign/Device命令选择不同速度等级的芯片。

3 面积优化的VHDL设计策略

面积优化是提高芯片资源利用率的另一种方法,通过面积优化可以使用规模更小的芯片,从而降低成本和功耗,为以后技术升级预留更多资源。面积优化最常用的方法是资源共享和逻辑优化。

3.1 资源共享方法

资源共享的主要思想是通过数据缓冲或多路选择的方法来共享数据通道中占用资源较多的模块(如乘法器、多位加法器等算术模块)。

例程3: process(A0,A1,B,sel)
    begin
    if(sel=‘0’)then result<=A0*B;
          else result<=A1*B;
    end if;
    end processs;

例程4: process(A0,A1,B,sel)
    begin
    if(sel=‘0’)then temp<=A0;
          else temp<=A1;
    end if;
    result<=temp*B;
    end processs;

例程3的设计可用图1描述,例程4的设计可用图2描述。可见例程4节省了一个代价高昂的乘法器,整个设计占用面积比例程3几乎减少了一半。

3.2 逻辑优化方法

通过逻辑优化以减少资源利用也是常用的面积优化方法(如常数乘法器的应用,并行逻辑串行化处理等),但其代价往往是速度的牺牲。在延时要求不高的情况下,采用这种方法可以达到减少电路复杂度、实现面积优化的目的。

4 结论

通过以上初步的探讨可知,用VHDL进行集成电路的设计,不仅需要熟悉VHDL语言的使用方法和对设计要求的深刻理解,而且应在设计全程中遵循最优化设计的基本原则,在电路结构设计和软件使用中寻找满足设计要求的最佳方案。

  

  

关键字:电路  语句  器件  优化 引用地址:VHDL设计中电路优化问题探讨

上一篇:第一页
下一篇:PCI设备Windows通用驱动程序设计

推荐阅读最新更新时间:2024-08-23 12:12

收购硅谷数码,万盛股份确定战略转型集成电路
电子网消息,6月21日,万盛股份董事长高献国在公司重大资产重组媒体说明会上表示,基于国家产业结构调整,经过充分论证和分析后,公司确定集成电路行业作为公司战略转型重点方向,在努力发展原有主营业务的同时,力求开拓新兴行业,形成双轮驱动,为公司的可持续发展奠定更好的基础。 万盛股份5月25日晚间公告,公司拟发行股份方式购买嘉兴海大、集成电路基金等7名股东持有的匠芯知本100%股权,暂定价为37.5亿元。同时公司拟募集配套资金不超10亿元。 之前,匠芯知本(上海)科技有限公司已经完成对美国硅谷数模半导体公司全部股权的收购。 根据交易对方的业绩承诺,标的资产2017年、2018 年、2019年和2020年实现的净利润(经具有证券期货业务资格
[半导体设计/制造]
单限比较器电路
单限比较器电路 图1a给出了一个基本单限比较器。输入信号Uin,即待比较电压,它加到同相输入端,在反相输入端接一个参考电压(门限电平)Ur。当输入电压Uin Ur时,输出为高电平UOH。图1b为其传输特性。 LM339集成块内部装有四个独立的电压比较器,该电压比较器的特点是:1)失调电压小,典型值为2mV;2)电源电压范围宽,单电源为2-36V,双电源电压为±1V-±18V;3)对比较信号源的内阻限制较宽;4)共模范围很大,为0~(Ucc-1.5V)Vo;5)差动输入电压范围较大,大到可以等于电源电压;6)输出端电位可灵活方便地选用。
[模拟电子]
单限比较器<font color='red'>电路</font>
座舱显示器背光驱动电路的研制
    为使座舱内的用户随时得到准确、可靠的信息,座舱内使用的显示器必须具有高可靠性,同时,因为飞机驾驶员左右手都要操作仪器,且为提高座舱显示器的易读性和缓解视觉疲劳,显示器的光强还应能根据周围环境和用户需求进行自动和手动调整,避免用户在环境光很强时看不清显示内容,或在环境光很暗时感到刺眼。液晶显示器的背光亮度直接决定显示器的平均亮度,通过调节液晶显示器的背光亮度来调节显示器的亮度。     笔者采用国产的STC12C5624AD单片机设计一个液晶屏背光模块驱动和调节电路,能够准确测量环境光的照度,根据环境光实现自动和手动调节背光亮度。     1 显示器背光调节的原理     因为飞机座舱的特殊性,对座舱显示的可靠性、准确性和智能
[电源管理]
座舱显示器背光驱动<font color='red'>电路</font>的研制
河道监控系统的优化与设计
    洛河作为洛阳市行洪输水的主要通道,水情较为复杂。为防止溺水事件发生,市河渠管理处在整个洛河市区段南北两岸安装了数十个摄像头,以监控河道。但由于洛河市区段东西长达20 km,传统的监控系统不能发现随时都可能出现的险情,仍常有落水、溺水事件发生。为更好地监控河道,最大限度地防止溺水,提出将热释电红外探测器应用于河道监控中,构建一种新的防溺水监控的设计方案。 1 系统组成     系统根据目前河道监控及安防等领域的实际需求量身打造。整个系统可分为监控前端和监控中心两部分,其中监控前端由摄像装置、热释电红外探测器和语音报警模块组成。摄像装置是带有:360°旋转功能的一体化室外高速智能摄像机,全天候监测水面,热释电探测器一旦发现有
[嵌入式]
鬼秤陷阱:改电路板输密码,7两竟变1斤
一次买水果的经历,让成都市民李月感觉掉进了 电子秤 陷阱。同样的东西,流动水果摊位的电子秤显示的重量,怎么会平白无故多出2两?近日,经过成都商报记者对市场上电子秤商家的暗访,一个修改电子秤 电路板 、利用密码调试增加商品重量的陷阱浮出水面。   “鬼秤”陷阱 1.8斤车厘子 咋变成近2斤? 在反复试验之后,李月向记者讲述了自己近日的一次消费经历。1月11日下午,她在下班途中,遇到了一位推着车销售水果的商贩,香蕉、桔子、车厘子……李月往口袋里装了少量车厘子,放到商贩的秤上,差一点两斤,他随手捡了两个,凑成了整数,29元一斤的车厘子,共付了58元。“可能是价格贵的原因,对重量特别在意,我当时提在手里,感觉这点车厘子没有2斤。”  
[嵌入式]
移动智能终端发展放缓关键元器件领域“暗战”激烈
    全球智能终端浪潮明显回落,进入针对产品规格的细微提升阶段。2015年上半年全球智能手机出货6.73亿部,同比增长14.3%,远低于2014年26%的增速。前五大市场占比由2010年的31.4%提升至2015年第二季度的62.5%,市场集中度不断提升。智能机产品在多模多频、八核64位、大屏超薄、窄边框等高规格普及的情况下,开始转向细节优化与基础性能升级,上游的计算通信、存储传感、输入输出等关键元器件成为业界关注的焦点。 计算和通信芯片技术升级路径明确 64位成为AP基础架构,结合并行计算全面提升性能。64位架构自2013年由苹果引入,目前已经成为AP主流架构,2015年国内外企业推出的主流平台均是基于64位架构实现,并
[手机便携]
RCC电路淘汰论之我所见
淘汰RCC质量榜是杆秤 RCC 电源 质量难于控制、对变压器工艺要求高,导致很多厂出产的RCC电源质量很差,本人用的RCC充电器用几个月就坏掉的非常多,而3842芯片的就很耐用,为此我开始思索,目前一个芯片的价格只有0.5~0.8元,为什么不淘汰RCC,而要用做烂质量的代价,节省如此小的成本呢? 在美国, 我曾经跟一个卖 电子 产品的店主说中国工厂为了节省一个几美分的芯片,宁愿用质量差的RCC, 他认为“They are really crazy." 因为一个充电器卖几个美元,要在生产上省几个美分而导致多1%的退货都不值得,那么我们为什么不去淘汰掉RCD这种古老、路后的东西而全面专向芯片? 淘汰RCC确有必
[电源管理]
RCC<font color='red'>电路</font>淘汰论之我所见
开关电源中电流检测电路的探讨
    摘要: 介绍电流检测电路的实现方法,并探讨在电流检测中常遇见的电流互感器饱和、副边电流下垂的问题,最后用实验结果分析了升压电路中电流检测的方法。     关键词: 电流检测  电流互感器  磁芯复位     功率开关电路的电路拓扑分为电流模式控制和电压模式控制。电流模式控制具有动态反应快、补偿电路简化、增益带宽大、输出电感小、易于均流等优点,因而取得越来越广泛的应用。而在电流模式的控制电路中,需要准确、高效地测量电流值,故电流检测电路的实现就成为一个重要的问题。     本文介绍了电流检测电路的实现方法,并探讨在电流检测中常遇见的电流互感器饱和、副边电流下垂的问题,最后用实验结果分析了升
[应用]
小广播
最新应用文章

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved