前言

前两天看到一张数字IC设计流程图,觉得总结的比较全面,因此通过网络资源对每一步骤进行学习和总结,有不足或错误的地方烦请指正。

1. marketing request

市场需求。一般一个芯片的功能就来源于需求,这个需求可以是客户提出的对产品的要求,也可以是通过分析友商公司的产品来确定自己产品的市场定位和需求进而研发一款芯片。这一阶段工作一般由市场/需求分析师来完成。

2. architecture SPEC/project function SPEC

架构规格/项目功能。SPEC就是Specification,在SPEC中需要详尽的说明产品的整体架构和设计规格,需要阐明这款产品应当具有的所有功能,从SPEC中就可以看出这款产品的市场定位。这一阶段工作一般由解决方案架构师/架构工程师来完成。

3. Arch/algorithm emulation

架构/算法实现。一般用高级语言如C/C++/matlab,来实现芯片中整个系统的功能模块,由于在数据通路中需要大量的计算,因此matlab用的较多一些。这一步使用软件的形式来模拟电路中所实现的算法功能,这也成为了所谓的“原型机”,一个准确无误的数据模型。在电路的仿真阶段就是将结果与这个“原型机”的结果进行对比来确认功能是否正常且完备。这一阶段工作一般由算法工程师来完成。

4. design SPEC

设计规格。设计规格指的是数字设计负责人通过分析前面提出的project function SPEC,来规划在数字设计中所需要的资源以及在电路中能够实现的功能。接着设计电路,列出电路角度上的设计规格。

5. coding

编写代码。通过使用HDL语言来编写代码,注意这里的编写代码并不是编程(编写程序),而是通过HDL这种比较high level的语言去搭建电路,其本质是电路并不是程序。编码和编程一字之差就可以看出一个人是否是数字设计工程师。系统的设计流程是自顶向下,而搭建电路的流程是自下向上,通过一个个小模块的组合才能形成大模块(IP)进而形成一整个系统。现有的HDL语言有VHDL、verilog HDL和SystemVerilog,比较常用的是verilog HDL。

6. simulation/verification

仿真/验证。仿真验证,顾名思义就是模仿电路真实情况验证设计的正确性,此时一般与上文提到的原型机做对比。IP级的仿真验证进行完后,就要整合到系统上进行芯片级的仿真验证。456项直到仿真都是由数字设计工程师来完成,随着现在电路系统越来越复杂,出现了验证工程师这一职能,由此验证工作就交给了专业的验证工程师。通常验证工程师一般通过SPEC上所述功能列表来验证系统功能是否正确和完备。值得一提的是,现在的验证工作使用UVM和SystemVerilog,验证岗位如日中天。

7. logic synthesis

逻辑综合。当仿真验证工作结束后,会使用专业工具,一般用Design Compiler(DC)来进行逻辑综合,将RTL代码综合成为门级网表。至此,电路就进入了mos管级,用于后续流程。在DC之前的工作职能,我们都可以称之为数字前端工程师。而在之后的工作我们称之为数字后端工程师,前后端设计相关过程可以参考以前的文章。

8. Formality

形式验证。所谓形式验证,是指从数学上完备地证明或验证电路的实现方案是否确实实现了电路设计所描述的功能。Formality工具可以将RTL代码和门级网表进行逻辑一致性检查,对比两者功能是否完全一致。

9. STA

静态时序分析Static Timing Analysis。静态时序分析的功能是根据设计规范的要求检查所有可能路径的时序,不需要通过仿真或者测试向量就可以有效的覆盖门级网表中的每一条路径,在同步电路设计中快速找出时序上的异常。然后需要人工修复这些违规的时序,常用的简单方法有插入缓冲器,优化组合逻辑,替换晶体管大小等等一系列方法。常用软件PrimeTime(PT)。8和9项工作一般由数字后端工程师来完成。

10. DFT

可测试性设计。在电路设计阶段就考虑到芯片测试的一种设计方法,通过插入冗余电路来增强芯片的可测试性,优点是可以显著减少测试时间和成本,提高产品质量。缺点是会增大芯片面积、功耗、拖慢芯片速度等等,大部分量产的芯片都会有DFT设计。这一工作一般由DFT工程师来完成。

11. Place & Route

版图生成,自动布局布线。在这一阶段将所有的晶体管平铺在一个平面上,对每个模块的位置进行规划。常用工具是IC Compiler(ICC),IC Compiler集物理综合、时钟树综合、布线、成品率优化和签核修正于一体,能够达成其它任何产品都无法匹敌的设计性能和设计人员生产率。这一步由版图工程师来完成。

12. DRC/LVS

Design Rule Check/Layout Versus Schematics,设计规则检查和版图对比电路图,版图工程师进行最后的检查和核对。

13. post-layout STA

版图后STA。通常在PR之后原先的电路在结构上会被再次改变,就会产生新的时序信息,因此需要重新进行后仿真和静态时序分析,这两者同步进行,如果出现bug那就需要反工到第9步,继续优化电路。

14. GDSII -> tape-out

最终将所有电路信息转换成GDSII文件,交付给fab厂,一般tape-out也被称作交付、流片。

15. fab厂制造芯片

使用光刻机生产芯片,目前台积电可以量产7nm芯片,5nm正在试产。而中芯国际只有12nm光刻机。

16. 芯片测试

