IC设计前端到后端的流程和eda工具。
IC前端设计(逻辑设计)和后端设计(物理设计)的区分:以设计是否与工艺有关来区分二者;从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路。
前端设计的流程及使用的EDA工具例如以下:
1、架构的设计与验证:依照要求,对总体的设计划分模块。
架构模型的仿真能够使用Synopsys公司的CoCentric软件,它是基于System C的仿真工具。
2、HDL设计输入:设计输入方法有:HDL语言(Verilog或VHDL)输入、电路图输入、状态转移图输入。
使用的工具有:Active-HDL,而RTL分析检查工具有Synopsys的LEDA。
3、前仿真工具(功能仿真):初步验证设计是否满足规格要求。
使用的工具有:Synopsys的VCS,Mentor的ModelSim,Cadence的Verilog-XL,Cadence的NC-Verilog。
4、逻辑综合:将HDL语言转换成门级网表Netlist。综合须要设定约束条件,就是你希望综合出来的电路在面积,时序等目标參数上达到的标
准;逻辑综合须要指定基于的库,使用不同的综合库,在时序和面积上会有差异。逻辑综合之前的仿真为前仿真,之后的仿真为后仿真。
使用的工具有:Synopsys的Design Compiler,Cadence的 PKS,Synplicity的Synplify等。
5、静态时序分析工具(STA):在时序上,检查电路的建立时间(Setuptime)和保持时间(Hold time)是否有违例(Violation)。
使用的工具有:Synopsys的Prime Time。
6、形式验证工具:在功能上,对综合后的网表进行验证。经常使用的就是等价性检查(Equivalence Check)方法,以功能验证后的HDL设计为參
考,对照综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描写叙述的电路功能。
使用的工具有:Synopsys的Formality
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/OPad预先给出了位
置,而宏单元则依据时序要求进行摆放,标准单元则是给出了一定的区域由工具自己主动摆放
。布局规划后,芯片的大小,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 静态时序分析和后仿真。时钟树插入后,每一个单元的位置都确定下来了,
工具能够提出Global Route形式的连线寄生參数,此时对延时參数的提取就比較准确了。
SE把.V和.SDF文件传递给PrimeTime做静态时序分析。确认没有时序违规后,将这来两个文
件传递给前端人员做后仿真。对Astro 而言,在detail routing 之后,用starRC XT 參
数提取,生成的E.V和.SDF文件传递给PrimeTime做静态时序分析,那将会更准确。
6. ECO(Engineering Change Order)。针对静态时序分析和后仿真中出现的问题,
对电路和单元布局进行小范围的修改.
7. Filler的插入(padfliier, cell filler)。Filler指的是标准单元库和I/O P
ad库中定义的与逻辑无关的填充物,用来填充标准单元和标准单元之间,I/O Pad和I/O P
ad之间的间隙,它主要是把扩散层连接起来,满足DRC规则和设计须要。
8. 布线(Routing)。Global route-- Trackassign --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厂进行掩膜制造
IC设计前端到后端的流程和eda工具。的更多相关文章
- IC设计前后端流程与EDA工具
IC前端设计(逻辑设计)和后端设计(物理设计)的区分: 以设计是否与工艺有关来区分二者:从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路. 前端设计的流程及使用的EDA工具 1.架构的设计 ...
- [转]关于几本模拟IC设计书
1.P.R.Gray的书 这本书被业界誉为模拟IC的Bible,盛名之下,必无虚士.现在已经出到第四版,作者无一例外是业界大牛,该书论述严谨,思路清晰,对电路分析透彻,定义严格明确,无愧Bible之名 ...
- VerilogHDL概述与数字IC设计流程学习笔记
一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是 ...
- (转)IC设计完整流程及工具
IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计. 前端设计的主要流程: 1.规格制定 ...
- 【转载】数字IC设计流程及开发工具
原文链接:https://www.zhihu.com/question/28322269/answer/42048070 Design Flow <img src="h ...
- IC设计流程介绍
芯片设计分为前端设计和后端设计,前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计. 1. 规格制定 芯片规格,也就像功能列表一样 ...
- IC设计流程概述
芯片设计分为前端设计和后端设计,前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计. Front-end design flow 1. 规格制定 ...
- 架构设计:前后端分离之Web前端架构设计
在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分离的一种具体实现方案,该方案和我原来设想有 ...
- 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...
随机推荐
- 聊聊并发(六)——ConcurrentLinkedQueue的实现原理分析
1. 引言 在并发编程中我们有时候需要使用线程安全的队列.如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法.使用阻塞算法的队列可以用一个锁(入队和出队用同一把 ...
- 【原创】纯OO:从设计到编码写一个FlappyBird (五)
第四部分请点这里 本文将实现DrawBoard. 如前文所述,Obstacle类和Bing类仅仅提供给DrawBoard必要的信息,如何绘制则完全委托给了DrawBoard,也就是说游戏关键类的细节和 ...
- Android 深入解析光传感器(二)
光线传感器演示1 讲了一大堆的理论,那么以下的样例就来展示一下光线感应器的使用.为什么充分展现光感的用法,我这个样例写的很easy,仅仅写了使用光感必须的代码,然后用了几个textVie ...
- struts开发步骤
说来惭愧.这是一个简单的struts折腾了很长一段时间,几乎相同的时间量就花了三天时间来解决.下面的步骤总结一下我开发:(我使用的是MyEclipse); 1.新建一个Exercise3的web Pr ...
- 了解HTML5和“她”的 API (一)
简化了文档声明.字符集 //声明 <!doctype html> //字符 <meta charset="utf-8"> 引入了新的标签元素 Select ...
- 【Android进阶】使用Andbase快速开发框架实现常见侧滑栏和滑动标签页组合效果
最近闲来无事,在网上寻找源代码看,突然发现了一个国内技术牛人开发的快速开发框架Andbase,花了一天时间研究了下源码和怎么使用,现将开发常见的侧滑栏和滑动标签页组合效果的使用介绍个大家,希望可以减少 ...
- 玩转Web之Jsp(二)-----jsp中怎么使用CKEditor
在BBS项目或其他一些项目中,我们会发现别人写的一些文本域非常漂亮,而且有多种功能,这是怎么做到的呢?其实通过在jsp文件中引用在线编辑器即可,这里以CKEditor为例. 首先下载CKEditor: ...
- Android应用开发:LoaderManager在Activity/Fragment中的使用分析
LoaderManager 外部接口initLoader:起始 public <D> Loader<D> initLoader(int id, Bundle args, Loa ...
- 【cocos2d-js官方文档】二十五、Cocos2d-JS v3.0中的单例对象
为何将单例模式移除 在Cocos2d-JS v3.0之前.全部API差点儿都是从Cocos2d-x中移植过来的,这是Cocos2d生态圈统一性的重要一环.可惜的是,这样的统一性也在非常大程度上限制了C ...
- 解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 问题(转)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 8-11: ordinal not in range(128 ...