- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(VHDL设计中电路优化问题探讨
VHDL设计中电路优化问题探讨
作者:泰山学院 王春玲
近年来,随着集成电路技术和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位寄存器的结构。虽然上述例程都能实现相同的译
您可能关注的文档
最近下载
- Photoshop2020平面设计实例教程全套完整教学课件.pptx
- 2025年重庆市中考语文试卷真题(含标准答案) 原卷.pdf
- 30题保险理赔岗位常见面试问题含HR问题考察点及参考回答.docx VIP
- 2023年成人高考高起专《数学》(理科)真题及答案.pdf VIP
- 2025年中国红十字会救护员培训理论考试试题及答案.docx VIP
- 苏教版九年级数学上册《一元二次方程的解法(2)》课件.ppt VIP
- 航空煤油安全技术说明书.pdf VIP
- 四年级上册数学人教版预习卡.pdf VIP
- 第一单元 传统工艺制作---劳动预备 课件(共两课时40张PPT).pptx VIP
- 2025年秋人教版英语八年级上册Unit 1 Happy Holiday 教案教学设计.docx VIP
文档评论(0)