FPGA系统复位过程中的亚稳态原理.docx

上传人:lao****ou 文档编号:837771 上传时间:2024-06-14 格式:DOCX 页数:10 大小:143.37KB
下载 相关 举报
FPGA系统复位过程中的亚稳态原理.docx_第1页
第1页 / 共10页
FPGA系统复位过程中的亚稳态原理.docx_第2页
第2页 / 共10页
FPGA系统复位过程中的亚稳态原理.docx_第3页
第3页 / 共10页
FPGA系统复位过程中的亚稳态原理.docx_第4页
第4页 / 共10页
FPGA系统复位过程中的亚稳态原理.docx_第5页
第5页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《FPGA系统复位过程中的亚稳态原理.docx》由会员分享,可在线阅读,更多相关《FPGA系统复位过程中的亚稳态原理.docx(10页珍藏版)》请在第一文库网上搜索。

1、FPGA系统复位过程中的亚稳态原理1.应用背景1.1亚稳态发生原因在四系统中,如果数据传输中不满足触发器的TSU和Th不满足,或者复位过程中复位信号的释放相对于有效班沿的恢复时间(recoverytime)不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在。和1之间处于振荡状态,而不是等于数据输入端D的值。这段时间称为决断时间(reso1utiontime)。经过reso1utiontime之后Q端将稳定到0或1上,但是稳定到。或者1,是随机的,与输入没有必然的关系。1. 2亚稳态发生场合只要系统中有异步元件,亚稳态就是无法避免的,

2、亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。1 .3亚稳态危害由于产生亚稳态后,蜜皿Q端输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值。在信号传输中产生亚稳态就会导致与其相连其他数字部件将其作出不同的判断,有的判断到“1”有的判断到“0”,有的也进入了亚稳态,数字部件就会逻辑混乱。在复位电路中产生亚稳态可能会导致复位失败。怎么降低亚稳态发生的概率成了FPGA设计需要重视的一个注意事项。2 .理论分析2.1 信号传输中的亚稳态在同步系统中,输入信号总是系统时钟同步,能够达到寄存器的时序要求,所以亚稳态不会发生。亚稳态问题通常发生在一些跨时钟域信号传输以及异步信号

3、采集上。它们发生的原因如下:(1)在跨时钟域信号传输时,由于源寄存器时钟和目的寄存器时钟相移未知,所以源寄存器数据发出数据,数据可能在任何时间到达异步时钟域的目的寄存器,所以无法保证满足目的寄存器TSU和Th的要求;(2)在异步信号采集中,由于异步信号可以在任意时间点到达目的寄存器,所以也无法保证满足目的寄存器TSU和Th的要求;当数据在目的寄存器Tsu-Th时间窗口发生变化,也即当数据的建立时间或者保持时间不满足时,就可能发生亚稳态现象。如图3.1所示。图3.1亚稳态产生示意图由图可知,当产生亚稳态后TC。时间后会有Tmet(决断时间)的振荡时间段,当振荡结束回到稳定状态时为“0”或者“1”

4、,这个是随机的。因此,会对后续电路判断造成影响。2.2 复位电路的亚稳态2.2.1 异步复位电路在复位电路设计中,复位信号基本都是异步的,常用异步复位电路VCriIog描述如下:a1ways(posedgee1kornegedgerstn)beginif(!rst_n)a=b;e1sea?rst1图3.2异步复位电路模型如图3.3所示,为复位电路复位时序图。如果异步复位信号的撤销时间在Trecovery(恢复时间)和TremOVa1(移除时间)之内,那势必造成亚稳态的产生,输出在时钟边沿的TCo后会产生振荡,振荡时间为Tmet(决断时间),最终稳定到“0”或者“1”,就会可能造成复位失败。图3

5、.3异步复位时序2.2.2 同步复位电路的亚稳态在复位电路中,由于复位信号是异步的,因此,有些设计采用同步复位电路进行复位,并且绝大多数资反对于同步复位电路都认为不会发生亚稳态,其实不然,同步电路也会发生亚稳态,只是几率小于异步复位电路。如下面veri1og代码对同步复位电路的描述。a1ways(posedgee1k)beginif(!rst_n)a=1,b;e1sea=b;enddout综合出硬件电路如图3.4所示。rstdine1k图3.4同步复位电路在此,我们不讨论同步复位的消耗资源问题,只讨论同步复位的亚稳态产生情况。当输入端Din为高电平,而且复位信号的撤销时间在e1k的TSU和Th

6、内时候,亚稳态就随之产生了。如图3.5时序所示,当复位撤销时间在CIk的TSU和Th内,输入数据为“1”,通过和输入数据相与后的数据也在C1k的TSU和Th内,因此,势必会造成类似异步信号采集的亚稳态情况。图3.5同步复位电路时序图2. 3亚稳态产生概率以及串扰概率在实际的FPGA电路设计中,常常人们想的是怎么减少亚稳态对系统的影响,很少有人考虑怎么才能减少亚稳态发生几率,以及亚稳态串扰的概率问题。2.3.1亚稳态发生概率由上面分析得知,系统亚稳态发生的都是由于CIk的TSU和Th不满足,又或者是复位信号的移除和恢复时间不满足。常用FPGA器件的Tsu+Th约等于1ns,复位移除和恢复时间相加

7、约等于Ins0当异步信号不是一组数据,或者信号量较少,那就需要对异步信号进行同步处理,例如对一个异步脉冲信号进行采集,只要脉冲信号变化发生在时钟TSU和Th窗口内,那就很可能会产生亚稳态,亚稳态产生的概率大概为:概率=(建立时间+保持时间)/采集时钟周期(公式31)由公式3T可以看出,随着C1k频率的增加,亚稳态发生的几率是增加的。例如,为系统采用IOOM时钟对一个外部信号进行采集,采集时钟周期为10ns,那采集产生亚稳态的概率为:1ns10ns=10%同理采用300M时钟对一个外部信号进行采集,那产生亚稳态的概率为:1ns3.3ns=30%如果采用三相相位差为120。的时钟对一个外部信号进行

