blog lists

2019/04/15 script FCTViewer

FCTViewer是笔者最近完成的一个小工具,它的可以用来分析full chip floorplan和full chip timing(flatten STA)。 ......

2018/07/15 script Array VS Dict in Tcl

Tcl8.5开始引入了dict,dict与array类似,都是处理键值对;但它们又有明显的差异。Tcl Array虽然译为数组,但它其实不是数组,它存储的是变量;Tcl dict可被视为Tcl list,它存储的是值。 Tcl arrays are collections of variables; Tcl dicts are pure values. ......

2018/05/23 script quick search for multi cells in def file

目前参与一个GPU项目,芯片很大,划分成了100+个block。项目中我需要找到这些block内的某些flatten cell的location信息,这就要求我去def file里找到这些cell。每个block的基本都是大于1million的instance,def file 其实还是挺大的。 首先把所有这些cell分开到每个block,reused block 里需要uniq一下; 比如,处理后将他们分到n个不同block,每个block又m=f(n)个cell,n个cell name存进dict。对于n个文件,每个里找到m行,如果每次open一个文件,按照顺序依次找到其中一行,然后return,那么时间复杂度会很大,O(mn),这是很浪费时间的。 ......

2018/03/30 STA Virtual Clock

1. What is virtual clock Virtual Clock: 没有定义时钟源的时钟 Real Clock: 定义了时钟源的时钟。 ......

2018/03/06 verification hierarchical verification

IC设计中,到处都有top-down和bottom-up的思想,在formal verification里也同样存在。Formality默认就是使用top-down + bottom-up相结合的策略来做形式验证。 ......

2017/12/10 java save library info into json

Library(.lib)里一种可读文本格式,它定义了这个逻辑库的特征和所包含的逻辑单元。如下图,它的内容格式必须满足一定的格式,上部分为库的基本特征,包括lib name,operating condition,voltage map,wire load model,timing/power/niose template definitions等; 下部分为该库所包含的所有cell,包括cell的function/timing/power/noise等详细信息。 ......

2017/11/22 STA Debug PrimeTime Crash Issue In A Restored Session

之前一直用的是2015版本的PrimeTime,最近项目中有path margin约束,需要更新到2016.12sp1版本的PrimeTime。使用该版本时,由于软件feature变化,一直碰到crash的问题,最近才终于发现根源。 ......

2017/11/08 STA understanding ITF

后端设计中,我们需要知道每条net的RC值来计算timing,RC由process直接决定,不同的导体/绝缘体材料、金属宽度/厚度/间距、制造过程中的光刻/刻蚀/抛光等引起的工艺偏差、工作温度等因素都会导致RC变化。 Foundary会考虑制造过程中的种种因素,建立RC模型,来提供给后端;后端根据此模型,抽取计算得到整条net的RC,继而得出net timing。 Foundary提供的process RC有三种格式:itf,TLU+,nxtgrd;三者可以通过Starrc相互转换。 ......

2017/11/06 STA understanding SPEF

SPEF(Standard Parasitic Exchange Format)是一种IEEE标准,包含着线上的寄生电阻、电容、电感等信息。SPEF是ASCII格式,可读的。PR后,要抽取spef,在STA工具里反标net上的RC,再配合db里std cell的RC,通过完整的RC才能计算得到准确的timing。 反标RC过程中,经常会出现warning、error等信息,这时我们就需要debug spef。所以,我们有必要了解SPEF的语法格式。 ......

2017/10/25 STA NLDM vs. CCS

随着工艺节点下降,一些负面效应在advanced node下越来越明显,这些效应也使传统的NLDM model越来越不精确。Synopsys提出了Composite Current Source(CCS),CCS是基于电流源模型,集timing/power/noise于一体,精确度更高,与SPICE的误差可以达到±2%。 ......

2017/10/02 STA Clock Gating Check

Clock gating check是一种常见的时序检查,当gating signal控制clock signal时,其跳变必须满足时序要求以得到想要的gated clock。最常见的gating check发生在ICG cell上。ICG是常见的low power解决方案,通过在clock tree上插入ICG cell,来减少ICG后面clock buffer/register的不必要跳变,从而起到降低功耗的目的。其实,只要是多输入逻辑cell,只要满足两个条件,都需要做gating check。 ......

2017/09/15 verification hard verification by bad RLT coding style

最近项目中碰到一个hard verification,有11个点inconclusive,属于同一个module下。由于RTL是加密的,无法获知这个module的内容,这也给debug带来了一定麻烦。 ......

2017/08/31 PR Control NDM unexpected pin shapes

从ICC2开始, synopsys 为了提高PR工具的速度,引入了一种新格式的库,即NDM(new data model)。NDM 其实就是将logic info 和 physical info合成到一起,NDM有4种view: layout view design view frame view timing view 使用ICC2 library manger 生成NDM时,physical lib 是必须的,可以为lef、gds、oasis、ICC frame,常用的是lef/gds。使用lef时,比较方便,因为lef里含有design info,如site name,cell type,pin direction 等信息(site name有时会需要转成与tech lef一致,read_lef -convert_sites);而使用gds/oasis时,就比较麻烦,这是因为,gds里只有一层层的metal,site name/cell type 这些信息需要用户根据实际指定(marco,pad,corner,filler,cover…), pin name可以从通过trace text得到,而pin direction 则必须从timing lib得到。 ......

2017/08/23 verification How to pass formal check

Formality Formality® is an equivalence-checking (EC) solution that uses formal, static techniques to determine if two versions of a design are functionally equivalent. ......

2017/07/26 杂谈 Hello World

第0篇blog,当然是献给Hello World. ......