《如何解决FPGA高速时序收敛问题.docx》由会员分享,可在线阅读,更多相关《如何解决FPGA高速时序收敛问题.docx(12页珍藏版)》请在第一文库网上搜索。
1、如何解决FPGA高速时序收敛问题本文是一篇详细介绍ISSCC2023会议上一篇有关亚稳态解决方案的文章,该技术也使得EE处在较高频率下的时序收敛成为了可能。亚稳态问题是芯片设计和FPGA设计中常见的问题,随着FPGA的发展,时序问题已经成为一个越来越难的挑战。单bit线网和逻辑通路扇出在巨大的芯片上扩散,而布线资源有限,这使得传统的时序收敛成为一场噩梦。在同步设计上实现时序收敛的传统技术一个接一个地碰壁,未能实现规模化。Xi1inX和*hronix在其新一代FPGA中解决了这一问题,在传统的逻辑和布线结构的基础上增加了片上网络(NoC)oNoC本质上改变了游戏规则,因为整个芯片不再需要在一个巨
2、大的神奇汇流中实现时序收敛。现在,更小的同步块可以通过NoC传递数据,减轻了传统布线结构的负担,并将原来巨大的设计自动化工具问题分解成更小的、可管理的块。在进行NOC布线的两家供应商中,XiIinX和AChrOniX中,Achronix声称通过其二维跨芯片AXI实现了最快的NoCoNoC中的每一行或每一列都实现为两个工作在2Ghz的256位单向AXI通道,同时在每个方向上提供512Gbps数据流量。Speedster的NoC总共有197个端点,产生27Tbps的聚合带宽,比FPGA的传统按位布线资源少了很多。本文从一篇芯片设计顶会(ISSCC2023)文章中设计的一款解决低电压亚稳态问题的同步
3、器作为着眼点,试图还原NoC架构引入FPGA芯片后对FPGA的时序收敛起到积极作用的全过程。昨天刚结束的KAC2023线上会议,高峰期在线人数高达1.6万人,笔者有幸抽空听了半个下午,其中完整的听完了本文中所提到的亚稳态相关的一个会议。该报告是由上海交通大学的何卫锋博士做的,有关ICAC2023的详细信息请搜索微信“ICACWorkshop详细了解。随着物联网、机器人、无人机、可穿戴/植入设备等低功耗便携式设备越来越普及,超低功耗SoC芯片技术也面临着越来越大的挑战。为了降低这些SoC芯片的功耗,人们提出了如上图所示的各种技术。其中,近阈值低电压技术就是其中最受关注的一种。在超低电压下,可以很
4、大程度的降低芯片的功耗,但随之带来了可靠性降低的代价。在上述SOC芯片中,往往具有多个电压频率域。由于超低电压下工艺等因素带来的任意两个时钟之间相位关系的不确定性,导致芯片在正常工作状态下经常会出现亚稳态问题。什么是亚稳态?TX_c1kandRX_c1k:Unknownandtime-varyingphase/frequencyDtooc1osetoRx-c1k:metastabi1ityrisk当一个信号从Tx时钟域传递到Rx时钟域时,因为Tx_c1k和Rx_c1k时钟信号相位的不确定性,就有可能会造成数据信号D的上升酒会落在Rx_c1k时钟上升沿的变化范围内,如果D信号的翻转(上升沿或下降
5、沿)和Rx_cik的上升沿(采样沿)靠的足够近的时候,就会造成了采样出来的信号Q会由现非0非1的中间状态,如果信号Q这种非0非1的状态持续时间超过了Rx_c1k的时钟周期,我们就称Q信号的这种非0非1的状态是亚稳态。生冬/Signa1SynchronizatV11F1V2,FjSynchronizerTxe1kSynchronizersAReducetheprobabi1ityofoutputmetastabi1ityCannotguaranteenometastabi1ityrCannotprovide1ong-termmitigation传统解决亚稳态的方法是采用上图中“打两拍”同步器的方
6、法。这种方法可以有效的降低出现亚稳态的几率,但不能完全避免出现亚稳态的情况。随着电压的降低,亚稳态出现的几率越来越大。而传统的同步器无法解决上图中同步器的输入端出现亚稳态的情况,因此文章就提出了一种能够解决同步器输入端出现亚稳态情况的方案。芯片中跨时钟域信号的解决方法就是加同步器,一个同步器不行,那就再加一个。亚稳态窗口Metastabi1itywindow(WM) Datashou1dbereso1vedbeforeTc1k ConsideringPVTvariation,Wmincreased11以接收时钟沿为基准,以接收端时钟Tc1k的频率作为将数据从亚稳态到稳定状态的个分辨时间。当数据
7、D的翻转在上图中黄色的亚稳态的窗口之内时,意味着同步器是无法在一个时钟周期内将D信号从亚稳态恢复为稳定状态。而对应的黄色区域的这个窗口,就称为是亚稳态窗口。作者采用蒙特卡洛仿真了一下在65nm工艺下,电压从15V降低到0.4V的过程中,亚稳态问题出现的几率增大了11倍。MainSynchroninrShadowsynchronizerRxdataM9tastab11ityconditionTx_dataarrivMetaStabiIICondiHorTx_dataisdoub1e-samp1edatRx_c1kanADatasamp1ingwithaW,de1ay Regions1,5:Cor
8、rectdatatransmission Regions2,4:Metastabi1ityndition Region3:Incurringafa1sea1arm; TuneWc1osetoWMtoe1iminatefa1sea1arm;作者提出了上图中双采样的比较电路,可通过调整Rx_c1k和Rx_c1kd中间的相位差%,分成了五种情况来说明是否出现了亚稳态的情况。进相对如何控制亚稳态的出现进行评估和分析。如果出现了亚稳态,可以要求发送端再重传一次信号,但无法从根本上解决亚稳态问题,亚稳态问题还是会过一段时间后再次出现。为了从根本上解决出现亚稳态的问题,定义了下图中两次亚稳态出现的时间间隔T
9、TM。降低电路中出现亚稳态出现的概率,就相当于是增大TTM的值。卷纪世Metastabi1ityRiskReTTMTx_cIkTx_dataRxe1k_T1r1r1_T1rffIX)CU1TNometastabi1itycondition1_11Metastabi1ityconditionRx_c1kc1osetoTx_dataagain Incurringanothermetastabi1ity Metastabi1ityhappenssemi-periodica11y Timetonextmetastabi1ity(TTM)shou1dbem为了增大TTM的值,可以考虑采样时钟上升沿与被采
10、样数据翻转沿的相位偏差,根据这个偏差可以将电路出现亚稳态的概率分类为C1ass-A和C1ass-B,还得到一个这两种状态下相位偏差的阈值。这样整个问题就转换为想办法当相位偏差处在C1ass-B的时候,想办法将其相位偏差转换到C1ass-A状态。ReducingFutureMePhaseadjustmentscheme:C1assifyphasedifference(Pnorm)into CIaSSATTMThresho1dcyc1es Cass-,TTMphaseshiftfromC1ass-BtoC1ass-A因此,解决办法就是在同步器电路中添加移相器。始终保证采样时钟上升沿与被采样数据翻转
11、沿的相位偏差处在C1ass-A的状态。作者设计了一个叫ME巫的同步器单元,可以自动检测到是否即将出现亚稳态并实时对相位偏差进行调整。工作原理如下:当电路通过计数器TTMIjner发现该计数器的值小于了上图中的TTM阈值时,PhaseSeIeCtor模块就会驱动PhaSeshifter去调整Rx_c1kd信号与Tx_data之间的相位偏差,使其相移偏差从C1ass-B状态转换到C1ass-A状态。从而降低了电路出现亚稳态的风险。1MMIMMtOMbfVMmRetrsnsmss)E1mttgabonreq_pcket.(ToTXdomain)MEDACUnit1TTMtimer:countsthe
12、timetonextmetastabi1i1“Phasese1ector:phaseshiftgenerationPhaseshifter:phasedifferenceofO0t540t900把MEDAC同步器单元应用于异步FIFO中。您也总拦MEDAC-basedAsynchista11wwritee1kwritewdataRep1aceeachsynchronizerwiththepropos再把该异步FIFO应用于一款四个Router的NOC芯片中。JdfRouterArchitecturerA1oca1port(1P)andfourchanne1sEachchanne1: Twosets(TX&RX)of1eve1nverters Twosets(TX&RX)ofMEDAC-basedFIFOsNoC芯片的结构和芯片图如下:生吆MEDAC-basedU1VK,Fourprocessinge1ements(PE1toPE4):gener Fourrouters(R1toR4):withproposedMEDAC 65nm1Pprocess在测试了追个数据包后,得到了很好的测试结果。在IV电压下,亚稳态出现的概率下降了几十倍,在0.4V电压下,亚稳态出现的概率下降几千倍。很好的解决了亚稳态问题。片上软件黄飞