搜档网
当前位置:搜档网 › 数字后端流程

数字后端流程

数字后端流程
数字后端流程

1. 数据准备。对于CDN 的Silicon Ensemble而言后端设计所需的数据主要有是Foundry厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf和.v的形式给出。前端的芯片设计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产生的.gcf约束文件以及定义电源Pad的DEF(Design Exchange Format)文件。(对synopsys 的Astro 而言,经过综合后生成的门级网表,时序约束文件SDC 是一样的,Pad的定义文件--tdf ,.tf 文件--technology file,Foundry厂提供的标准单元、宏单元和I/O Pad的库文件就与FRAM, CELL view, LM view 形式给出(Milkway 参考库and DB, LIB file)

2. 布局规划。主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则是给出了一定的区域由工具自动摆放。布局规划后,芯片的大小,Core的面积,Row的形式、电源及地线的Ring和Strip都确定下来了。如果必要在自动放置标准单元和宏单元之后,你可以先做一次PNA(power network analysis)--IR drop and EM .

3. Placement -自动放置标准单元。布局规划后,宏单元、I/O Pad的位置和放置标准单元的区域都已确定,这些信息SE(Silicon Ensemble)会通过DEF文件传递给PC(Physical Compiler),PC根据由综合给出的.DB文件获得网表和时序约束信息进行自动放置标准单元,同时进行时序检查和单元放置优化。如果你用的是PC +Astro

那你可用write_milkway, read_milkway 传递数据。

4. 时钟树生成(CTS Clock tree synthesis) 。芯片中的时钟网络要驱动电路中所有的时序单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要反复几次才可以做出一个比较理想的时钟树。---Clock skew.

5. STA 静态时序分析和后仿真。时钟树插入后,每个单元的位置都确定下来了,工具可以提出Global Route形式的连线寄生参数,此时对延时参数的提取就比较准确了。SE把.V 和.SDF文件传递给PrimeTime做静态时序分析。确认没有时序违规后,将这来两个文件传递给前端人员做后仿真。对Astro 而言,在detail routing 之后,用starRC XT 参数提取,生成的E.V和.SDF文件传递给PrimeTime做静态时序分析,那将会更准确。

6. ECO(Engineering Change Order)。针对静态时序分析和后仿真中出现的问题,对电路和单元布局进行小范围的改动.

7. Filler的插入(pad fliier, cell filler)。Filler指的是标准单元库和I/O Pad库中定义的与逻辑无关的填充物,用来填充标准单元和标准单元之间,I/O Pad和I/O Pad之间的间隙,它主要是把扩散层连接起来,满足DRC规则和设计需要。

8. 布线(Routing)。Global route-- Track assign --Detail routing--Routing optimization 布线是指在满足工艺规则和布线层数限制、线宽、线间距限制和各线网可靠绝缘的电性能约束的条件下,根据电路的连接关系将各单元和I/O Pad用互连线连接起来,这些是在时序驱动(Timing driven ) 的条件下进行的,保证关键时序路径上的连线长度能够最小。--Timing report clear

9. Dummy Metal的增加。Foundry厂都有对金属密度的规定,使其金属密度不要低于一定的值,以防在芯片制造过程中的刻蚀阶段对连线的金属层过度刻蚀从而降低电路的性能。加入Dummy Metal是为了增加金属的密度。

10. DRC和LVS。DRC是对芯片版图中的各层物理图形进行设计规则检查(spacing ,width),它也包括天线效应的检查,以确保芯片正常流片。LVS主要是将版图和电路网表进行比较,来保证流片出来的版图电路和实际需要的电路一致。DRC和LVS的检查--EDA工具Synopsy hercules/ mentor calibre/ CDN Dracula进行的.Astro also include LVS/DRC check commands.

11. Tape out。在所有检查和验证都正确无误的情况下把最后的版图GDSⅡ文件传递给Foundry厂进行掩膜制造。

后端流程(初学必看)(DOC)

基本后端流程(漂流&雪拧) ----- 2010/7/3---2010/7/8 本教程将通过一个8*8的乘法器来进行一个从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那么简单就完成的),此教程的目的就是为了让大家尽快了解数字IC设计的大概流程,为以后学习建立一个基础。此教程只是本人探索实验的结果,并不代表内容都是正确的,只是为了说明大概的流程,里面一定还有很多未完善并且有错误的地方,我在今后的学习当中会对其逐一完善和修正。 此后端流程大致包括一下内容: 1.逻辑综合(逻辑综合是干吗的就不用解释了把?) 2.设计的形式验证(工具formality) 形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包括综合前RTL代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表进行动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格的asic设计来说是不可容忍的,而形式验证只用几小时即可完成一个大型的验证。另外,因为版图后做了时钟树综合,时钟树的插入意味着进入布图工具的原来的网表已经被修改了,所以有必要验证与原来的网表是否逻辑等价。 3.静态时序分析(STA),某种程度上来说,STA是ASIC设计中最重要的步骤,使用primetime对整个设 计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新进行综合。(PR后也需作signoff 的时序分析) 4.使用cadence公司的SOCencounter对综合后的网表进行自动布局布线(APR) 5.自动布局以后得到具体的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到网表,再做静 态时序分析,与综合类似,静态时序分析是一个迭代的过程,它与芯片布局布线的联系非常紧密,这个操作通常是需要执行许多次才能满足时序需求,如果没违规,则进入下一步。 6.APR后的门级功能仿真(如果需要) 7.进行DRC和LVS,如果通过,则进入下一步。 8.用abstract对此8*8乘法器进行抽取,产生一个lef文件,相当于一个hard macro。 9.将此macro作为一个模块在另外一个top设计中进行调用。 10.设计一个新的ASIC,第二次设计,我们需要添加PAD,因为没有PAD,就不是一个完整的芯片,具体 操作下面会说。 11.重复第4到7步

