IC-CAD IC 设计流程及 EDA 工具
IC 设计流程是每个 IC 从业者的必修课,虽然多数人的从业方向只是 IC 设计流程中的一部分,但是了解 IC 设计流程全貌对正确认识每个 IC 设计环节的作用是有很大帮助的。
对于一个 CAD 来说,了解 IC 设计流程以及每个环节所用 EDA 工具,了解全流程中设计效率的洼地所在,并据此提出系统的解决方案,是整体上提升 IC 设计效率的根本所在,所以同样具有重要意义。
作为一个初入门者的学习笔记,本文多处文本和附图来源于网络,在此不一一注明,感谢原作者。由于本人才疏学浅,有理解错误或描述谬误的地方,请专家批评指正,不胜感激。另外,如非单独指出,本文中的 “IC 设计流程” 均为 “数字设计流程”。
下图是一个 IC 设计全流程的架构图,它的主线是 “ASIC 设计与实现”,为实现这一目的,在考虑到诸如速度和功耗等等 “性能指标” 的前提下,在各个设计环节实现的同时做好 “功能验证” 工作,以保证所有设计环节的 quality。
图一 IC 设计全流程
从逻辑实现还是物理实现这两部分来看,IC 设计流程可以笼统地分为前端和后端两部分。不同的公司有不同差别细微的区分方法,从比较全面的角度来看,我们可以把 IC 设计的完整流程区分为如下几部分。
- 确定项目需求
一般由项目 PM 来完成,先做市场调研以确定项目需求,对系统功能和能效参数给出指导意见。
- 系统架构设计
一般由系统架构师完成,确定系统功能细节,定义频率、功耗等参数指标,做顶层的系统仿真模拟,以确定一个可行的芯片设计方案。
- 前端设计
前端设计(front-end)一般包括 RTL 代码实现和功能仿真。
- 中端设计
中端设计(mid-end)一般囊括了从功能仿真到物理实现中间所有的环节,包括综合(synthesis),形式验证(formal verification),低功耗设计(low power design),可测试性设计(design for test),STA 等。
简单起见,很多公司也把中端设计归到前端设计的范畴里面。
- 后端设计
后端设计(back-end)包括布局布线,形式验证,后仿真等。
其中,前端和中端的设计流程如下所示。前端从编写 RTL 代码开始,中端的最终交付产品为 netlist。
图二 前端和中端设计流程
后端的设计流程如下所示。后端的输入为 netlist,最终输出为 GDSII 格式的文件,交由芯片制造商流片。
图三 后端设计流程
那么在不同的 IC 设计流程,各家 EDA 厂商有哪些主流的 EDA 工具来辅助设计实现呢?
表一 IC 设计流程对应的 EDA 工具
IC 流程 |
Cadence |
Synopsys |
Mentor |
Others |
模拟仿真与版图 |
Virtuoso |
|||
RTL 仿真 |
VCS |
ModelSim |
||
综合 |
Genus |
Dc |
||
形式验证 |
Formality |
|||
Spice 仿真 |
Spectre |
Hspice |
||
时序 |
Tempus |
Pt |
||
DFT |
DFTCompiler |
Tessent |
||
布局布线 |
Encounter/Innovus |
ICC/ICC2 |
||
物理验证 |
PVS |
Calibre |
||
寄生参数提取 |
Quantus |
Star-RCXT |
Calibre-XACT |
|
k 库 |
Liberate |
Silicon-smart |
有一些 EDA 工具经历过一些大的版本迭代和合并升级,名字会有所不同,有不准确的地方请指正。
之所以给 cadence 列出这么多产品,并不是说它的 EDA 工具在每个流程环节都占有主要的市场地位,主要是说明它有比较全的全流程工具链,其中 Virtuoso 具有绝对的市场地位,Innovus 和 Liberate 具有领先的市场地位,Spectre 和 Tempus 也有相当的用户。相比较而言,synopsys 的 EDA 工具在数字电路设计的流程中更具有优势,Dc、Pt 和 Formality 具有绝对的市场地位,ICC2 和 Hspice 具有领先的市场地位,VCS 和 DFTCompiler 也被广泛应用。Mentor 的部分点工具则十分出色,比如 Tessent 和 Calibre,这也是非常难能可贵的。
那么每个 IC 设计环节可以用什么 EDA 工具来实现,系列的 EDA 工具(Vendor 称之为全家桶)是如何相互搭配来完成全流程设计的呢?下面以 C 家的工具为例来说明。
图四 C 家数字芯片设计流程对应 EDA 工具
部分名词解释:
HLS : High-level synthesis,高层次综合。
LEC : Logic equivalence check, 逻辑等价性检查。
ECO : Engineer changing order,技术更改指令,可以通过修改 netlist 或者物理实现以修正小的逻辑错误。
DRC : Design rule check,设计规则检查,检查版图是否符合工艺规范。
LVS : Layout versus schematic,一致性检查,保证原理图和版图的一致性。
C 家在前端提供了 Stratus 这款高层次综合平台(HLS,high-level synthesis),Genus 用作综合(synthesis),Joules、Conformal 和 Modus 分别用在功率分析、逻辑等价性检查、逻辑修正及自动测试逻辑插入等。从受欢迎程度来看,C 家的 EDA 工具在数字前端有些弱。
Innovus 作为当家产品则为后端提供强大的布局布线功能,应用于时序和功耗和 Tempus 和 Voltus 也可圈可点,Quantus、PVS 和 DFM 则分别用在寄生参数提取,物理验证和可制造性设计。
由此可见,C 家可以提供数字全流程的全家桶,据悉,有些公司就会直接采购 C 家的全家桶用于 IC 设计,不同工具使用的交互兼容性上会更好一些。而大规模一些的公司,则会选择每个设计环节最主流的 EDA 工具以保证更高的精度和速度,以确定获取更加 golden 的结果。
IC-CAD IC 设计流程及 EDA 工具相关推荐
- 从 Spec.到芯片_(数字IC、模拟IC、FPGA/CPLD设计的流程及EDA工具)
从 Spec.到芯片→ 先来看张图,本图体现出了集成电路产业链:设计业.制造业.封测业. 关于制造.封装测试我们看两张图稍作了解即可: 关于设计,是本文主要内容,主要从下方几个方面了解: 1.IC设计 ...
- 数字芯片的设计流程及其使用工具
IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计. 前端设计的主要流程: 1.规格制定 ...
- IC设计中不同eda工具波形文件(wlf/vcd/fsdb/shm/vpd)的区别及生成方法
转自http://www.eetop.cn/blog/html/30/523930-36594.html 波形文件一般用于仿真后记录波形文件,用于做详细分析和研究.说一下几种波形文件WLF(Wave ...
- IC设计流程之工具篇——EDA软件
1947年Bell Lab制造出第一款晶体管,1958年德州仪器的Jack Kilby用2个晶体管构造了世界上第一款集成电路,这是集成电路IC的雏形与开端.2003年英特尔公司生产的Pentium4处 ...
- 数字ASIC设计流程前端到后端使用工具
文章来于<ic设计流程与使用工具介绍> a.通用型数字Asic(从上到下) 在验证算法时一般使用C语言或者verilog来对系统算法进行建模,使用行为级描述来对算法功能的正确与否进行仿真. ...
- 什么是EDA?常见的EDA工具有哪些?
大家都知道,芯片设计难度非常大,要把上千亿颗晶体管集成在面积不到指甲盖大小的芯片上.其实能实现这样目标所以靠的是电子设计自动化(Electronics Design Automation)工具,也就是 ...
- ZYNQ - 嵌入式Linux开发 -06- petalinux设计流程
写在前面 本文主要对petalinux设计流程进行简略介绍. petalinux设计流程介绍 PetaLinux 工具提供了在 Xilinx 处理系统上自定义. 构建和部署嵌入式 Linux 解决方案 ...
- 【正点原子FPGA连载】第六章Petalinux设计流程实战摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...
- 【正点原子FPGA连载】第十六章Petalinux设计流程实战摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...
最新文章
- C++编程思想重点笔记(上)
- 调整命令行的列数和行数 mode con: cols=100 lines=10000
- 石大ACM2587解题报告
- 数据库为什么使用B+树而不是B树
- Java 学习 swing 应该学习到什么程度?
- python-day1-login练习
- invalid floating point operation什么意思_数据可视化有意思的小例子:Taylor Swift 歌词数据分析和可视化...
- flask 部署_只需10分钟!就能用Flask,Docker和Jenkins部署机器学习模型
- 静态页面被拦截解决办法
- 2020-09-14 编译Qt的MySQL 5.7插件: qsqlmysql.dll
- Android 安装腾讯X5内核
- 软考资料合集/软考真题合集(软件设计师/网络工程师/系统分析师/系统架构师/软件测评师/程序员等)
- AdapterView详解
- 架构师之路 — 分布式系统 — 分布式网络分区难题
- Linux下的软硬链接介绍
- 服务器cpue5性能,单路的较量 英特尔E3E5处理器性能对比
- 一个Python自动提取内容摘要的实践
- SLAM基础——李群李代数
- python基础logging 压缩、根据指定文件夹并进行删除
- 高级篇之ENC编码器实现简单视频会议的方案
热门文章
- 解决IDEA中pom.xml中不能自动加载jar包
- Alexa关闭,最好的SEO工具轮到谁了?
- 计算机个人swot分析报告,个人swot分析报告.doc
- 一种通用强人工智能系统的实现
- 学习下 BlackHat Asia 2021 大会议题
- scott.sql脚本 mysql_数据库scott脚本
- oracle怎样创建scott用户,oracle 手工创建Scott用户
- Shell 脚本小试牛刀(5) -- 超便捷脚本之高速ssh 登录其它主机
- vueTable大数据展示优化
- c语言字符串中的字符无效,字符串操作