数字IC
文章平均质量分 73
bendandawugui
不积跬步无以至千里
展开
-
ARM架构和x86架构有什么区别?
在数据中心需求增长的趋势下,核心芯片的角逐越演越烈,ARM已经进军服务器市场,ARM单核的面积仅为x86核的1/7,同样芯片尺寸下可以继承更多核心数,通过“堆核”的方式,使得ARM架构处理器在性能快速提升下,也能保持较低的功耗,根据Ampere给出的数据,其CPU的性能超越传统X86处理器的3倍,性能功耗比领先近4倍,与X86服务器相比,Ampere Altra系列可用50%的功耗提供200%的性能。x86主要追求性能,但是会导致功耗大,不节能,而arm则是追求节能,低功耗,但是和X86相比性能较差。转载 2023-03-05 23:20:29 · 4741 阅读 · 1 评论 -
pt_session流程
source -e -v xxx.sdc > *xxx.log //将source sdc后的log保存在xxx.log中。在从后端拿到pt_session的前提下,确认sdc或者cdc_sdc是否有语法问题等,完成脚本的快速迭代,确保前端交付质量。3:如果需要重新source sdc 需要清除之前的sdc后再重新source。1:在指定的服务器上启动PT,使用可用的版本,打开pt_shell。restore_session [后端session]2:读取session(由后端提供)原创 2023-02-02 19:15:21 · 2302 阅读 · 0 评论 -
STA的影响因素——PVT
在STA星球,用Library PVT RC corner跟OCV来模拟这些不可控的随机因素,在每个工艺结点,通过大量的建模跟实测,针对每个工具的工艺,foundary厂都会提供一张推荐的timingsignoff表格,建议需要signoff的corner以及各个corner需要设置的OCV跟margin,这些corner能保证大部分芯片可以承受温度电压跟工艺偏差,一个corner = libraryPVT + RC corner + OCV 本文将关注于library PVT。转载 2023-01-14 22:41:35 · 957 阅读 · 0 评论 -
DFT知识点扫盲——DFT概览
DFT (Design for Test) :可测试性是一种设计属性,创建程序以全面衡量制造设计质量的难易程度,简单理解DFT即架在设计和ATE测时间的一道桥梁。传统芯片设计中,设计和测试过程是分开的,只在设计周期结束时才考虑测试。但随着市场竞争的激烈化,为了缩短产品上市时间,现代设计中,测试更早融入设计流程,在设计阶段即会考虑DFT流程。可测试电路既可控制又可观察。可测试的设计中, 主输入上设置特定值,主输出上的值指示内部电路是否正常工作。转载 2023-01-09 23:41:52 · 3137 阅读 · 0 评论 -
DFT知识点扫盲——DFT scan chain
实际在项目中synccell一般直接上ULVT,既然是SDF,就是带Scan接口的DFF,SN (set negtive)是低置位,RP(reset positive)是高复位,既没有SN也没有RP的就是无复位寄存器。1:定义:满足可测试性设计(DFT),将设计中所有的触发器连接到一条或者若干条链上,称为scan chain,将一个复杂的时序电路转换为简单的组合电路进行测试,这一步是在逻辑综合(DC)中实现。当SE=1当SI=1时,电路进入scan状态,当SI=0时,电路工作在normal状态。原创 2023-01-08 22:56:03 · 2357 阅读 · 0 评论 -
数字后端知识点扫盲——OCV(下)
目前在尖端工艺中,POCV和LVF都在渐渐普及,如果有在做相关项目的童鞋,希望借此机会好好注意项目中是如何使用它们的,这将有助于我们深入理解它们的应用。我们可以看出来,这种形式很像liberty文件中的delay查找表,在这里,POCV的coefficient同样是一个基于slew-load的表格。如果在.lib中提供了sigma的数值,则可以通过公式(1)算出,如果通过read_aocvm读取的POCV的参数文件(包含参数C),则可以通过公式(2)算出,这种通过给定的。转载 2023-01-08 15:06:05 · 1122 阅读 · 0 评论 -
数字IC后端知识扫盲——OCV(上)
芯片在实际生产中,同一片晶圆上的不同区域的芯片,因为各种外部条件和生产条件的变化(variation)比如:工艺*(process),电压(Voltage),温度(Temperature),可能会产生不同的误差从而导致同一块晶圆上某些区域上的芯片里的晶体管整体速度变快或变慢,因此有了corner的概念,与此同时,在同一块芯片上的不同区域,也会因为上述因素而有进一步的差异(variation),因此产生了OCV(On chip Variation)的概念。可以看出对于不同的depth,有不同的table值。转载 2023-01-08 14:41:36 · 2018 阅读 · 0 评论 -
数字后端知识点扫盲——CTS(下)
对于出现这种情况的原因,可能是CTS的SDC定义有遗漏,也有可能是设置了错误的clock exception或dont_touch,还有可能是工具因为某些cell的库有问题而没有被正确识别。简言之,工具在CTS时的基本行为是:读取clock的定义以及在何种scenario/view下进行时钟树综合 —> FIix clock Line DRV —>优化每个clock内部的skew/latency —>balance 已经定义的clock group的latency —> 对clock上的nets进行绕线。转载 2023-01-07 18:40:17 · 1148 阅读 · 0 评论 -
数字后端知识点扫盲——CTS(中)
我们知道transition基本是cell高低电平翻转所需要的时间,对于clock line上的cell,我们一般需要对其施加比其他cell更严格的transition约束,不同的工艺,不同design和不同时钟频率的芯片对此可能都有不同的设置,但是我们可以大致遵循从时钟周期的10%-20%的规律,对于某些频率较低的design可能可能需要更紧的约束,在ICC2中可以通过如下命令实现。: 精确控制部分时钟树的设置,再次我们遵循从ICC的术语,在ICC2中某些术语已经弃用,但是仍能找到对应的设置方法。转载 2023-01-07 18:05:31 · 1971 阅读 · 0 评论 -
数字后端知识点扫盲——CTS (上)
这是CTS的第一步,虽然在流程中只是简单的几个字,但是针对复杂的clock,这里可能需要花费大量的时间分析clock的结构,找出潜在可能出现的问题和瓶颈,并针对我们上述提出的三个指标,决定如何去综合时钟树,这一步如此重要又非常容易被忽略,以至于有些同学在遇到复杂的clock出现问题时无从分析,遑论如何改进,下面我将通过一个例子来说明,CTS策略到底是什么?至此,CTS的策略基本构建完成,在接下来的文章中,我们将继续详细讨论这些策略的实现方法以及如何查看debug clock的结果。转载 2023-01-07 16:24:55 · 1744 阅读 · 0 评论 -
数字后端知识点扫盲——后端设计流程及使用工具
由于导线本身存在的电阻,相邻导线之间的互感,耦合电容在芯片内部会产生信号噪声,串扰和反射,这些效应会产生信号完整性问题,导致信号电压波动和变化,如果严重就会导致信号失真错误,提取寄生参数进行再次的分析验证,分析信号完整性问题是非常重要的,工具synopsys的。Design For Test,可测性设计,芯片每一步往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试,DFT的常见方法是,在设计中插入scan chain,将非扫描单元(如寄存器)变为扫描单元,DFT工具是synopsys的。原创 2023-01-04 23:51:18 · 2269 阅读 · 0 评论 -
verdi中如何查看force信号信息
在仿真中,我们会有对信号进行force的操作,从而实现某些特定的功能。但是在仿真波形中,不能直接从波形上看出,这些信号的驱动,是因为前级电路的驱动,还是因为force的原因的驱动。从而使debug非常的不友好。其实在verdi中,是可以直接看到force信号的信息的。这样的话,就会方便我们去debug force的信号。要想要verdi中,查看force信号,就需要vcs在仿真时候,生成fsdb波形时,加入force信号的波形信息。只需要在仿真参数中,加入 +fsdb+force 参数即可。当fsd转载 2021-06-04 00:37:16 · 4099 阅读 · 0 评论 -
Design compiler 和 Prime time的区别
既然design compiler 可以report path的timing,那为啥special check 检查要起pt_shell 去看,而不是用dc_shell。相信很多新手同学在接触数字IC不久一定会有过这样的疑问,design compiler和 prime time 它两的区别是啥?如果你没有过,那你好好反思一下。原创 2022-12-25 17:13:06 · 544 阅读 · 0 评论 -
SNPS Timing Constraints and Optimization学习记录
使用set_max_delay或set_min_delay命令,可以用自己的指定的时间值覆盖默认的最大或最小时间。用上面的命令工具会忽略掉clock(lauch 和 capture edge)的关系,REGA到REGB 路径的延迟如果大于12 unit - setup ,path就认为违例了,就会报timing violation。是这么描述的,使用set_max_delay/set_min_delay指定的值覆盖默认的建立和保持时间。原创 2022-12-09 00:42:12 · 1813 阅读 · 0 评论 -
有必要好好学习一下dc_shell了
首先最好是有design compiler user guide,哪里不会找哪里?然后来看看常见的dc_shell 命令一般先要起一个dc_shell。 dc_shell 启动以后,使用 read_ddc xxx/DBs/ddc/.ddc 将design compiler的综合结果读入。为了确认读入的ddc是预期的block的,使用current_design 命令得到block_name 然后dc_shell非常有用的一个作用就要来了,检查sdc是否正确,原创 2022-12-06 00:12:38 · 2424 阅读 · 0 评论 -
为什么fanout大会导致path的timing变差?
startpoint的fanout越大,下一级net的电容就越大,rc乘积变大,input_transition time就会越大,而std cell的delay和input_transition和output_load有关,input_transition time越大会严重增大这个单元的延迟,而对于fanout大的情况,后端就会插入buffer,这条path的delay就会变大,从而导致violation发生。也可以通过约束的方法设定某个驱动的最大负载,可以看一下这位博主的讲解,我没看懂他在说什么?原创 2022-12-02 00:04:24 · 1014 阅读 · 0 评论 -
Design compiler约束之——path_group
今天发现了一个宝藏文档(这也反映出了我有多菜,这么晚才发现)synopsys官方的timing约束手册。通过官方文档中的描述来一起学习一下这个path group约束。设计的时序路径被组织成group的形式,默认情况下,设计中每个时钟域有一个path group。原创 2022-11-26 22:05:28 · 1607 阅读 · 3 评论 -
CAN总线协议学习
待更新!原创 2022-11-21 00:40:28 · 84 阅读 · 0 评论 -
LFSR和PRBS是什么关系?prbs怎么产生?
有那么几天我对LFSR和PRBS这两个形影不离的东西总是搞不清楚它两的逻辑关系,而且关于它两的英文解释由于我糟糕的英文水平也没能很好的理解,相信这同样也困扰了一部分跟我一样的同学,但是这点困难算是困难吗?然后我还要在这里做一个对比,对比的是MIPICSI-2协议中关于descramble的实现(利用prbs)和单纯的实现一个prbs的区别在哪里。我的妈,我读了很多遍都不能通顺的翻译这句话的意思,似乎懂了但是又好像没懂。组合逻辑执行8次在1个clk之后,和时序逻辑执行8拍,得到的结果是一致的。原创 2022-11-21 00:38:43 · 1210 阅读 · 0 评论 -
数字后端知识点扫盲——NDM
后端的物理设计需要读取的信息除了逻辑信息以外,还有floorplan的物理信息,synopsys引入了NDM( new data modle) 将。今天在和后端讨论一个问题的时候听到一个新名词,NDM,我不懂,于是查阅了一些博主的blog,同时记录一下我的理解。frame view :物理信息的抽象形式,pr优化时使用,提高运行速度,相当于lef。design view:物理形状以及pin的信息,包含place&route的结果。合成到一起,NDM将信息存储到view里,在NDM有4种view。转载 2022-11-21 00:11:02 · 3538 阅读 · 0 评论 -
Design Compiler REPs看不懂?看这一篇就够了!
前面我们说过,DC在对整个电路做综合时,必须保留path的hier,因此,逻辑综合不能穿越模块边界,相邻模块的组合逻辑并不能合并。input external delay:(由于上一级D触发器的翻转(路径的起点也就这里)、芯片外部组合逻辑而经历的)输入延时约束(set_input_delay),通俗的说就是IO约束加的延时,可以看出这个延时是1ns;U2/y : 这里,前面0.12表示u2这个器件的翻转/传输延时,意思是从这个器件的数据输入端(包括连线),到输出端y的延时是0.12ns。原创 2022-11-20 23:40:36 · 531 阅读 · 0 评论 -
认识异步复位寄存器同时学习timing_arc约束
dc工具也认为异步复位比异步置位的优先级高,当verilog代码中把resetn放在前面时,~resetn和setn会被连接在CD和SDN上,而当代码中把setn放在前面时,综合后的电路会多出来一些cell,用于判断setn优先级高于resetn,如上述图中所示。还要说明的一点是,always语句的敏感列表中的信号数不局限于2个或者3个,而是可以有更多,只要他们全都是edge trigger即可,那么假如在RTL时,我设置两个异步复位信号,综合以后的电路会是什么样子?原创 2022-11-05 19:18:32 · 3908 阅读 · 1 评论 -
说一说axi的几个典型特性
交织传输,是指在不同的trans中beat交替的传输,但是同一个trans内部的beat还是按照顺序进行传输的,首先我们要知道axi的平均带宽为多少,master—>slave的延迟有多大,典型trans为多大。因为论坛上已经有很多关于axi这些概念的讲解,所以这里我只说一些别人没有讲到的,如有不对请指正。eg:平均带宽1GB/s,通路上的延迟为1000ns,典型trans为512Byte。RID_2,RID_1,RID_0(R通道)eg:ARID_0,ARID_1,ARID_2(AR通道)原创 2022-11-03 00:04:30 · 429 阅读 · 0 评论 -
从MOS管到sram min_period
第二步是保存在Q的值传递给位线BL在它预充的电位,而泻掉(BL非)预充的值,这是通过M1与M5的通路直接连到低电平使其值为逻辑0 (即Q的高电平使得晶体管M1通路). 在位线BL一侧,晶体管M4与M6通路,把位线连接到VDD所代表的逻辑1 (M4作为P沟道场效应管,由于栅极加了(Q非)的低电平而M4通路). 如果存储的内容为0, 相反的电路状态将会使(BL非)为1而BL为0. 只需要(BL非)与BL有一个很小的电位差,读取的放大电路将会辨识出哪根位线是1哪根是0. 敏感度越高,读取速度越快。原创 2022-10-30 00:26:32 · 733 阅读 · 0 评论 -
什么是寄存器的recovery time和removal time?
寄存器的recovery time和removal time原创 2022-08-10 00:34:37 · 2277 阅读 · 0 评论 -
数字后端知识点扫盲——HVT/SVT/LVT cell
HVT/SVT/LVT cell转载 2022-06-21 00:08:20 · 13059 阅读 · 0 评论 -
数字后端知识点扫盲——Floorplan
Floorplan,中文翻译:布局规划,位于数字后端的最前部转载 2022-06-11 11:37:54 · 3856 阅读 · 0 评论 -
数字后端知识点扫盲——芯片harden block的划分
芯片harden block的划分转载 2022-06-11 18:16:50 · 5469 阅读 · 0 评论 -
数字后端知识点扫盲——芯片行业中wafer,die,cell的概念
芯片行业中wafer,die,cell的概念转载 2022-06-11 18:40:12 · 14508 阅读 · 0 评论 -
数字后端知识点扫盲——标准单元-standard cell
标准单元-standard cell转载 2022-06-11 21:28:09 · 4149 阅读 · 0 评论