博文目录

  • 写在前面
  • 正文
    • 需求(Requirements)
    • 技术指标(Specifications)
    • 架构(Architecture)
    • 数字设计(Digital Design)
    • 验证(Verification)
    • 逻辑综合(Logic Synthesis)
    • 逻辑对等(Logic Equivalence)
    • 布局和布线(Placement and Routing)
    • 验证 (Validation)
    • 流片(GDS II –图形数据流信息交换)
  • 参考资料
  • 交个朋友

写在前面

参考资料
博客首页
还记得去年应届生秋招,出身于FPGA的同学大多数都去找了IC前端设计的工作,由于都是逻辑设计,都是相通的,倒是没有什么问题,但对于IC的基础知识还是有必要了解一二。
今天所讲的主题是ASIC设计流程,据回忆,这是笔试出场率很高的一个问题。且从我个人的经验来看,能清晰了解这一个完整过程的人寥寥无几。这里参考中外文以及互联网资料,写一篇ASIC设计流程文章供大家参考,文中有不妥之处,还望批评指正,谢谢!
注:描述版本千差万别,但内核一致。

正文

典型的设计流程遵循以下所示的结构,可以分为多个步骤。
这些阶段中的某些阶段并行发生,而某些阶段依次发生。 我们将研究当今行业中典型的项目设计周期的情况。


需求(Requirements)

半导体公司的客户通常是其他一些计划在其系统或最终产品中使用该芯片的公司。 因此,客户的需求在决定如何设计芯片方面也起着重要作用。当然,第一步就是收集需求,估算最终产品的市场价值,并评估完成该项目所需的资源数量。


技术指标(Specifications)

下一步将是收集“规范”,这些规范抽象地描述了要设计的芯片的功能,接口和总体架构。这可能类似于:
1.需要计算能力才能运行成像算法以支持虚拟现实
2.需要两个具有相干互连功能的ARMA 53处理器,并且应在600MHz上运行
3.需要USB 3.0,蓝牙和PCle第二代接口
4.应使用适当的控制器支持1920x1080像素显示


架构(Architecture)

现在,架构师提出了芯片应如何工作的系统级视图。
他们将确定所需的所有其他组件,它们应以什么时钟频率运行以及如何确定功耗和性能要求。他们还将决定数据应如何在芯片内部流动。 例如,当处理器从系统ram中获取图像数据并执行时,数据流就会消失。与此同时,图形引擎将执行前一批数据的后处理数据,然后将其转储到内存的另一部分并很快执行。


数字设计(Digital Design)

由于现代芯片的复杂性,不可能从头开始构建某些东西,并且在许多情况下会重复使用许多组件。例如,X公司要求Flex CAN模块与汽车中的其他模块进行交互。 要么从另一家公司购买Flex CAN设计以节省时间和精力,要么花费资源自行构建一个系统。此外,从触发器和CMOS晶体管等基本构建模块设计这样的系统也不可行。 取而代之的是,开发了一种行为描述,以使用诸如Verilog或VHDL的硬件描述语言从功能,性能和其他高级问题方面对设计进行分析。
这通常是由数字设计师完成的,类似于配备了数字电子设备中的高级计算机程序员的软件。


验证(Verification)

一旦RTL设计就绪,就需要对其功能正确性进行验证。例如,期望DSP处理器发出总线事务以从内存中获取指令,但是我们如何知道这种情况会按预期发生呢? 因此,此时需要功能验证,这需要借助EDA仿真器来完成,该仿真器具有对设计进行建模并对其施加不同激励的能力。这是验证工程师的工作。

为了节省时间并实现功能收敛,设计团队和验证团队并行运行,其中设计人员“发布”了一个RTL版本,验证团队开发了测试平台环境和测试用例以测试该RTL版本的功能。 失败,则可能表明设计存在问题,并且该设计元素上将出现“错误”。该错误必须在设计团队的下一版RTL版本中进行修复。继续进行此过程,直到对设计的功能正确性有足够的信心为止。


