自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数字后端小白学习日志----LVS(持续更新版本-已更新至5月21)

Load Runset File窗口是来调用运行LVS的基本设置文件的,该文件主要记录的是Rule文件的位置,程序运行以及结果保存的位置。第三步:Verification --> Run nmLVS,就打开了LVS的GUI操作界面(同方式一的结果一样)第二步:File-->Open Layout Files,然后把Merge之后的GDS文件加进去即可。---05/13 此处只是介绍了calibre的启动以及很简单的介绍,本文将持续更新。Outputs:设置输出的LVS文件。

2024-05-13 22:26:55 2981

原创 数字后端小白学习日志----DRC(持续更新版本-已更新至5月13)

第三步:Verification --> Run nmDRC,就打开了DRC的GUI操作界面(同方式一的结果一样)第二步:File-->Open Layout Files,然后把Merge之后的GDS文件加进去即可。---05/13 此处只是介绍了calibre的启动以很简单的介绍,本文将持续更新。Run_Control:设置一些DRC的控制选项。Transcript:DRC检查过程的log显示。Outputs:设置输出的DRC文件。Inputs:设置输入的GDS文件。Run DRC:运行DRC检查。

2024-05-13 22:16:30 744

原创 SPC28NHKCPD18RNP

只是简单的介绍 “ SPC28NHKCPD18RNP ” 的含义。28HCKP:代表28nm Logic HKC Plus 工艺。P:代表DUP(Device Under pad)SP:代表 SMIC PAD。D18:代表1.8V电压。R:代表regular。N:代表Narrow。

2024-07-21 10:51:49 191

原创 GPIO Pre-Driver Power

在不需要高驱动能力时,Pre-driver可以工作在低功耗模式,从而节省能量。在需要高驱动能力时,pre-driver可以提供足够的电流和电压。Pre-driver可以帮助减少信号传输中的延迟,从而提高GPIO信号的切换速度和响应时间,这在快速切换和高频操作的应用中尤为重要。重点是GPIO Pre-Driver Power和GPIO Pre-Driver Ground有什么区别于其他四个的作用?pre-driver阶段可以帮助稳定电源供应,减少因电源波动或噪声引起的信号干扰,从而提高GPIO操作的可靠性。

2024-07-21 10:37:49 281

原创 数字IC后端小白学习日志---009 day(05脚本与实战-clock)

断更很久,最近两天把这个项目剩余的给补上。剩下的脚本可以理解为主要是给工具一些约束,或者进行一些设置,目的是来告诉工具,工具应该怎样做。place之后所有的Stdcell都已经摆放好了,Timing做了一轮的优化,但是Place之后的Timing有个重要的特点:clock tree的Timing是ideal的,也就是理想的clock tree(clock tree上的delay还都是0)。这就导致了所有的clock之间是没有skew的,也就是clock之间没有delay。

2024-07-05 11:52:05 1357 1

原创 11 bound

而group bound没有固定的区域。exclusive bound:工具必须将std cell摆放到bound区域内,而且该区域不可以摆放别的std cell,可以认为该区域“不可以进入,不可以出去”hard bound:工具必须将std cell摆放到bound区域内,但该区域可以摆放别的std cell,可以认为该区域“可以进入,不可以出去”soft bound:工具会尽可能将std cell摆放到bound区域内,但也可能摆放到外面,可以认为该区域“可以阱,可以出”

2024-06-06 15:19:30 274

原创 timing_sense的意思

如果数据信号在上升沿到来时发生变化,则称为“positive timing_sense”,如果数据信号在下降沿到来时发生变化,则称为“negative timing_sense”时序逻辑电路中的时序关系非常重要,因此不同的时序关系可以导致不同的电路行为和时序问题,如时序噪声和时序冲突等,因此,在数字电路设计中,需要非常小心地定义和分析时序关系,以确保电路的正确性和稳定性。“timing_sense”是一个数字电路设计中的术语,指的是时序逻辑电路中的时序关系。

