本章目录:

  • 1. 确定项目需求
    • 工具
  • 2. 前端设计(架构/算法设计分析)
    • 目的
    • 工具
    • 特点
  • 3. RTL 实现
    • 目的
    • 工具
    • 特点
    • Coding Style Check
  • 4. 功能验证
    • 目的
    • 工具
    • 语言
    • 特点
  • 5. 逻辑综合+DFT
    • 目的
    • 工具
    • 特点
    • DFT(Design For Test)
  • 6. 形式验证
    • 目的
    • 工具
    • 输入文件
    • 输出文件
  • 7. 静态时序分析
    • 目的
    • 工具
    • 输入
    • 输出
    • 特点
  • 8. 后端设计
  • 声明

1. 确定项目需求

首先做一款芯片需要有市场,一般公司会先做市场调研,比如最近市面上比较火的人工智能芯片,物联网芯片,5G 芯片,需求量都比较大。有了市场的需求我们就可以设计芯片的 spec了。先由架构工程师来设计架构,确定芯片的功能,然后用算法进行模拟仿真,最后得出一个可行的芯片设计方案。有了芯片的 spec,下一步就可以做 RTL coding 了。

工具

Office

2. 前端设计(架构/算法设计分析)

目的

完成芯片中数字部分的高层次算法或架构的分析与建模,为硬件提供一个正确的软件功能模型,更为重要的是,通过大量的高层次仿真和调试,为 RTL 实现提供总体性的设计指导。数字部分越复杂,这一点越重要。

工具

MATLAB、C++、C、System C、System Verilog 等。
不同类型的芯片都不同的选择,如数字信号处理类芯片,偏好 MATLAB。

特点

这部分工作至关重要,基本上奠定了整个芯片的性能和功耗的基础。这部分工作主要由具有通信、信号处理、计算机、软件专业背景的工程师完成,也有很多微电子专业背景的工程师参与。

3. RTL 实现

目的

依据上一步的结果,完成由高层次描述到 Verilog HDL 实现的过程。

工具

GVim/Emac、Verilog/VHDL

特点

这一步能明显区别中训练有素的工程师和初学者。前者在写代码的过程中,具有极强的大局观,能够在书写 Verilog HDL、描述逻辑功能的同时,还能够兼顾逻辑综合、STA、P&R、DFX、功耗分析等多方面因素,最终提供一份另其他环节的工程师都赏心悦目的代码。初学者则处处留地雷,一不小心就引爆。

Coding Style Check

目的:排除 RTL 代码中 CDC(Clock Domain Cross)、Lint 等问题。

CDC:跨时钟域检查

LInt:代码潜在问题检查(例如 A+B 的进位溢出)

工具:Syglass、LEDA、0inCDC

特点:目前大部分芯片中的数字部分基本上都采用局部同步和全局异步的设计策略,因此,在设计中需要小心注意跨时钟域的数据同步问题。

输入:RTL,SDC,lib/sglib
输出:wave file,report

4. 功能验证

目的

在无延迟的理想情况在,通过大量的仿真,发现电路设计过程中的人为或者非人为引起的 bug。主要指标是功能覆盖率。

工具

Modelsim、VCS、NC-Verilog、(DVE/Verdi 波形查看器)

语言

C++、C、System C、System Verilog,基于 UVM 的方法学等。主要是 System Verilog,一般哪个方便用哪个。

特点

验证工程师近年来已经成为 IC 设计中需求量最大的岗位。这个阶段会占用大量的时间,数以月计。

5. 逻辑综合+DFT

目的

将 RTL 代码映射为与工艺库相关的网表。

工具

DesignCompiler、RTL Compiler。
DesignCompiler 在市场中占有垄断性地位,几乎成为逻辑综合的标准。

特点

  1. 从芯片生产的角度来看,在该步骤之前,所有的工作都可近似看做一个虚拟性的,与现实无关。而从逻辑综合起,后续所有的工作都将与工艺的物理特性、电特性等息息相关。逻辑综合工具的功能主要是将 VerilogHDL 格式的文本映射为网表格式的文本,因此,它的功能等同于文本编译器。那么转换的方式有很多种,工具如何选取呢?逻辑综合过程中,整个文本格式的编译过程是在给定的人为约束条件下进行的,通过这些约束和设定的目标来指导工具完成 Compiler 的工作。所以,逻辑综合过程可以看成一个多目标(频率、面积、功耗)多约束的工程优化问题。
  2. 该步骤中,通常会插入 DFT、clock gating 等。
  3. 该步骤中通常加入 Memory、各种 IP 等。为了在各种工艺库以及 FPGA 原型验证平台之间有一个更方便的移植,注意适当处理这些 Memory、IP 等的接口。该步骤中也可加入 I/O、PLL 等。

