1、专用集成电路( Application-Specific Integrated Circuit,ASIC)设计流程
图1:ASIC设计流程
图2:ASIC设计流程
2、现场可编程门阵列 ( Field-Programmable Gate Array,FPGA)设计流程
图3:FPGA设计流程
3、系统级芯片又称片上系统(SoC,SystemonChip)设计流程
图4:Soc设计流程
4、SoC设计与传统的ASIC设计的区别
SoC设计与传统的ASIC设计最大的不同在于以下两方面:①是SoC设计更需要了解整个系统的应用,定义出合理的芯片架构,使得软硬件配合达到系统最佳工作状态,如总线的设计使得总线传输吞吐量满足操作处理的需求,与外部存储器的接口正确等。因而,软硬件协同设计被越来越多地采用。②是SoC 设计是**以IP 复用为基础**的。因而,基于IP 模块的大规模集成电路设计是硬件实现的关键。
5、FPGA设计与传统的ASIC设计的区别
FPGA设计与传统的ASIC设计最大的不同在:FPGA 设计的IC 在完成生产之后还能由用户进行编程。FPGA 具有现场编程IC 的能力,这样就不用预定任何的硬件功能来约束用户,并且 FPGA 可以根据提供的修改标准做适当调整,降低 ASIC 不能重复设计的成本,缩短上市周期,但是FPGA对性能和功耗有不好影响。
6、典型的ASIC设计流程
可以分为逻辑设计和物理设计两部分;其中逻辑设计一般都包括:
①算法/架构设计;
②寄存器传输级设计(RTL实现);
③功能验证;
④逻辑综合;
⑤静态时序分析;
⑥一致性验证/等价性检验
①算法/架构设计
目的:完成芯片中数字部分的高层次算法或架构的分析与建模,为硬件提供一个正确的软件功能模型,更为重要的是,通过大量的高层次仿真和调试,为 RTL 实现提供总体性的设计指导。数字部分越复杂,这一点越重要。
工具:MATLAB、C++、C 等。不同类型的芯片都不同的选择,如数字信号处理类芯片,偏好 MATLAB。
特点:这部分工作至关重要,基本上奠定了整个芯片的性能和功耗的基础。这部分工作主要由具有通信、信号处理、计算机、软件专业背景的工程师完成,也有很多微电子专业背景的工程师参与。
②寄存器传输级设计(RTL实现)
目的:依据算法/架构的设计,完成由高层次描述到 Verilog HDL 实现的过程。
工具:Vim、Emac(二者不分前后顺序哦)
特点:这一步能明显区别中训练有素的工程师和初学者。前者在写代码的过程中,具有极强的大局观,能够在书写 Verilog HDL、描述逻辑功能的同时,还能够兼顾逻辑综合、STA、 P&R、DFX、功耗分析等多方面因素,最终提供一份另其他环节的工程师都赏心悦目的代码。初学者则处处留地雷,一不小心就引爆。
③功能验证
目的:在无延迟的理想情况在,通过大量的仿真,发现电路设计过程中的人为或者非人为引起的 bug。主要指标是功能覆盖率。
工具:Modelsim、VCS、NC-Verilog
语言:C++、C、System C、System Verilog,基于 UVM 的方法学等。
特点:验证工程师是 IC 设计中需求量最大的岗位。
④逻辑综合
目的:将 RTL 代码映射为与工艺库相关的网表。
工具:Design Compiler,Design Compiler 在市场中占有垄断性地位,几乎成为逻辑综合的标准。
特点:从芯片生产的角度来看,在该步骤之前,所有的工作都可近似看做一个虚拟性的,与现实无关。而从逻辑综合起,后续所有的工作都将与工艺的物理特性、电特性等息息相关。逻辑综合工具的功能主要是将 VerilogHDL 格式的文本*映射为网表格式的文本,因此,它的功能等同于文本编译器。
那么转换的方式有很多种,工具如何选取呢?逻辑综合过程中,整个文本格式的编译过程是在给定的人为约束条件下进行的,通过这些约束和设定的目标来指导工具完成 Compiler 的工作。所以,逻辑综合过程可以看成一个多目标(频率、面积、功耗)多约束的工程优化问题。该步骤中,通常会插入 DFT、clock gating 等。
该步骤中通常加入 Memory、各种 IP 等。为了在各种工艺库以及 FPGA 原型验证平台之间有一个更方便的移植,注意适当处理这些 Memory、IP 等的接口。该步骤中也可加入 I/O、PLL 等。
⑤静态时序分析
目的:相对动态仿真的类穷举式验证方法而言,从静态分析的角度,保证设计中所有的路径,满足内部时序单元对建立时间和保持时间**的要求。
工具:Prime Time,Prime Time 在市场中占有垄断性地位,几乎成为 STA 的标准。
特点:从逻辑综合开始,基本上每做一步大的调整,都会完成一次 STA 分析,以保证每步都能实现时序收敛。鉴于该特性非常重要,PrimeTime 成为了 Signoff 的重要工具。
所用到的SDC 同逻辑综合;通常设计中会存在大量的违例路径,STA 要修大量的 setup、hold 等,如何修这些违例,可以体现工作经验的重要性。此外,如果是前端修 timing 违例,一般会修的很快,但是会带来一个重大的问题,代码被前端修改后是否存在新的 bug,还需重新仿真确认,仿真会消耗掉数以月计的时间,所以除非万不得已,不会找前端修 timing。
⑥一致性验证/等价性检验
目的:RTL 代码*和逻辑综合后的网表都可以抽象为两幅由节点和边构成的图,一致性验证阶段采用了类似于直接比较两幅图是否一致的方法,来确定逻辑综合生成的网表是否正确。
工具:Formality、Conformal
输入文件:RTL 代码、netlist(逻辑综合输出)、约束
输出文件:match(两张图节点是否一致)和 verify(计算得出两张图功能是否一致)的报告。
数字后端设计又称物理设计,将网标格式的文本转化成一个个有物理大小和位置的单元、连线。并且在实现过程中要满足面积、功耗、性能等要求。 业界主流的后端工具来自 synopsys、cadence 两家公司。 文章来源:https://www.toymoban.com/news/detail-861863.html
参考文献:
(1)邸志雄. 芯动力——硬件加速设计方法(中国大学MOOC).第1章:概述
[芯动力——硬件加速设计方法](https://www.icourse163.org/course/SWJTU-1207492806?tid=1467145670)
(2)斯里达尔·甘加达兰. 综合与时序分析的设计约束:Synopsys设计约束(SDC)实用指南[M]. 第1章:绪论。
(3)郭炜,等. SoC设计方法与实现(第3版)[M]. 第2章:SoC设计流程。
(4)吴厚航. 深入浅出玩转FPGA(第3版)[M]. 笔记3:开发流程。文章来源地址https://www.toymoban.com/news/detail-861863.html
到了这里,关于学习笔记01:ASIC、FPGA、SOC设计流程比较的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!