2024-06-06 14:08:27 212

原创 静态时序分析(Static Timing Analysis)--- 05 STA Environment

实际就是指定约束,只有这个约束建立的正确、精确,这样才能去指导静态时序分析,对Design做一个正确的检查,这样才能确定建立时间和保持时间是否满足需求。若给一个不太准确的约束,那么做STA的时候,有可能结果不对。准备找个环境需要的东西:时钟建立好,IO的约束指定好,还有关于时序路径的一些特殊的约束。STA针对的是同步电路,对异步电路是无能为力的。

2024-06-05 21:09:50 1104

原创 静态时序分析(Static Timing Analysis)--- 04 Standard Cell Library

对应于流程图里面红色框的部分:先给出一个库的模型,库的模型一般有两种格式:db和lib。其中lib可以打开看,db则不能。他们的内容是一样的,只是格式不同。dalay_model : table_lookup 查找表的形式、给出时间的单位ns、电压的单位v、电流的单位uA、电容、功耗的单位......

2024-06-05 18:47:07 910

原创 静态时序分析(Static Timing Analysis)--- 03 PrimeTime And STA Concepts

对于跨时钟域的设计,只能去定义一些约束的路径,并且告诉工具不用去检查这些路径的Setup 和 Hold的。静态时序分析会把电路划分为不同的时序路径,然后对每条路径的建立时间和保持时间进行检查,看是否符合我们要求的约束。对path4来讲,startpoint是A(input port)对path2来讲,endpoint是D触发器的D端(pin)一条路径有起点(startpoint)和终点(endpoint)上图中对path1来讲,endpoint是D触发器的D端(pin)(1)D触发器的D端(pin)

2024-06-05 16:52:57 869

原创 静态时序分析(Static Timing Analysis)---02 Tcl