后端基本概念

为了方便大家尽快找到需要的话题,经icfb版主建议,编辑这个数字后端的FAQ。 如果您是初学者,建议先搜索相关的资料,读读其他人的帖子,一些基本概念在那里都已经讨论过了。 如果您已经有2年以上的实战经验,下面这些雕虫小技就不太值得您去浪费时间了。 先说说作为一个有经验的后端(暫不包括DFT工程师和layout工程师)工程师,需要掌握哪些知识 4个级别: 1)知道一些基本概念, 2)简单地掌握这门技术, 3)熟练 4)精通 半导体工艺--2 RTL coding -- 2 综合-- 2 时序约束-- 3 APR -- 3 DFT -- 2 DRC/LVS -- 3 仿真-- 2 形式验证-- 2 以下是FAQ分类: 2楼:时序约束,STA 3楼:综合DC/RC 4楼:APR (floorplan,place,CTS,route) 5楼:验证(LEC,DRC,LVS等) 6楼:DFT 7楼:低功耗 8楼:面试 9楼:名词解释

时序约束,STA (1) clock Q1.1 什么是同步时钟? 时钟频率是整倍数,并且相互之间的相位是固定而且相差可预知的,才可以称得上是同步时钟。其他的都算异步时钟。 比如, 5M,10M是同步 2M,3M一般算异步 一个时钟,输出到另一个芯片中,转一圈后,以同样的频率返回到自己的芯片,因为无法确定时钟在另一个芯片里面的latency,所以输出的时钟与输入的时钟算异步一个时钟进到2个PLL,就算那2个PLL的输出频率相同,一般也算是异步时钟,除非你de-skew Q1.2 如何处理同步时钟? 设计要求严格的公司,就算是同步时钟,数据在同步时钟间传送时,依然要用meta-stability FF,可以set_false_path 如果放松要求,不用meta-stability FF,则同步时钟之间是real path,做CTS时,同步时钟要clock tree balance。 注意不同频率的同步时钟的最小时间间隔被用来检查setup 如果上升下降沿混用的话,setup的时间间隔就只有半个时钟周期了 Q1.3 如何处理异步时钟? 很简单,set_false_path 注意要from A to B,同时要from B to A Q1.4 如何定义时钟? create_clock 如果指定某个pin/port,就是实时钟,如果没有指定pin和port,就是虚拟时钟 巧妙利用waveform选项可以做出不同波形的时钟 被定义成时钟的net,在综合时,自动带有ideal network和dont_touch的属性。但是当它被用作data计算延迟时,ideal net的属性会自动消失 时钟会自动穿过逻辑单元,停在时序单元的时钟端,所以用FF产生的分频时钟要再用create_generated_clock定义一次 Q1.5 如何处理多选一时钟? 在实际应用当中,如果这几个时钟不会同时出现的话,则在定义时钟时,只选择最快频率的就可以了 如果是多个时钟同时出现,可以用set_case_analysis选一个, 也可以放它们全都过去,但是在MUX后面把它们之间set_false_path Q1.6 巧妙定义时钟

