1.2 亚稳态发生场合 只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。 2.2 复位电路的亚稳态 2.2.1 异步复位电路 在复位电路设计中,复位信号基本都是异步的,常用异步复位电路Verilog描述如下: always @(posedge clk or 图3.3 异步复位时序 2.2.2 同步复位电路的亚稳态 在复位电路中,由于复位信号是异步的,因此,有些设计采用同步复位电路进行复位,并且绝大多数资料对于同步复位电路都认为不会发生亚稳态,其实不然 ,同步电路也会发生亚稳态,只是几率小于异步复位电路。 图3.5 同步复位电路时序图 2.3 亚稳态产生概率以及串扰概率 在实际的FPGA电路设计中,常常人们想的是怎么减少亚稳态对系统的影响,很少有人考虑怎么才能减少亚稳态发生几率,以及亚稳态串扰的概率问题
本次学习系列学习时间为“100”天,7月5日线下开班,欢迎想要学习的朋友和我们一起奋战 2400 小时,请相信专业的力量。 https://www.bilibili.com/video/BV1xC4y1H7QM?p=10 ? 可以想象,亚稳态走向稳态是必然趋势,可是需要一定的时间,如果在这一段时间内,被其他电路所引用,那么就会造成亚稳态的传播,进而导致整个电路的瘫痪(因为整个电路都会变成非高非低的信号在运行)。 在上述叙述中,我们只是提高了得到稳态的几率,但是还是有亚稳态传播的几率。 在实际电路中,一般同步寄存器链会有两级甚至多级。那么多级的同步寄存器链会有什么作用呢? 再多级的寄存器,也无法避免亚稳态,只是级数越多,最后一级输出亚稳态的几率将会越低。 在实际电路中,一般采用两级或者三级即可。 ? - End -
? ? ? ? ? ? ? ? ?
亚稳态: 亚稳态是由于违背了触发器的建立时间和保持时间而产生的; 同步系统中输入信号总是满足触发器的时序要求,所以不会发生亚稳态; 异步设计中,由于数据和时钟的关系不是固定的,因此会出现违反建立时间和保持时间的现象 组合延迟使得触发器的数据输入在亚稳态窗口内发生变化; 避免亚稳态措施: 1. 使用同步器(多级同步器、时钟倍频电路的多级同步器) 3. 采用响应更快的触发器(缩短亚稳态窗口Tw,与工艺有关,受硬件制约) 4. 使用亚稳态硬化触发器(专为高带宽设计并减少为时钟域输入电路而优化的采样时间) 5. 使用级联触发器 6. 减少采样速率 7. 避免使用dV/dt低的输入信号 8. 采用握手进行交互 对解决亚稳态问题有效果的方法是 A 用反应更快速的DFF B 改善时钟质量, 用边沿变化快速的时钟信号 C 降低时钟频率 D 引入同步机制, 如加两级触发器 解析: 根据以上可知,这四个选项都对解决亚稳态问题有效果
2、亚稳态发生场合 只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。 在信号传输中产生亚稳态就会导致与其相连其他数字部件将其作出不同的判断,有的判断到“1”有的判断到“0”,有的也进入了亚稳态,数字部件就会逻辑混乱。在复位电路中产生亚稳态可能会导致复位失败。 2、复位电路的亚稳态 2.1、异步复位电路 在复位电路设计中,复位信号基本都是异步的,常用异步复位电路Verilog描述如下: always @(posedge clk or negedge rst_n 2.2、同步复位电路的亚稳态 在复位电路中,由于复位信号是异步的,因此,有些设计采用同步复位电路进行复位,并且绝大多数资料对于同步复位电路都认为不会发生亚稳态,其实不然,同步电路也会发生亚稳态,只是几率小于异步复位电路 3、亚稳态产生概率以及串扰概率 在实际的FPGA电路设计中,常常人们想的是怎么减少亚稳态对系统的影响,很少有人考虑怎么才能减少亚稳态发生几率,以及亚稳态串扰的概率问题。
2、亚稳态发生场合 只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。 在信号传输中产生亚稳态就会导致与其相连其他数字部件将其作出不同的判断,有的判断到“1”有的判断到“0”,有的也进入了亚稳态,数字部件就会逻辑混乱。在复位电路中产生亚稳态可能会导致复位失败。 2、复位电路的亚稳态 2.1、异步复位电路 在复位电路设计中,复位信号基本都是异步的,常用异步复位电路Verilog描述如下: always @(posedge clk or negedge rst_n 2.2、同步复位电路的亚稳态 在复位电路中,由于复位信号是异步的,因此,有些设计采用同步复位电路进行复位,并且绝大多数资料对于同步复位电路都认为不会发生亚稳态,其实不然,同步电路也会发生亚稳态,只是几率小于异步复位电路 3、亚稳态产生概率以及串扰概率 在实际的FPGA电路设计中,常常人们想的是怎么减少亚稳态对系统的影响,很少有人考虑怎么才能减少亚稳态发生几率,以及亚稳态串扰的概率问题。
同步时钟域存在亚稳态吗 某网站上有人提问,同步时钟域是否会存在亚稳态的问题? 答案是肯定的,同步时钟域同样可能存在亚稳态,关于具体原因,我们从本质上进行初步分析。 1.什么是亚稳态? 在数字电路中,每一位数据不是1就是0。当然对于电路来说,并非1就是1V,0就是0V,对于不同的器件它们都有不同的对应区间。 同步时钟域下的亚稳态小栗子1-异步复位 在数字电路中,常常采用的DFF是异步复位同步释放的电路,这样的电路和同步复位电路之间的区别在此也不再多讲。 如下图所示电路 如果两个DFF在连接的是同一个clk,那么这段电路就是同步时钟域下的电路。 同步时钟域下的亚稳态小栗子2-可变延迟链 电路中存在延迟链,特别是可编程的延迟链时,是很容易发生亚稳态问题的,如下图所示。 这种电路在进行STA分析的时候,一般会采取两种方式。
亚稳态何时会导致设计失败? 当你使用流水线的方式设计电路时,在高时钟频率下满足时序的机会会更大。 建立和保持时间是什么? 上面也说了,如果设计放到FPGA中(ASIC一致),违反了建立时间或保持时间,则输出会处于亚稳态!那亚稳态是什么呢?如下图: ? 亚稳态示意图 如上图所示, 红色区域代表tsu或Setup Time。 上面所说的是建立时间不足导致的亚稳态,其实导致亚稳态还有可能是保持时间不足! 亚稳态何时会导致设计失败? ---- 参考资料 参考资料1[4] 参考资料2[5] 参考资料3[6] 参考资料4[7] 参考资料5[8] 参考资料6[9] 参考资料7[10] 参考资料8[11] 参考资料9[12] ---- 参考资料
在数字电路中,高电平和低电平是两个稳定的电平值,能够一直维持不变化。如果不满足建立或者保持时间的话,输出的电平值不高也不低,但是此电平不稳定,称为亚稳态(类似于健康和亚健康)。 可以想象,亚稳态走向稳态是必然趋势,可是需要一定的时间,如果在这一段时间内,被其他电路所引用,那么就会造成亚稳态的传播,进而导致整个电路的瘫痪(因为整个电路都会变成非高非低的信号在运行)。 只有最后一级寄存器可以给其他的电路使用。 对于第一点和第二点,不再解释。下面解释一下第三点。 D3信号为clk2时钟域的异步信号,那么D4信号就有可能出现亚稳态。 在上述叙述中,我们只是提高了得到稳态的几率,但是还是有亚稳态传播的几率。 在实际电路中,一般同步寄存器链会有两级甚至多级。那么多级的同步寄存器链会有什么作用呢? 再多级的寄存器,也无法避免亚稳态,只是级数越多,最后一级输出亚稳态的几率将会越低。 在实际电路中,一般采用两级或者三级即可。
这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。 6.什么是亚稳态?为什么两级触发器可以防止亚稳态传播? 这也是一个异步电路同步化的问题。亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。 两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间 所以,这样的同步电路对于从较慢的时钟域来的异步信号进入较快的时钟域比较有效,对于进入一个较慢的时钟域,则没有作用 。 7.对于多位的异步信号如何进行同步? 24.如何防止亚稳态? 亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。
[342] 什么是亚稳态?亚稳态是如何产生的?它有什么影响? 亚稳态是一种电路状态,在电路正常工作所需的时间内,电路无法稳定在的“ 0”或“ 1”逻辑电平的状态。通常在建立时间和保持时间违例时发生。 对于跨时钟域时可能出现的亚稳态,还可以使用包括握手机制、异步FIFO等方法。对于同步电路中,要进行合理的设计与设计约束,避免建立时间和保持时间违例。 [344] 同步器的构成是怎样的? 以下是一个同步器电路的例子。这是一个两个触发器同步器,第一个触发器等待一个时钟周期,使输入端的亚稳态稳定下来/逐渐消失,然后第二个触发器在输出端提供稳定的信号。 ? 值得注意的是,在信号输入第二级时,第一触发器的输出仍然可能不稳定(并导致第二级输出信号变为亚稳态)。在这种情况下,我们可以使用三个触发器同步器电路。 但是,通常两个触发器同步器电路足以消除亚稳态,使用三个触发器的情况比较少。 [345] 什么是时钟门控? 时钟门控是一种低功耗技术,通过关闭了设计中某些部分的时钟达到降低功耗的目的。
这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。 6:什么是亚稳态?为什么两级触发器可以防止亚稳态传播? 这也是一个异步电路同步化的问题。亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。 两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间 所以,这样的同步电路对于从较慢的时钟域来的异步信号进入较快的时钟域比较有效,对于进入一个较慢的时钟域,则没有作用 。 7:对于多位的异步信号如何进行同步? 24:如何防止亚稳态? 亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。
作者提出了上图中双采样的比较电路,可通过调整Rx_clk和Rx_clkd中间的相位差Wi,分成了五种情况来说明是否出现了亚稳态的情况。进而对如何控制亚稳态的出现进行评估和分析。 降低电路中出现亚稳态出现的概率,就相当于是增大TTM的值。 为了增大TTM的值,可以考虑采样时钟上升沿与被采样数据翻转沿的相位偏差,根据这个偏差可以将电路出现亚稳态的概率分类为Class-A和Class-B,还得到一个这两种状态下相位偏差的阈值。 因此,解决办法就是在同步器电路中添加移相器。始终保证采样时钟上升沿与被采样数据翻转沿的相位偏差处在Class-A的状态。 从而降低了电路出现亚稳态的风险。 把MEDAC同步器单元应用于异步FIFO中。 再把该异步FIFO应用于一款四个Router的NOC芯片中。
滤波最常用的3种二阶有源低通滤波电路为 巴特沃兹,单调下降,曲线平坦最平滑; 巴特沃兹低通滤波中 用的最多的是 赛伦凯乐电路,即仿真的该电路。 当两级RC电路的电阻、电容值相等时,叫赛伦凯电路,在二阶有源电路中引入一个负反馈,目的是使输出电压在高频率段迅速下降。 但在实际使用中,为了保护恒流源电路,一般会在输出端串一只二极管和一只电阻,这样做的好处第一是防止外界的干扰会进入恒流源电路,导致恒流源电路的损坏,二是可以防止外界负载短路时,不至于对恒流源电路造成损坏。 4、整流电路中的应用 整流电路 上述电路是一个整流电路,将输入的一定频率的脉冲整流成固定的电平电压,再用此电压控制4-20mA电流的输出电流。该电路功能类似一些DAC功能的接口。 7、单电源的应用 在运放的实际使用,我们一般为了保持运放的频率特性,一般都采用双电源供电,但有的时候在实际使用,我们只有单电源的情况,也能实现运放的正常工作。
如果规避亚稳态? ---- 数字电路是个1,0分明的世界,除此之外的状态都不是稳定状态,被称为亚稳态,亚稳态会导致电路功能失效,本来期待一个1结果来了一个0,功能失效,只能姐妹六九天长地久了。 同步电路通过setup 跟hold 来规避亚稳态。 但是对于异步电路而言,因为时钟相位不固定,无法保证来的一定是0或1,所以无法用静态时序分析的办法来规避亚稳态,办法总比问题多,聪明的工程师们拍着地中海造出了同步电路,虽然不能彻底规避亚稳态,但是只要使其发生的概率逼近于无限小 在数字电路中用MTBF 来衡量亚稳态造成故障的风险,可能每家公司用于计算MTBF 的公式都不同,下面是网上找到的两个,看上去比较科学,根据MTBF 可以计算出在故障率可接受的范围内同步器所需要的寄存器级数 握手同步电路:如下图所示,是一个典型的握手同步电路,握手同步电路通过请求信号跟应答信号进行数据交流,当有数据需要传输时,源时钟域发出请求信号,同时发出数据,目标时钟域收到请求信号后将数据锁存,同时返回应答信号
题目:什么是亚稳态,产生的原因,如何消除? 亚稳态:是指触发器无法在某个规定时间段内达到一个确定的状态。 原因:由于触发器的Tsu和Th不满足,当触发器进入亚稳态,使得无法预测该单元的输出,这种不稳定是会沿信号通道的各个触发器级联传播。 消除:两级或多级寄存器同步。 理论上亚稳态不能完全消除,只能降低,一般采用两级触发器同步就可以大大降低亚稳态发生的概率,再加多级触发器改善不大。 ? ? 异步逻辑是各时钟之间没有固定的因果关系 同步电路和异步电路区别 同步电路有统一的时钟源,经过PLL分频后的时钟驱动的模块,因为是一个统一的时钟源驱动,所以还是同步电路。异步电路没有统一的时钟源。 题目:谈谈对Retiming技术的理解 Retiming就是重新调整时序,例如电路中遇到复杂的组合逻辑,延迟过大,电路时序不满足,这个时候采用流水线技术,在组合逻辑中插入寄存器加流水线,进行操作,面积换速度思想
1.同步电路设计 2.全异步电路设计 3.异步信号与同步电路交互的问题及其解决方法 4.SoC设计中的时钟规划策略 1.同步电路设计 同步电路,即电路中的所有受时钟控制的单元,如触发器( 同步电路的时序收敛 触发器的建立时间和保持时间 同步电路设计的优点 在同步设计中,EDA工具可以保证电路系统的时序收敛,有效避免了电路设计中竞争冒险现象 由于触发器只有在时钟边缘才改变取值,很大限度地减少了整个电路受毛刺和噪声影响的可能 异步电路设计的缺点 设计复杂 缺少相应的EDA工具的支持 在大规模集成电路设计中应避免采用异步电路设计 3.异步信号与同步电路交互的问题及其解决方法 3.1亚稳态现象 亚稳态示意图 亚稳态信号的传播 亚稳态问题的解决及其RTL实现 亚稳态现象的解决方法 module synchronizer ( bclk, //目的时钟, 而因为读/写指针属于不同的时钟域,两者显然不能直接连到比较器的两端来产生空信号,否则会造成读FIFO的目的时钟域的电路碰到亚稳态现象.
本期题目 异步复位同步释放怎么做;请画图和写代码解释; 奇数分频;偶数分频; 小数分频; 上期答案 【003】数字IC笔面试常见题 同步电路的意思就是来自同一个时钟,宽松的定义是来自同一个时钟源的不同时钟 当不是来自同一个时钟源时,只要周期有倍数关系并且相互之间的相位关系是固定的就可以算是同步电路。 亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。 所以可以通过选择更快的触发器,来减少亚稳态发生的概率。 亚稳态的消除办法: 使用同步器;使用同步器可以减少采样异步信号导致的亚稳态。 在满足要求的情况下,降低时钟频率。 Clifford论文系列--多异步时钟设计的综合及脚本技术(1) 跨时钟域电路设计1--单比特信号传输 总的来说,同步复位的优点大概有3条: a、有利于仿真器的仿真。 b、可以使所设计的系统成为100%的同步时序电路,这便大大有利于时序分析,而且综合出来的fmax一般较高。
数字IC经典电路设计 经典电路设计是数字IC设计里基础中的基础,盖大房子的第一部是打造结实可靠的地基,每一篇笔者都会分门别类给出设计原理、设计方法、verilog代码、Testbench、仿真波形。 ②降低亚稳态往后级传输的概率:如果输入信号相对 clk时钟信号属于不稳定信号,则延迟输出信号相对 clk时钟信号属于相对稳定信号,从而有效地降低了亚稳态往后级传输的概率。 上文给出的电路似乎很简单地实现了边沿检测的功能,但是仔细分析就可以发现这种方法存在一个潜在的风险:当待测信号是一个异步信号时,输出可能是亚稳态。 例如,信号的变化刚好发生在clk时钟信号的建立时间和保持时间之内,那么第一级寄存器的输出就会进入亚稳态,从而使得整个电路的输出进入亚稳态,进而影响下一级电路的正常工作,甚至导致整个系统崩溃! 答案是增加寄存器的数目来减小亚稳态的发生概率。例如,增加多级寄存器可以几乎消除亚稳态带来的影响(亚稳态还是存在不过概率极小)。
一.单选题 1.关于跨时钟域电路的设计,以下说法正确的是: A: 信号经两级D触发器同步后即可进行跨时钟域传递 B: 跨时钟域电路存在亚稳态风险,最好避免使用 C: 跨时钟域电路中一定存在亚稳态 D: 采用单一时钟的电路也可能产生亚稳态 答案:B 或 D(答案暂不确定) 解析: 4 种方法跨时钟域处理方法 (1)打两拍,两级触发器同步——单bit数据跨时钟域处理,适用于慢时钟域数据到快时钟域; (2) B:亚稳态出现场景:异步信号检测、跨时钟域信号传输以及复位电路,最好避免使用,但多数情况下无法避免; C:概率问题,可能出现,并非一定。 D:只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。 7. 一批IC样品在测试中发现有setup或者hold时序问题 现取A B.