芯片设计流程概述

芯片设计分为前端设计和后端设计,前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计。

1. 规格制定
芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。

2. 详细设计
Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。

3. HDL编码
使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。

4. 仿真验证
仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。看设计是否精确地满足了规格中的所有要求。规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。 设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。
仿真验证工具Synopsys的VCS,还有Cadence的NC-Verilog。

5. 逻辑综合――Design Compiler
仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表netlist。综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(standard cell)的面积,时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)。
逻辑综合工具Synopsys的Design Compiler。

6. STA
Static Timing Analysis(STA),静态时序分析,这也属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,是没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题。
STA工具有Synopsys的Prime Time。

7. 形式验证
这也是验证范畴,它是从功能上(STA是时序上)对综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能。
形式验证工具有Synopsys的Formality。

前端设计的流程暂时写到这里。从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路。

Backend design flow :

1. DFT
Design For Test,可测性设计。芯片内部往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试。DFT的常见方法就是,在设计中插入扫描链,将非扫描单元(如寄存器)变为扫描单元。关于DFT,有些书上有详细介绍,对照图片就好理解一点。
DFT工具Synopsys的DFT Compiler

2. 布局规划(FloorPlan)
布局规划就是放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,如IP模块,RAM,I/O引脚等等。布局规划能直接影响芯片最终的面积。
工具为Synopsys的Astro

3. CTS
Clock Tree Synthesis,时钟树综合,简单点说就是时钟的布线。由于时钟信号在数字芯片的全局指挥作用,它的分布应该是对称式的连到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时,时钟延迟差异最小。这也是为什么时钟信号需要单独布线的原因。
CTS工具,Synopsys的Physical Compiler

4. 布线(Place & Route)
这里的布线就是普通信号布线了,包括各种标准单元(基本逻辑门电路)之间的走线。比如我们平常听到的0.13um工艺,或者说90nm工艺,实际上就是这里金属布线可以达到的最小宽度,从微观上看就是MOS管的沟道长度。
工具Synopsys的Astro

5. 寄生参数提取
由于导线本身存在的电阻,相邻导线之间的互感,耦合电容在芯片内部会产生信号噪声,串扰和反射。这些效应会产生信号完整性问题,导致信号电压波动和变化,如果严重就会导致信号失真错误。提取寄生参数进行再次的分析验证,分析信号完整性问题是非常重要的。
工具Synopsys的Star-RCXT

6. 版图物理验证
对完成布线的物理版图进行功能和时序上的验证,验证项目很多,如LVS(Layout Vs Schematic)验证,简单说,就是版图与逻辑综合后的门级电路图的对比验证;DRC(Design Rule Checking):设计规则检查,检查连线间距,连线宽度等是否满足工艺要求, ERC(Electrical Rule Checking):电气规则检查,检查短路和开路等电气 规则违例;等等。
工具为Synopsys的Hercules

实际的后端流程还包括电路功耗分析,以及随着制造工艺不断进步产生的DFM(可制造性设计)问题,在此不说了。

物理版图验证完成也就是整个芯片设计阶段完成,下面的就是芯片制造了。物理版图以GDS II的文件格式交给芯片代工厂(称为Foundry)在晶圆硅片上做出实际的电路,再进行封装和测试,就得到了我们实际看见的芯片。

链接:http://www.zhihu.com/question/28322269/answer/42048070

时间: 2024-10-23 10:19:58

芯片设计流程概述的相关文章

WebKit加载流程 - 概述

之前写了几篇加载流程的说明,是从下向上看,有点只见树木不见森林的感觉.经过最近一段时间的学习,有了能加以概括抽象的方法. WebKit加载流程和页面组成是直接相关的,页面就是WebKit要加载的对象.所以WebKit负责加载的类也与负责页面管理的类相对应.Apple关于WebView的说明里清楚表现了页面视图上的MVC结构: 一个页面从元素上也有其层次结构,并且和加载类对应,如下: 从页面元素上讲WebView代表了一个页面的呈现,对应一个Page. 一个Page包含一个或多个Frame,其中一

Windows Server 2012 R2 WSUS-10:流程概述

