- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于verilog hdl的模型优化
基于Verilog HDL的模型优化摘? 要? 本文基于模型优化的必要性,对使用Verilog HDL建模时可以运用的优化手段作了详细的阐述,对设计者具有一定的指导意义。
??? 关键词? 模型优化;综合;表达式
?
1? 引言
??? 每个设计者在进行Verilog建模时都会形成自己的设计风格,同一个电路设计,用Verilog描述可以写出许多逻辑上等价的模型,而大多数设计者考虑的主要是代码书写上的方便和功能上是否正确,对设计的模型是否最优化结构却考虑甚少,这样不仅加重了逻辑综合的负担,影响综合效率,而且很可能会导致设计出的芯片未达到最优的面积和速度。因此,在Verilog建模时,很有必要进行模型优化。
2? 模型优化概述
??? 影响一个芯片性能的指标主要有两个:面积和速度。模型优化就是通过一定的手段对模型的结构进行调整、组合和精简,从而使设计出的芯片达到更小的面积和更快的速度。
??? 综合所生成的逻辑易受模型描述方式的影响。把语句从一个位置移到另一个位置,或者拆分表达式都会对所生成的逻辑产生重大影响,这可能会造成综合出的逻辑门数有所增减,也可能改变其定时特性。因此,采取一定的手段可以实现对逻辑的优化。但是由于优化终点包含的两个方面面积和速度是互相矛盾的,优化一个方面必定影响另一个方面,而无法实现面积和速度都达到最优,这就需要设计者对两者进行权衡,看设计偏重于哪个方面,而采取不同的优化起点。
下面分别从面积和速度两个方面对模型优化的手段进行介绍。
3? 面积的优化
3.1? 提取公共子表达式
??? 如果条件语句的互斥分支中有公共子表达式,可以提取该公共子表达式。如下面的模型可以提取公共子表达式:
???? if(enable)
???? ???? P = A(B+C);
???? else
???????? Q = (B+C)|D;
??? 此模型中条件语句的互斥分支中都计算了表达式B+C,因此,应将该表达式提取出来放在条件语句之前进行赋值,新模型如下所示:
???? Tmp = B+C;??????????? //引入一个临时变量
???? if(enable)
???????? P = ATmp;
???? else
???????? Q = Tmp |D;
??? 这样,综合工具就会综合出一个加法器,而原来的模型则会综合出两个加法器。引申到一般情况,若在逻辑中找到有公共子表达式,就可以将该公共子表达式赋值给一个临时变量,然后用该临时变量来表示该公共子表达式,这样就可以减少综合出的ALU单元的数量,以实现面积的优化。
3.2? 代码移位
??? 如果在循环语句内某个表达式的值在每次循环中都不变化,可以将该表达式移至循环之外。如下面的模型可以进行代码移位:
P = …
…
for(i=1;i=5;i++)
begin
???? …
???? Q = P+5; //假设循环中未对P赋新值
???? …
end
??? 赋值语句“Q = P+5;”右端的表达式不随循环变量而变,因此,应将该表达式移至循环之外,新模型如下所示:
P = …
…
Tmp = P+5;??????????? //引入一个临时变量
for(i=1;i=5;i++)
begin
???? …
???? Q = Tmp;
???? …
end
??? 这样,综合工具对“P+5”只会综合出一个加法器,而原来的模型会产生5个加法器,每循环一次就产生一个,造成了代码冗余。优化后的新模型不仅减少了综合出的ALU单元的数量,而且提高了仿真效率。
3.3? 资源共享
??? 资源共享是指在互斥条件下共享算术逻辑单元(ALU)的过程。如下面的模型:
???? if(num5)
???????? P = A+B;
???? else
???????? P = A-C;
??? 如果不采用资源分配,算符“+”和“-”就会被综合成两个单独的ALU。而如果采用了资源分配,仅需一个ALU就可以实现“+”和“-”这两种运算。这是因为这两种算符总是互斥地使用。此外还生成了一个多路选择器,用来从B和C中选择合适的量接到ALU的第二个输入端上。实际上,资源分配就是共享算符的过程。共享算符有以下几种可能的情况:
??? (1)算符相同,运算量相同。如:A+B和A+B,这种情况同“提取公共子表达式”,显然必须共享。
??? (2)算符相同,有一个运算量不同。如:A+B和A+C,这时需引入一个多路选择器,要进行面积与速度之间的权衡。
??? (3)算符相同,运算量都不同。如:A+B和C+D,这时需引入两个多路选择器,要进行面积与速度之间的权衡。
??? (4)算符不同,运算量相同。如:A+B和A-B,可以将“+”和“—”合成一个ALU单元,要共享。
??? (5)算符不同,有一个运
您可能关注的文档
最近下载
- 方剂配伍理论智慧树知到课后章节答案2023年下浙江中医药大学.docx VIP
- 数控编程与仿真实训(第5版)——电子全套PPT教学课件.ppt
- 沪教牛津版英语4A-M3U1-In-our-school:animal-school公开课课件.pptx VIP
- 急性荨麻疹-洞察与解读.pptx
- 融资分红合同协议.docx VIP
- 草莓状血管瘤血管瘤-洞察与解读.pptx
- 皮肤念珠菌病念珠菌病-洞察与解读.pptx
- 荨麻疹型药疹药疹-洞察与解读.pptx
- DB5305T 78-2022保山市牛油果园水肥一体化技术规程.docx VIP
- DB53_T 1089-2022鳄梨品种'哈斯'生产技术规程.docx VIP
文档评论(0)