synopsys数字前后端设计流程

synopsys数字前后端设计流程 数字前端设计流程(synopsys)流程 1. 设计输入1) 设计的行为或结构描述。2) 典型文本输入工具有UltraEdit- 32 和Editplus.exe.。3) 典型图形化输入工具-Mentor 的Renoir。 2. 代码调试1) 对设计输入的文件做代码调试,语法检查。2) 典型工具为Debussy。 3.前仿真1)功能仿真2)验证逻辑模型(没有使用时间延迟)。 4.综合1)把设计翻译成原始的目标工艺2) 最优化3) 合适的面积要求和性能要求 5. 布局和布线1) 映射设计到目标工艺里指定位置2) 指定的布线资源应被使用3) 采用Altera 公司的QuartusII 和MaxplusII、Xilinx 公司的ISE 和Foudation 布局和布线 6.后仿真1)时序仿真2) 验证设计一旦编程或配置将能在目标工艺里工作(使用时间延迟)3)所用工具同前仿真所用软件。 7. 时序分析 8. 验证合乎性能规范1) 验证合乎性能规范,如果不满足,回到第一步。 9. 版图设计1) 验证版版图设计。2) 在板编程和测试器件。 数字后端设计流程 1. 数据准备Foundry 厂提供的标准单元、宏单元和I/O Pad 的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf 和.v 的形式给出。前端的芯片设 计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产 生的.gcf 约束文件以及定义电源Pad 的DEF 文件。 2. 布局规划。主要是标准单元、I/O Pad 和宏单元的布局。 3. Placement -自动放置标准单元 4. 时钟树生成(CTSClock tree synthesis)时钟网络及其上的缓冲器构成了时钟树。

数字后端流程一【Design Compile】实例笔记

DC 综合 DC 又称为设计综合将设计的RTL代码综合成门级网表的过程。 在DC 流程中一般要经过以下几个步骤,以项目A为例做如下分析: 1】在项目子目录下创建DC文件夹,在DC文件夹下分别创建db in lib_syn log netlist rpt和script 文件夹以及一个makefile 文件用来运行DC 脚本。 2】第二步就是复制相应工艺技术库文件到lib_syn ,一般有2种文件各3个分别包括了typical worst 和best情况,一类是db,文件一类是lib 文件也可以在lc_shell 下读取lib 得到相应的db文件。 3】第三步将需要综合的设计RTL代码(Verilog 文件)复制到in 文件夹 4】第四步在script 创建综合脚本,脚本创建过程将在后面介绍 5】第五步编写运行脚本的makefile 文件 6】第六步运行脚本而后查看综合报告,是否有违例现象出现,如果有修改脚本加以修复直到最终通过设计。 注意另外的几个文件夹作用db文件夹存放DC综合生成的项目db文件,综合网表输出到netlist 文件夹,综合程序运行报告存放在log文件夹中,而综合结果的数据报告则存放在rpt 文件夹中。 DC脚本的编写(A.scr) DC综合脚本基本上有几大部分组成 1】定义综合环境中命名规则(分别对net cell port 命名) define_name_rules verilog –casesensitive define_name_rules verilog –type net –allowed “a-z A-Z 0-9 _ ” \ -first_restricted “ _ 0-9 N ” \ -replacement_char “_” \ -prefix “n” define_name_rules verilog –type cell –allowed “a-z A-Z 0-9 _ ” \ -first_restricted “ _ 0-9 ” \ -replacement_char “_” \ -prefix “u” define_name_rules verilog –type port –allowed “a-z A-Z 0-9 _ ” \ -first_restricted “ _ 0-9 ” \ -replacement_char “_” \ -prefix “p” 2】综合环境的建立 指明库所在的位置 Search_path = { lib_syn/db } 指定综合所需目标库一般选用最恶劣情况worst 库作目标库

后端设计流程