DFT(Design For Test)

为了保证芯片内部的制造缺陷尽量能够被检测到,通过在电路中插入扫描链(Scan Chain)的方式,测试 IC 在生产制造过程中是否出现问题。加入 DFT 会增加 20%~30%的面积。但为了保证良率,为了给客户的片子是合格的需要将具有缺陷(工厂制
造缺陷)的片子筛除。

输入文件:
a.RTL 代码:由 ASIC design engineers 团队提供;交接前,必须保证在第 3 步的 check 中没有任何问题;
b.工艺库(.db):由晶圆厂提供;
c.约束(SDC):由逻辑综合工程师和 ASIC design engineers 共同商定。

输出文件:
a.网表:包含了 RTL 中的所有的逻辑信息,除此以外,可能还会有 DFT、clock gating、I/O等;网表主要用于 P&R 等流程;
b.标准延迟文件 SDF:主要包含了网表中所有器件的延迟信息,用于时序仿真;PT 会结合后端工具生成的一个更为精确的 sdf ,所以,通常会用 PT 的 sdf 文件做后仿真。Project 文件:.ddc;
c.各种报告:timing report、area report、constrain report、clock report、violation report 等等,以及工具的 log 文件。(此处最好能够熟悉各种脚本语言,将各种 report 处理为友好易读形式)

6. 形式验证

目的

RTL 代码和逻辑综合后的网表是否具有一致的功能。(尤其是在后端做 ECO 的时候)

工具

Formality、Conformal

输入文件

RTL 代码、netlist(逻辑综合输出)、约束

输出文件

match 和 verify 报告。

7. 静态时序分析

目的

分析设计中所有的路径,确保满足内部时序单元对建立时间和保持时间的要求。

工具

PrimeTime、Tempus。
PrimeTime 在市场中占有垄断性地位,几乎成为 STA 的标准

输入

spef 文件、PnR 网表,标准单元库 db 文件,IP 的 dp 文件

输出

SDF,timing ECO 文件

特点

  1. 从逻辑综合开始,基本上每做一步大的调整,都会完成一次 STA 分析,以保证每步都能实现时序收敛。鉴于该特性非常重要,PrimeTime 成为了 Signoff 的重要工具。
  2. 所用到的 SDC 同逻辑综合;
  3. 通常设计中会存在大量的违例路径,STA 要修大量的 setup、hold 等,如何修这些违例,可以体现工作经验的重要性。此外,如果是前端修 timing 违例,一般会修的很快,但是会带来一个重大的问题,代码被前端修改后是否存在新的 bug,还需重新仿真确认,仿真会消耗掉数以月计的时间,所以除非万不得已,不会找前端修 timing。

注:静态时序分析和形式验证这属于验证范畴。

STA 主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。而形式验证是从功能上对综合后的网表进行验证。常用的就是等价性检查(LEC)方法,以功能验证后的 HDL 设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。

静态时序分析和形式验证出现在设计流程中前后端过程,有一些地方在前端中没有提到,应该是在后端当中比较重要,作为验证设计工作的一部分,在前端中也加入静态时序分析和形式验证可以提高设计的可靠性。

8. 后端设计

Place & Route 一般由后端工程师来做,Physical Design Engineer.
后端里 DRC 就是要检查设计规则是否符合芯片制造商的要求,这样才能正确的生产芯片。
后端完成工作后,最终会生成 GDSII 格式的文件,交由芯片制造商流片。

声明

本人所有系列的文章,仅供学习,不可商用,如有侵权,请告知,立删!!!

本人主要是记录学习过程,以供自己回头复习,再就是提供给后人参考,不喜勿喷!!!

如果觉得对你有用的话,记得收藏+评论!!!