8、采集,那产生亚稳态的概率接近90%所以在异步信号采集过程中,要想减少亚稳态发生的概率:(1)降低系统工作时钟,增大系统周期,亚稳态概率就会减小;(2)采用工艺更好的FPGA,也就是TSU和Th时间较小的FPGA器件;2. 3.2亚稳态的串扰概率使用异步信号进行使用的时候,好的设计都会对异步信号进行同步处理,同步一般采用多级D触发器级联处理,如图3.6所示,采用三级D触发器对异步信号进行同步处理。sig_nsynsig_syn图3.6三级寄存器同步这种模型大部分资料都说的是第一级寄存器产生亚稳态后,第二级寄存器稳定输出概率为90的第三极寄存器稳定输出的概率为99乐如果亚稳态跟随电路一直传递下去,

9、那就会另自我修护能力较弱的系统直接崩溃。接下来我们分析这种串扰的概率问题。如图3.7所示为一个正常第一级寄存器发生了亚稳态,第二级、第三极寄存器消除亚稳态时序模型。Reg3.q图3.7三级寄存器消除亚稳态由上图可以看出,当第一个寄存器发生亚稳态后,经过Tmet的振荡稳定后,第二级寄存器能采集到一个稳定的值。但是为什么第二级寄存器还是可能会产生亚稳态呢?由于振荡时间Tmet是受到很多因素影响的,所以Tmet时间又长有短,所以当Tmet时间长到大于一个采集周期后,那第二级寄存器就会采集到亚稳态。如图3.8所示。Reg3.q图3.8二级寄存器亚稳态由上图可知,第二级也是一个亚稳态,所以在这种情况下,

10、亚稳态产生了串扰,从第一级寄存器传到了第二级寄存器,同样也可能从第二级寄存器串扰到第三级寄存器。这样会让设计逻辑判断出错,产生亚稳态传输,可能导致系统死机奔溃。2. 3.3亚稳态振荡时间Tmet亚稳态震荡时间Tmet关系到后级寄存器的采集稳定问题,Tmet影响因素包括:器件的生产工艺、温度、环境以及寄存器采集到亚稳态离稳定态的时刻等。甚至某些特定条件,如干扰、辐射等都会造成Tmet增长。3,应用分析有亚稳态产生,我们就要对亚稳态进行消除,常用对亚稳态消除有三种方式:(1) 对异步信号进行同步处理;(2) 采用FIFO对跨时钟域数据通值进行缓冲设计;(3) 对复位电路采用异步复位、同步释放方式处

11、理。3.1 .1对异步信号进行同步提取边沿在异步通信或者跨时钟域通信过程中,最常用的就是对异步信号进行同步提取边沿处理。对一个异步信号进行提取上升沿通常采用程序清单4.1所示。程序清单4.1双极寄存器提取边沿inputsig_nsyn;wiresig_nsyn_p;reg1:0sig_nsynr;a1ways(posedgee1kornegedgerst_n)beginif(!rst_n)sig_nsyn_r=2,d;e1sesig_nsynr=sig_nsynr0,sig_nsyn;endassignsig_nsyn_p=sig_nsyn_r0&sig_nsyn_r1;这种边沿提取方式对于一

12、个稳定的系统是不合适的,例如:当第一级寄存器采集到亚稳态,那势必造成sig_nsyn_p输出亚稳态,这样就会对采用sig_nsyn_p的信号进行判断的电露造成影响,甚至判断出错误的值。根据3.3.1小节的亚稳态产生概率,如果在IOOM时种下那第一级寄存器产生亚稳态的概率约为10%,随着系统采集频率升高,那产生亚稳态的概率也会随之上升。因此,在进行异步信号跨频提取边沿时候,一般采用多进行一级寄存器消除亚稳态,可能在系统稳定性要求高的情况下,采用更多级寄存器来消除亚稳态,如程序清单4.2所示,即为采用4级寄存器消除亚稳态,相应的边沿信号产生的时间就晚了两个时钟周期。程序清单4.2多级寄存器提取边沿

13、信号inputsig_nsyn;wiresig_nsyn_p;reg3:0sig_nsyn_r;a1ways(posedgee1kornegedgerst_n)beginif(!rst_n)sig_nsyn_r=2,d;e1sesig_nsyn_r=sig_nsyn_r2:0,sig_nsyn;endassignsig_nsyn_p-sig_nsyn_r2&sig_nsyn_r3;3.2 .2FIFO进行异步跨频数据处理当数据流从一个时钟域到另一个时钟域的时候,绝大多数情况下都采用F1FO来作为中间缓冲,采用双时钟对数据缓冲,就可以避免亚稳态的发生。3. 1.3异步复位,同步释放对于复位情况下的亚稳态,常常是由于恢复时间和移除时钟不满足造成的,因此,最常用的处理方式是采用异步复位、同步释放。常用电路模型如所示。采用第二级寄存器输出作为全局复位信号输出。程序清单4.3异步复位处理wiresys_rst_n;reg1:0rst_r;a1ways(posedgee1kornegedgerstn)beginif(!rst_n)rst_r=2d;e1serstr=rstr0,1,b1;endassignsys_rst_n-rst_r1;通过上面三种方式处理异步信号、异步数据、以及异步复位可有效的提高系统的稳定性。减少亚稳态的产生。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服