逻辑综合(Logic Synthesis)

现在我们对设计感到满意,是时候使用组合门和触发器等真实元素将其转换为硬件原理图了。这一步骤称为综合。逻辑综合工具可将HDL中的RTL描述转换为门级 网表。 该网表只不过是对电路的门和它们之间的连接的描述。它可能类似于:

and_2_0     u_and2_0 ( .in_a (_net_112),.in_b (_net_56),.out  (_net_222));ff_lt       u_ff_lt_122 (.d   (_net_222),.clk (_net_11),.q   (_net_76));

逻辑综合工具可确保网表满足时序,面积和功率规格,通常可以访问不同的技术节点过程和数字元素库,并且可以进行智能计算以满足所有这些不同的标准。这些库可从提供以下功能的半导体工厂获得: 不同组件的数据特性,例如触发器的上升/下降时间,组合门的输入-输出时间等。


逻辑对等(Logic Equivalence)

然后检查门级网表与RTL的逻辑等效性,有时会执行“门级验证”,其中再次验证某些元素,不同之处在于这一次是门级且处于较低级别抽象级别。由于在此阶段设计中涉及的元素数量众多,并且带有回注的延迟信息,因此仿真时间往往会变慢。


布局和布线(Placement and Routing)

然后将网表输入到物理设计流程中,在此流程中,借助EDA工具完成自动布局和布线(APR或PnR)。 Cadence Encounter和Synopsys IC Compiler是此类工具的一个很好的例子。这将选择标准单元并将其放置为行,定义用于输入输出的球形图,创建不同的金属层,并放置缓冲区以满足时序要求。完成此过程后,将生成布局并通常发送至制造阶段。由物理设计团队处理,他们精通技术节点和物理实施细节。


验证 (Validation)

它并没有到此结束。 样品芯片可以由同一家半导体公司制造,也可以发送给第三方铸造厂,例如TSMC或Global Foundries。
该样例芯片现在经历了硅片后验证过程,其中另一个工程师团队在测试仪上运行不同的模式。与硅片前验证相比,在硅片后图标验证中调试起来要困难得多,这仅仅是因为对硅片的可见性水平 芯片的内部节点将大大减少。此外,一百万个时钟周期将在一秒钟内完成,而追溯到准确的错误时间将非常耗时。如果在此阶段发现任何实际问题或设计错误,则必须在RTL中修复此问题,然后重新进行验证,并且必须执行此之后的所有步骤。


尽管设计流程中有多个步骤,但许多设计活动通常都集中在电路RTL描述的优化和验证上。 重要的是要注意,尽管可以使用EDA工具来使流程自动化,但使用不当会导致设计效率低下,因此设计人员必须在设计过程中做出明智的选择。


流片(GDS II –图形数据流信息交换)

在流片的最后阶段,工程师执行晶片处理,封装,测试,验证并交付给物理IC。 GDS II是半导体代工厂生产并用于制造硅并交付给客户的文件。

参考资料

参考资料1
参考资料2

交个朋友

个人微信公众号 :FPGA LAB,欢迎关注;

FPGA/IC技术交流2020

