【数字IC设计】001.IC设计基础

【数字IC设计】001.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. 单元布局和优化
攀岩板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⽤以确认电路版图⽹表结构是否与原始原理图⼀致。

本文发布于:2024-09-23 07:16:57,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/149199.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设计   系统   软件   功能   电路   模块   程师   验证
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议