后端设计流程 ASIC/SoC后端设计作业流程剖析 Toshiba(美国) 秦晓凌 Trident(上海) 潘中平 关键词place route DSM megacell clock_tree STA OPT ECO 引言众所周知,ASIC产品是从用硬件描述语言(verilog HDL,VHDL)开始进行数字逻辑电路设计的,经过相关的仿真、综合出门级网表、验证直至完成电路布局布线并优化,最终经流片成功形成的芯片产品。随着中国经济的持续稳定地增长,国内生产厂家对IC需求增长势头强劲与自身设计IC能力薄弱的突出矛盾已经被国家和企业认识。为了缓解这一矛盾并更多地实现IC自主设计,近两年国内陆续出现了一些著名的传统通信系统厂商设立的IC设计队伍,以及归国留学人员领头创办的创业型IC设计公司,他们大多数有相当强的前端设计能力,但在IC后端设计领域的实践经验还较欠缺。在完成前端逻辑设计综合出门级网表后,真正能做好后端设计的公司还不多,有的则通过委托设计服务的方式完成后端布局布线及流片。本文 作者有多年从事覆盖前后端IC设计全流程并有每年几次成功流片数百万门级深亚微米SoC的经验,并担任IC设计的项目管理工作,对国外大公司的设计流程十分熟悉,并愿意就积累的经验与国内同行分享交流,以利于国内IC设计水平的提高。本文着重介绍国内设计公司薄弱的后端设计,介绍其流程并对在设计过程中的关键步骤进行一些讨论。传统的后端设计流程指的是从门级网表(gate level netlist)开始的,根据设计要求的不同,后端流程可以分为扁平流程(flat flow)和层次化流程(hierarchy flow)两种,在深亚微米 DSM(deep sub-micron)领域,又增加了布局加逻辑合成的前后端合二为一的扁平流程(flat flow)和分层流程(hierarchy flow)。我们首先介绍传统的两种后端流程。前后端合一的流程将作为另一个专题在以后讨论。 一、扁平流程(Flat flow)介绍 最简单的后端设计是扁平(flat)流程,一般四百万门以下的设计均可使用这一流程。芯片设计的最高境界是设计完成后一次性投片(Tape Out)成功,这一成功必须建立在正确的前端电路逻辑设计和科学合理及高效的后端布局布线上,要想获得最后的成功,设计阶段就来不得带有半点的侥幸心态,否则就算在电路功能上满足设计要求,在参数性能上的任何失误也是导致返工的重要因素。因此,后端设计阶段很难保证一遍成功,走几个来回是常事,要期望在最终投片时一次成功,就需要在设计阶段多下工夫。我们不妨给这些大循环起个名字,第一轮叫试验(trial),第二轮叫首次签收(first Sign Off), 第三轮叫最后签收(final Sign Off),每轮包括的前后端设计主要任务和结果如表一所示。不同的循环应该有不同的侧重点,为了节省时间,这些大循环还应该尽可能安排前后端设计同步进行。 Trial:80%模块设计完成数据库准备,流程确认,流程运行中问题的解决,主要设计数据(芯片大小,总体布局,大体时序)的可行性确认 First Sign Off:100%设计,DFT,I/O完成数据库已确定,时序收敛基本完成,没有大的拥塞(congestion) Final Sign Off:最后细小的功能修改,时序收敛所有时序和布局布线问题解决

数字后端设计流程