详解ASIC设计流程相关推荐

  1. 移动架构 (一) 详解架构设计中UML图的使用

    距离上一个 "性能优化系列" 已经快一个月没有发布文章了,最近公司真的是太忙了,甚是想念掘友们啊.最近把学习架构方面的知识记录下来,供自己和掘友们一起学习. 注意: 文章中 UML ...

  2. 以美颜sdk为例,详解sdk接入流程

    Sdk,是可用于开发面向特定平台的软件应用程序的工具包.举个例子,如果你想组装一个模型车或飞机.在构建这个模型时,需要一整套物品去组装.sdk相当于组装它们所需的工具,包括装配说明等.在这信息化时代, ...

  3. 典型ASIC设计流程

    ASIC设计流程总体分四步:确定项目需求.系统级设计.前端设计.后端设计.本文也将按照这个顺序展开.由于缺乏实际ASIC设计经验,难免有纰漏,如有错误欢迎大家指出~~ 1.确定项目需求 由公司市场部进 ...

  4. 【教程】详解VS2010安装流程

    [教程]详解VS2010安装流程 原文网址链接为:http://jingyan.baidu.com/article/4e5b3e195b838991901e24e5.html VS2010全称&quo ...

  5. 详解Shiro认证流程

    详解Shiro认证流程 isAccessAllowed Subject在如何得到? resolveSession doCreateSubject save(Subject subject) isAut ...

  6. deadline不用文件服务器可以么,易万盒子|渲染农场 Deadline 的功能详解与渲染流程...

    原标题:易万盒子|渲染农场 Deadline 的功能详解与渲染流程 Frantic Film Deadline 安装包中有多个安装程序,如下图: 其中:DeadlineClientInstaller ...

  7. HDMI原理详解以及时序流程(视频是三对差分信号,音频Audio是PCM级(无压缩)传输,包含在数据包内,依靠协议规定采样)HDMI可以传输RGB与YUV两种格式

    资料来源:HDMI介绍与流程 - TaigaComplex - 博客园 最近要用ZYNQ开发版的HDMI做显示,看着硬件管脚和例程只能发呆,于是决心去弄清楚HDMI的工作原理,查找了很多资料,都是碎片 ...

  8. JDBC详解系列之流程

    JDBC概述定义:JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API, 可以为多种关系数据库提供统一访问,它由一组用Java ...

  9. kafka 同步提交 异步_详解Kafka设计架构核心——Kafka副本机制详解

    所谓的副本机制(Replication),也可以称之为备份机制,通常是指分布式系统在多台网络互联的机器上保存有相同的数据拷贝.副本机制有什么好处呢? 1. 提供数据冗余.即使系统部分组件失效,系统依然 ...

  10. ASIC设计流程及对应EDA工具简介

    我们一般将数字IC的设计过程分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计.有时候也把中间的逻辑综合( ...

最新文章

  1. matlab读取心电txt数据画图,图解MIT-BIH数据库心电数据下载和Matlab读取程序
  2. RDS Mysql中binlog日志查看
  3. ubuntu 下安装qemu
  4. Python CheckiO 题解系列 丨 博客目录索引
  5. 基于ConvLSTM的伦敦空气质量预测(2) 算法实施
  6. 爬取QQ好友列表或定位QQ好友秘密
  7. npm run build 报错: No such file or directory
  8. java中io的重要性_java中的IO整理
  9. vscode风格化设置
  10. sql查询重复订单号
  11. 真相了,原来程序员不喜欢领导改需求是这样子的!
  12. sublime的安装步骤、sublime的中文设置、sublime连接Linux的sftp(详细)
  13. 汇编idiv带符合除法指令。。。。
  14. MMKV:微信团队开源的轻量级存储方案
  15. CDQ分治——学习笔记
  16. IDEA中的路径问题
  17. 大学计算机实验六文件管理与磁盘恢复,做“文件管理与磁盘恢复”实验完成以下实验报告表并提交...
  18. JPA 关联表添加关联条件@Where、@WhereJoinTable()
  19. RuntimeError: applying transform <monai.transforms.croppad.dictionary.RandCropByPosNegLabeld object
  20. 备用内存 释放_Windows备用内存过大问题分析

热门文章

  1. opencv 查找白色图片的一个黑点
  2. 异数OS 织梦师-水桶(三)-- RAM共享存储方案
  3. 为什么压缩图片和压缩
  4. linux 的 绘画软件,Drawing Linux(简单画图工具)
  5. 网站制作流程详解(学做网站第一步)
  6. 简单三步教你制作一个数据可视化大屏
  7. JS之 动态控制checkbo选中状态
  8. php三级分销思路 数据库设计_三级分销,
  9. springboot对JPA的支持
  10. 人人网登陆(selenium、PtantomJS结合)