TCL解释器运用规则把命令分成一个个独立的单词,同时进行必要的置换TCL置换分为以下三类:变量置换$命令置换[ ]反斜杠置换 \$表示变量置换:TCL解释器会将认为$后面为变量名,将变量置换成它的值[ ] 表示命令置换:[ ] 内是一个独立的TCL语句\ 表示反斜杠置换:换行符、空格、[ 、$等被TCL解释器当作特殊符号对待的字符,加上反斜杠后变成普通字符\t 表示TAB\n 表示换行符“ ” TCL解释器对双引号中的$和[ ]符号会进行变量置换和命令置换(如下图输出为2.5)

2024-06-05 14:44:51 947

原创 静态时序分析(Static Timing Analysis)---01 概述

静态时序分析:是为了确认每个触发器的setup time和hold time,以确保每个触发器都能够正确的采样。不关心功能,只关心触发器能否正确采样。所以就不需要测试向量。Setup Time:时钟上升沿之前数据需要保持稳定的时间。Hold Time:时钟上升沿之后数据需要保持稳定的时间。静态时序分析常用的工具:PT。

2024-06-04 19:20:39 256

原创 在virtuoso中集成Calibre

在calibre里面Run 完DRC后,为了更方便的修DRC,我们要在Virtuoso上利用Calibre--star RVE去版图上定位出现DRC的地方,这就需要我们把calibre集成到virtuoso里面。以上两步之后,就完成了calibre的集成,至于原理,我也不是很懂,但是这样的做法亲试有效。我们需要rename为“.cdsinit”对.cdsinit文件修改后,还需要在home下创建一个.cdsinit。红色方框就是我们新增的内容,此处注意注释符是;把calibre.OA.skl读进去。

2024-06-03 20:47:22 569

原创 使用Calibre的GUI界面检查DRC

--在Virtuoso/Calibredrv中启动Calibre DRC读取Virtuoso/Calibredrv中的版图和Rules里面的规则文件---直接输入calibre -gui启动读取Inputs里面的gds文件和Rules里面的规则文件---命令行运行Calibre DRCcalibre -64 -的人才-hier -turbo_all -hyper -nowait$(DRC_RULE_CP)

2024-06-03 11:21:42 1425

原创 如何查看DRC的问题

Rule File Pathname:后面跟的就是我们做DRC的Design Rule的路径,告诉我们检查的规则是什么。先去.drc文件里面查看,搜索以下内容(注意此处是_,而Design Rule里面是“.”)到此处我们就通过REV,.drc文件,Design Rule文件定位到了DRC的问题。然后后面的话什么意思呢?我们再去Design Rule里面看,搜索AA.7A。蓝色框里面的就是展现在RVE里面的内容。后续就需要开始解决DRC的问题。首先我们看这部分内容。

2024-05-29 22:13:08 434

原创 DRC规则解读

然后通过命令语句检查是否有出现N阱小于2.5,并且检查...(命令语句的内容)。在.drc里面,以NW_2为例,若NW_2的间距小于0.24um,在RVE上就会显示@后面的内容,即NW 是pace >= 0.24um。//ABOUT

2024-05-29 21:46:24 983

原创 数字IC后端小白学习日志---008 day(DRC相关)

最近由于考试、项目以及个人原因的一些事情停更了一段时间,后面可能等到6月中旬才能恢复每日一更。

2024-05-29 16:54:12 1147

原创 好的文章汇总--(持续更新版)

这篇文章目的在于把CSDN上见到的好的文章进行汇总,方便随时查看。

2024-05-22 19:36:34 198

原创 Hold为什么在CTS之后才用

因为在CTS之前我们需要的是先保证信号的传输,在CTS后时钟树建立成功,才有了信号的先后到达的问题,所以此时才有Hold问题。

2024-05-22 19:16:42 221

原创 电源网络的结构及设计原则

若设计中只有std cell,没有各种IP和Macro,那我们最终的目的是把电供给std cell。所以,整个powerplan的设计就是如何设计一套供电强壮的供电网络,确保外面进来的电能够充足,足压地供给std cell。这个供电网络在物理实现是用金属层metal来搭建的,而metal本身有电阻存在,所以外界供电进来的电,经过供电网络的传输后会有一定的电压降。所以,我们的目标就是确保外面的供电到达每一个std cell的电压还是足够的高,这样才能保证std cell的速度和正常工作。

2024-05-22 18:46:52 287

原创 10 Black Box

在物理设计中,Black Box类似于一个Hard Macro,它内部的东西完全看不见,只是一个黑盒子,但又类似于一个Module Biundary。它可以被改变形状,也可以被分配pin和被分割出去(partition)。如下图所,灰色形状的就是Black Box。Black Box的作用是什么呢?其实Black Box是一种较为粗糙的模型,由于它看不见里面的东西,这样的结构使得它做任何的implementation速度都很快,只不过精度较低。Black Box的中文名字应该都很熟悉--黑盒子。

2024-05-22 17:27:42 235

原创 数字IC后端小白学习日志---007 day(04脚本与实战-place)

脚本与实战系列断更了几天,今天来补上一篇。04脚本--placeopt.tcl正如脚本的名字那样,这是std cell的摆放。同样的,先展示一下运行脚本后的结果。然后细看一下std cell的摆放看到这些有动力了吗?有动力了就来学习吧还是一项一项分析。

2024-05-22 16:44:22 1903

原创 08 Placement Blockage

如果设定了block百分比值是40%,就说明该区域至少会block40%的Instance,也就是说该区域最多允许摆放60%的Instance,值得注意的是Partial blockage也只是在placement阶段起作用。约束最严格的blockage,该区域范围内,place,optimize,CTS等任何阶段都不能摆放Instance。该区域内,在placement阶段不允许摆放Instance,但是在Optimize阶段允许摆放Instance。今天要说的是Placement Blockage。

2024-05-21 17:27:56 459

原创 数字IC后端小白学习日志---006 day (分析Debug lVS的错误的步骤)

对数字电路而言,应该保证在PR工具中LVS是通过的(假错可忽略),先将短路,开路等问题在PR工具中解决,然后再导入Calibre中做LVS,否则再Calibre中做LVS的意义也不太大,因为肯定是不通过的。看下图Instance的数目,在Layout和Source中,发现同一个Instance,如果是小写,就在Layout里面有,Source里面没有,如果是大写,就在Soure里面有,Layout里面没有。对于PR工具中的短路问题,如果短路少的话,直接将短路的Net给delete掉,重新用ECO进行绕线。

2024-05-21 16:45:48 693

原创 数字IC后端小白学习日志---006 day(LVS的注意事项与Tapless工艺)

LVS规则文件中的层次设置,区分大小写版图的Merge,打LabelH-Cell文件的正确性LVS网表的修改、Include子网表(std cell的、IO的、macro的...)、声明电源地端口。

2024-05-21 15:51:39 770

原创 数字IC后端小白学习日志---006 day(实战Lab-解决Short问题)

同样的,拿到了Lab的压缩文件然后输入命令 tar -zxvf file_name进行解压解压后,先进入lab9a去看看里面有什么东西。

2024-05-21 15:50:19 1507

原创 07 FinFET Grid

Fin是鱼鳍的意思,FinFET命名是根据晶体管的形状与鱼鳍的相似性。简单的来说,是一种新型的3D多闸道晶体管,采用FinFET设计技术,可以很大的提高芯片处理速度以及大幅度降低功耗,这在当今注重低功耗设计手机芯片中尤为重要,FinFET技术是推动芯片走向16/14nm的重要节点。下面来介绍FinFET grid概念,这是对应于Floorplan中对应于FinFET引入的网格单元,在FinFET的设计中,所有元件(包括macro)都要对齐到FinFET grid上。

2024-05-20 20:54:40 385

原创 数字IC后端小白学习日志---005 day(LVS的Lab实战流程)

首先我们拿到了Lab的.tar.gz文件对于.tar.gz文件我们需要使用命令“tar -zxvf”进行解压进入lab6a文件,发现有如下的内容:Lab资源有了,那就开始吧:选择Rules文件然后选择运行LVS的路径(calibre-signoff-lvs)总的Inputs设置如下:以此进行解析:选择Hierarchical mode,Layout从实图里面去抽取,所以勾选-Export from layout viewer然后netlist选择lab提供的已经通过v2lv

2024-05-20 20:28:24 1209 1

原创 通过H-Cells Analysis自动生成H-Cells文件

有时候,在我们做LVS的情况下,可能想通过add H-Cells文件来加快LVS的速度,但是当没有H-Cells的情况下,该如何生成呢?先点击Match cells by name,然后点击H-Cells Analysis。弹出H-Cells Analysis Options。我们选择默认的阈值,点击OK。这样就自动生成了hcells文件并且能够add 进去。(一)H-Cells Analysis。运行后点击Save H-Cells。发现有hcells文件,点击OK。发现此处已经勾选上了。

2024-05-20 20:16:16 320

原创 数字IC后端小白学习日志---005 day(LVS的实战演示流程)

理论的部分请看中5月20日及之前的部分。当然此处的内容并非自己做的,而是对资料的总结,应该最近会使用一个真实的Lab进行完全流程的LVS,请后续观看。

2024-05-20 17:15:30 1605

原创 06 Std cell

Standard cell,标准单元。是设计中最基本的逻辑单元,是基本门和简单逻辑电路。平时用到的buffer,inverter,register等都属于标准单元。Std cell的时序信息记录在“.lib”文件中,物理信息记录在“.lef”文件中。INVX12_F_CSC28SL是cell名字, U28是例化后的名字。下面是Std cell在软件中的样子,它们被放在Row上。

2024-05-17 15:07:18 419

原创 05 Macro

硬核就是我们最常见的Hard Macro,包括Memory,PLL等各种IP,他的逻辑在自己本身已经集成好了。而软核就是包含逻辑的一层hierarchy,通常是PR好的partition。Macro也就是宏单元,我们通常把macro分为硬核(Hard Macro)和软核(Soft Macro)。Macro有自己独有的lef,里面会定义它的形状以及pin的位置等等信息。Macro的位置,在PR中很重要,决定了设计时序的收敛与否。

2024-05-17 15:02:00 299

原创 数字IC后端小白学习日志---004 day(流程2---Floorplan&powerplan详细解读)

Floorplan的工作就是摆放macro和port。Powerplan的工作就是创建为标准单元和macro供电的网络,其目的是让所有的device都能用一个正常工作的电压。所以在此40nm的porject中,我们用Metal1打power rail,然后用Metal8,Metal9打Power stripe,然后通过Via连接到rail。因为工具摆放macro的位置是随机的,而且对于block level的io port的摆放位置是顶层早已固定好的,不能随意摆放,否则无法与top连接起来。

2024-05-17 08:30:00 751

原创 04 Track

Direction代表的是这层Metal prefer的走线方向,对每层track,分为pref track和non pref track。Pitch 就是每条track之间的距离,为什么有两个数值,因为第一个是对垂直方向的track(non pref track)而言的,第二个是对水平方向的track(pref track)而言的。(此处需要注意的地方:垂直方向的track,就是direction是vertical,方向是垂直的,那么它们的pitch是横着的间距。我们先来看Metal1的track。

2024-05-16 16:54:16 370

原创 physical only cell(Well Tap,Endcap,Decap)介绍

如果在电源的power和Ground之间接入一个大小适当的capacitor,利用capacitor隔直通交的特性,可以平缓电源电压的波动。今天就来简单的介绍一下。当然还有一些单元也是充当类似于physical only单元的作用,他的输入连接到TIEHI TIELOW,不需要的时候仅仅充当一些纯粹的物理单元,只有用的时候才成为正式的标准单元。总结来说,PSE和OSE是与晶体管边缘和间距相关的制造效应,添加endcap cells的主要目的是缓解这些效应对电路的负面影响,确保电路性能和可靠性。

2024-05-16 14:47:05 1652

原创 09 Row

一般来说,SITE的类别通常分为core和pad,正如我们截取的部分,它们分别对应着std cell的row和io cell的row。SIZE则是定义site的宽度,BY则是高度,因为site定义的是最小的布局单元,所以std cell都是site的整数倍高度,宽度。一下子说了好几个内容:site,row,std cell。这是最常见的Row,实际的design当中,还存在一些其他种类的Row,例如double height,trible height的Row,用来摆放两倍高,三倍高的cell。

2024-05-16 11:49:09 975

原创 数字IC后端小白学习日志---003 day(流程1---initial design详细解读)

后端工程师拿到综合后的netlist和constraint后,就需要把设计的netlist和constraint读进来,并创建到一个database中去,因为工具保存数据都是有自己的一套library管理方式,方便存储设计相关的东西。这里的netlist就是一个设计的电路图,只不过以网表的形式呈现出来。constraint是设计的约束文件,这个文件告诉工具timing相关的spec需求,让工具基于这样的约束进行优化。其主要包括:定义设计中每个寄存器的时钟工作频率。

2024-05-16 08:30:00 340

原创 IO内的FP,FPB环是指什么

2024-05-15 20:21:30 508

原创 数字IC后端小白学习日志---002 day(LVS的Question)

数字后端做LVS的时候,比较的是PR后的门级网表和merge后的版图,那么既然都是PR后由工具导出的,为什么会存在LVS的错误呢?

2024-05-15 17:54:41 162

原创 后端设计中涉及的几种Netlist

下图是从RTL代码到门级网表的过程,这个过程的工作是综合的事情,所以也叫做逻辑综合。即把设计的代码转换成基于foundary标准单元库中各种标准单元的一个电路图。因为netlist本质就是一个逻辑电路图,只不过呈现出来的形式是门级网表netlist。

2024-05-15 16:30:41 655

40nm-project

这是该project的相关资源,大家可下载后自行学习。

2024-05-13

空空如也

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

TA关注的人

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