数字后端流程 1. 数据准备。对于 CDN 的 Silicon Ensemble而言后端设计所需的数据主要有是Foundry厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf和.v的形式给出。前端的芯片设计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产生的.gcf约束文件以及定义电源Pad的DEF(Design Exchange Format)文件。(对synopsys 的Astro 而言,经过综合后生成的门级网表,时序约束文件 SDC 是一样的,Pad的定义文件--tdf , .tf 文件 --technology file,Foundry厂提供的标准单元、宏单元和I/O Pad的库文件就与FRAM, CELL view, LM view 形式给出(Milkway 参考库 and DB, LIB file) 2. 布局规划。主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则是给出了一定的区域由工具自动摆放。布局规划后,芯片的大小,Core的面积,Row的形式、电源及地线的Ring和Strip都确定下来了。如果必要在自动放置标准单元和宏单元之后,你可以先做一次PNA(power network analysis)--IR drop and EM . 3. Placement -自动放置标准单元。布局规划后,宏单元、I/O Pad的位置和放置 标准单元的区域都已确定,这些信息SE(Silicon Ensemble)会通过DEF文件传递给PC(Physical Compiler),PC根据由综合给出的.DB文件获得网表和时序约束信息进行自动放置标准单元,同时进行时序检查和单元放置优化。如果你用的是PC +Astro 那你可用write_milkway, read_milkway 传递数据。 4. 时钟树生成(CTS Clock tree synthesis) 。芯片中的时钟网络要驱动电路中所有的时序单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要反复几次才可以做出一个比较理想的时钟树。---Clock skew. 5. STA 静态时序分析和后仿真。时钟树插入后,每个单元的位置都确定下来了,工具可以提出Global Route形式的连线寄生参数,此时对延时参数的提取就比较准确了。SE把.V和.SDF文件传递给PrimeTime做静态时序分析。确认没有时序违规后,将这来两个文件传递给前端人员做后仿真。对Astro 而言,在detail routing 之后,用starRC XT 参数提取,生成的E.V和.SDF文件传递给PrimeTime做静态时序分析,那将会更准确。 6. ECO(Engineering Change Order)。针对静态时序分析和后仿真中出现的问题, 对电路和单元布局进行小范围的改动.

数字IC设计流程及工具介绍

数字IC设计流程及工具介绍 IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计。 前端设计的主要流程: 1、规格制定 芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。 2、详细设计 Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。 3、HDL编码 使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。 4、仿真验证 仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。看设计是否精确地满足了规格中的所有要求。规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。仿真验证工具Mentor公司的Modelsim,Synopsys的VCS,还有Cadence的NC-Verilog均可以对RTL级的代码进行设计验证,该部分个人一般使用第一个-Modelsim。该部分称为前仿真,接下来逻辑部分综合之后再一次进行的仿真可称为后仿真。 5、逻辑综合――Design Compiler 仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表netlist。综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元 (standard cell)的面积,时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)逻辑综合工具Synopsys的Design Compiler,仿真工具选择上面的三种仿真工具均可。

数字后端流程