生产好的芯片可能会存在缺陷和故障,这时候就需要测试工程师入场发挥作用了。DFT工程师会配合测试工程师对生产好的芯片进行测试,以提高产品的质量,剔除电路有故障的芯片。对于量产的芯片来说,越晚发现芯片故障成本就会越高,因此这一步至关重要。

数字集成电路设计流程相关推荐

  1. 数字集成电路设计(一、Verilog HDL数字集成电路设计方法概述)

    文章目录 集成电路发展 HDL产生 HDL分类 Verilog HDL的发展 Verilog HDL与VHDL Verilog HDL在数字集成电路设计中的优点 组合逻辑电路原理图设计和Verilog ...

  2. 数字集成电路设计的流程1

    数字集成电路设计的流程 芯片验证属于前端 每个阶段的工作 使用的EDA工具,Linux系统(lincense) 三家软件公司,Mentor(questasim).Synopsys(VCS).Caden ...

  3. 【笔记】 数字集成电路设计(一)

    [笔记] 数字集成电路设计 书籍:<数字集成电路--电路.系统与设计>(第二版) 第一章 引论 1. 数字设计中需解决的问题 摩尔定律 技术突破才能推动摩尔定律 特征尺寸 28nm是传统制 ...

  4. 数字集成电路设计中------各种工程师职责

    数字集成电路设计实现流程是个相当漫长的过程,拿手机基带芯片为例,对于3G, 4G, 5G, 工程师最初见到的是无数页的协议文档. 架构师要根据协议来确定:协议的哪些部分可以用软件实现,哪些部分需要用硬 ...

  5. 数字集成电路设计简介及设计方法

    简介 数字集成电路(Digital Integrated Circuits,DIC)是一种能够处理数字信号的电路.它由多个数字逻辑电路元件组成,包括逻辑门.寄存器.计数器.加法器.乘法器等.数字集成电 ...

  6. 数字集成电路设计入门书籍

    本文介绍的是有关数字集成电路的基础入门书籍,涵盖全流程,主要是外文书. 基础概念书籍 <数字集成电路设计基础>(Fundamentals of Digital Logic Design): ...

  7. VerilogHDL(1)数字集成电路设计方法概述

    一.数字集成电路设计方法概述 2.什么是硬件描述语言,其主要的作用是什么? 硬件描述语言是一种用形式化方式来描述数字电路和系统的语言. 它的主要作用是:数字电路系统的设计者利用这种语言可以从上层到下层 ...

  8. 入门数字集成电路设计系列(一)——Modelsim安装及破解过程记录

    入门数字集成电路设计系列(一) #Modelsim破解教程(记录) Modelsim是由 Mentor Graphics 公司开发的软件,它是世界最优秀的Verilog HDL语言仿真工具,是FPGA ...

  9. 学以致用深入浅出数字信号处理 pdf_Robei |《数字集成电路设计》正式出版啦

    原标题:Robei |<数字集成电路设计>正式出版啦 1.背景 <数字集成电路设计>作为电子信息.自动化.微电子.计算机.通信.电子工程等学科专业必修的数字电路技术课程 ,自2 ...

  10. 数字集成电路设计的流程2

    基于standcell的ASIC流程 Standcell:标准单元 算法模型(C/C++/Matlab)→RTL(行为级,硬件描述语言,VHDL/Verilog/SV(设计和验证).将行为级代码翻译成 ...

最新文章

  1. Linux下通过txt文件导入数据到MySQL数据库
  2. 我们需要怎样的人工智能基础教育
  3. spring mvc DispatcherServlet详解之一--request通过HandlerMaping获取控制器Controller过程
  4. Sharding-JDBC(三)3.1.0版本实践
  5. android开发(50) Android透明状态栏。适用于 4.4 以上及 5.0以上设备
  6. MySQL修改、删除表的结构
  7. MyBatis框架笔记01:MyBatis初探
  8. [设计模式-行为型]策略模式(Strategy)
  9. 如何用深度学习 AI 美颜实现天天 P 图疯狂变脸算法? | 技术头条
  10. linux如何杀死ping进程,linux下ping命令使用详解
  11. 一维均值滤波算法matlab,用MATLAB编程实现均值滤波算法?
  12. 计算机系统(六):应用层(上篇)
  13. 关于物联网你需要知道的一切
  14. 以太网(802.3)帧格式
  15. Linux命令行下载文件到本地
  16. flink 消费 kafka offset 自动提交
  17. DXP 原理图pcb布小知识
  18. OJ(网络测试平台)的正确打开方式(C/C++)
  19. python过京东app图形验证勾股定理_Python爬虫模拟登录京东获取个人信息
  20. 【MySQL】——mysql系列之参数调优

热门文章

  1. postgresql批量插入数据脚本_asp.net实现Postgresql快速写入/读取大量数据实例
  2. 如何免费将一个PDF拆分成多个文件?
  3. 关于判断单峰数组的几种方法
  4. KGAT: Knowledge Graph Attention Network forRecommendation
  5. vue调用手机浏览器打开pdf_在微信中调用外部浏览器实现文件下载之解决
  6. wekan docker安装部署
  7. 阿里云服务器价格表:第7代云服务器ECS收费价格表
  8. python 卡方检验批量筛选_用python进行列联表卡方检验
  9. /proc文件系统详解
  10. SQL如何还原数据库