VHDL在型号应用中的探讨.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国空间科学学会空间机电与空间光学专业委员会2008年学术年会 VHDL在型号应用中的探讨 袁 斌 中国科学院空间科学与用用研究中心探测室100190 摘要:本文讨论了VHDL语言在型号应用中易被忽略的方面,并探讨了一些应该被注意的优化和设计技巧。 关t词:VHDL优化 综合 中圈分类号:TP332.1文献标识码:A 逻辑器件内部的资源有限和运行速度不高,对 引 言 VHDL的编程的技巧和对硬件的理解要求更高。 随着集成电路技术和EDA技术的不断发 2提高综合效率 展,可编程逻辑器件的发展取得了长足的进步,通 过硬件描述语言可以在一定程度上把硬件设计 1 了解不可综合的情况: “软件化”。常用的硬件描述语言有VHDL和 FOR 比如“WAlT 10ns;AFTER10ns;”表 Verilog等。VHDL VeryHighSpeedIntegrated 示在执行某些操作以前要等待10ns时间,这一操 CircuitHardware DescriptionLanguage 是一种 作在仿真中可以实现,但在各个综合器中是不支 面向设计、多层次、多领域且得到一致认同的标准 持的。所以如果在某些时序操作中采用这些语句 硬件描述语言,它已为IEEE标准化,是集行为描无法达成预期效果。另外,在信号或变量的声明 述、RTL方式描述、门级描述功能为一体的语言。 中尽量不要赋初值。因为大多数的综合工具将忽 由于其在语法和风格上类似于现代高级汇编语 略赋初值的操作,所以在使用确定数值时应尽量 言,具有良好的可读性,描述能力强,设计方法灵 使用常量。 活,易于修改,又具有可移植性,可重复利用他人 再者,在VHDL实现的数学运算中慎用除 的IP模块 具有知识产权的功能模块 等诸多优法。现在的多数综合器是不支持除法的,但如 势而成为EDA设计方法的首选。 MAX+PLUS II可以支持除数为2的幂的除法 VHDL设计是行为级设计,所以很容易造成运算。其道理很简单,除法计算是一个逐次逼近 硬件实现和电路结构的脱节。设计者主要是根据 结果的过程,这种逼近在VHDL语言的硬件实现 VHDL的语法规则,对系统目标的逻辑行为进行中是无法预先生成固定电路结构,其次数和时间 描述,然后通过综合工具进行电路结构的综合、编 延迟不固定。而除数不是2的幂又不能通过简单 译和优化,并通过仿真工具进行逻辑功能仿真和 的右移来完成运算,所以综合器不支持。 系统时延的仿真。由于每个人的编程习惯和对电 2 减少综合中产生的“锁存器” LATCH : 路实现理解深度的不同,往往对同样的系统功能, LATCH结构通常都由大量的触发器组成, 描述方法是多样的,而综合出的电路结构相差更 不仅使电路更复杂,工作速度降低,而且由于时序 远。不仅综合后的资源占用情况不同,而且延时 配合的原因还会导致不可预料的结果。最常见的 性能差别也很大,有些综合后的“多余”电路还是 产生LATCH的原因是约束不完全。因此要注 会造成不可预料的问题。因此,对VHDL设计中意IF…ELSE…语句的使用。在以下的两个例 的优化是十分有必要的。特别是在航天型号的应 子中,例2只比例1多了一个“else” 将约束补充 用中,由于运行环境恶劣,某些高可靠性的可编程 完成了 但从每个例子后的综合结果可以看出例 袁斌:VHDL在型号应用中的探讨 1比例2多生成了3个逻辑元件,统计数据表明 if a b then 后者多占用了2个逻辑单元,试想如果实现复杂 output 0 的条件判断则可能浪费更多的片内资源。 elsif a b then l 例1: output ~1 process a,b endif: end begin process; b a 蕊。 OU中U■强tn ~L—一.7 -一 萄I 例2: output ’1’; process a,b else begin output ’1’: end if a b then if; end output 一,o’; process; elsif a b then processO-1 a b output 要注意CASE和IF是有区别的,IF更突出 “优先级”的概念,就是说在第一个判断没有完成 3信号和变量 的时候第二个条件是不能被判断的,而建立优先 级结构会消耗大量的组合逻辑,因此更多的时候, 通常的VHDL教材中都会说:“变量是一个 复杂的逻辑分支判断更推荐使用CASE语句。抽象的值,它不与任何实际电路连线对应,因此它 CASE语句中个各个判断是平行的,没有优先级。 的赋值是立刻生效的。”这句话有两个问题。 当然,如果对快速性要求很高时还是要使用IF语 首先,变量是不与任何实际

文档评论(0)

hnlhfdc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档