数字后端流程 1. 数据准备。对于CDN 的Silicon Ensemble而言后端设计所需的数据主要有是Foundry厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf和.v的形式给出。前端的芯片设计经过综合后生成的门级网表,具有 时序约束和时钟定义的脚本文件和由此产生的.gcf约束文件以及定义电源Pad的DEF(Desi gn Exchange Format)文件。(对synopsys 的Astro 而言,经过综合后生成的门级网表, 时序约束文件SDC 是一样的,Pad的定义文件--tdf ,.tf 文件--technology file,Foundry厂提供的标准单元、宏单元和I/O Pad的库文件就与FRAM, CELL view, LM view 形式给出(Milkway 参考库and DB, LIB file) 2. 布局规划。主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则是给出了一定的区域由工具自动摆放。布局规划后,芯片的大小,Core的面积,Row的形式、电源及地线的Ring和Strip都确定 下来了。如果必要在自动放置标准单元和宏单元之后,你可以先做一次PNA(power netw ork analysis)--IR drop and EM . 3. Placement -自动放置标准单元。布局规划后,宏单元、I/O Pad的位置和放置 标准单元的区域都已确定,这些信息SE(Silicon Ensemble)会通过DEF文件传递给PC(Ph ysical Compiler),PC根据由综合给出的.DB文件获得网表和时序约束信息进行自动放置标 准单元,同时进行时序检查和单元放置优化。如果你用的是PC +Astro 那你可用write_milkway, read_milkway 传递数据。 4. 时钟树生成(CTS Clock tree synthesis) 。芯片中的时钟网络要驱动电路中所 有的时序单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要反复几次才可以做出一个比较理想的时钟树。---Clock skew. 5. STA 静态时序分析和后仿真。时钟树插入后,每个单元的位置都确定下来了,

数字IC后端设计流程

ASIC/SoC后端设计作业流程剖析 关键词place route DSM megacell clock_tree STA OPT ECO 引言众所周知,ASIC产品是从用硬件描述语言(verilog HDL,VHDL)开始进行数字逻辑电路设计的,经过相关的仿真、综合出门级网表、验证直至完成电路布局布线并优化,最终经流片成功形成的芯片产品。随着中国经济的持续稳定地增长,国内生产厂家对IC需求增长势头强劲与自身设计IC能力薄弱的突出矛盾已经被国家和企业认识。为了缓解这一矛盾并更多地实现IC自主设计,近两年国内陆续出现了一些著名的传统通信系统厂商设立的IC设计队伍,以及归国留学人员领头创办的创业型IC设计公司,他们大多数有相当强的前端设计能力,但在IC后端设计领域的实践经验还较欠缺。在完成前端逻辑设计综合出门级网表后,真正能做好后端设计的公司还不多,有的则通过委托设计服务的方式完成后端布局布线及流片。本文 作者有多年从事覆盖前后端IC设计全流程并有每年几次成功流片数百万门级深亚微米SoC 的经验,并担任IC设计的项目管理工作,对国外大公司的设计流程十分熟悉,并愿意就积累的经验与国内同行分享交流,以利于国内IC设计水平的提高。本文着重介绍国内设计公司薄弱的后端设计,介绍其流程并对在设计过程中的关键步骤进行一些讨论。传统的后端设计流程指的是从门级网表(gate level netlist)开始的,根据设计要求的不同,后端流程可以分为扁平流程(flat flow)和层次化流程(hierarchy flow)两种,在深亚微米DSM(deep sub-micron)领域,又增加了布局加逻辑合成的前后端合二为一的扁平流程(flat flow)和分层流程(hierarchy flow)。我们首先介绍传统的两种后端流程。前后端合一的流程将作为另一个专题在以后讨论。 一、扁平流程(Flat flow)介绍 最简单的后端设计是扁平(flat)流程,一般四百万门以下的设计均可使用这一流程。芯片设计的最高境界是设计完成后一次性投片(Tape Out)成功,这一成功必须建立在正确的前端电路逻辑设计和科学合理及高效的后端布局布线上,要想获得最后的成功,设计阶段就来不得带有半点的侥幸心态, 否则就算在电路功能上满足设计要求,在参数性能上的任何失误也是导致返工的重要因素。因此,后端设计阶段很难保证一遍成功,走几个来回是常事,要期望在最终投片时一次成功,就需要在设计阶段多下工夫。我们不妨给这些大循环起个名字,第一轮叫试验(trial),第二轮叫首次签收(first Sign Off), 第三轮叫最后签收(final Sign Off),每轮包括的前后端设计主要任务和结果如表一所示。不同的循环应该有不同的侧重点,为了节省时间,这些大循环还应该尽可能安排前后端设计同步进行。 Trial:80%模块设计完成数据库准备,流程确认,流程运行中问题的解决,主要设计数据(芯片大小,总体布局,大体时序)的可行性确认 First Sign Off:100%设计,DFT,I/O完成数据库已确定,时序收敛基本完成,没有大的拥塞(congestion) Final Sign Off:最后细小的功能修改,时序收敛所有时序和布局布线问题解决 我们在简单介绍每一步工作的同时,着重介绍应该注意的问题,遇到的困难和解决的方法。 A. 质量检查(Quality check) 在流程的开始,至少有三样东西需要前端工程师提供:门级网表(gate level netlist),时序约束(timing constraint)和时序分析报告(timing analysis report)。其中网表文件是最重要的,拿到它之后,先不要急于将它放到后端EDA软件里去,而是要先检查一下它的质量,确认已消除哪怕是细小的错误/ 瑕疵,比如检查有无以下情况:文法错误,连接短路,无任何连接的net,无驱动的输入引脚(pin),assign语句,wire类型以外的net,使用了由"\"开始的特别字符,数据总线的写法,名字的长度等,不同的厂家和软件对此都会有一些限制,为了后续工作的方便,建议定义一套比较严格的网表书写规则。 例如:不许有"无任何连接的net"和"无驱动的输入pin",无assign语句,只允许线(wire)型

IC后端流程(初学必看)

校外IC后端实践报告 本教程通过对synopsys公司给的lab进行培训,从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那么简单就完成的),此教程的目的就是为了让大家尽快了解数字IC设计的大概流程,为以后学习建立一个基础。此教程只是本人探索实验的结果,并不代表内容都是正确的,只是为了说明大概的流程,里面一定还有很多未完善并且有错误的地方,我在今后的学习当中会对其逐一完善和修正。 此后端流程大致包括一下内容: 1.逻辑综合(工具DC 逻辑综合是干吗的就不用解释了把?) 2.设计的形式验证(工具formality) 形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包括综合前RTL 代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表进行动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格(设计周期短)的asic设计来说是不可容忍的,而形式验证只用几小时即可完成一个大型的验证。另外,因为版图后做了时钟树综合,时钟树的插入意味着进入布图工具的原来的网表已经被修改了,所以有必要验证与原来的网表是逻辑等价的。 3.静态时序分析(STA),某种程度上来说,STA是ASIC设计中最重要的步骤,使用 primetime对整个设计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新进行综合。(PR后也需作signoff的时序分析) 4.使用cadence公司的SOCencounter对综合后的网表进行自动布局布线(APR) 5.自动布局以后得到具体的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到 网表,再做静态时序分析,与综合类似,静态时序分析是一个迭代的过程,它与芯片布局布线的联系非常紧密,这个操作通常是需要执行许多次才能满足时序需求,如果没违规,则进入下一步。 6.APR后的门级功能仿真(如果需要) 7.进行DRC和LVS,如果通过,则进入下一步。 8.用abstract对此lab实验进行抽取,产生一个lef文件,相当于一个hard macro。 9.将此macro作为一个模块在另外一个top设计中进行调用。 10.设计一个新的ASIC,第二次设计,我们需要添加PAD,因为没有PAD,就不是一个完整 的芯片,具体操作下面会说。 11.重复第4到7步

