自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Library介绍(三)

那么,便可以通过k库的方式,通过k factor,便可根据tt_1.2v_25c lib生成tt_1.1v_25c的lib。压摆值(slew)是基于库中指定的测量阈值点,通常是根据转换时间(transition time)来定义的,大多数上一代的库都使用10%和90%作为slew的测量阈值点。那么,如果将tt_1.1v_125c的库k到tt_1.2v_115c时,我们可以知道Δprocess= 0 ,kvolt = -0.042,ktemp = 0.0012。即上文所说的k库的参数(见图6)。

2024-09-30 09:03:33 1383

原创 Library介绍(二)

约束时序弧包括setup timing arc、hold timing arc、recovery timing arc、removal timing arc和width timing arc等。其中,combination timing arc主要分为以下三种类型,正单边(如buffer),负单边(如inverter)和非单边类型,见图1。正单边类型,即input信号由0跳转到1时,output信号也由0跳转至1的情况。负单边类型,即input信号由0跳转到1时,output信号由1跳转至0的情况。

2024-09-29 10:42:51 1265

原创 Library介绍(一)

如果选择match_footpring,那么工具根据需要,可以将相同footprint,且替换和被替换的cell具有相同数量和名字的输入和输出端口。通过set_operating_conditions –library <库文件名>进行设置,表示该design使用了那一个library的参数进行timing、功耗等计算。像buffer的foot print为SCC_BUF(图4),那么工具将SCC_BUF一类的cell都当成同一类型的cell,可以进行swap操作。主要包含了库的版本、日期和注释。

2024-09-27 13:25:41 573

原创 Postmask eco flow – pr工具相关操作(innovus)

