2.2 复位电路的亚稳态 2.2.1 异步复位电路 在复位电路设计中,复位信号基本都是异步的,常用异步复位电路Verilog描述如下: always @(posedge clk or 图3.3 异步复位时序 2.2.2 同步复位电路的亚稳态 在复位电路中,由于复位信号是异步的,因此,有些设计采用同步复位电路进行复位,并且绝大多数资料对于同步复位电路都认为不会发生亚稳态,其实不然 ,同步电路也会发生亚稳态,只是几率小于异步复位电路。 例如,为系统采用100M时钟对一个外部信号进行采集,采集时钟周期为10ns,那采集产生亚稳态的概率为:1ns/10ns = 10% 同理采用300M时钟对一个外部信号进行采集,那产生亚稳态的概率为:1ns 根据3.3.1小节的亚稳态产生概率,如果在100M时种下那第一级寄存器产生亚稳态的概率约为10%,随着系统采集频率升高,那产生亚稳态的概率也会随之上升。
2、亚稳态发生场合 只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。 2、复位电路的亚稳态 2.1、异步复位电路 在复位电路设计中,复位信号基本都是异步的,常用异步复位电路Verilog描述如下: always @(posedge clk or negedge rst_n 2.2、同步复位电路的亚稳态 在复位电路中,由于复位信号是异步的,因此,有些设计采用同步复位电路进行复位,并且绝大多数资料对于同步复位电路都认为不会发生亚稳态,其实不然,同步电路也会发生亚稳态,只是几率小于异步复位电路 例如,为系统采用100M时钟对一个外部信号进行采集,采集时钟周期为10ns,那采集产生亚稳态的概率为:1ns/10ns = 10% 同理采用300M时钟对一个外部信号进行采集,那产生亚稳态的概率为:1ns 根据上述介绍的亚稳态产生概率,如果在100M时种下那第一级寄存器产生亚稳态的概率约为10%,随着系统采集频率升高,那产生亚稳态的概率也会随之上升。
2、亚稳态发生场合 只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。 2、复位电路的亚稳态 2.1、异步复位电路 在复位电路设计中,复位信号基本都是异步的,常用异步复位电路Verilog描述如下: always @(posedge clk or negedge rst_n 2.2、同步复位电路的亚稳态 在复位电路中,由于复位信号是异步的,因此,有些设计采用同步复位电路进行复位,并且绝大多数资料对于同步复位电路都认为不会发生亚稳态,其实不然,同步电路也会发生亚稳态,只是几率小于异步复位电路 例如,为系统采用100M时钟对一个外部信号进行采集,采集时钟周期为10ns,那采集产生亚稳态的概率为:1ns/10ns = 10% 同理采用300M时钟对一个外部信号进行采集,那产生亚稳态的概率为:1ns 根据上述介绍的亚稳态产生概率,如果在100M时种下那第一级寄存器产生亚稳态的概率约为10%,随着系统采集频率升高,那产生亚稳态的概率也会随之上升。
p=10 ? 可以想象,亚稳态走向稳态是必然趋势,可是需要一定的时间,如果在这一段时间内,被其他电路所引用,那么就会造成亚稳态的传播,进而导致整个电路的瘫痪(因为整个电路都会变成非高非低的信号在运行)。 只有最后一级寄存器可以给其他的电路使用。 对于第一点和第二点,不再解释。下面解释一下第三点。 ? D3信号为clk2时钟域的异步信号,那么D4信号就有可能出现亚稳态。 在上述叙述中,我们只是提高了得到稳态的几率,但是还是有亚稳态传播的几率。 在实际电路中,一般同步寄存器链会有两级甚至多级。那么多级的同步寄存器链会有什么作用呢? 再多级的寄存器,也无法避免亚稳态,只是级数越多,最后一级输出亚稳态的几率将会越低。 在实际电路中,一般采用两级或者三级即可。 ? - End -
? ? ? ? ? ? ? ? ?
如果数字逻辑电路的频率达到或者超过45MHZ~50MHZ,而且工作在这个频率之上的电路已经占到了整个电子系统一定的份量(比如说1/3),通常就称为高频电路。 高频电路设计是一个非常复杂的设计过程,其布线对整个设计至关重要! 【第一招】多层板布线 高频电路往往集成度较高,布线密度大,采用多层板既是布线所必须,也是降低干扰的有效手段。 【第二招】高速电子器件管脚间的引线弯折越少越好 高频电路布线的引线最好采用全直线,需要转折,可用45度折线或者圆弧转折,这种要求在低频电路中仅仅用于提高铜箔的固着强度,而在高频电路中,满足这一要求却可以减少高频信号对外的发射和相互间的耦合 这就要求在进行高速PCB布线时,必须要遵守以下布线规则: USB布线规则:要求USB信号差分走线,线宽10mil,线距6mil,地线和信号线距6mil。 HDMI布线规则:要求HDMI信号差分走线,线宽10mil,线距6mil,每两组HDMI差分信号对的间距超过20mil。
亚稳态: 亚稳态是由于违背了触发器的建立时间和保持时间而产生的; 同步系统中输入信号总是满足触发器的时序要求,所以不会发生亚稳态; 异步设计中,由于数据和时钟的关系不是固定的,因此会出现违反建立时间和保持时间的现象 组合延迟使得触发器的数据输入在亚稳态窗口内发生变化; 避免亚稳态措施: 1. 使用同步器(多级同步器、时钟倍频电路的多级同步器) 3. 采用响应更快的触发器(缩短亚稳态窗口Tw,与工艺有关,受硬件制约) 4. 使用亚稳态硬化触发器(专为高带宽设计并减少为时钟域输入电路而优化的采样时间) 5. 使用级联触发器 6. 减少采样速率 7. 避免使用dV/dt低的输入信号 8. 对异步信号进行同步提取边沿 9.改善时钟质量,用边沿变化快速的时钟信号 10.降低系统时钟(不常见,因为高速率正确处理才是目的) 11. FIFO进行跨时钟处理 12. 异步复位,同步释放 13.
这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。 6.什么是亚稳态?为什么两级触发器可以防止亚稳态传播? 这也是一个异步电路同步化的问题。亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。 10.寄生效应在IC设计中怎样加以克服和利用? 所谓寄生效应就是那些溜进你的PCB并在电路中大施破坏、令人头痛、原因不明的小故障。它们就是渗入高速电路中隐藏的寄生电容和寄生电感。 对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理。 OC门电路必须加上拉电阻,以提高输出的高电平值。 24.如何防止亚稳态? 亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。
同步时钟域存在亚稳态吗 某网站上有人提问,同步时钟域是否会存在亚稳态的问题? 答案是肯定的,同步时钟域同样可能存在亚稳态,关于具体原因,我们从本质上进行初步分析。 1.什么是亚稳态? 在数字电路中,每一位数据不是1就是0。当然对于电路来说,并非1就是1V,0就是0V,对于不同的器件它们都有不同的对应区间。 同步时钟域下的亚稳态小栗子1-异步复位 在数字电路中,常常采用的DFF是异步复位同步释放的电路,这样的电路和同步复位电路之间的区别在此也不再多讲。 如下图所示电路 如果两个DFF在连接的是同一个clk,那么这段电路就是同步时钟域下的电路。 同步时钟域下的亚稳态小栗子2-可变延迟链 电路中存在延迟链,特别是可编程的延迟链时,是很容易发生亚稳态问题的,如下图所示。 这种电路在进行STA分析的时候,一般会采取两种方式。
数字IC经典电路设计 经典电路设计是数字IC设计里基础中的基础,盖大房子的第一部是打造结实可靠的地基,每一篇笔者都会分门别类给出设计原理、设计方法、verilog代码、Testbench、仿真波形。 initial begin clk = 0; rst_n = 1; din = 0; #5 rst_n = 0; #5 rst_n = 1; #10 上文给出的电路似乎很简单地实现了边沿检测的功能,但是仔细分析就可以发现这种方法存在一个潜在的风险:当待测信号是一个异步信号时,输出可能是亚稳态。 例如,信号的变化刚好发生在clk时钟信号的建立时间和保持时间之内,那么第一级寄存器的输出就会进入亚稳态,从而使得整个电路的输出进入亚稳态,进而影响下一级电路的正常工作,甚至导致整个系统崩溃! 答案是增加寄存器的数目来减小亚稳态的发生概率。例如,增加多级寄存器可以几乎消除亚稳态带来的影响(亚稳态还是存在不过概率极小)。
这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。 6:什么是亚稳态?为什么两级触发器可以防止亚稳态传播? 这也是一个异步电路同步化的问题。亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。 10:寄生效应在IC设计中怎样加以克服和利用(这是我的理解,原题好像是说,IC设计过 程中将寄生效应的怎样反馈影响设计师的设计方案)? c、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理。 OC门电路必须加上拉电阻,以提高输出的高电平值。 24:如何防止亚稳态? 亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。
在数字电路中,高电平和低电平是两个稳定的电平值,能够一直维持不变化。如果不满足建立或者保持时间的话,输出的电平值不高也不低,但是此电平不稳定,称为亚稳态(类似于健康和亚健康)。 可以想象,亚稳态走向稳态是必然趋势,可是需要一定的时间,如果在这一段时间内,被其他电路所引用,那么就会造成亚稳态的传播,进而导致整个电路的瘫痪(因为整个电路都会变成非高非低的信号在运行)。 只有最后一级寄存器可以给其他的电路使用。 对于第一点和第二点,不再解释。下面解释一下第三点。 D3信号为clk2时钟域的异步信号,那么D4信号就有可能出现亚稳态。 在上述叙述中,我们只是提高了得到稳态的几率,但是还是有亚稳态传播的几率。 在实际电路中,一般同步寄存器链会有两级甚至多级。那么多级的同步寄存器链会有什么作用呢? 再多级的寄存器,也无法避免亚稳态,只是级数越多,最后一级输出亚稳态的几率将会越低。 在实际电路中,一般采用两级或者三级即可。
[342] 什么是亚稳态?亚稳态是如何产生的?它有什么影响? 亚稳态是一种电路状态,在电路正常工作所需的时间内,电路无法稳定在的“ 0”或“ 1”逻辑电平的状态。通常在建立时间和保持时间违例时发生。 对于跨时钟域时可能出现的亚稳态,还可以使用包括握手机制、异步FIFO等方法。对于同步电路中,要进行合理的设计与设计约束,避免建立时间和保持时间违例。 [344] 同步器的构成是怎样的? 以下是一个同步器电路的例子。这是一个两个触发器同步器,第一个触发器等待一个时钟周期,使输入端的亚稳态稳定下来/逐渐消失,然后第二个触发器在输出端提供稳定的信号。 ? 值得注意的是,在信号输入第二级时,第一触发器的输出仍然可能不稳定(并导致第二级输出信号变为亚稳态)。在这种情况下,我们可以使用三个触发器同步器电路。 但是,通常两个触发器同步器电路足以消除亚稳态,使用三个触发器的情况比较少。 [345] 什么是时钟门控? 时钟门控是一种低功耗技术,通过关闭了设计中某些部分的时钟达到降低功耗的目的。
图片 如果异步复位的释放时间不满足以上这两个条件,寄存器很可能进入亚稳态,导致电路运行失常。为了保证解决这个问题,可以采用异步复位同步释放的复位信号设计方法。 复位信号释放的随机性,可能导致时序违规,倘若复位释放时恰恰在时钟有效沿附近,就很容易使电路处于亚稳态。 且异步复位容易受到毛刺的干扰,产生意外的复位操作。 rst_n = 0; #10 rst_n = 1; din = 1; #300; $finish; end endmodule 仿真结果如下: 图片 可以看到 复位信号释放的随机性,可能导致时序违规,倘若复位释放时恰恰在时钟有效沿附近,就很容易使电路处于亚稳态。 且异步复位容易受到毛刺的干扰,产生意外的复位操作。 那就是异步复位同步释放,既保证了正常的异步复位不受时钟影响,又通过打两拍的方式消除了电路中的亚稳态(严格来讲是极大概率地消除亚稳态)。
一.单选题 1.关于跨时钟域电路的设计,以下说法正确的是: A: 信号经两级D触发器同步后即可进行跨时钟域传递 B: 跨时钟域电路存在亚稳态风险,最好避免使用 C: 跨时钟域电路中一定存在亚稳态 D: 采用单一时钟的电路也可能产生亚稳态 答案:B 或 D(答案暂不确定) 解析: 4 种方法跨时钟域处理方法 (1)打两拍,两级触发器同步——单bit数据跨时钟域处理,适用于慢时钟域数据到快时钟域; (2) (注:两级并不能完全消除亚稳态危害,但是提高了可靠性,减少其发生概率。总的来讲,就是一级寄存器发生亚稳态的概率很大,三级及以上改善不大。) B:亚稳态出现场景:异步信号检测、跨时钟域信号传输以及复位电路,最好避免使用,但多数情况下无法避免; C:概率问题,可能出现,并非一定。 D:只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。
作者提出了上图中双采样的比较电路,可通过调整Rx_clk和Rx_clkd中间的相位差Wi,分成了五种情况来说明是否出现了亚稳态的情况。进而对如何控制亚稳态的出现进行评估和分析。 降低电路中出现亚稳态出现的概率,就相当于是增大TTM的值。 为了增大TTM的值,可以考虑采样时钟上升沿与被采样数据翻转沿的相位偏差,根据这个偏差可以将电路出现亚稳态的概率分类为Class-A和Class-B,还得到一个这两种状态下相位偏差的阈值。 因此,解决办法就是在同步器电路中添加移相器。始终保证采样时钟上升沿与被采样数据翻转沿的相位偏差处在Class-A的状态。 从而降低了电路出现亚稳态的风险。 把MEDAC同步器单元应用于异步FIFO中。 再把该异步FIFO应用于一款四个Router的NOC芯片中。
如果规避亚稳态? ---- 数字电路是个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的目的时钟域的电路碰到亚稳态现象.
可编程的硬件已经有了很久,在硬件写程序需要对硬件了解, Raspberry Pi 2 Model B可以运行win10,自然和我们电脑的win10不一样。 我需要Raspberry Pi 2 Model B ,MicroSD card,LED light,无焊料的电路试验板,很多线。 无焊料的电路试验板、线 连接Raspberry Pi 2组件。虽然我可以使用随意连接,最快的方式是无焊料的电路试验板。如同名称我不需要焊接。我需要把线连接,使用30行10列。 需要下面这些硬件:led灯,无焊料的电路试验板,电缆。 设计电路 Led需要的电路可以看下图,电流动从pin1,标着3.3V的见上图的接口,3.3V对Led太大,所以我们需要一个电阻,然后电流流GPIO 5,根据引脚,从上面图我们可以看到是pin29。