基于Verilog HDL的模型优化_第1页
基于Verilog HDL的模型优化_第2页
基于Verilog HDL的模型优化_第3页
全文预览已结束

下载本文档

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

文档简介

1、基于Verilog HDL的模子优化摘要本文基于模子优化的需要性,对利用verilghdl建模时可以运用的优化本领作了详细的阐述,对方案者具有必然的引导意义。关键词模子优化;综合;表达式1弁言每个方案者在举行verilg建模时都市形本钱身的方案气势气派,同一个电路方案,用verilg形貌可以写出很多逻辑上等价的模子,而大多数方案者思量的重要是代码誊写上的便利和成效上是否准确,对方案的模子是否最优化布局却思量甚少,如许不但加重了逻辑综合的包袱,影响综合服从,而且很大概会导致方案出的芯片未到达最优的面积和速率。因此,在verilg建模时,很有需要举行模子优化。2模子优化概述影响一个芯片性能的指标重

2、要有两个:面积和速率。模子优化就是通过必然的本领对模子的布局举行调解、组合和精简,从而使方案出的芯片到达更小的面积和更快的速率。综合所天生的逻辑易受模子形貌方法的影响。把语句从一个位置移到另一个位置,大概拆分表达式都市对所天生的逻辑产生庞大影响,这大概会造成综合出的逻辑门数有所增减,也大概改变其按时特性。因此,接纳必然的本领可以实现对逻辑的优化。但是由于优化尽头包罗的两个方面面积和速率是互相抵牾的,优化一个方面肯定影响另一个方面,而无法实现面积和速率都到达最优,这就必要方案者对两者举行衡量,看方案侧重于哪个方面,而接纳差异的优化出发点。下面别离从面积和速率两个方面临模子优化的本领举行先容。3面

3、积的优化3.1提取群众子表达式假设条件语句的互斥分支中有群众子表达式,可以提取该群众子表达式。如下面的模子可以提取群众子表达式:if(enable)p=a(b+);elseq=(b+)|d;此模子中条件语句的互斥分支中都盘算了表达式b+,因此,应将该表达式提取出来放在条件语句之前举行赋值,新模子如下所示:tp=b+;/引入一个暂时变量if(enable)p=atp;elseq=tp|d;如许,综合东西就会综合出一个加法器,而本来的模子那么会综合出两个加法器。引申到一样平常环境,假设在逻辑中寻到有群众子表达式,就可以将该群众子表达式赋值给一个暂时变量,然后用该暂时变量来表现该群众子表达式,如许就

4、可以淘汰综合出的alu单位的数目,以实现面积的优化。3.2代码移位假设在循环语句内某个表达式的值在每次循环中都稳定革,可以将该表达式移至循环之外。如下面的模子可以举行代码移位:p=fr(i=1;i=5;i+)beginq=p+5;/假设循环中未对p赋新值end赋值语句“q=p+5;右端的表达式不随循环变量而变,因此,应将该表达式移至循环之外,新模子如下所示:p=tp=p+5;/引入一个暂时变量fr(i=1;i=5;i+)beginq=tp;end如许,综合东西对“p+5只会综合出一个加法器,而本来的模子会产生5个加法器,每循环一次就产生一个,造成了代码冗余。优化后的新模子不但淘汰了综合出的al

5、u单位的数目,而且进步了仿真服从。3.3资源共享资源共享是指在互斥条件下共享算术逻辑单位(alu)的历程。如下面的模子:if(nu5)p=a+b;elsep=a-;假设不接纳资源分派,算符“和“就会被综合成两个单独的alu。而假设接纳了资源分派,仅需一个alu就可以实现“和“这两种运算。这是由于这两种算符总是互斥地利用。别的还天生了一个多路选择器,用来从b和中选择符合的量接到alu的第二个输入端上。现实上,资源分派就是共享算符的历程。共享算符有以下几种大概的环境:(1)算符雷同,运算量雷同。如:a+b和a+b,这种环境同“提取群众子表达式,显然必需共享。(2)算符雷同,有一个运算量差异。如:a

6、+b和a+,这时需引入一个多路选择器,要举行面积与速率之间的衡量。(3)算符雷同,运算量都差异。如:a+b和+d,这时需引入两个多路选择器,要举行面积与速率之间的衡量。(4)算符差异,运算量雷同。如:a+b和a-b,可以将“和“合成一个alu单位,要共享。(5)算符差异,有一个运算量差异。如:a+b和a-,这时需引入一个多路选择器,要举行面积与速率之间的衡量。(6)算符和运算量都差异。如:a+b和-d,这时需引入两个多路选择器,要举行面积与速率之间的衡量。在共享alu的时间,要在alu的某个输入端引入多路选择器,如许会增长途径的耽误。因此,方案者应按照现实环境衡量是优化面积紧张照旧优化速率紧张

7、,假设是在“按时至上的方案中,最好不要接纳资源共享。别的,对付庞大的运算单位,可以接纳函数和使命来界说这些共享的数据处置惩罚模块,以淘汰器件资源的斲丧,低落本钱。3.4消除触发器有些方案者为了图编写代码的便利,爱好将同一条件操纵下的赋值语句写在一个时序操纵语句中,如下面的模子:alays(psedgelk)beginase(state)0:beginprestate=1;dut=16h56;end1:beginprestate=0;dut=16h29;endendaseend方案者的本意仅是要把prestate的值保存在上升沿触发的触发器中,而dut的值只是受state影响的组合逻辑,本来只必

8、要1个触发器即可,而上述模子综合后的网表会天生17个触发器,白费了资源,优化后的模子如下所示:alays(psedgelk)/推导出触发器beginase(state)0:prestate=1;1:prestate=0;endaseendalays(state)/组合逻辑beginase(state)0:dut=16h56;1:dut=16h29;endaseendendend上述模子形貌了关键信号e的分步提取要领,改写后的形貌都与原alays块逻辑等效。5别的优化本领5.1引用工艺库中预界说的宏布局方案者可以按照必要利用模块实例化语句来实现预界说成效块,就似乎对待元件那样,在模子中对其举行实

9、例化,然后再综合此实例模子。比方,要创立一个加法器,按照面积束缚,可以调用一个面积高效的行波加法器,而按照延时束缚,可以调用一个快速但面积较大的先行布局加法器。5.2利用小型方案实行研究表白逻辑电路范围在2000门至5000门时逻辑优化器的优化结果最正确,因此,方案时应只管构造成多个模块或多个alays语句段。综合历程的运行时间重要用于逻辑优化,它与方案范围呈指数干系,因此将各个子成效块的范围保持在可处置惩罚的方案范畴内很关键。5.3流传常量利用常量流传技能可以增长电路模子修改的机动性和可移植性。假设有一个确定意义的常量而且在模子中的多处地方都引用到,那么可以将该常量值界说为一个常量标记,然后直接引用该常量标记即可,如下所示:paraeterunt=16;p=unt*2;fr(i=0;iunt-1;i+)此中,unt表现的是循环次数,按照必要可以在语句“paraeterunt=16;中修改其值。由于它是一个常量,在综适时不会为表达式“unt*2和“unt-1天生任何硬件,而是在编译时直接盘算出表达式的值并将其赋给变量。6竣事语一样平常环境下,综合东西会主动对verilg模子举行优化,但假设方案者在电路方案时直接就编写出布局优化的电路模子,就会大大淘汰综合东西的运行时间,乃至偶然间综合东西无法优化的布局颠末手工调解后实现了优化的目的。因此

温馨提示

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

评论

0/150

提交评论