硬件架构的艺术汇编.docx

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

亚稳态的世界 当信号在一个时钟域里变化,在另一个时钟域里采样时,就会导致输出变成亚稳态。这就是所谓的同步失败。 亚稳态窗口具有特定的时间长度,在这段时间内输入信号和时钟都应该保持不变,如果他们发生变化,输出就可能变成亚稳态 窗口越大进入亚稳态的概率就变大 1.4计算MTBF 当系统的故障率恒定时,MTBF(mean/average time between failure,平均无故障时间)就是故障率的倒数。 对于一个具有给定时钟频率和在该时钟周期内具有均匀概率密度的异步数据信号边沿的单级同步器,亚稳态事件的发生率可以用建立、保持事件窗口和时钟周期的比值乘以信号触发频率来计算 1故障率=MTBF=e(trτ)Wfcfd 1.5 避免亚稳态 下列条件中,信号可能违背是需要求: 1、输入信号是异步信号。 2、时钟偏移/摆动(上升/下降时间)高于荣限值。 3、信号在两个不同频率或者相同频率但是相位和偏移不同的时钟域下跨时钟域工作。 3、组合延迟使触发器的数据输入在亚稳态窗口内发生变化。 避免亚稳态的方法是使用同步器 避免亚稳态最常见的方法是在跨时钟域的信号上加上一个或多个同步触发器,这方法用一个完整的时钟周期来解决第一级同步触发器的亚稳态问题,但增加了观察同步输入的延时。 多级同步器的一个局限就是系统需要花费较长时间去响应一步输入。解决办法就是使用倍频时钟作为两个同步触发器的时钟输入 Altera的FPGA中具有这项技术称为时钟倍频技术 两种方法都不能保证同步器阻止亚稳态传播下去,他们仅仅减少了亚稳态发生的概率。 1.6亚稳态测试电路 每当触发器采样一个异步输入时,触发器输出都可能产生一个不可预测的延迟,虽然概率很低。这不仅会在输入违反建立、保持时间要求时发生,而且在触发器接收新的输入这一小段时序窗口内也会发生,在这些情况下,触发器都会进入亚稳态。 1.7同步器的类型 一个异步输入电路的MTBF和用于从亚稳态恢复的时间呈指数关系,用同步器构成的时间缓冲器可以帮组从亚稳态中恢复。 模式A是一个标准电路,当异步输入信号比时钟周期大得多时最有效 注意:即使异步输入在建立时间区间之外稳定,它任然需要由时钟驱动产生两个周期的延迟,否则FF1可能进入亚稳态 如果亚稳态在不到一个时钟内就解析了,FF2会有稳定输入,否则就需要更深层次的级联。 当输入异步信号的宽度小于时钟周期的情况,则使用模式B对于同步器的模式B,第一级触发器的输入D与Vcc相连同时时钟信号是异步输入信号,另外两个触发器直接由系统时钟控制。一个短脉冲让Q1变成高电平,这个高电平在经过两个时钟沿后从sync_out输出 总结: 当信号必须跨时钟域工作时,要采用同步器。 如果clk1clk2,在时钟域2里用同步器的模式A,否则就采用同步器的模式B。 建议: 采用同步器。 采用响应更快的触发器。 使用亚稳态触发器(转为高宽带设计并且减少时钟域输入电路而优化的采样时间)。 使用级联触发器(两个或多个)作为同步器。如果一个触发器的亚稳态失败率为P,那么N个亚稳态失败率为P的N次方。 减少采样速率。 避免使用dV/dt低的输入信号。 时钟和复位 2.2 同步器设计 经验表明对ASIC的时钟域控制最安全的方法就是同步设计。 2.2.1 避免使用行波计数器 应触发器来驱动其他触发器的始终输入端,一般会存在问题。由于第一个触发器时钟到q的延迟而使第二个触发器的时钟输入产生偏移,而且不能在每个时钟边沿都激活。 2.2.2 门控时钟 时钟线上的门控单元会导致时钟偏移,并会引入尖峰脉冲作用于触发器。在时钟线上存在多路复用器时,这个问题尤为严重。 2.2.3 双边沿和混合边沿时钟 两个触发器有两个反向的时钟信号控制,这会为使用同步复位和使用插入扫描链这样的测试方法带来麻烦,同时也会增加确定关键信号的路径的难度。 2.2.4 用触发器驱动另一个触发器的异步复位端 第二级触发器的输出信号不仅仅只受时钟边沿的影响,这违反了同步设计原理。 2.3 推荐的设计技术 在使用HDL代码进行设计时,理解综合工具是如何对不同的HDL编码风格和结果进行解释是很重要的。从硬件角度思考作为一种特别的设计风格(或相当于编码风格)很重要,这会影响到设计门数和时序性能。 2.3.1 避免在设计中出现组合环路 组合环路是数字设计中导致不稳定和不可靠的最常见的因素。在同步设计中,所有反馈回路都应该包含寄存器。组合环路建立了不含寄存器的直接反馈,这违背了同步设计原理。 在HDL语言中,当信号经过若干组合always块产生自身时,或者算术表达式左边的内容也出现在右边时,就会形成组合环路。组合环路对设计是一种冒险,在遇见组合环路时综合工具总是会报错,它是不可综合的。 为了移除组合环路,必须改变其中一个信号的生存方式,以消除信号对彼此的依赖性,解决

文档评论(0)

过各自的生活 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档