【基础知识】~ 集成电路设计流程,以及各阶段所使用的EDA工具相关推荐

  1. 【干货】房地产基础知识及开发流程.pdf(附下载链接)

    大家好,我是文文(微信:sscbg2020),今天给大家分享一份房地产行业的干货资料<房地产基础知识及开发流程.pdf>.关注房地产的伙伴别错过啦! 另外,我们也搭建了行业交流社群,涵盖房 ...

  2. 埋点设计思路 - 基础知识和设计流程

    埋点设计思路 - 基础知识和设计流程 一.  埋点 埋点:又称为事件追踪(Event Tracking),指的是针对特定用户行为或事件进行捕获,处理和发送的相关技术及其实施过程. 功能方面,埋点是用来 ...

  3. 【IC基础】集成电路设计领域术语缩写及名词解释(字母索引版)

    前言: 笔者在大三上学习学习<SoC设计导论>时整理的有关集成电路设计领域的常见有英文缩写和对应的名词解释,文中标注的页码均出自<SoC设计方法与实现>这本参考书: 目录 目录 ...

  4. 神经肿瘤组学基础知识、工作流程及应用

    在过去几年中,从脑肿瘤患者中采集的具有常规临床用途的神经影像数据的数量.种类和复杂性以及由此产生的影像参数数量都大幅增加.因此,如果没有人工智能(AI)领域的方法支持,对成像数据进行及时且成本效益高的 ...

  5. 数字IC设计流程(全),芯片设计流程,集成电路设计流程

    一 数字IC设计流程 前端: 1.规格制定 甲方提要求,确定芯片的功能,性能等方面. 2.架构设计 架构工程师制定方案,设计架构,划分模块功能,定义接口时序. 3.RTL编码 数字IC设计工程师编写R ...

  6. 关于IBM的专用集成电路设计流程以及RLM设计流程的优点详解

    1 前言 随着集成电路--ISL9220AIRTZ-T7A工艺技术的不断发展,集成电路的特征设计尺寸进入到深亚微米,芯片规模扩大到百万门级,从计算量.后端布局布线(placement&rout ...

  7. 语音基础知识和处理流程(TTS小白入门)

    一.口水话描述 1.怎么表示声音. 一段声音可以这么记录:就是振动点在各个时间偏移中心点的偏移量大小,简单来说就是一个振动点的位置随着时间变化的序列.而在存储为数字信号的过程中,对该连续序列每秒中采样 ...

  8. Yii框架官方指南系列14——基础知识:开发流程

    为什么80%的码农都做不了架构师?>>>    介绍过 Yii 中的基本概念之后,我们现在讲解使用 Yii 开发Web应用时的一般开发流程. 此处的开发流程假设我们已经完成了对应用的 ...

  9. java 流程控制_《Java基础知识》Java流程控制

    流程控制分类: 一.顺序结构 如果没有流程控制(即没有分支结构和循环结构),Java方法里面的语句是一个顺序执行流,从上到下依次执行每条语句. 二.分支结构 1.if语句 if语句使用布尔表达式或者布 ...

  10. python基础知识05-控制流程

    控制流程 1.条件判断 python中的代码从上到下执行. if 条件: 缩进 语句1 elif 条件2: 缩进 语句2 (-或者写pass关键字.不写任何代码的时候,防止报错.) ... else: ...

最新文章

  1. 论文不必参考任何文献?看到作者,网友大呼失敬了
  2. PCA和白化练习之处理二维数据
  3. POJ 1190 生日蛋糕 【DFS + 极限剪枝】
  4. 边缘生——保研与考研到底如何抉择!
  5. 记录更新(Java数据类)
  6. java注册系统服务_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...
  7. 新路由3鸡血版固件_NEWIFI3老毛子鸡血驱动版固件
  8. java修改jpg图片、mp3音频文件的后缀名
  9. .bat文件创建和编辑方法
  10. 迅雷服务器IP地址列表的获取办法
  11. discuz手机版常见问题
  12. python乒乓球比赛规则介绍_乒乓球比赛详细规则
  13. 计算机双机对连局域网,图解双机/多机无线互联技巧_局域网教程
  14. Java课程学习四:编程题
  15. 厦门理工学院OJ题解(1223:Rite与跳舞毯)
  16. 谁动了妙可蓝多的奶酪?
  17. POJ-29932996
  18. 【houdini vex】方形拼图
  19. IPad GoodReader阅读文档实现即点即译取词在线翻译
  20. EXCEL技巧2:EXCEL中的数组公式

热门文章

  1. 让前端设计相见恨晚的器件,ADI为你详解PGIA!
  2. vb难还是c语言难java_c语言难还是vb难?
  3. 用 Python 绘制了若干张词云图,惊艳了所有人
  4. java自动签到_原来实现钉钉自动签到如此简单,每天准时上下班不是梦
  5. linux (centos 8.1)生产环境基于9台物理机 安装 opentstack ussuri集群以及集成ceph (已转gitee)
  6. 计算机组成原理强制类型转换规则,计算机组成原理——浮点数加减运算强制类型转换...
  7. office 2010安装包
  8. 合肥工业大学机器人技术期末_机器人技术基础期末考试复习资料
  9. 顶级 Java 源码教程项目大汇总
  10. 如何连接禅道的mysql_禅道一键安装包如何实现mysql异机连接