第7章 RTL设计原则及技巧.pptVIP

  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文档。上传文档
查看更多
第7章 RTL设计原则及技巧

在CPLD/FPGA中,图7-15是典型的脉冲产生电路方案之一——利用时序逻辑电路来实现。 图 7–15 正确的脉冲产生电路 7.4 时序逻辑设计 7.4.1 门控时钟 门控时钟,是为了减少功耗而对时钟采取的一种组合逻辑设计。通过屏蔽时钟信号而使相关的时钟所驱动的整个逻辑不再发生翻转,从而节省功耗。但是由于门控时钟电路不同于同步电路,当时钟通过 “门” 时有可能会产生毛刺,并污染时钟的斜率,增大时钟的抖动。因此在同步设计中尽量避免使用门控时钟。 7.4.2 异步计数器 异步计数器,也叫做行波计数器。它利用时钟驱动一组寄存器的第一个时钟管脚,然后利用第一个时钟的输出驱动第二个寄存器的时钟管脚,级联而下。它可以节省芯片的资源,但是不能很好地进行静态时延控制,从而带来许多的时序问题,因此不建议采用。 7.4.3 次级时钟的产生 最简单的方式就是通过组合逻辑来进行分频,但是容易产生毛刺,而毛刺的产生必然会引起系统的错误反映或者亚稳态的产生,为了防止毛刺的产生或者过滤毛刺,解决方案之一就是插入寄存器。 建议使用PLL/DLL来产生次级时钟,这样可以实现时钟约束,确保时钟的质量,目前所有的FPGA以及最新的高端CPLD里面都内置有PLL/DLL硬件模块,可以自由调用,但是传统的CPLD以及最新的低端CPLD里面没有PLL/DLL模块,因此时序约束要求严格的系统,不建议采用传统的或者最新的低端CPLD进行设计。 7.4.4 亚稳态 亚稳态,其基本原因还是建立时间和保持时间的违例,亚稳态大致有如下几种表现: Tco违例、 Voh/Vol 和斜率违例、振荡和小脉冲。 图 7–16 亚稳态现象和正常的波形比较 7.4.5 实例 7:Tco引起的亚稳态分析 图 7–17 Tco产生亚稳态模型图 如果三个寄存器都输出正确值,就要求Q1输出的值经过各个组合逻辑的延时后还能够满足U2、U3、U4的建立时间的要求 图 7–18 合适的Tco所产生的波形示意图 如果Tco过大,观察图7-19,可以发现X信号在整个组合逻辑和U1上花费的时间过多而造成建立时间不足,从而产生了亚稳态。 图 7–19 Tco过大引起的亚稳态示意图 更多的亚稳态的描述说明可以参考各个具体的文档,或者参考下面的链接。 AN219 from: /acrobat/applicatioI/Onnotes/AN219_1.pdf /items/0225-03.html /sc/psheets/sdya006/sdya006.pdf ? AN042 from: /literature/an/an042.pdf 7.5 代码风格 代码风格特别要注意如下几个方面。 代码的注释一定要简洁、明了,注释量要丰富。 代码模块设计要尽量避免在顶层文件中进行过度的具体功能描述,同时也要避免分层过多。顶层一般只是模块的例化和全局性信号的处理,这样有利于增量设计。模块的层次不要太深,推荐最好是三到四层左右。 代码需要紧扣CPLD/FPGA的硬件结构。 7.6 实例 8:信号消抖时的亚稳态及解决方案 最常见的有两种:一种是采用RC滤波电路来实现;另外一种就是采用CPLD/FPGA或者ASIC来进行编程滤波。 图 7–20 RC滤波电路示意图 图 7–21 开关按下时未滤波的开关信号 图 7–22 开关释放时未滤波的开关信号 RC滤波电路的实际原理就是采用延时的策略忽略开关按下和释放的瞬间,一直等到开关信号稳定的时候进行信号采用,这样就避免了毛刺的影响,但是需要特别关注的是毛刺产生时间的长短。 图 7–23 RC延时太短时RC电路输出的波形 图 7–24 RC延时正常时RC电路输出的波形 图 7–25 RC延时过大产生的亚稳态波形图 一旦RC参数设置不当RC滤波电路很容易产生亚稳态的情况;另外电阻和电容很容易受到外界环境的影响而改变RC延时特性,RC延时就会产生漂移,同样也可能产生亚稳态的情况。如果不太严重,电路工程师可以在RC滤波电路后再增加一级斯密特触发器进行二次滤波,输出的波形就会比较完善。 采用CPLD/FPGA对信号进行消抖,可以很好地解决RC滤波电路所出现的亚稳态问题。 基于CPLD/FPGA消抖设计的基本工作原理及相关的波形示意图——采用时钟信号对要被消抖的信号进行采样来实现。为了达到最好的采样效果,CPLD/FPGA采用2ms时钟作为采样时钟信号,通过状态移位来实现滤波。 具体设计请参考实例8 图 7–26 采用CPLD/FPGA进行信号滤波的波形图 7.7 本章小结 本章是对前面的几章的思考与总结。一段优秀

文档评论(0)

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

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

1亿VIP精品文档

相关文档