基于SpyGlass的同步设计分析与静态验证.pdf
《基于SpyGlass的同步设计分析与静态验证.pdf》由会员分享,可在线阅读,更多相关《基于SpyGlass的同步设计分析与静态验证.pdf(74页珍藏版)》请在冰点文库上搜索。
题题(中、英文)(中、英文)目目基于基于SpyGlass的同步设计分析与静态验证的同步设计分析与静态验证SyncdesignanalysisandstaticverificationbasedonSpyGlass作者姓名作者姓名赵文锋赵文锋汤晓燕汤晓燕教授教授软软件工程件工程提交论文日提交论文日期期20142014年年11月月郝朝龙郝朝龙高工高工代代号号分类号分类号学学号号密密级级1070110701TN4TN4公开公开11111229291111122929UDC编编号号学校指导教师姓名职称学校指导教师姓名职称工程领域工程领域企业指导教师姓名职称企业指导教师姓名职称论文论文类型类型应用基础应用基础技术类技术类万方数据西安电子科技大学学位论文独创性声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。
申请学位论文与资料若有不实之处,本人承担一切法律责任。
本人签名:
日期:
西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:
研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。
学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。
同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。
(保密的论文在解密后遵守此规定)本学位论文属于保密,在年解密后适用本授权书。
本人签名:
导师签名:
日期:
日期:
万方数据摘要摘要随着数字系统复杂度的提高,系统芯片中集成的模块数量增加。
各模块通常工作在不同的时钟频率下,对各系统之间的数据CDC(ClockDomainCrossing)通信需要进行同步设计。
对于不同时钟域和电压域的情况,对CDC同步设计的要求不同。
对于这些CDC传输路径以及同步设计的检查验证,在整个设计流程中的作用日渐凸显。
目前还没有一套比较成熟、完善的验证手段,能在设计早期RTL级就能完成CDC的验证工作。
本论文通过分析CDC传输中的亚稳态机理,总结了各种同步设计的优劣以及传统验证方法在CDC检查中的弊端,提出并搭建了一套基于SpyGlass的CDC静态验证流程。
在RTL级脱离验证平台和测试向量,穷举设计中所有CDC传输路径并进行了验证。
基于不同的验证结果,对设计缺陷提出了建议性修改方案。
经过实际项目的检验,证实该验证手段在设计流程中是可行有效的,对CDC设计与验证有一定借鉴意义。
关键字:
数字集成电路亚稳态平均失效时间同步设计静态验证万方数据AbstractAbstractSomanymoduleblocksareintegratedincurrentdigitalSOCwiththeincreasingofthecomplexity.Suchmodulesareallworkingunderdifferentclockfrequenciescommonly.Clockdomaincrossingofthedataamongmodulesalwaysneedtobesynchronizedbydedicateddesigns.Therearedifferentrequirementinthesyncdesigns,withregardtothedifferentclock-domainorpower-domainscheduling.SotheverificationsforsuchclockdomaincrossingpathsandinserteddatasynccellsbecomemoreandmoreimportantinICdesignflow.Currentlythereisstillingnotperfectmethodtosolvingthisissueinearlydesigningstage.AlldiffsyncdesignsmeritsandthetraditionalverificationmethodsweaknessuponCDCaspectincurrentflowaremadeaconclusionbasedonanalyzingoftheCDCmeta-stabilitymechanisminthisthesis.Meanwhile,astaticverificationenvironmentandflowbasedonSpyGlasstoolwithouttestbenchandtestcaseinRTLlevelareintroducedandbuilt.BasedonthisnewverificationmethodalltheCDCpathsindesignareexhaustedandcarriedonexaminations.SomechangingsuggestionsforthecommonRTLdesigndefectsaregivenaswellinthearticle.ItisshownthatthisstaticverificationmethodisfeasiblebyapplicationinICproject,whicharereferencemeaningtotheCDCdesignandverificationpart.Keyword:
Digital-ICMeta-stabilityMTBF(MeanTimeBetweenFailures)SynchronizationdesignStaticverification万方数据目录I目录第一章绪论.11.1CDC同步与验证研究背景.11.2CDC同步与验证研究现状.21.3论文内容安排.2第二章数字SOC的CDC问题分析.52.1跨时钟域同步概述.52.2数字设计中常见的CDC问题.62.2.1CDC中的亚稳态传播问题.62.2.2CDC中异步输入数据的保持时间问题.72.2.3CDC中的数据关联和竞争.72.2.4CDC中复杂的同步设计.92.2.4CDC中的异步复位同步问题.92.3亚稳态与MTBF分析.102.3.1基于不同时钟域的MTBF分析.102.3.2基于不同电压域的MTBF分析.16第三章CDC同步设计分析与传统验证方法.193.1单Bit信号CDC同步设计分析.193.1.1慢时钟域到快时钟域的同步情况.193.1.2快时钟域到慢时钟域的同步情况.213.2多Bit信号CDC同步设计分析.243.2.1握手协议同步设计.243.2.2异步FIFO同步设计.273.3异步复位信号的同步设计.283.4CDC同步设计的传统验证方法.293.5本章小结.31第四章基于SpyGlass的数字芯片CDC静态验证.354.1SpyGlass的CDC静态验证方法分析.354.1.1静态CDC验证方法需求特点.354.1.2SpyGlass的CDC静态验证方法分析.364.2SpyGlass的CDC静态验证环境的设计.37万方数据II目录4.2.1SpyGlass的数字芯片Top-LevelCDC验证环境的搭建.374.2.2SpyGlass相关的同步电路识别分类.454.3基于SpyGlass静态验证结果的分析与RTL修正.494.3.1qualifier不存在的violation情况.494.3.2multi-sources关联的violation情况.504.3.3combo-logic处于传输路径中的violation情况.524.3.4目的触发器驱动多条数据路径的violation情况.534.3.5hold-timecheckfailed的violation情况.544.4本章小结.55第五章总结与展望.575.1总结.575.2技术展望.57致谢.61参考文献.63万方数据第一章绪论1第一章绪论1.1CDC同步与验证研究背景随着当今集成电路技术的飞速发展,日常生活中充斥着越来越多的微电子商品,从仪表仪器,到电信网络,从工业设备,到日用数码,这种新型技术已经深入人们的生活中。
对于各种实际需求的不同和增加,这些集成电路设计的本身规模也在逐渐扩大,功能也逐步繁多。
而集成电路本身是由各种不同的功能电路来构成,电路内部触发器之类时序元件随着独立、一致的时钟节拍来翻转,从而完成数据的采样和传输。
这样的时序一致性可以允许集成电路规模的发展扩大,同时这种方式也给设计后端的综合、布局布线带来了很大的方便。
然而芯片的功能的不断增强,集成电路必然趋向使用多时钟信号的设计方向,这些不同的时钟信号在频率和相位方面是有很大区别的(即不同源),如果单纯地去使用两个无任何相位关系的时钟信号来采样和传输数据,即数据的跨时钟域CDC,则会出现一系列时序问题,如触发器亚稳态的产生以及传播,从而引起部分相关电路功能的错误运转,甚至导致整个芯片系统的崩溃。
基于这种多时钟域的设计,通常需要对不同时钟信号间的数据传输进行同步设计,通过同步电路技术,系统中的这些异步电路之间的数据传输所潜在的亚稳态等时序问题将会得到很好的隔离与解决,使数据在整个芯片上不同时钟区域之间的传输更加安全,以此来保证芯片系统的稳定工作。
因此从解决问题的角度出发,就希望能够在SOC(SystemOnChip)设计的更早期发现这种潜在的时序风险。
从目前大多数传统的动态功能性仿真工具的使用效果来看,对于这类跨时钟域亚稳态问题不能进行充分的验证;而在设计后端的STA(StaticTimingAnalysis:
静态时序分析)中,对这样的时序问题也不能完全的覆盖检查,一方面因为STA只能够检查在同步的情况下电路时序的收敛性,对于CDC的异步时序却是存在验证方面的缺陷,另一方面由于目前SOC设计的周期在不断的缩短,设计的时间节点和质量都是保证一款芯片占领市场的首要条件,对于STA以及后仿等验证,所做的时序收敛性检查往往是在设计流程的后端,然而在此时间节点一旦发现一些的CDC时序问题的话,对整个芯片流片以及产品上市都是致命的。
基于目前CDC研究背景,发现和定位这些CDC问题的工作,毫无疑问的要往设计的更前端移动,从后仿验证者逐步转移至RTL(RegisterTransitLevel)的万方数据2基于SpyGlass的同步设计分析与静态验证设计人员手中。
1.2CDC同步与验证研究现状同步设计的发展起源于上世纪60年代,因其设计相对比较简单,且具有丰富的工程化设计手段而逐渐占领电路设计的主流。
上世纪80年代开始,跨时钟域信号的传输开始受到国外研究人员的关注,在许多的工程实践中,总结归纳了一些跨时钟域信号传输的同步机制。
随着国内微电子技术的发展,跨时钟域设计逐渐才受到国内研究人员的关注,单仍然缺少对此类同步设计的系统研究与总结。
而对于此类CDC同步设计的验证工作,虽然各公司设计者们都已经注意到在设计流程的更早期实施验证的方法必要性,但是由于目前国内相对于这种新型的专门验证工具的引进存在障碍,同时对于此类验证方法的研究不能得到实际项目的支持,导致目前国内在该领域仍然存在着许多设计和验证方面的不足。
致使大多数项目设计人员只能在设计流程的后端乃至流片之后才能察觉这些严重的CDC问题。
对于集成电路设计者来说,能够正确的应用不同类型同步设计,并且有一种专门的CDC验证方法才会是最完备的。
国际上各大EDA公司都在不断地提出和完善自己的CDC设计与验证工具,例如Mentor公司的0-In、Synopsis公司的Leda以及Atrenta公司开发的SpyGlass等工具,而这些CDC验证工具都有各自的优势和局限性,在CDC验证上的表现也不尽相同。
目前虽然国际上推出了一些此类的验证工具与验证方案,但是由于目前国内在SOC设计领域许多客观条件的限制,使得不能够充分的了解与认识这种验证工具的特性,也就不能在实际的项目中建立实施。
因此基于此类新型CDC工具的大规模数字SOC的CDC验证环境以及流程仍然十分不成熟。
1.3论文内容安排本文在基于上述研究背景和现状,扼要阐述了设计中常见的跨时钟域问题,以及亚稳态MTBF随时钟频率和不同的工作电压的变化分析。
根据这些分析结果,系统的介绍和总结了在如今系统SOC设计时候经常使用的几种同步电路设计的优缺点和应用时候的限制条件,包括在设计中经常被忽略的异步复位-同步释放的设计问题和传统验证方法在CDC检查方面的缺陷。
同时针对目前国际上的几种CDC验证工具,介绍了一种基于Atrenta公司的SpyGlass-CDC验证方法,阐述了该验证方法以及基本验证规则。
最后,基于这种SpyGlass-CDC工具,引入设计了一种SOC基带芯片的CDC验证环境与验证流程,以及针对常见的RTL设计缺万方数据第一章绪论3陷,给出了一些建议性的修正方案。
具体内容如下:
第一章,绪论。
第二章,概述了数字SOC设计中常见的CDC问题,以及亚稳态原理和触发器亚稳态MTBF数学模型,根据目前SOC设计中常见的clock-domain(时钟域)以及power-domain(电压域)划分情况,着重分析了亚稳态MTBF在此类设计架构下面的变化情况;并且简述了这些问题在设计中的危害,以及这些问题对整个设计流程的影响。
提出一些高速、低功耗SOC设计中的基本原则。
第三章,系统介绍了数字设计中几种常见的数据和控制信号的CDC同步电路,总结了这些同步电路在数字SOC设计应用中利弊条件。
同时也具体分析了常见异步复位信号的同步设计问题,提出了一种在实际项目中常用的异步复位信号同步电路模型。
最后通过实际工程项目中常见的验证方法的分析,概括了这些传统的设计方法在CDC验证方面所存在的一些缺陷。
为后面引出新型的静态验证方法做了准备。
第四章,首先通过静态验证方法的特点分析介绍,对比分析了目前传统验证方法与基于SpyGlass的CDC静态验证方法的具体优略。
继而引入了基于SpyGlass的大规模数字SOC对CDC验证的方案,经过基本验证规则的概述,提出并设计了一套比较完备可行的验证流程。
并且针对目前RTL设计中一些常见的验证结果,具体分析并对设计缺陷提出了一些建议性的修改方案。
通过这种分析总结,加深对这种验证形式和验证方法的理解和应用。
第五章,总结与技术展望。
万方数据4基于SpyGlass的同步设计分析与静态验证万方数据第二章数字SOC的CDC问题分析5第二章数字SOC的CDC问题分析2.1跨时钟域同步概述从数字系统电路设计的原则出发,数字SOC设计完全可以按照统一的时钟信号来进行设计,但是由于功能、时序等诸多客观因素的限制,通常对于一个内部采用统一的时钟来设计的RTL,为了能够实现更为复杂的系统功能,不可避免地要与周围或者外部的模块电路进行数据之间的交流和通信,而这种通信往往是异步的。
按这种设计方式,会把一个系统的电路分布划分成多个时钟区域,每个时钟区域使用一个统一的时钟信号。
当数据信号从其中一个时钟域传送到另一个时钟域的时候,对于目的地时钟域设计模块来说,此类信号称为异步输入类型,如果不采取相应的同步设计来防止诸如此类的CDC传输,对系统的整体逻辑、时序都会造成影响。
所以,当一个异步信号进入设计模块的时候,首先要确定该异步输入信号所处的稳定电平状态,完成判定读入,系统内部的各个时序、逻辑部分才能协调一致的完成相应的行为动作。
而实现这种判定功能的电路,就是信号的同步设计。
在数字电路的设计过程中,由于应用场景的不同,其中也会衍生出各种不同作用的同步电路设计。
通过跨时钟域问题的简单介绍分析,发现导致数字SOC信号出现不确定性的关键原因是亚稳态问题。
如果触发器的setuptime/holdtime(建立保持时间)不满足,就可能产生亚稳状态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的值(状态),在此期间当中Q端为毛刺、振荡、固定的某一电压值,而不是等于数据输入端D的值。
这段时间被称为决断时间(resolutiontime)。
经过resolutiontime之后Q端将稳定到0或1上,但是最终稳定是0还是1,则是随机发生的,与输入数据没有必然的关系。
一旦触发器发生的亚稳态的情况,由于其输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值,因此推断触发器的亚稳态除了导致逻辑误判之外,输出01之间的中间电压值还会使下一级接收触发器产生亚稳态(即导致亚稳态的传播)。
其中,逻辑误判有可能通过电路的特殊设计减轻危害(如异步FIFO中Gray码计数器的作用),而亚稳态的传播则扩大了故障面,难以处理。
万方数据6基于SpyGlass的同步设计分析与静态验证2.2数字设计中常见的CDC问题在目前数字SOC工程设计项目中,所存在的CDC问题主要有以下几种:
2.2.1CDC中的亚稳态传播问题数字SOC中触发器亚稳态值的产生和传输12模型如图2.1,当时钟信号Clk_B的第二个上升沿到来的时刻,输入数据信号A刚好处于变化当中,导致其不满足触发器F2的建立-保持时间要求,在输出节点B处产生亚稳态值。
对于B节点产生的亚稳态中间值,后续的三个扇出分支X1、X2、X3对其的理解判定则可能是不同的。
其中一个扇出可以理解这种亚稳态值为逻辑值1,与此同时另外的一个扇出也可以将其理解为逻辑值0,这种后续电路对前级亚稳态的自由理解会在系统电路运转过程中随机的出现。
其对于完整的SOC系统时序将造成巨大影响。
QQSETCLRDQQSETCLRDABX1X2Clk_AClk_BDF1F2X3Clk_AAClk_BVOHVOLB图2.1CDC时候的亚稳态基于图2.1模型,从定性的方面分析,触发器亚稳态产生与传播的概率与异步输入信号翻转的频率、目的触发器时钟翻转频率都呈现正比例的关系。
万方数据第二章数字SOC的CDC问题分析72.2.2CDC中异步输入数据的保持时间问题当一个数据信号从快时钟域进入慢时钟域的时候,由于该数据信号严格依赖快时钟域信号采样来翻转变化,所以可能会产生与快时钟周期等宽的脉冲型信号。
对于慢时钟域的时钟采样边沿来说,是很容易忽略这种形式为短暂脉冲的异步输入数据。
造成这种CDC传输过程中丢失数据的情况,主要是因为该异步输入数据信号的保持时间不满足目的触发器要求。
QQSETCLRDQQSETCLRDQQSETCLRDClkAClkBDF1F2F3ABCClk_AAClk_BBFast-ClockSlow-Clock图2.2数据保持时间问题电路模型与时序波形如图2.2所示,异步输入数据A随着源时钟域信号clk_A的一个周期而变化,由于数据A的保持时间较短,小于目的时钟域的一个时钟周期,并且两个时钟域的时钟信号之间没有固定的相位关系,结果在clk_B的两个上升采样边沿之间,类似脉冲信号的数据信号A则被该目的时钟域的同步触发器所忽略掉,造成数据的丢失现象。
2.2.3CDC中的数据关联和竞争图2.3中是一个常见的两级触发器型同步设计,其能够起到同步、孤立亚稳态的作用。
由于触发器亚稳态的恢复时间不能准确预测,使得此类同步设计存在一个重要特性CycleUncertainty3(周期不确定性)。
万方数据8基于SpyGlass的同步设计分析与静态验证QQSETCLRDQQSETCLRDD0D1X2QQSETCLRDD2Clk1Clk2Clk1Clk2D0D1D2Cycleuncertainty图2.3多触发器同步电路模型与时序波形如图2.3时序波形所示,亚稳态虽然被触发器D1所孤立禁止,但对于目的触发器D2,在Clk2的第二个时钟上升沿到来时刻,无法确定是否能翻转为稳定值:
其有可能在第二个Clk2上升沿时刻翻转为1;也有可能不翻转,仍然保持0。
直到Clk2的第三个时钟上升沿到来,目的触发器D2才能稳定输出期望值1。
这种情况称为:
同步电路的周期不确定性。
如果该异步输入数据为单bit类型,这种CDC问题则不会影响到后续电路的正常功能,但如果为多bit数据的情况,采用此种同步必然会造成数据通道传输的紊乱。
基于以上分析,当多bit类型的数据信号采用分别同步的情况时,在该信号同时发生跳变之后,由于其每条传输路径上面延迟的不一致,以及同步设计的周期不确定性,很有可能会出现最终输出数据的不一致情况。
一旦出现此类问题,对于目的模块逻辑,这将是一组不可预期的数据值,必然引起整体功能的错乱。
如图2.4模型所示:
QQSETCLRDQQSETCLRDXX3QQSETCLRDX4QQSETCLRDQQSETCLRDYY3QQSETCLRDY4Clk1Clk2DelayADelayBX1X2Y1Y2Logic例如FIFO的地址线在跨时钟域的时候万方数据第二章数字SOC的CDC问题分析9XYClk_AX1Y1X2Y2Clk_BX3Y3X4Y4数据开始不同步!
如果在此cycle采样,将得到不正确的值!
图2.4多bit信号的汇聚问题2.2.4CDC中复杂的同步设计对于一些时序要求比较严格的数字SOC电路,单纯的使用触发器串联形式进行CDC同步已经不可能满足设计要求,必须采取一些更为复杂的同步设计机制。
在实际工程项目中,常见的有异步的FIFO(FirstInFirstOut)同步设计、握手协议的同步设计、以及单一使能信号形式的同步设计等等。
特别是对于目前大多数基于ARM等处理器的数字SOC来说,从安全稳定性和传输效率角度考虑,往往会采取所述几种同步设计,来完成ARM处理器与高速外设电路之间的CDC传输。
而对于这种CDC同步结构在工作中出现的问题,主要从两个方面来入手,一方面从亚稳态产生和传播,另一个方面是从握手协议等的完善程度。
2.2.4CDC中的异步复位同步问题异步复位在目前时序设计中是最常见的,是指无论时钟信号是否到来,只要复位信号有效,就对系统进行复位。
但当复位信号需要释放时刻,却必须依据时钟信号的采样进行。
在目前数字SOC系统中,由于所容纳触发器数量庞大,物理万方数据10基于SpyGlass的同步设计分析与静态验证上复位信号的布线路径存在很大延迟,所以这种异步复位信号的释