雅博app官网下载最新版V7.24.568:想一次性流片成功ASIC设计中这些问题不可忽视
ASIC的复杂性大大提升,同时工艺在大大地改良,如何在较短的时间内研发一个平稳的可器重的ASIC芯片的设计,并且重复使用流片顺利,这必须一个成熟期的ASIC的设计方法和研发流程。本文融合NCverilog,DesignCompile,Astro等ASIC设计所用到的EDA软件,从工艺独立性、系统的稳定性、复杂性的角度对比各种ASIC的设计方法,讲解了在编码设计、综合设计、静态时序分析和时序建模等阶段常常忽略的问题以及防止的办法,从而使得整个设计具备可控性。 1基本的ASIC设计流程 ASIC设计流程可以细分成前端设计和后端设计,如果必须更加粗的区分,可以分为如下几个步骤: 1.还包括系统结构分析设计、RTL编码以及功能检验; 2.逻辑综合、PreLayoutSTA以及形式检验(RTL代码与逻辑综合分解的Netlist之间); 3.Floorplan、Placement、ClockTree放入以及全局布线(GlobalRouting) 4.形式检验(逻辑综合的Netlist与具有CT信息的Netlist之间)、STA; 5.DetailedRouting,DRC; 6.PostlayoutSTA,具有反标延后信息的门级建模; 7.Tape-Out 当然,这还是一个较为细的流程,其中每个步骤还可以分给更细,一般来说所说的前端设计主要还包括上述流程中的1,2,4,6这几个部分。
同时,这个流程是一个递归的过程。对于一些一般来说的问题以及其中的一些方法,早已有大量的文献中提及,本文将仍然赘述,因此本文着力于辩论在设计各个阶段中一些更容易被忽视的或者有可能带给潜在危险性的地方。 2结构分析设计、RTL编码 这一阶段在整个ASIC设计中占到十分最重要的地位,结构分析设计阶段主要就是指产品的功能定义抵达,对产品使用的工艺、功耗、面积、性能以及代价展开可行性的评估,从而制订适当的设计规划,对于规模相当大的ASIC设计,在这一阶段估计芯片的功耗面积十分艰难。
在这里引进一个ASIC设计中很最重要的概念:区分(Partitioning),在有所不同的设计阶段这个概念都将提及。首先,必需在芯片的Top-1级展开功能区分,Top-1级一般来说可以分成4个大的功能模块,IOPads、边界扫瞄逻辑、核心功能逻辑,以及PLL时钟模块,然后再对核心功能逻辑依据功能更进一步细化。核心功能部分将是RTL编码设计的重点部分,下面就这一部分进行解释。
2.1较好的编码风格 编码风格对芯片的正确性、可读性、可维护性以及综合后芯片的性能、面积都有相当大的影响。大自然,对于编码中遇上的所有问题一一阐释不是一篇论文所能做的,下面只对一些常常遇上的有可能产生错误的地方展开重点解释。
无论从可器重设计的角度还是代码建模不道德与实际芯片的不道德一致性的角度来说,使用工艺独立国家的设计是适当的,一些工程师在编码时有可能中用一些延后单元或者延迟线,来分解一个脉冲来操作者,由于延后单元对温度、电压以及生产工艺脆弱,这些因素的转变也不会转变分解的脉冲的宽度,因此,有可能在建模的时候没问题,或者在某些操作者条件下没问题,而实际芯片工作时或者工作条件转变时芯片就没按照设计目标工作了。 在RTL级编码时应当尽量避免使用例化标准单元门的方式编码,这不仅减少代码的可读性,当使用新的单元库或者新的工艺时,这些代码就必须重复的改动,综合工具也会对这些代码展开逻辑优化。
其他问题如:由于没对所有的条件分支赋值引发潜在的Latch问题、always块中的脆弱列表问题,以及堵塞赋值与非堵塞赋值的自由选择问题很多文献中都提及,就仍然赘述。下面提及一个更容易被忽视的问题,在定义时序块时,有些信号是必须废黜的,有些不必须废黜,如果编码时把它们写出在一个always块中,综合出来的电路就不是我们设想的。对于那些不必须废黜的信号,综合后有可能把废黜信号连到对应的触发器使能末端,这样造成RTL代码和Netlist的不道德不完全一致,而这类问题在形式检验时也不了找到,必须通过大量的门级建模才有可能找到。 ASIC设计应当尽量避免使用Latch作为时序单元,Latch设计潜在的问题,如:如果使能输出末端有Glitch,就不会造成锁存噪声数据。
或者你需要保证数据平稳时间可以撕开使能信号,可你很难确保在使能重开的瞬间D输出末端没Glitch,特别是在在接管总线数据的时候。同时,Latch设计还带给STA和DFT的艰难,而使用触发器的设计,通过Setup/Hold时间的检查附上这些问题。因此,尽管Latch设计有面积、低功耗等方面的优势,由于这些潜在的风险使得设计显得不高效率,因此不引荐用于。 尽量避免把时钟当成信号用于,在RTL检验时会经常出现什么问题,但是,如果在后端设计的时候忽视了对这些点的时钟skew掌控,就不会产生意想不到的结果。
例如: 事例1: 这个代码在RTL级建模时是会有任何问题的,其中潜在的问题再行后面辩论。 2.2实时设计和横跨时钟域数据传输 尽管异步系统有很多优势,如低功耗,也没实时系统中让工程师困惑的时钟产于以及skew问题,但是其简单的各种问候协议,以及异步电路在测试上的艰难,使得实时系统还是数字电路设计的选用。实时设计的一个特点就是所有的时序单元都是对统一的时钟边沿脆弱。要使整个芯片只使用一个时钟并不现实,因此,异步时钟域之间的数据传输以及其中的一些问题将是本节辩论的重点。
一般来说,为了需要更佳的综合和STA,必须对设计展开区分,一般的原则是将异步时钟域之间有数据交换的部分独立国家出来分开处置,其他的模块都在单一的实时时钟域中工作。对于这些模块如何在综合过程中类似处置在下面的章节中辩论,本节主要辩论在代码设计中必须考虑到的问题。 异步时钟之间的亚稳态(Metastability)问题,亚稳态主要是由于被取样数据的变化十分附近取样时钟的边沿引发的,这样接管(取样)触发器的输入就是亚稳态,并在传输过程中收敛而引起逻辑错误,也就是一般来说所说的实时告终。
在实时时钟域中的这种问题是Hold问题,可以通过EDA工具或放入buffer避免,因为EDA工具可以检测到这种问题。那么在异步接管设计中通过两级Flipflop来避免这种有可能经常出现的亚稳态。现在也有工具检测代码中有可能经常出现的亚稳态问题。多位接管掌控信号之间的skew引发的问题如图1,如果其中一位如C2延后小于C1,Ck取样的数据就变为了C2=1,C1=0,如果按照无skew传输的波形是C2rsquo;的样子,应当是00才对。
而skew是不可避免的,有可能是由于C2C1信号的Launch时钟本身的skew引发,也有可能是传输延后引发。对于非常简单的情况,我们可以通过修改逻辑,尽可能让掌控信号是1位宽。而这样的问题某种程度经常出现在多位长的数据接管情况。
这时一般来说引荐用于异步FIFO接管,或者通过问候协议接管。有的系统设计数据交换协议誓约,异步接管过程中,当某个事件再次发生后(如图1中取样到V信号为1后)的1个Cycle后(也可以誓约多个Cycle)数据认同是准确的;也可以避免这种skew问题,但是,这种构建必须后末端设计时确保这些涉及信号的skew会多达誓约的周期,同时发送到方的数据也要保持足够的周期数。如图1中C2”信号,如果skew2>Period(一个CKCycle),则接到V信号一个Cycle后取样数据还是错误的。
2.3废黜策略 废黜信号中最主要的问题是Removal,也就是要确保所有的触发器必需在同一节奏内离开了Reset状态,另外,Reset信号已完成的时刻无法与时钟边沿过于附近,以避免触发器转入亚稳态(Metastability)。实时废黜和异步废黜各有利弊,很难说哪种更加有优势。除了在编码风格时谈到的一个问题,在这里再对两种策略中有可能经常出现的问题展开分析解释。 实时废黜有一个益处就是废黜的时刻再次发生在时钟的边沿,这样可以避免废黜信号的Glitch。
如果是内部生产的Reset信号,就必需确保Reset脉冲有充足的长,最少2个Cycles,需要让时钟取样到。同时,这也是它的缺点,因为它必须一个活动的时钟,在加电时无法对一些电路产生废黜。
另外,综合有可能把实时废黜的逻辑后移到触发器的D输出末端,作为普通的信号处理,由于Reset信号一般来说有传输阻抗和延后,这样处置不会造成DataPath上较长的延后。 异步废黜的仅次于益处就是不必须活动的时钟,对于一些必须加电废黜的电路,如总线,是很适当的;同时,不像实时废黜那样,废黜信号不会被用于D端的输出逻辑,使得整个DataPath十分整洁。如果异步废黜有Glitch有可能使芯片转入废黜状态,这时可以通过两级DFF接管Reset,再行通过tree给废黜触发器用于,这样可以避免输出引发的Glitch,如果设计中有多个时钟域,可以对每个时钟分配两个DFF接管Reset信号。
2.4门控时钟 GatedClock主要的优点在于需要降低功耗面积,也可以修改逻辑从而提升频率。在编码时必须考虑到无Glitch的门控信号设计。
同时,在DFT设计时,由于触发器的时钟是前一级逻辑的输入(其他衍生时钟也有某种程度的问题),为了测试这类触发器,必须为时钟减少一级Mux,在长时间工作模式下,使用衍生时钟,在扫瞄测试时使用长时间的时钟。门控时钟的主要问题经常出现在综合、CTS放入以及STA分析的时候,在后面将展开尤其的分析辩论。
本文关键词:雅博app官网下载,雅博app官网下载最新版V7.24.568,雅博app官网下载(官方)最新下载IOS/安卓版/手机版APP
本文来源:雅博app官网下载-www.rzygrl.com