学习笔记01:ASIC、FPGA、SOC设计流程比较

这篇具有很好参考价值的文章主要介绍了学习笔记01:ASIC、FPGA、SOC设计流程比较。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、专用集成电路( Application-Specific Integrated Circuit,ASIC)设计流程

soc芯片设计与asic,fpga开发

图1:ASIC设计流程

soc芯片设计与asic,fpga开发

图2:ASIC设计流程

2、现场可编程门阵列 ( Field-Programmable Gate Array,FPGA)设计流程

soc芯片设计与asic,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 两家公司。                                 

参考文献:
(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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SOC FPGA之HPS模型设计(一)

    目录 一、建立HPS硬件系统模型 1.1 GHRD 1.2 从0开始搭建HPS 1.2.1 FPGA Interfaces 1.2.1.1 General 1.2.1.2 AXI Bridge 1.2.1.3 FPGA-to-HPS SDRAM Interface 1.2.1.4 DMA Peripheral Request 1.2.1.5 Interrupts 1.2.1.6 EMAC ptp interface 1.2.2 Peripheral Pin Multiplexing 1.2.3 HPS Clocks 1.2.3.1 Input Clocks 1.2.3.2 Output Clocks 1.2.4 SDRAM 1.2.4.

    2024年02月14日
    浏览(29)
  • SOC FPGA之HPS模型设计(二)

    根据SOC FPGA之HPS模型设计(一), Quartus工程经过全编译后会产生 Handoff文件夹、SOPCINFO文件、SVD文件 通过信息交换文件Handoff文件生成Preloader,需要用到SOC EDS Preloader也被称为spl(Second Program Loader)或u-boot-spl 在SOC EDS安装目录下双击Embedded_Command_Shell.bat文件启动嵌入式命令Shell窗口,

    2024年02月15日
    浏览(25)
  • FPGA验证学习(五):SoC的总线架构

    SoC的发展离不开应用领域的需求牵引。在根据需求进行片上系统设计时,不仅要考虑SoC本身,而且还要考虑SoC应用产品的需求,重点关注特定IP获取和系统总体结构(性能、功耗、成本、可靠性、适用性)的评估。 为了提高开发模块的重复利用率,降低开发成本, 用户采用

    2024年02月07日
    浏览(29)
  • FPGA验证学习(四):SoC的验证与测试

    验证和测试是两个不同的概念。 前面的三篇嘞,咱们对整个开发的流程有了个了解,这里就来看看验证与测试,芯片这个东西流片一次可太贵了,所以一次芯片的开发流程有超级多的时间都花在了验证上。 一般验证是指检验电路的逻辑、功能、时序等是否满足设计者在设计

    2024年02月16日
    浏览(26)
  • 【2021集创赛】Arm杯三等奖:基于FPGA的人脸检测SoC设计

    本作品参与极术社区组织的 有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~ 活动。 团队介绍 参赛单位:合肥工业大学 队伍名称:芯创之家 指导老师:邓红辉、尹勇生 参赛杯赛:Arm杯 参赛人员:王亮 李嘉燊 金京 获奖情况:全国总决赛三等奖 人脸检测系统在诸多

    2024年02月08日
    浏览(29)
  • 嵌入式学习笔记(20) SoC时钟系统简介

    什么是时钟,SoC为什么需要时钟 (1)时钟同步工作系统的同步节拍 (2)SoC内部有很多器件,譬如CPU、DRAM控制器、串口、GPIO等内部外设,这些东西要彼此协调工作,需要一个同步的时钟系统来指挥。这个就是SoC的时钟系统。 时钟一般如何获得? (1)外部直接输入时钟信号

    2024年02月09日
    浏览(29)
  • FPGA/SoC控制机械臂

    机器人技术处于工业 4.0、人工智能和边缘革命的前沿。让我们看看如何创建 FPGA 控制的机器人手臂。 机器人技术与人工智能和机器学习一起处于工业 4.0 和边缘革命的最前沿。 因此,我认为创建一个基础机器人手臂项目会很有趣,我们可以回过头来添加几个功能,例如: 逆

    2024年04月17日
    浏览(22)
  • Soc的Bring Up流程

    SOC (System on a Chip) bring-up 是一个复杂的过程,涉及到硬件、固件和软件的集成和验证,以下是一个基于 BROM , SPL , UBOOT 和 Linux 的启动流程的概述: BROM (Boot Read-Only Memory) 启动 :启动的最初阶段,在这个阶段,系统会执行芯片 ROM 里面的代码,这部分代码主要用来检查启动模

    2024年02月05日
    浏览(35)
  • 【FPGA】基于C5的第一个SoC工程

    本文是在毕业实习期间学习FPGA的SoC开发板运行全连接神经网络实例手写体的总结。 声明:本文仅作记录和操作指南,涉及到的操作会尽量细致,但是由于文件过大不会分享文件,具体软件可以自行搜索相关资源。 首先,既然提到了软件开发,那么我们就需要在FPGA的SoC开发板

    2024年02月16日
    浏览(32)
  • PLC原理及PLC+FPGA(SOC)架构方案简介

    工业生产和科技的发展都离不开PLC的自动化控制,PLC可以广义的理解为: 集中的继电器延伸控制柜,实际的生产应用中,PLC大大的节省了工业控制的成本,加强了设备的集中管理和自动控制。 PLC (Programmable Controller,可编程程序控制器)它是一个以微处理器 为核心的数字运

    2024年02月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包