一般在进行postmask eco时,我们是不会动到base layer的,所以是不可以引入新的cell,只能使用预留的spare cell来修改电路,因此它进行修改范围比较局限,一般只会对逻辑进行修改,动到的cell较少;当然eco并不是万能的,不是前端想怎么改就怎么改的,毕竟地方就那么点,想大改功能,仿佛是天方夜谭,这个时候需要我们后端工程师与他们进行battle了,不过也得配合他们去不断改进eco方案(这个过程相当痛苦,小编刚经历过。e. 指定绕线层次,进行ecoRoute。

2024-09-26 13:13:43 1126

原创 跑lvs出现soft connect怎么处理?

如果有soft connect的话,lvs是没法pass的,会发现很多一堆std cell连接了错误的ground信号。那么这个时候,如果设计中涉及2个以上ground时,便可以往这个方向来debug。这里小编提供2种解决方法。第一种,按照图1所示,如果VSS和AVSS最终就是要接到一起的。为了过lvs,可以在VSS或者AVSS下方打上PSUB2,将这两个net的soft connect断开,如图2所示。如图1所示,VSS和AVSS都接到了p+上,它们通过psub便有了soft connect。

2024-09-24 13:58:14 951

原创 viewict小工具使用

上图是ict文件对alpa这一层的描述,里面包含了min_space,min_width,height,thickness,方块电阻等信息。本文给大家介绍一个小工具,能够将ict文件图形化显示的方法。如上图,可以很直观地看到不同金属的厚度,如顶层的alpa_inter为厚金属,可以很明显地看出其厚度要远大于其他金属层的厚度。工程师,本身对编程方面比较感兴趣,在数字后端的脚本、flow上比较擅长,可以为大家提供答疑咨询服务。工具便可以根据ict里面的信息产生qrcTechfile。#小编是一个入行多年的。

2024-09-23 13:19:41 826

原创 Innovus跑到中途想要更换library怎么办?

其实,每次保存的innovus database里面都有专门存放这些数据的文件。有的小伙伴在跑innovus时,可能会碰到library更新等问题。但此时,place已经跑完了,又不想重新跑,怎么办呢?比如,我们要更新一下lib文件,那么可以到对应的dat文件下的viewDefinition.tcl,去更新一下相应文件。工程师,本身对编程方面比较感兴趣,在数字后端的脚本、flow上比较擅长,可以为大家提供答疑咨询服务。另外,像一些global的设置,都放在*.globals文件下。#小编是一个入行多年的。

2024-09-19 13:20:30 842

原创 综合时如何计算net delay?

那么,根据上述计算方法,假设一个buffer后面drive了5个cell,那么fanout就是5,根据查找表便可以计算得到net长度为3.5,电阻为3.5*2=7,电容为3.5*1=3.5,面积为0.02*3.5=0.07。有了上面的计算值,也便得到了net的RC。一般,互连线的连接结构有以下三种模型,为了方便理解,图中红色的线代表的net其含有RC,黑色的线的R&C为0。top:该模式下,所有hierarchy下的net都应采用top module下的wire load model,具体如图4所示。

2024-09-18 10:04:12 1590

原创 clock gate为什么不直接使用与门来搭建?

小编想说的是,方案是是可行的。enable1在latch高电平产生的glitch都会被过滤掉,而enable1在latch低电平产生的glitch虽然能经过latch到达enable2处,但是此时由于AND是高电平生效,所以enable2的glitch依然传达不到output clock中。因此,通过这个设计,就可以规避掉glitch的问题。另外,由于AND是在高电平生效的,如果此时enable信号有glitch,那么便会导致output clock也会产生glitch,而这是不被允许的,会导致电路失效。

2024-09-14 15:56:21 1022

原创 Clock Tree为什么要用inverter进行生长?

根据clock定义,我们可以获得clock的波形图如下,其为一个周期为10ns,上升沿分别在0ns、10ns,下降沿在5ns的一个clock。知道了脉宽的概念,那么为什么会有最小脉宽的问题呢?如果,我们采用特殊的clock buffer,foundry会特地将pmos做大一些,确保pmos导通速度和nmos一致,那么也可以做到clock信号经过ck buffer后脉宽不发生改变。我们知道,clock信号有最小脉宽的要求,当clock信号无法满足最小脉宽时,其便不能够准确地发出信号了。

2024-09-13 15:28:39 555

原创 为什么先进工艺需要check那么多corner?

那么hold slack = launch clock path delay + data path delay - capture_clock_path_delay = -capture_clock_path_delay,也就是说,capture clock path delay越大,hold越难满足。而且,我们在设计的时候,一般clock频率都会过约,所以是有较大的margin的。有的foundry还会对rc的取值范围进行了约束,如cworst_T,采用的是1.5 sigma的取值范围。

2024-09-12 15:26:29 769

原创 如何通过插值法计算cell delay?

插值法的公式:Z = A + B * X + C * Y + D * X * Y,其中X为input transition,Y为output load,A、B、C、D为四个参数,Z为delay值。从而得到Z=-0.086176 + 11.5493 * x + 0.65917 * y - 24.859 * x * y,当X=0.014930、Y=0.296311时,得到Z=0.1716ns。从而得到A = 0.08075,B = 3.47539,C = 0.04008,D = 0.01648。

2024-09-11 13:55:45 456

原创 有关Latch借timing问题讲解

但如果发生了time borrow情况时,如图2所示,假设reg1到latch的setup存在了1ns的time borrow情况,意味着latch到reg2的data信号便晚了1ns。对于setup来说,如果没有time borrow的情况时,其与DFF情况是一致的。可以看到,没有time borrow时,hold check不再是同沿check,这是因为latch是高电平触发,信号稳定传输要等到高电平时间结束后,为了确保信号能够正确传输,下一级信号传输一定要在高电平结束之后才能到达。

2024-09-10 14:48:20 666

原创 跑pt时出现net反标不上怎么办?

那有的时候,小伙伴也会碰到以上三种情况都没出现的情况下,依然会出现net反标不上的问题。但是,如果def上来看,由于出了2个相同的pin,那么net其实也被分成了2部分。如果一定要出2个相同的pin时,也要在模拟ip的lef时,将这两个pin的shape连接在一起(见图3)。在抽rc的时候,该net就没与rc值,那么在跑pt时就会导致net反标不上的问题。有的小伙伴可能比较粗心,网表和def拿的不是一个版本的,这就导致了网表和def的net数量不一致的情况,从而导致了pt反标率不是100%。

2024-09-09 16:09:20 966

原创 Shrink工艺当中的“坑”你知道吗?

对于QRC工具,如果qrc.cmd文件中设置了scale factor,qrctechfile也包含了scale factor 0.9,那么运行QRC的时候,工具会报错。而在STARRC中,如果cmd file设置了scale factor 0.9,而nxtgrd也包含scale factor 0.9,那么starrc会将scale factor设置为0.9*0.9=0.81。#小编是一个入行多年的数字后端工程师,本身对编程方面比较感兴趣,在数字后端的脚本、flow上比较擅长,可以为大家提供答疑咨询服务。

2024-09-08 10:57:15 513

原创 浅谈芯片制造过程中的天线效应

本文主要介绍了芯片制造过程中的天线效应以及如何在芯片设计过程中规避这类问题。

2024-09-03 15:52:35 710

原创 综合后的sdc能够直接进行APR吗?

本文提供了解决数字APR所需要用到的sdc的处理方法。

2024-09-03 10:11:58 281

原创 Cell delay有的时候为什么是负值?

因此,在数字后端脚本、flow上比较擅长,大家如果有相关的问题,可以提供答疑咨询服务。假设一个信号,经过buffer以后,其信号delay值得计算方法如图1所示,其delay值由input信号上升沿50%处至output信号上升沿50%的delay值。那么,为了搞清楚这个问题,我们先看一下cell delay是如何定义的?在我们常规的理解中认为,一个信号经过一个标准单元后,必然会有一个delay。那么,假设如图2这种特殊的情况,即input信号上升沿特别大,便有可能出现cell delay。

2024-09-02 13:18:12 290

原创 为什么reg2cgate的setup难以满足?

从图上我们可以看出,clock gate的clock latency是delay1,reg1的clock latency是delay1+delay2,可以明显的看出,reg2cgate的setup,其launch clock path delay天生是要比capture clock path delay要多delay2的,因此其setup相对于reg2reg是不好满足的。因此,在数字后端脚本、flow上比较擅长,大家如果有相关的问题,可以提供答疑咨询服务。因此,能够让我们去处理的就是delay2的值。

2024-08-31 10:33:17 552

原创 为什么innovus跑出来的timing结果和pt有时会相差很大?

本文旨在讲解innovus的timing为什么和pt的timing相差很大。

2024-08-30 14:02:54 843

原创 网表里面是否需要带上tie cell?

另外,在没有tie cell的网表中,我们其实可以看到,某些cell的pin需要接tie high,在网表中是用1'b1标识,而需要接tie low的cell,在网表中是用1'b0去表示的。很多小伙伴在进行PR的时候,发现前端在综合的时候已经将tie cell加好了,到后端APR的时候发现,有些tie cell距离目标cell距离过远,或者被tie cell drive的cell过多。因此,我们在拿到网表以后,需要对网表进行相关检查,其中就是在网表中搜一下是否存在相关的tie cell。

2024-08-29 16:02:03 433

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除