本篇文章来大概说一说打补丁的流程,一般来说打补丁的流程分为测试环境测试和生产环境安装两个部分.如果企业规模比较小,没有完善的流程制度,也是有一些打补丁的原则可以遵循的,比如: 对于安全级别为Low以上的各种安全补丁应该分发: 对于操作系统的安全补丁应该分发: 对于各种IE版本安全补丁应该分发: 对于其他各种安全补丁(如Media Player.OutLook Express等)应该分发: 对于状态为Updates修订版本的安全补丁,无需手工批准,系统会自动发布: 那么对于规模稍微复杂的企业来说,

crash log具体流程概述

crash log具体流程概述 当某服务或者native code程序crash产生调试信息后有两中去向: 1.写入到logcat: 这种信息可以通过adb shell中的logcat中察看到. 2.写入到系统的/data/tombstones/文件夹中: 创建tombstone_xx文件后写入信息,xx 从00开始,最大支持49个tombstone_xx文件,超出后会从00开始重新写入覆盖之前. 当某一进程crash以后会向系统发送信号,信号在某个地方会被拦截下来发送给android的处理函数

网站项目建设流程概述

网站项目建设流程概述 一.概念 网站项目管理就是根据特定的规范.在预算范围内.按时完成的网站开发任务. 二.需求分析 项目立项 我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项.较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员.项目实行项目经理制. 客户的需求说明书 第一步是需要客户提供一个完整的需求说明.很多客户对自己的需求并不是很清楚,需要您不断引导和帮助分析.曾经有一

Jmeter_接口自动化基础流程概述

1:创建一个线程组 2:添加一个cookie管理器   测试开发交流群 317765580 3:设置你的信息头管理器:application/json;text/plain;charset=UTF-8  测试开发交流群 317765580 44 4:添加一个用户参数,做全局变量使用.此处将url写成全局变量,后期只需要在此处修改url,而不需要去每一个接口中单独调整  测试开发交流群 317765580 5:添加一个默认请求值,这里的参数设置之后可以作为后期所有接口脚本模板,不需要重复填写 6:

项目实施流程概述

SAP为独立实施的项目提供了面向过程的.清晰的.准确的实施路标.这个路标起到了项目向导的作用,用来确定步骤,明确转折点,并且通常用来设定整个项目的进度,使得可以使用最优的预算和资源,快速高质量的生成一个新的系统.ASAP路标包括下面几个阶段:项目准备,业务蓝图,实现,最后准备以及上线支持. 1.项目准备阶段 项目准备阶段主要是建立项目组织,包括项目团队.角色和职责.这一阶段确定系统实施的目标.还要确定项目的基本构造,包括硬件.网络要素.执行正式安装的规模和指标,并且初始化SAP系统. 1.1 定

ETL流程概述及常用实现方法

http://blog.csdn.net/btkuangxp/article/details/48224187 目录(?)[-] 1抽取作业 1手工开发抽取作业时候的常用方法 11当数据源和DW为同一类数据库时 12当数据源和ODS为不同类型数据库时 2更新数据的时间和数量的问题 21实时抽取数据 22批量抽取数据 221常用实现 222根据下载时候对数据的筛选方式可以分为 2转换作业 1数据清洗 2数据转换 3加载作业 4流程控制 5常用商业ETL工具 ETL是英文Extract-Transf

[uboot] (第一章)uboot流程——概述

http://blog.csdn.net/ooonebook/article/details/52939100 [uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2) 建议先看<[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)>,根据例子了解一下上电之后的BL0\BL1\BL2阶段,以及各个阶段的运行位置,功能. =====================================

关于制作一个网页的工作流程概述

第一步:项目需求评审(明确需求) 第二步:等待ui设计师提供psd(项目需求技术调研) 第三步:等到ui设计师设计稿通过以后,给前端制作静态html+js(自己在浏览器或者移动设置上浏览,查看是否有兼容问题) 以上为基本制作流程 以下几步为项目对接-一直到发布到线上的过程 第四步:前后台数据对接完成-测试没有问题以后,提交测试环境(任务给测试人员) 第五步:修改测试返回的问题(直到测试通过为准) 第六步:测试发送测试报告以后,提交预生产环境,先试着跑1到2周,观察情况(测试回归任务检验开发任务是