数字vlsi芯片设计_数字芯片设计全流程概述

概括说,数字芯片设计流程分为,芯片设计,芯片制造,芯片封装。本芯只从事过设计部分工作,对其他两部分不熟悉,只在这里讲一讲芯片设计部分。

芯片设计分为四部分:需求分析、系统设计、前端设计、后端设计。

30a50d8a91036b6789687a011f05e625.png

需求分析

芯片设计之初,需要进行市场调研明确芯片用途。芯片主要的应用领域大致有:民用/商用,工业,军工。平时我们听到和见到最多的就是民用/商用,特别是手机、电脑需要用到的各种处理器、存储器、电源管理、RF前端等,应用在该领域芯片的总体特点就是高集成度和低功耗。工业领域对芯片的各方面性能要求,较之于民用来说要高得多,随着工业物联网时代的到来,在原有性能的基础上,对相应芯片的集成度、功耗以及低延迟等指标的要求更高。

设计一个芯片,如果不从0开始,通常需要先分析前代芯片/竞争对手芯片的优缺点;例如几纳米工艺,价格多少,面积多大,功耗多少,频率多高,有什么特殊功能/IP等等。在此基础上,做出工艺、面积、功耗、频率、功能上的改进。工艺的选择非常重要,会直接影响设计成本流片成本以及后续封装技术难度。


系统设计

1. 规格制定

如果是design house(自己设计自己的产品),那就自己定自己的芯片规格,也就是具体的实现功能列表。例如生物识别,红外/蓝牙,人像处理等;性能要求,比如2G频率,100W功耗,图像处理速度等。如果是design service(帮别人设计产品), 那就需要跟客户沟通具体的芯片细节,这个是一个讨价还价的过程,不合理或者实现不了的要求要谨慎对待,反正会有各种坑。。。

2. 详细设计

根据制定的芯片规格,拿出具体的解决方案,并且所有的方案都需要落地到文档。系统架构,模块划分,每个模块的功能等等。


芯片前端设计:

芯片前端设计(逻辑设计)的产出是门级网表GateLevel Netlist。

9816f8b4a3d218a17a0301e0dc099607.png

1. RTL Coding

RTL(Register Transfer Level)使用硬件描述语言,依据详细设计中的文档描述的模块功能,以代码来描述实现。这里的Coding 跟software coding 不尽相同,software coding 更注重算法复杂度;RTL coding描述的电路逻辑:易实现,稳定,逻辑深度更低的电路是好电路。同样,RTL coding 也有自己的代码风格。

主要的硬件设计语言是VHDL和Verilog HDL。也会搭配一些高级语言比如C语言。

2. 仿真验证 Simulation and Verification

仿真:检查代码功能正确,时序满足。一边写代码,一边做仿真。著名的仿真工具Modelsim。

3. 逻辑综合 Logic Synthesis

逻辑综合是一个很复杂的过程,大厂会有专门的工程师来做逻辑综合的工作,小厂可能是交给前端或者后端去做。

逻辑综合的过程是翻译+优化+映射

a. 翻译:读入电路的RTL级描述,并将语言描述翻译成相应的功能块以及功能块之间的拓扑结构。这一过程的结果是在综合器内部生成电路的布尔函数表达式,不做任何逻辑重组和优化。

b. 优化:根据所施加的时序和面积约束,按照一定的算法对翻译结果进行逻辑重组和优化。

c. 映射:根据所施加的时序和面积约束,从目标工艺库中搜索符合条件的单元来构成实际电路的逻辑网表。

逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表Gate-Level Netlist。

逻辑综合工具S的Design Compiler,C的Genus(RTL Complier)。

4.DFT:随着芯片越来越大,DFT也就成为必不可少的一步。DFT通常要做scan chain, mbist ,ATPG等工作



芯片后端设计:

又称物理设计,交付物是GDSII。

最初制定芯片规格也是在后端设计这里落地:面积、频率、功耗等。后端设计对芯片功能的感知不太强,因此有一套相对成熟后端物理设计方法学。

后端的设计主要步骤分为floorplan,place,cts,route,其中EDA工具会加入若干优化(optimization)的步骤,比如floorplan, place, opt-place,cts,opt-cts,route,opt-route 这样。

主流后端EDA工具是ICC2和Innovus

9f4df3792398a742982ea11b155f0e69.png

1. 布局规划Floorplan

主要是I/O Pad,宏单元Macro的布局,构建电源网格。I/O Pad的位置有芯片规格预先设定,宏单元则根据一定要求进行摆放,电源网格需要保证整个芯片的供电均衡。Floorplan一般会反复修改调整。

2.布局Place

Place按照时序来摆放标准单元。一个好的place结果是各模块摆放规整,同时时序满足。

3.时钟树综合Cts

芯片中的时钟网络要驱动电路中所有的时序单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要反复几次才可以做出一个比较理想的时钟树。

4.布线Route

布线是指在满足工艺规则和布线层数限制、线宽、线间距限制和各线网可靠绝缘的电性能约束的条件下,根据电路的连接关系将各单元和I/OPad用互连线连接起来,这些是在时序驱动(Timing driven )的条件下进行的,保证关键时序路径上的连线长度能够最小。

5.ECO

ECO(Engineering Change Order)芯片上其他问题修修补补。DRC/LVS, etc。

此外,还有两个功能贯穿IC设计始终,包括前端和后端,在这里单独列出来:

时序分析:

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

STA工具有Prime Time和Tempus。

形式验证

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

形式验证工具有Formality和Conformal。


欢迎大家关注微信公众号"芯观点",一起学习一起进步。

http://weixin.qq.com/r/_y46IozEbNETrchB93vp (二维码自动识别)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值