数字ic设计流程与模拟IC

数字ic设计流程与模拟IC 1. 首先是使用HDL语言进行电路描述,写出可综合的代码。然后用仿真工具作前仿真,对理想状况下的功能进行验证。这一步可以使用Vhdl或Verilog作为工作语言,EDA工具方面就我所知可以用Synopsys的VSS(for Vhdl)、VCS(for Verilog)Cadence的工具也就是著名的Verilog-XL和NC Verilog 2.前仿真通过以后,可以把代码拿去综合,把语言描述转化成电路网表,并进行逻辑和时序电路的优化。在这一步通过综合器可以引入门延时,关键要看使用了什么工艺的库这一步的输出文件可以有多种格式,常用的有EDIF格式。综合工具Synopsys的Design Compiler,Cadence的Ambit 3,综合后的输出文件,可以拿去做layout,将电路fit到可编程的片子里或者布到硅片上这要看你是做单元库的还是全定制的。全定制的话,专门有版图工程师帮你画版图,Cadence的工具是layout editor单元库的话,下面一步就是自动布局布线,auto place & route,简称apr cadence的工具是Silicon Ensembler,Avanti的是Apollo layout出来以后就要进行extract,只知道用Avanti的Star_rcxt,然后做后仿真,如果后仿真不通过的话,只能iteration,就是回过头去改。 4,接下来就是做DRC,ERC,LVS了,如果没有什么问题的话,就tape out GDSII 格式的文件,送制版厂做掩膜板,制作完毕上流水线流片,然后就看是不是work 了做DRC,ERC,LVSAvanti的是Hercules,Venus,其它公司的你们补充好了 btw:后仿真之前的输出文件忘记说了,应该是带有完整的延时信息的设计文件如:*.VHO,*.sdf RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC,LVS--->TAPE OUT 1。PT后一般也要做动态仿真,原因:异步路径PT是做不了的 2。综合后加一个形式验证,验证综合前后网表与RTL的一致性 3。布版完成后一般都会有ECO,目的手工修改小的错误 SPEC->ARCHITECTURE->RTL->SIM->DC->SIM-->PT-->DC---ASTRO--->PT----DRC, LVS--->TAPE OUT SPEC:specification,在进行IC设计之前,首先需要对本IC的功能有一个基本的定义。 ARCHITECTURE:IC的系统架构,包括算法的设计,算法到电路的具体映射,电路的具体实现方法,如总线结构、流水方式等。 在IC前端的设计中,ARCHITECTURE才是精华,其他的大部分都是EDA工具的使用,技术含量不高。 dv, design verification,验证 和前端、后端并列。 DFT, design for test. 前后端合作,并与tapeout 后测试合作。 ir-drop. 后端和验证合作。 SI, 后端。 low-power design ,前后端合作.

相关主题