随笔 - 188
文章 - 2
评论 - 20
阅读 -
53万
04 2020 档案
Verilog有什么奇技淫巧?
摘要:奇技淫巧我不会,但我这有一些我工作后才学到的一些Verilog写法。数字电路设计主要就是,选择器、全加器、比较器,几个常用逻辑门,再加个D触发器,电路基本都能实现了。写代码其实是个体力活,电路和时序图应该在设计阶段就已经到了你的文档里或在脑子里没来得及写出来。组合逻辑+时序逻辑 assign或alw
阅读全文
TCL ARRAY
摘要:TCL 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念。数组的存取速度要比列表有优势,数组在内部使用散列表来存储,每个元素存取开销几乎相同,而列表的存取数据花非时间与其长度成正比。 1. 元素使用 set 命令来定义和赋值
阅读全文
feq ifneq ifdef ifndef
摘要:条件语句中使用到了三个关键字:“ifeq”、“else”和“endif”。其中: 1. “ifeq”表示条件语句的开始,并指定了一个比较条件(相等)。之后是用圆括号括包围的、使用逗号“,”分割的两个参数,和关键字“ifeq”用空格分开。参数中的变量引用在进行变量值比较时被展开。“ifeq”之后就是当
阅读全文
clock gating | ODC-based Clock Gating
摘要:Original 陌上风骑驴 陌上风骑驴看IC 在当前数字电路实现中,clock gating 是节省动态功耗最有效且成本最低的办法,所以一直以来业界都在想方设法进一步去挖掘,期望用这种低成本办法进一步节省动态功耗,如XOR clock gating. 关于clock gating 驴曾码过三篇短文
阅读全文
clock gating | clock gating的timing check
摘要:定义: clock gating check是约束的一种,可以用户显示设置,也可由工具推断,目的是保证穿过clock gating cell的clock 没有glitch 且波形不被削切。下面是一个【反例】左侧clock波形被削切,右侧有glitch 穿过。由clock gating的结构可知,大部
阅读全文
更换ICC2图形界面主题
摘要:主页面->View->Preferences->Style Settings->theme默认为light,另外一个主题是dark。
阅读全文
git 学习心得
摘要:白山头 白山头讲IC 这两天突然对github非常感兴趣。因为想弄个博客放些资料和文章上去。于是趁华为云搞活动,以超便宜的价格租了个ECS。 网页产生用的是hexo,写作完全用markdown的方式,这样也就不用在排版上花时间了。 而数据的更新是用过git的方式。 网上关于git入门的书籍很多,下载
阅读全文
为什么PrimeTime修timing时,带physical aware还不如不带physical aware
摘要:Physical aware的提出,其实也是为了解决业界的一个痛点。那就是在timing eco阶段,因为PrimeTime无法知道具体的物理信息,(绕线,局部的density,blockage,hard macro), 这就导致了eco做完之后的结果和PrimeTime估计的结果差别很大,无形中增
阅读全文
为什么异步时钟不要设false path
摘要:白山头 白山头讲IC 为什么异步时钟不要设false path 对于初学者,常常认为异步电路应该设false path。甚至很多老手也是这么认为的。其实针对于异步电路,是有专门的sdc的命令来完成这项任务的。 set_clock_groups -asynchronous 用作用上来看,似乎和fals
阅读全文
芯片设计公司,来申请版图专利吧
摘要:版图专利的优势: 高新企业申请时,企业所持有的专利是最为重要的考虑因素。目前国家对于知识产权的分类分为两种,Ⅰ类和Ⅱ类。 Ⅰ类包括发明专利(含国防专利)、植物新品种、国家级农作物品种、国家新药、国家一级中药保护品种、集成电路布图设计专有权; Ⅱ类包括实用新型专利、外观设计专利(非简单改变产品图案和形
阅读全文
用perl对sdc进行预处理
摘要:有时候PD会用综合工具写出的sdc进行PR和时序收敛。而综合工具会不可避免的会把专门为综合而加的sdc命令一起写出来。所以一定要对sdc进行处理后才能进入PR阶段。 例如:set_operating_conditionset_max_areaset_uncertaintyset_max_transi
阅读全文
对net的物理约束总结
摘要:skiping route: 命令:set_attribute -object $net -name physical_status -value locked 没有类似于set_dont_touch之类的直接命令来设置skip route,而是通过一个叫physical_status的属性来设置。
阅读全文
Legalizer的演进史(一)
摘要:第一层 在28nm及更老的工艺,legalizer要做的事情就是把stdcell放在row上,不要overlap with row。作为完美主义的我,必须指出,放在row上不够,确切的说是放在unit tile上。所以那时候,一个R&D就可以轻松搞定整个的legalizer代码,据说他还经常去度假,
阅读全文
SDC是如何炼成的?Exception篇 - 附MCP电路实现方法及命令优先级实例
摘要:讲述SDC中的各式各样的Exception,大体上可以分为“加严”和“放松”两种类型,如下面几个命令: ##更严格##set_max_delayset_min_delayset_data_check...##更放松##set_false_pathset_multicycle_pathset_case
阅读全文
数字IC后端时钟树综合专题(OCC电路案例一)
摘要:一.OCC缘由 何为全速测试(at speed test):在工艺节点在130nm以下的时候,很多情形下的物理缺陷都是由于延时来引起的。 因此在对这种类型的chip做dft的时候,需要建立一个新的故障模型,业内称之为延时故障模型(time delay model)。 解决的方法就是全速测试,所谓的全
阅读全文
DDR接口时序实例
摘要:DDR SDRAM接口的示意图: CAC总线表示Command,Address,Control Pin,时序相对简单,单向单周期,通过以下命令约束: create_generated_clock -name DDRCLK \-source [get_pins UPLL0/CLKOUT] \-divi
阅读全文
SDC是如何炼成的?IO约束篇 - 附Top和Block实战经验
摘要:From 老本 Benjamin RTL2GDS IO约束在顶层和模块级的主要命令都是以下几个,但是实际应用的复杂程度不可同日而语,本篇会先介绍模块级IO约束实战经验,然后讲解顶层IO约束复杂性,过程中会介绍DDR接口时序。 set_input_delayset_output_delayset_dr
阅读全文
SDC是如何炼成的?时钟定义篇 - 附create_generated_clock花式定义方法!
摘要:From: 老本 Benjamin RTL2GDS 定义时钟 从最早的芯片规格定义分解出系统所需要的时钟和频率,以及各个模块需要的时钟和频率。 SoC的时钟一般是由PLL产生,然后经过时钟生成电路和分配网络,最终给具体的功能模块使用。 一般地,第三方IP供应商都会提供比较成熟的SDC,SoC集成时需
阅读全文
Inbound Cell是个啥?
摘要:所有cell都被做成宽和高有一定规律的矩形,也就是所谓的标准单元。在一般工艺中,所有的标准单元的高度都和site row的高度相同或者是其整数倍,且上下边缘必定与site row重合,如下面左图所示。但是在某些尖端工艺中,出现了下面右图中的所谓Inbound Cells。 Inbound cells
阅读全文
Clock Tree Synthesis(CTS) 中篇
摘要:在开始之前有两件事想征求一下大家的意见: 最近有同学反映文章中很多专业词汇不太明白,因此想开一个系列专门讲一些后端的基础知识和词汇,毕竟后端的知识颇为繁杂,对入门者极为不利。因此如果大家有不懂的知识尽管留言,我会以适当的形式统一讲解。 如果有人对提高效率的脚本、命令等感兴趣,我也想将自己的一点经验和
阅读全文
Clock Tree Synthesis(CTS)
摘要:言归正传,在P&R整个流程中,有两个对于design的PPA(Power Performance Area)起决定性的步骤:Floorplan和CTS。虽然如此,在实际项目中,很多人可能工作数年也没有机会做一次比较全面的CTS。一方面原因在于,P&R工具尤其是次世代的ICC2和Innovus对于相对
阅读全文
绕线Congestion怎么解?
摘要:Channel Congestion:此种现象比较常见,也比较简单,多发生于hard macro之间。如下图所示: 上图中,每一个灰色多边形代表一个macro。之所以用这种形状是因为实际设计中的某些memory会做成这种外形。黄色部分代表macro的pin,在此每个macro都只有一个方向有pin。
阅读全文
后端设计的基本流程是什么?
摘要:如果有人问我,数字后端最重要的是什么,我一定回答他:是流程。 但是对于很多非后端的人来说,后端究竟干什么一直是一个模糊的概念。有些人认为可能就是跑跑flow,弄弄工具;有些人认为全是dirty work,完全手动,毫无技术含量。就我个人来说,不止一次遇到一些前端的人不仅对后端完全不懂,甚至认为RTL
阅读全文
芯片的整体功耗是如何计算出来的?
摘要:芯片的整体功耗都有哪些组成部分呢?最根本的组成部分有两个,即静态功耗和动态功耗。 1. 静态功耗(Static Power),又称漏电流功耗(Leakage Power)。其原理请参见下图: 上图中红色箭头表明了在通电状态下PMOS内主要的泄露电流及其走向,意即: 泄漏电流(Leakage Curr
阅读全文
Setup Violation怎么修?
摘要:首先,我们回忆一下setup的定义。下图-1展示了一条典型的timing path以及setup的计算方法。 Setup定义:Data在clock到来之前必须要保持稳定一定时间。按照上图的timing path,setup应该满足如下条件: 1. 减少data line的delay 1) 换速度更快
阅读全文
Hold Violation怎么修?
摘要:fix hold violations时,插入buffer或者delay cell的位置,是靠近launch端还是capture端,还是并无任何要求呢? 在逻辑和物理上都应该尽量靠近capture端,也就是endpoint。在逻辑上更靠近endpoint能够保证插入的cells只会影响到有viola
阅读全文
为何ICG容易出现setup violation?
摘要:ICG(Intergrated Clock Gating)作为low power的设计手法之一,已经在实际中得到广泛应用。它们能够在某些时候将某些clock关断从而达到降低功耗的目的。然而从时序的角度,经常会发生ICG的setup难以收敛的情况。 为什么会出现这种情况呢? 下图展示了一种简单的带IC
阅读全文
后端Timing基础概念之:为什么时序电路要满足setup和hold?
摘要:下图是上升沿触发的D触发器的一种典型的基于传输门的设计原理: 首先我们先把注意力集中在电路的前半部分。 假设CLK的初始状态为0,此时第一个传输门导通,信号走向为: D -> a -> b -> c -> d 注:路径1 从以上信号走向可以看出,信号必须在CLK上升沿到来之前在d点保持稳定,否则如果
阅读全文
面试又被BS?数字后端面试要注意这些坑!
摘要:基本概念: Timing Setup, Hold, Noise(Crosstalk)基本概念 OCV(AOCV), derate, uncertainty(jitter, margin), CPPR, useful skew signoff corner, 各阶段优化corner false pat
阅读全文
从数字IC后端设计实现看先进工艺7nm实现的各种挑战
摘要:目前虽然号称拥有或将要研发7nm工艺的有多家工艺厂商,但是具有实际流片能力的可能只有TSMC和三星。随着GlobalFoundries最近宣布放弃7nm的进一步研发,以及尽管Intel的10nm和这几家的7nm差不多一个水准,但是要跳票到2019年,因此短期内应该就是双雄争霸的局面。 玩家越来越少,
阅读全文