数字电路设计verilog进阶篇 FPGA CPLD数字电路设计经验分享.pdf

数字电路设计verilog进阶篇 FPGA CPLD数字电路设计经验分享.pdf

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字电路设计verilog进阶篇 FPGA CPLD数字电路设计经验分享.pdf

FPGA/CPLD数字电路设计经验分享 一位大虾的经验总结,基础的。 FPGA/CPLD数字电路设计经验分享 摘要:在数字电路的设计中,时序设计是一个系统性能的主要标志,在高层次设 计方法中,对时序控制的抽象度也相应提高,因此在设计中较难把握,但在理解 RTL电路时序模型的基础上,采用合理的设计方法在设计复杂数字系统是行之有 效的,通过许多设计实例证明采用这种方式可以使电路的后仿真通过率大大提 高,并且系统的工作频率可以达到一个较高水平。 关键词:FPGA 数字电路 时序 时延路径 建立时间 保持时间 1 数字电路设计中的几个基本概念: 1.1 建立时间和保持时间: 建立时间(setup time )是指在触发器的时钟信号上升沿到来以前,数据稳 定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器; 保持时间(hold time )是指在触发器的时钟信号上升沿到来以后,数据稳定不 变的时间, 如果保持时间不够,数据同样不能被打入触发器。 如图 1 。 数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时 间和保持时间的值可以为零。CPLD/FPGA 开发软件可以自动计算两个相关输入 的建立和保持时间。 注:在考虑建立时间时,应该考虑时钟树向后偏斜的情况,在考虑保持时间时应 该考虑时钟树向前偏斜的情况。在进行后仿真时,最大延迟用来检查建立时间, 最小延时用来检查保持时间。 建立时间的约束和时钟周期有关,当系统在高频时钟下无法工作时,降低时 钟频率就可以使系统完成工作。保持时间是一个和时钟周期无关的参数,如果设 计不合理,使得布局布线工具无法布出高质量的时钟树,那么无论如何调整时钟 频率也无法达到要求,只有对所设计系统作较大改动才有可能正常工作,导致设 计效率大大降低。因此合理的设计系统的时序是提高设计质量的关键。在可编程 器件中,时钟树的偏斜几乎可以不考虑,因此保持时间通常都是满足的。 1.2 FPGA 中的竞争和冒险现象 信号在 FPGA 器件内部通过连线和逻辑单元时,都有一定的延时。延时的大 小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、 温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两 方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出 有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信 号称为毛刺。如果一个组合逻辑电路中有毛刺出现,就说明该电路存在 冒险 。(与分立元件不同,由于 PLD 内部不存在寄生电容电感,这些毛刺将被完整 的保留并向下一级传递,因此毛刺现象在 PLD、FPGA 设计中尤为突出)图 2 是 一个逻辑冒险的例子,从图 3 的仿真波形可以看出,A、B、C、D四个输入信 号经过布线延时以后,高低电平变换不是同时发生的,这导致输出信号OUT出 现了毛刺。(我们无法保证所有连线的长度一致,所以即使四个输入信号在输入 端同时变化,但经过 PLD 内部的走线,到达或门的时间也是不一样的,毛刺必 然产生)。可以概括的讲,只要输入信号同时变化,(经过内部走线)组合逻辑必 将产生毛刺。 将它们的输出直接连接到时钟输入端、清零或置位端口的设计方 法是错误的,这可能会导致严重的后果。 所以我们必须检查设计中所有时钟、 清零和置位等对毛刺敏感的输入端口,确保输入不会含有任何毛刺。 图3 图 2 所示电路的仿真波形 冒险往往会影响到逻辑电路的稳定性。时钟端口、清零和置位端口对毛刺信 号十分敏感,任何一点毛刺都可能会使系统出错,因此判断逻辑电路中是否存在 冒险以及如何避免冒险是设计人员必须要考虑的问题。 如何处理毛刺 我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。例如, 在数字电路设计中,常常采用格雷码计数器取代普通的二进制计数器,这是因为 格雷码计数器的输出每次只有一位跳变,消除了竞争冒险的发生条件,避免了毛 刺的产生。 毛刺并不是对所有的输入都有危害,例如 D 触发器的 D 输入端,只要毛刺 不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危 害,我们可以说 D 触发器的 D 输入端对毛刺不敏感。 根据这个特性,我们应当 在系统中尽可能采用同步电路,这是因为同步电路信号的变化都发生在时钟沿, 只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间,就不会对系统 造成危害。 (由于毛刺很短,多为几纳秒,基本上都不可能满足数

文档评论(0)

ddwg + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档