精华内容
下载资源
问答
  • 2022-03-16 11:19:52

    写在前面

    时隔一年,我已经找完工作,正式转行数字IC。对于自己的未来,我很清楚,从事数字IC设计这个职业,对于我来说,即是机遇也是挑战。古人云,千里之行,始于足下。不积跬步无以至千里,不积小流无以成江海。借着最近一段时间写毕业论文的闲暇时光,我想,我也应该开始梳理自己的知识体系,夯实自己数字IC设计的基本功。

    数字IC设计的流程

    都说FPGA与数字IC很相似,但是实际上,数字IC主要是对于ASIC设计而言。因此,需要处理好FPGA开发与数字IC设计的异同。首先,梳理清楚数字IC的设计流程。

    1. 项目需求

    工程师的目标就是设计出一款技术先进的,具有市场竞争力,满足市场需求的产品。围绕这个目标,一般来说,需要有一部分人做市场调研,用数据分析市场当前的需求,热点和痛点。明确需求,结合公司的技术积累,开始制定自己的技术方案。

    2. 系统设计

    架构师的目标就是根据市场需求来制定芯片规格和技术参数,确定芯片的功能,并用算法进行模拟仿真,最后得出一个可行的技术方案,得到芯片的详细规格书。

    3. 前端设计

    1. RTL,又名register transfer level设计。也就是利用硬件描述语言,常见的有VHDL,Verilog HDL , System Verilog 等,对电路以寄存器之间的传输为基础进行描述。

    注意,这里的HDL为 Hardware Description Language, 因此,本质上是一种电路的描述语言,与C语言,C++语言存在本质的不同。

    语言输入工具

    • Summit 公司的 VisualHDL

    • Mentor 公司的 Renoir

    图形输入工具

    • Cadence的composer

    • viewlogic的viewdraw

    1. 功能仿真常见的有DV工程师完成,需要的搭建test bench来对电路的进行验证。检查编码设计的正确性,是否满足了制定的规格,需要反复迭代设计。

    仿真工具

    Verilog HDL

    • Mentor公司的Modelsim

    • Synopsys公司的VCS

    • Cadence公司的NC-Verilog、Verilog—XL

    VHDL

    • Mentor公司的Modelsim

    • Synopsys公司的VSS

    • Cadence公司的NC-VHDL、Leapfrog

    在综合之前的仿真称为前仿真,主要是功能仿真行为仿真逻辑仿真

    在版图设计完成后,还要在进行一次仿真,称为后仿真。也就是时序仿真

    1. 逻辑综合

    仿真通过后,进行逻辑综合,就是将HDL代码转译为门级网表。综合需要设定约束条件。也就是综合出来的电路,能够满足面积,时序等目标参数的设计标准。逻辑设计需要基于特定的综合库,不同库中,门基本标准单元的面积,时序参数是不一样的。因此,所选用的综合不同,综合出来的电路在时序,面积上也是有差异的。

    1. 综合工具

    逻辑综合工具:

    • Synopsys的Design Compiler, Behavial Compiler、 DC-Expert

    • Cadence的buildgates、Envisia Ambit®

    • Mentor的Leonardo

    1. STA(static timing analysis)静态时序分析。套用特定的时序模型,针对特定电路,分析其是否违反设计者给定的时序限制。

    时序分析属于验证范畴,主要是在检查在时序上的电路,检查电路是否存在建立时间和保持时间的违例。如果过时间违例,没有办法正常输出,不能实现特定的功能。

    STA工具

    • Synopsys的Prime Time。

    • Cadence的Pearl、Tempus

    • Mentor的SST Velocity

    7.形式验证

    从功能上对于综合后的网表进行验证,常用的就是的等价性检查方法,以功能验证的HDL设计为参考,对比综合后的网表功能。是否在功能上存在等价性。这样是为了保证在逻辑综合过程中没有改变原来的电路功能。

    形式验证工具

    • Synopsys的Formality。

    • Cadence的LEC、FormalCheck

    • Mentor的FormalPro

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

    4. 后端设计

    1. DFT: Design For Test。可测性设计。芯片内部往往自带测试电路。DFT的目的就是在设计的时候考虑将来的测试。当芯片越来越大,需要做scan,chain,mbist,ATPG等工作。常见的就是在设计中插入扫描链,将非扫描单元(寄存器),变为扫描单元。

    DFT工具

    • BSCAN技术– 测试IO pad,主要实现工具是:Mentor的BSDArchit、sysnopsy的BSD Compiler;

    • MBIST技术– 测试mem,主要实现工具是:Mentor的MBISTArchitect 、Tessent mbist;

    • ATPG 技术– 测试std-logic,主要实现工具是:产生ATPG使用Mentor的 TestKompress 、synopsys TetraMAX,插入scan chain主要使用synopsys 的DFT compiler。

    2.布局

    布局规划就是放置芯片的宏单元模块,在总体上确定各个功能电路的摆放位置,比如IP,RAM,IO引脚等,布局规划能够直接影响芯片的最终面积。

    布局规划工具

    • Synopsys的Astro、Physical Compiler、IC Compiler

    • Cadence的Encounter、PKS、Silicon Ensemble、Design Planner

    3.CTS: Clock Tree Synthesis: 时钟树综合,简单说就是时钟的布线。由于时钟信号在数字芯片内属于全局指挥的功能,它的分布应该是对称式的连到各个寄存器范媛,从而使时钟从同一时钟源到达各个寄存器,时钟延迟差异最小。这也就是为什么是时钟信号需要单独布线。

    CTS工具

    • Synopsys的Clock Tree Compiler

    • Cadence的CT-Gen

    1. 布线(Place & Route)

    布线就是将前端提供的网表(netlist),实现成版图(layout),包括各种标准单元(基本逻辑门电路)之间的走线。比如我们平常听到的0.13um工艺,或者说90nm工艺,实际上就是这里金属布线可以达到的最小宽度,从微观上看就是MOS管的沟道长度。

    布线工具

    • Synopsys的Astro、Physical Compiler、IC Compiler

    • Cadence的Encounter、PKS、Silicon Ensemble、Design Planner

    1. 寄生参数提取

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

    寄生参数提取工具

    • Synopsys的Star-RCXT

    • Mentor的Calibre xRC

    • Cadence的 Assure RCX

    1. 物理版图验证

    对布线完成的版图我们还需要进行功能和时序上的验证,验证项目很多,如:

    LVS(Layout Vs Schematic)验证:简单说,就是版图与逻辑综合后的门级电路图的对比验证

    DRC(Design Rule Checking):设计规则检查,检查连线间距,连线宽度等是否满足工艺要求

    LVS/DRC工具

    • Synopsys的Hercules

    • Cadence的Dracula、diva、assura

    Mentor的Calibre

    版图验证部分,我们还需要进行时序仿真,也就是之前说的后仿真。这次的仿真不再是简单的功能仿真,而是需要考虑实际的时延等因素。

    1. 后仿真工具:和前仿真工具一样。

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

    物理版图验证完成也就是整个芯片设计阶段完成,下面的就是芯片制造了。

    物理版图以GDSII的文件格式交给芯片代工厂(称为Foundry)在晶圆硅片上做出实际的电路,再进行封装和测试,就得到了我们实际看见的芯片。

    参考链接.

    最后的总结

    总的来说,数字IC是一个严谨而专业的岗位,需要专心致志的做好一件事情。把一件事情做好,才能去做下一件。积少成多,最后成为一名国家需要的工匠。实现我自己的人生价值。

    更多相关内容
  • 数字IC设计面试笔试题,详细准确,帮助你快速入门
  • 数字IC设计笔试面试经典100题,帮助你通过考试,找到数字电路的相关工作
  • 数字IC设计验证平台的搭建.ppt
  • 数字IC设计笔试面试经典题目总结与答案详细分析,内容丰富,有33页的题目总结
  • 1、基于标准单元的ASIC设计流程。 2、数字前端设计流程 3、数字后端设计流程
  • 数字IC设计工程师笔试面试经典100题(大部分有答案).pdf
  • 包含典型电路源码,SPI,I2C,clk_div,等等。方便verilog初学者学习
  • 数字IC设计:方法、技巧与实践
  • 数字IC设计工程师笔试面试经典100题pdf,数字IC设计工程师笔试面试经典100题,需要的朋友可以下载看看
  • 数字IC设计

    2015-08-28 15:43:11
    这是每个公司对于数字IC设计人员的面试考题,是近些年来公司经常出现的一些考题。
  • 数字IC设计找工作必备100问
  • 数字IC设计工程师面试100题.docx
  • 数字IC设计的流程及规范,各个步骤要实现的目标及相应的工具。
  • 数字IC前端后端设计流程,本文档主要讲述了数字IC设计的流程,包括前端设计和后端设计的详细步骤。
  • 数字IC设计VHDL编程

    2018-07-02 21:17:12
    名校数字电路设计编程语言VHDL,初级课程PPT,学习完课程可以达到入门级别
  • 数字IC设计】001. IC设计基础

    千次阅读 2022-02-13 16:08:38
    集成电路(Integrated Circuit,IC)又称芯片,是现代信息社会的基石,它承载了信息时代的灵魂,是现代技术发展的精华结晶,所有现代的电子设备都必须依赖于芯片才能发挥出完全功效。集成电路现在已经演变为一个完整...

    1.1 集成电路设计基础(IC设计)

    集成电路(Integrated Circuit,IC)又称芯片,是现代信息社会的基石,它承载了信息时代的灵魂,是现代技术发展的精华结晶,所有现代的电子设备都必须依赖于芯片才能发挥出完全功效。集成电路现在已经演变为一个完整且独立的设备形态,单个芯片就可以完成一个传统的设备系统功能,达到真正的System on Chip(SoC)。现在任何一部智能手机的处理器芯片的处理能力就远超80年代的大型计算机了,同时,芯片也在朝着各个应用领域和应用场景演进,例如可穿戴式芯片,微机械芯片等。
    一个典型的集成电路芯片,集成了大量的功能部件,包括模拟电路、数字电路以及CPU。数字电路主要用于数字信号的处理,模拟电路主要是由电容、电阻、晶体管等组成的,用于模拟信号的处理,主要包括射频电路(RF)、功率放大器(PA与LNA)、锁相环(PLL)、模拟滤波器、电源管理等。
    对于单一功能的电路而言,采用纯粹的硬件逻辑设计方案基本能够满足应用需求。但对于通信系统或者移动互联网应用而言,芯片的功能需求时刻变化,应对的客户群体也形形色色,如果采用纯粹的硬件逻辑,必然使应用市场极为狭窄,因此复杂的系统级芯片必须SoC化或者软件化。
    SoC化的优点很明显,对于同样的芯片,通过加载不同的应用软件,实现不同的功能定义,实现单一的芯片的通用化,从而达到单片成本最小化。因此在后续的设计中,需要熟悉如何将一个单纯的逻辑电路改造为能够支持各种软件定义的功能器件,实现芯片功能覆盖的软件化。

    1.1.1 硬件与软件的优缺点对比

    1. 硬件的优点:
      (1)吞吐率高、全并行化处理,相对于软件可以实现10~100倍的性能提升;
      (2)相对于CPU/DSP设计而言,复杂度较低,整体规划简单;
      (3)软件设计相对于简单,而且代码精简;
    2. 硬件的缺点:
      (1)成本较高,需要额外的硬件资源,芯片面积相对较大,此外还有大量IP使用费用;
      (2)研发时间很长,从概念原型到RTL编写验证至少6个月;
      (3)一次成功率较低,通常需要多次迭代验证才能正常工作;
    3. 软件的优点:
      (1)成本较低,可以随时添加功能,而且不会随着芯片量产而发生变化;
      (2)调试简单,无须考虑时序收敛,功耗控制相对容易;
    4. 软件的缺点:
      (1)相对于硬件实现而言,性能较差;
      (2)算法实现对CPU/DSP的处理速度、存储容量有较高要求;
      (3)由于软件开发的不确定性因素很多,所以芯片上市后,还需要发布大量的补丁版本;

    1.1.2 集成电路设计中的分工层次

    IC设计通常包含多个方向,包括算法设计、系统架构、数字电路设计(数字前端)、模拟电路设计、版图设计、测试验证、数字后端与DFT(Design For Test)、芯片生产测试设计(DFM设计)、芯片固件与软件设计、电路板与应用原型开发等,只有将这些完整的组合在一起,才能设计出一个完善的、具有一定竞争力、能被市场接受的芯片。下图为芯片分工层次图。
    在这里插入图片描述
    根据不同的方向,对应着不同的工程师,主要可以分为系统架构设计工程师、算法设计工程师、电路设计工程师(数字前端设计工程师和模拟电路设计工程师)、芯片验证工程师、量产测试工程师、固件与软件工程师。

    1. 系统架构设计工程师
      系统架构设计工程师的设计重点是保证IC芯片的整体架构合理,各个基本单元模块功能均衡、不存在设计短板,而且芯片在可控性、可验证性、可测试性以及前后芯片产品的可维护性和延续性上具备卓越的性能。系统架构是整个IC设计中最基础的工作,产品是否满足市场和客户需求、上市时间是否领先竞争对手、功能是否有竞争力、解决方案的成本和芯片良率是否可控,都取决于系统构架。
    2. 算法设计工程师
      算法设计工程师的设计重点是保证IC芯片能够完成特定功能,且设计的算法具备可实施性。算法工程师能够决定芯片的性能和大部分的成本,同时也是系统构架和电路设计的中间桥梁。
    3. 电路设计工程师
      电路设计工程师设计的重点在于将算法精确地用电路实现,同时兼顾功耗、成本和电路可测试性,此外还需要独立设计模块控制电路、各种电路胶粘逻辑、时钟系统、复位系统以及全局控制逻辑。
    4. 测试验证工程师
      测试验证工程的工作重点在于根据设计规范(Spec)和设计需求,对电路进行测试验证,验证工作通常包含白盒测试与黑盒测试,往往需要引入很多的测试方法学(UVM)和测试手段,例如SVA等,此外还需要多个团队对同一款芯片做全方位的验证。
    5. 固件与软件工程师
      固件与软件工程师的工作重点在于配合电路设计工程师将整个IC芯片运行起来,充分挖掘芯片的功能潜力,并提供各种扩展创意。在当前的IC设计领域,固件与软件的开发工作量已经占据整个芯片开发的60%以上,而且还在持续增加,出现这种情况的原因在于单纯的电路逻辑无法应对灵活多变的市场需求,必须通过随时可变的软件进行应对。例如现在的LTE终端芯片,除射频信号处理外,所有的基带(baseband)都是可控和可编程的,而协议处理则基本交给多核CPU或DSP进行。现在很多领先的无线通信芯片设计公司,对软件设计的划分更加详细,包括软件平台(操作系统、设备驱动)、物理层协议软件、MAC协议处理、高层协议栈以及应用软件等。因此,对于芯片设计而言,软件就是整个芯片的灵魂,对于任何一款智能芯片的开发,首先应当想到的是如何灵活配置,并引入适当的软件支持。
      所以,我们不仅仅要会数字IC设计的能力,如果有时间精力那么还需要去掌握系统设计、算法、验证、软件等基础知识。

    1.1.3 IC设计流程

    IC设计的主要流程可以通过下图来描述:
    在这里插入图片描述
    基于HDL的设计流程,主要包含系统架构设计、软件结构设计和ASIC硬件设计三大部分。在芯片设计时,必须了解整个系统的应用场景,定义出合理的芯片架构,使得软硬件结合达到系统最佳工作状态。此外,需要建立起以IP复用或更大的平台复用为基础的观念,在整个流程中既要以IP复用为基础,又要将当前设计作为下一轮设计的IP和基础平台。基于HDL的设计流程如下:

    1. 系统需求指定
      系统设计主要是从需求确认开始,包含系统基本输入和输出及基本算法需求,以及系统要求的功能、性能、功耗、成本和开发时间等。通常会将用户的需求转换为用于设计的技术文档,并初步确定系统的设计流程。这个阶段是整个芯片项目开发中最重要的阶段,各类设计框架、验证模型均需要此阶段完成。
    2. 高级算法建模与仿真
      设计者将使用高级语言创建整个系统的高级算法模型和仿真模型。有了高级算法模型便可以得到软硬件协同仿真所需的可执行的说明文档,此类文档会随着设计进程的深入而不断地完善和细化。
    3. 软硬件划分过程
      设计者通过软硬件划分来决定哪些功能应该由硬件完成,哪些功能应该由软件来完成。此外,该步骤还涉及软硬件顶层设计与内部基本模块的划分。对于硬件而言,需要确定整体实现框架,包括全局模块设定(时钟、复位、功耗控制等)、主控模块实现方案、数据流(Data Flow)分解方案及接口时序、总线或数据交换接口设计、调试接口以及验证接口。硬件框架确定后,建立各种适合软硬件交互的验证环境。对于软件而言,则是在硬件框架基础上确定软件框架,包括确定HAL(硬件抽象层)、设计驱动与软件平台,底层软件、高层软件、应用软件及测试软件的层次划分以及相互调用接口。此外,软件还需要设计整体的自动测试框架。如果芯片开发者追求高效的软硬件结合,还应当根据敏捷开发的要求,设计以面向测试为中心的软硬件框架。
      软硬件划分以及内部框架的确认是一个需要反复评估、修改直至满足系统需求的过程。
    4. 软硬件同步设计
      由于软硬件的分工已明确,芯片的架构及软件的接口也已定义,接下来便可以进行软硬件的同步设计了。其中硬件设计包括RTL设计和集成、综合、布局布线及最后的流片。软件设计则包括算法优化、应用开发,以及操作系统、接口驱动和应用软件的开发。

    1.1.4 IC硬件设计流程

    从HDL设计到最终版图实现的设计流程如下图所示,基本上每个步骤都会用到某款EDA工具,这里最核心的设计源头还是硬件设计定义说明、模块设计(RTL代码变换)与IP复用。
    在这里插入图片描述

    1. 硬件设计定义说明(Hardware Design Specification)
      硬件设计定义说明用于描述芯片总体结构、规格参数、模块划分、使用的总线以及各个模块的详细定义等。
    2. 模块设计与IP复用
      对于需要重新设计的模块进行设计,对于可复用的IP核可根据总线接口标准做一定的修改。
    3. 顶层模块集成
      顶层模块集成是将各个不同的功能模块(包括新设计的与复用的)整合在一起,形成一个完整的设计。设计的重点包括时钟模块、复位模块、功率控制等全局信号和各种顶层IP集成。对于ASIC 而言,还需要考虑IO PAD配置。
    4. 布局前仿真(Pre-layout Simulation)
      布局前仿真也叫RTL级仿真,通常通过HDL仿真器验证电路逻辑功能是否有效。通常在ASIC中采用的是Synopsys的VCS来进行验证。
    5. 逻辑综合(Logic Synthesis)
      逻辑综合主要采用EDA工具把硬件描述语言设计的电路自动转换成特定工艺下的网表,也就是将RTL级的HDL代码通过编译与优化产生符合约束条件的焖鸡网表。这个阶段会输出逻辑综合网表和时序信息,用户可以进行初步的时序仿真,并找出可能存在的逻辑时序问题。
    6. 版图布局规划(Floorplan)
      版图布局规划完成的任务是确定设计中各个模块在版图上的位置,主要包括:
      (1)I/O 规划:确定I/O的位置,定义电源和接地口的位置;
      (2)模块放置:定义各种物理的组、区域或模块,对宏单元进行预放置;
      (3)供电设计:设计整个版图的供电网络,基于电压降(IR Drop)和电迁移进行拓扑优化。
    7. 功耗分析(Power Analysis)
      在版图布局规划后,需要对电源网络进行功耗分析,确定电源引脚的位置和电源线宽度。在完成布局布线后,需要对整个版图的布局进行动态功耗分析和静态功耗分析。除了对版图进行功耗分析以外,还应通过仿真工具快速计算动态功耗,找出主要的功耗模块或单元,并返回到模块设计阶段进行优化。可以常用Spyglass工具。
    8. 单元布局和优化
      单元布局和优化主要定义了每个标准单元的摆放位置并根据摆放的位置进行优化。
    9. 静态时序分析(Static Timing Analysis - STA)
      STA是一种静态验证方法,通过对所提取电路中所有路径上的延迟等信息的分析,计算出信号在时序路径上的延迟,找出违背时序约束的错误,如检查建立时间和保持时间是否满足要求。通常采用Primetime工具。
    10. 形式验证(Formal Verification)
      形式验证也是一种静态验证方法,在整个设计流程中会多次引入形式验证以比较RTL代码之间、门级网表与RTL代码之间,以及门级网表之间在修改之前与修改之后功能的一致性。常用工具有Formality,Conformal以及Spyglass。
    11. 可测试性电路插入(Design for Test - DFT)
      可测试性设计是SOC设计中的重要一步,对于逻辑电路采用扫描链的可测试结构,对于芯片的输入/输出端口采用边界扫描的可测试结构。基本思想是通过插入扫描链,增加电路内部节点的可控性和可观测性,以达到提高测试效率的目的。一般在逻辑综合或者物理综合后进行扫描电路的插入和优化。
    12. 时钟书综合(Clock Tree Synthesis)
      SoC设计方法强调同步电路的设计,构建芯片内部全局或局部平衡的时钟链的过程称为时钟树综合。分布在芯片内部的寄存器和时钟的驱动电路构成了一种树状结构,这种结构称为时钟树,时钟树综合是在布线设计之前进行的。
    13. 布线设计(Routing)
      这一阶段完成所有节点的连接,类似于在电路PCB设计时,将各个元器件的连线在PCB上摆放好。
    14. 寄生参数提取(Parasitic Extraction)
      通过提取版图上内部互连所产生的寄生电阻和电容值,进而得到版图实现后的真实时序信息,这些寄生电路信息将用于进行静态时序分析和后仿真。
    15. 布局后仿真(Post-layout Simulation)
      布局后仿真也叫门级仿真、时序仿真、带反标的仿真,需要利用在布局布线后获得的精确延迟参数和网表进行仿真,验证网表的功能和时序是否正确。布局后仿真一般使用标准延时(Standard Delay Format- SDF)文件来输入延时信息。
    16. ECO修改
      ECO修改是工程修改命令的意思,这一步实际上是正常设计流程的一个例外,当在设计的最后阶段发现个别路径有时序问题或者逻辑错误时,有必要通过ECO对设计的局部进行小范围的修改和重新布线,而不影响芯片其余部分的布局布线。
    17. 物理验证
      物理验证是对版图的设计规则检查(Design Rule Check - DRC)及逻辑图网表和版图网表比较(Layout Vs. Schematic - LVS)。
    18. DRC用以保证制造良率
      LVS用以确认电路版图网表结构是否与原始原理图一致。
    展开全文
  • 数字IC设计教程
  • 数字IC设计的面试题目总结,大部分有答案,非常适用于找工作人群
  • 数字IC设计流程

    千次阅读 多人点赞 2020-06-25 13:53:36
    数字IC设计流程 基本流程概述 数字IC设计流程 数字前端 1. 架构/算法设计分析 2. RTL实现 3. Coding Style Check 4. 功能验证 5. 逻辑综合+DFT 6.形式验证 7. 静态时序分析 数字后端(待补充) 数字IC设计笔试题简答...

    基本流程概述

    1、项目需求:确定芯片的具体指标(spec)

    • 物理:工艺、面积、封装;
    • 性能:速度、功耗;
    • 功能:功能表述、接口定义。

    2、系统级设计:用系统建模语言对各模块进行描述
    3、前端设计:RTL设计、仿真、硬件原型验证、电路综合
    4、后端设计:版图设计、物理验证、后仿真
    5、封装和测试:

    在这里插入图片描述

    数字IC设计流程

    在这里插入图片描述

    数字前端

    1. 架构/算法设计分析

    • 目的完成芯片中数字部分的高层次算法或架构的分析与建模,为硬件提供一个正确的软件功能模型,更为重要的是,通过大量的高层次仿真和调试,为RTL实现提供总体性的设计指导。数字部分越复杂,这一点越重要。
    • 工具:MATLAB、C++、C、System C、System Verilog等。不同类型的芯片都不同的选择,如数字信号处理类芯片,偏好MATLAB。
    • 特点:这部分工作至关重要,基本上奠定了整个芯片的性能和功耗的基础。这部分工作主要由具有通信、信号处理、计算机、软件专业背景的工程师完成,也有很多微电子专业背景的工程师参与。

    2. RTL实现

    • 目的:依据第一步的结果,完成由高层次描述到Verilog HDL实现的过程。

    • 工具:GVim/Emac、Verilog/VHDL

    • 特点:这一步能明显区别中训练有素的工程师和初学者。前者在写代码的过程中,具有极强的大局观,能够在书写Verilog HDL、描述逻辑功能的同时,还能够兼顾逻辑综合、STA、P&R、DFX、功耗分析等多方面因素,最终提供一份另其他环节的工程师都赏心悦目的代码。初学者则处处留地雷,一不小心就引爆。

    3. Coding Style Check

    • 目的:排除RTL代码中CDC(Clock Domain Cross)、Lint等问题。
      CDC:跨时钟域检查
      LInt:代码潜在问题检查(例如A+B的进位溢出)
    • 工具:Syglass、LEDA、0inCDC
    • 特点:目前大部分芯片中的数字部分基本上都采用局部同步和全局异步的设计策略,因此,在设计中需要小心注意跨时钟域的数据同步问题。
    • 输入:RTL,SDC,lib/sglib
    • 输出:wave file,report

    4. 功能验证

    • 目的:在无延迟的理想情况在,通过大量的仿真,发现电路设计过程中的人为或者非人为引起的bug。主要指标是功能覆盖率

    • 工具:Modelsim、VCS、NC-Verilog、(DVE/Verdi波形查看器)

    • 语言:C++、C、System C、System Verilog,基于UVM的方法学等。主要是System Verilog,一般哪个方便用哪个。

    • 特点:验证工程师近年来已经成为IC设计中需求量最大的岗位。这个阶段会占用大量的时间,数以月计。

    5. 逻辑综合+DFT

    在这里插入图片描述

    • 目的:将RTL代码映射为与工艺库相关的网表。

    • 工具:DesignCompiler、RTL Compiler。DesignCompiler在市场中占有垄断性地位,几乎成为逻辑综合的标准。

    • 特点:
      a.从芯片生产的角度来看,在该步骤之前,所有的工作都可近似看做一个虚拟性的,与现实无关。而从逻辑综合起,后续所有的工作都将与工艺的物理特性、电特性等息息相关。逻辑综合工具的功能主要是将VerilogHDL格式的文本映射为网表格式的文本,因此,它的功能等同于文本编译器。那么转换的方式有很多种,工具如何选取呢?逻辑综合过程中,整个文本格式的编译过程是在给定的人为约束条件下进行的,通过这些约束和设定的目标来指导工具完成Compiler的工作。所以,逻辑综合过程可以看成一个多目标(频率、面积、功耗)多约束的工程优化问题
      b.该步骤中,通常会插入DFT、clock gating等。
      c.该步骤中通常加入Memory、各种IP等。为了在各种工艺库以及FPGA原型验证平台之间有一个更方便的移植,注意适当处理这些Memory、IP等的接口。该步骤中也可加入I/O、PLL等。
      DFT(Design For Test): 为了保证芯片内部的制造缺陷尽量能够哦被检测到,通过在电路中插入扫描链(Scan Chain)的方式,测试IC在生产制造过程中是否出现问题。加入DFT会增加20%~30%的面积。但为了保证良率,为了给客户的片子是合格的需要将具有缺陷(工厂制造缺陷)的片子筛除。

    • 输入文件:
      a.RTL代码:由ASIC design engineers团队提供;交接前,必须保证在第3步的check中没有任何问题;
      b.工艺库(.db):由晶圆厂提供;
      c.约束(SDC):由逻辑综合工程师和ASIC design engineers共同商定。

    • 输出文件:
      a.网表:包含了RTL中的所有的逻辑信息,除此以外,可能还会有DFT、clock gating、I/O等;网表主要用于P&R等流程;
      b.标准延迟文件SDF:主要包含了网表中所有器件的延迟信息,用于时序仿真;PT 会结合后端工具生成的一个更为精确的sdf ,所以,通常会用PT的sdf 文件做后仿真。
      Project文件:.ddc;
      c.各种报告:timing report、area report、constrain report、clock report、violation report等等,以及工具的log文件。(此处最好能够熟悉各种脚本语言,将各种report处理为友好易读形式)

    6.形式验证

    在这里插入图片描述

    • 目的:RTL代码和逻辑综合后的网表是否具有一致的功能。(尤其是在后端做ECO的时候)
    • 工具:Formality、Conformal
    • 输入文件:RTL代码、netlist(逻辑综合输出)、约束
    • 输出文件:match和verify 报告。

    7. 静态时序分析

    • 目的:分析设计中所有的路径,确保满足内部时序单元对建立时间和保持时间的要求。
    • 工具:PrimeTime、Tempus。PrimeTime在市场中占有垄断性地位,几乎成为STA的标准
      特点:
    • 输入:spef文件、PnR网表,标准单元库db文件,IP的dp文件
    • 输出:SDF,timing ECO文件
    • 特点:
      a.从逻辑综合开始,基本上每做一步大的调整,都会完成一次STA分析,以保证每步都能实现时序收敛。鉴于该特性非常重要,PrimeTime成为了Signoff的重要工具。
      b.所用到的SDC同逻辑综合;
      c.通常设计中会存在大量的违例路径,STA要修大量的setup、hold等,如何修这些违例,可以体现工作经验的重要性。此外,如果是前端修timing违例,一般会修的很快,但是会带来一个重大的问题,代码被前端修改后是否存在新的bug,还需重新仿真确认,仿真会消耗掉数以月计的时间,所以除非万不得已,不会找前端修timing。
      在这里插入图片描述
      注:静态时序分析和形式验证这属于验证范畴。
      STA主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。而形式验证是从功能上对综合后的网表进行验证。常用的就是等价性检查(LEC)方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。
      静态时序分析和形式验证出现在设计流程中前后端过程,有一些地方在前端中没有提到,应该是在后端当中比较重要,作为验证设计工作的一部分,在前端中也加入静态时序分析和形式验证可以提高设计的可靠性。

    数字后端(待补充)

    数字后端设计又称物理设计,将网标格式的文本转化成一个个有物理大小和位置的单元、连线。并且在实现过程中要满足面积、功耗、性能等要求。
    业界主流的后端工具来自synopsys、cadence两家公司,虽然两家公司工具不同但是基本流程相似。数字后端流程如下图
    在这里插入图片描述

    数字IC设计笔试题简答

    • 1.需求分析(制定规格书): 分析用户或市场的需求,并将其翻译成对芯片产品的技术需求
    • 2.算法/架构设计:
      a.算法设计:设计和优化芯片钟所使用的算法。这一阶段一般使用高级编程语言(如 C/C++),利用算法级建模和仿真工具(如 MATLAB, SPW)进行浮点和定点的仿真,进而对算法进行评估和优化。
      b.构架设计:根据设计的功能需求和算法分析的结果,设计芯片的构架,并对不同的方案进行比较,选择性能价格最优的方案。这一阶段可以使用 SystemC 语言对芯片构架进行模拟和分析。
    • 3.RTL 设计(代码输入): 使用 HDL 语言完成对设计实体的 RTL 级描述。这一阶段使 用 VHDL 和 Verilog HDL 语言的输入工具编写代码。
    • 4.RTL 验证(功能仿真): 使用仿真工具或其他 RTL 代码分析工具,验证 RTL 代码的 质量和性能。
    • 5.综合:从 RTL 代码生成描述实际电路的门级网表文件。
    • 6.门级验证(综合后仿真):对综合产生的门级网表进行验证。这一阶段通常会使用仿
      真、静态时序分析和形式验证等工具。
    • 7.布局布线:后端设计对综合产生的门级网表进行布局规划(Floorplanning)、布局 (Placement)、布线(Routing),生成生产用的版图。
    • 8.电路参数提取:确定芯片中互连线的寄生参数,从而获得门级的延时信息。
    • 9.版图后验证: 根据后端设计后取得的新的延时信息,再次验证设计是否能够实现所有 的功能和性能指标。
    • 10.芯片生产: 生产在特定的芯片工艺线上制造出芯片。
    • 11.芯片测试: 对制造好的芯片进行测试,检测生产中产生的缺陷和问题

    参考:
    [1]: https://www.zhihu.com/question/19863045
    [2]: 研分–摩文数字IC设计课程
    [3]: 路科验证笔试真题 100 题.pdf

    展开全文
  • 首先数字IC设计自学还是比较困难的,数字IC设计,是不存在速成的。 曾经有同学发现自己两三个月学完了几本书,最终也只是纸上谈兵。大多企业连面试资格都不会给,即使有一个面试机会也是费尽力气争取来的。面试中...

    首先数字IC设计自学还是比较困难的,数字IC设计,是不存在速成的。
    曾经有同学发现自己两三个月学完了几本书,最终也只是纸上谈兵。大多企业连面试资格都不会给,即使有一个面试机会也是费尽力气争取来的。面试中企业问的问题,回答不上来;企业想要的项目经验,完全没有。最终的结果自然是凉凉。
    所以,本文也是希望为大家提供一个高效入门的思路。
    在这里插入图片描述

    一、岗位选择
    在数字IC众多岗位中,你想要入行哪一个?
    数字IC设计大致可以划分为:系统架构、前端设计、功能验证、DFT、后端设计、模拟版图。由于架构师已经属于天花板,DFT工程师岗位市场需求量小,故这两个暂抛开不谈。
    再来看看前端设计、功能验证、后端设计、模拟版图这四个岗位。首先,有共通的基础知识:

    1. C语言
    2. 微机原理
    3. Linux常用操作
    4. Verilog语言
    5. 数字电路基础技术
      以上内容属于基本标准,可以简单理解为“入行必备”,也是入行学习的第一步。
      其次,不同的岗位本质上的工作内容和需要掌握的知识技能也是不同的。
      前端设计
      学历与专业:硕士起步(部分企业接受优秀985/211本科生)。微电子/集成电路科班出身优先,相关理工科专业亦可。
      内容与职责:根据Spec,使用硬件描述语言,Verilog HDL完成各模块功能的RTL设计。
      技能与工具:Verilog HDL语言、EDA工具、SoC设计、数字电路等。
      推荐图书:《Verilog数字系统设计教程》(第三版)、《SoC设计方法与实现》(第三版)
      功能验证
      学历与专业:硕士优先,接受本科(985/211>重本>普本)。微电子/集成电路科班出身优先,相关理工科专业亦可。
      内容与职责:搭建验证环境,设计测试向量并收集验证覆盖率,确保RTL设计满足Spec。
      技能与工具:验证工具(UVM/EDA)、理解算法/协议、SV语言和脚本语言(perl/python)等。
      推荐图书:《SystemVerilog测试验证平台》(中文版)、《UVM实战》
      后端设计
      学历与专业:硕士优先,接受本科(985/211>重本>普本)。微电子/集成电路科班出身优先,相关理工科专业亦可。
      内容与职责:由RTL综合出门级网表,布局布线,时序分析,DRC/LVS,到输出版图文件。
      技能与工具:innovus/ICC、calibre、PT等。
      推荐图书:《数字集成电路设计透视》、《数字集成电路后端设计》
      模拟版图
      学历与专业:硕士优先,本科次之,接受大专。微电子/集成电路科班出身优先,相关理工科专业亦可。
      内容与职责:根据后端工程师完成的电路设计图,绘制版图。
      技能与工具:EDA工具、熟悉OP/BG/ADC/PLL/Memory等。
      推荐图书:《模拟电路版图的艺术》、《集成电路版图基础》、《集成电路设计教程》
      当我们搞清楚所有岗位的要求和需要掌握的知识技能后,再结合自身情况做出选择方为上策。
    展开全文
  • 亚稳态是在数字IC设计中常见的问题,该文件主要是阐述了亚稳态产生的原因、危险以及相应的解决方案电路。
  • 数字IC设计SOC入门进阶

    千次阅读 2022-04-09 16:18:15
    此时,恰逢数字IC设计岗位兴起,也顺利获得转岗offer,这也注定了未来几十年北漂的辛苦生活。 仅以此文记录自己的学习成长,希望自己不断提升专业技能,也为其他读者提供参考借鉴。愿中国IC设计和制造在未来不断...
  • 从其他方向转数字IC设计!! 数字IC这个领域很深很难,但找份工作极其简单! 非科班出身,射频与无线通信方向,主要利用FPGA做一些射频前端系带信号的调制解调和算法应用! 从一个非IC科班出身的角度介绍学习IC,其实...
  • 数字IC设计知识结构

    2021-07-17 00:52:58
    一、IC 定义IC就是半导体元件产品的统称,IC按功能可分为:数字IC、模拟IC、微波IC及其他IC。数字IC就是传递、加工、处理数字信号的IC,是近年来应用最广、发展最快的IC品种,可分...
  • 数字IC设计全流程

    千次阅读 2021-06-04 16:16:47
    Front End前端设计 Spec 系统需求说明 function performance Cost 首先确定所需的功能。 包含系统基本输入输出及基本算法需求,以及系统要求的功能、性能、功耗、成本和开发时间。 将用户需求转换为用于设计的...
  • 数字IC设计经典书籍--书目整理,对于初学者具有很好的参考作用
  • II、IC设计流程相关名词梳理(含各流程EDA工具梳理) III、IC设计流程整理(图片) I、ASIC设计流程 一、确定项目需求 1. 确定芯片的具体指标: 物理实现 制作工艺(代工厂及工艺尺寸); 裸片面积(DIE大小,...
  • 数字IC设计入门方法与资料大全

    万次阅读 多人点赞 2020-08-30 14:24:57
    文章目录 文章目录0. 前言 如果正准备入行数字芯片设计行业可以看看下几篇行业入门介绍的文章,因水平有限,文中难免存在疏漏、错误之处,与最新技术脱节之处必定不少,敬请细心的读者不吝指教。...数字IC设计入门篇

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,061
精华内容 10,424
关键字:

数字ic设计