从 Spec.到芯片_(数字IC、模拟IC、FPGA/CPLD设计的流程及EDA工具)

2023-10-27

从 Spec.到芯片→

先来看张图,本图体现出了集成电路产业链:设计业、制造业、封测业。
在这里插入图片描述

关于制造、封装测试我们看两张图稍作了解即可:
在这里插入图片描述
在这里插入图片描述

关于设计,是本文主要内容,主要从下方几个方面了解:

1、IC设计大致分类;
2、IC设计需要考虑的因素;
3、数字IC ASIC设计流程及EDA工具;
4、FPGA/CPLD设计流程及EDA工具;
5、模拟IC设计流程及EDA工具;
6、了解MPW(对设计、制造和封测的作用等);
1、IC设计的大致分类:
在这里插入图片描述

(1)数字IC:处理数字信号,可以做成很大的规模;

ASIC:(需制作掩模),Application Specific Integrated Circuit 专用集成电路;

FPGA/CPLD:(可以编程,不需制作掩模),Field Programmable Gate Array 现场可编程门阵列;Complex Programmable Logic Device 复杂可编程逻辑器件;
(2)模拟/射频IC:处理模拟信号,规模远不如数字IC,放大器( RF放大器、中放、运放、功放);比较器;振荡器;混频器;模拟PLL;稳压稳流源等

(3)数模混合信号IC: ADC、DAC;某些Driver;电源管理;等等

(4)SOC:System on Chip(系统集成电路,片上系统)

关于数字IC中的ASIC与FPGA/CPLD的区别:

(1)ASIC:需制作掩模;设计时间长,硬件不能升级;芯片面积小,性能可以得到较好的优化;适合芯片需求量大的场合:片量用于平摊昂贵的光罩掩模制版费,降低单片生产成本。

(2)FPGA/CPLD:可以编程,不需要后端设计/制作掩模;开发门槛较低,设计时间较短,可方便和快速地升级优化硬件;芯片面积大,性能不够优化 ;适合芯片需求量小的场合:不用支付昂贵的光罩掩模制版费。作为数字ASIC设计流程中的必要步骤:ASIC设计中前端设计的FPGA原型验证(HDL功能验证)。

这里给推荐个IC设计培训班,点此进入←…

2.IC设计中需要考虑的因素:
(1)满足功能和性能的要求(性能:速度、功耗);

(2)降低芯片成本(包括:设计、制造、测试);

设计:良好的设计流程,就能降低芯片的设计成本。
制造:需要优化设计来减少芯片面积,增加每个晶圆上的管芯数,在设计中采用DFM方法来提高芯片制造成品率。
测试:在设计中采用可测试性设计(DFT)方法,降低每个芯片的测试时间等。
单芯片成本计算方式:CT = CD/N + CP/(y*n) + 封装测试成本
第一项表示分摊到每个芯片上的设计费用:CD是设计及掩模制版费(也叫NRE费用), N是总产量;
第二项表示每个芯片的制造费用:CP是每个晶圆的制造费用,n是每个晶圆上的管芯数,y是晶圆成品率;
(3)延长芯片的使用寿命,如热均匀分布等;

(4)缩短芯片面市时间(Time-to-Market);

3.数字IC ASIC设计流程及EDA工具:
(1)了解数字IC设计:在VLSI时代,数字IC设计是VLSI设计的根本所在(更大的规模、更好的性能、更低的功耗、超深亚微米(VDSM)工艺技术:对互连问题的关注)

数字IC设计方法:
层次化:从高层次的系统抽象描述,逐级向下进行设计/综合、验证,直到物理版图级的低层次描述(系统(功能)级→寄存器传输级(RTL)→门级→电路级→ 物理版图级);
层次化的设计方法使复杂的电子系统简化,并能在不同的设计层次及时发现错误并加以纠正 ;
结构化:把复杂的系统划分成一些可操作的模块,允许多个设计者同时设计,而且某些模块的可以复用;
(2)数字IC ASIC设计流程:三阶段(前端设计/功能验证/后端实现)

RTL前端+功能验证(最终得到的是RTL Source Code)
GDSII后端:逻辑综合+后仿真(最终得到的是GDSII文件)
在这里插入图片描述

第一阶段:数字IC ASIC之 前端设计(RTL设计):

用硬件描述语言HDL(Verilog、VHDL)来描述;描述硬件电路,抽象地表示电路的结构和行为(怎样组成,完成什么功能);

HDL描述的两种方式:
结构描述:若干部件用信号线互连形成一个实体;
行为描述:反映信号的变化、组合和传播行为,特点是信号的延迟和并行性;
HDL的作用:
具有与具体硬件电路无关和与EDA工具平台无关的特性,简化了设计;
支持从系统级到门和器件级的电路描述,并具有在不同设计层次上的仿真/验证机制;
可作为综合工具的输入,支持电路描述由高层向低层的转换;
数字ASIC设计中采用的典型EDA工具:
在这里插入图片描述

第二阶段:数字IC ASIC之 功能验证(前仿真):

检验RTL级的HDL设计是否实现了Spec.需要的功能等;
在这里插入图片描述

仿真:先对设计进行一系列的激励(输入),然后有选择的观察响应(输出)
激励与控制:设置输入端口,输入激励向量;
响应和分析:及时监控输出响应信号变化,判断是否正确、合法;
常用的仿真EDA工具:VCS (Synopsys), Modelsim(Mentor), NC(Cadence);

第三阶段:数字IC ASIC之 后端实现:(逻辑综合、时序分析、布局布线、版图验证、后仿真)

逻辑综合:

将描述电路的RTL级HDL转换到门级电路网表netlist的过程;根据该电路性能的要求(限制),在一个由制造商提供的包含众多结构、功能、性能均已知的逻辑元件的单元库的支持下,寻找出一个门级逻辑网络结构的最佳实现方案,形成门级电路网表netlist;
在这里插入图片描述

综合EDA工具主要包括三个阶段:转换(Translation)、优化(Optimization)与映射(Mapping)

转换阶段:将RTL用门级逻辑来实现,构成初始的未优化电路。
优化与映射:对已有的初始电路进行分析,去掉电路中的冗余单元,并对不满足限制条件的路径进行优化,然后将优化之后的电路映射到由制造商提供的工艺库上
常用的EDA工具:Design Compiler(Synopsys)

时序分析:

对于VLSI,时序分析一般采用静态时序分析STA(Static Timing Analysis),以验证门级逻辑网络结构netlist的时序是否正确;
在这里插入图片描述

STA工具的基本思想: 在netlist中找到关键路径;关键路径是netlist中信号传播时延的最长路径,决定了芯片的最高工作频率;

STA工具可以分为三个基本步骤:

第一是将netlist看成一个拓扑图 ;
第二是时延计算(连线时延 net delay、单元时延 cell delay);
第三是找到关键路径并计算时延,进行判断;
常用的时序验证EDA工具:PrimeTime(Synopsys) ;
布局布线:

将门级电路网表(netlist)实现成版图(layout)

常用的EDA工具:Encounter(Cadence)、Astro (Synopsys)

版图验证:

版图验证包括DRC和LVS;

DRC(Design Rule Check):保证版图的可制造性,保证版图满足芯片制造厂的版图设计规则(Design Rule);
LVS(Layout Versus Schematic):证明版图与门级电路网表netlist的一致性;
常用的EDA工具:Mentor的Calibre,Synopsys的Hercules;

后仿真:

后仿真是保证版图是否满足时序的要求,在后仿真之前首先要进行参数提取,提取版图的连线时延信息(RC Extract),后仿真STA等;

常用的参数提取EDA工具:Synopsys的StarRCXT

常用的后仿真STA EDA工具:Synopsys的PrimeTime

4.FPGA/CPLD设计流程及EDA工具:
在这里插入图片描述

仿真、综合与适配:

(1)功能仿真:HDL设计是否实现Spec.功能要求;
采用的EDA工具:Modelsim(Mentor);
(2)逻辑综合:HDL转化为FPGA门级网表;
采用的EDA工具:Synplify(Synplicity)、Precision(Mentor);
(3)时序仿真:不同于前面提到的静态时序仿真STA,是动态时序仿真;
采用的工具:Modelsim;
(4)适配:也称结构综合或FPGA布局布线,是将由综合产生的网表文件配置于指定的目标器件(FPGA/CPLD)中,产生最终的下载文件,如JEDEC、Jam格式的文件。
FPGA/CPLD 器件及其开发工具:

FPGA/CPLD 器件提供商:Altera和Xilinx;
FPGA/CPLD 开发的EDA工具一般由器件生产厂家提供,但器件厂家只开发集成开发环境IDE和与器件密切相关的适配工具,功能仿真和综合工具实际是由第三方EDA软件开发商公司提供;
Altera -Quartus II (前身为Maxplus II )
Xilinx -ISE
5.模拟IC设计流程及EDA工具:
模拟IC设计流程是全定制设计流程;

(1)电路图编辑
常用的工具:Cadence Virtuoso – Schamatic Composer
(2)电路仿真(电路模拟):俗称 SPICE 仿真
常用的工具: Synopsys HSPICE,Cadence Spectre
(3)版图编辑
常用的工具: Cadence Virtuoso – Layout Editor(LE)
(4)版图验证与后仿真
DRC/ LVS: DRC保证版图满足芯片制造厂的设计规则 / LVS证明版图与网表的一致性;常用的DRC/LVS EDA工具:Mentor Calibre、 Synopsys Hercules;
参数提取:提取版图的连线时延信息(RC Extract);常用的参数提取EDA工具:Synopsys StarRCXT;
版图后仿真:SPICE;
模拟典型设计流程及EDA工具:
在这里插入图片描述

6.了解MPW(对设计、制造和封测的作用等)
MPW叫做多项目晶圆流片:廉价;

设计与制造、封测之间的MPW环节:
在这里插入图片描述

为什么要需要MPW样片?

对MPW出来的晶圆要进行切割和封装,才能得到样片;

在设计阶段是采用软件仿真的方式对芯片进行验证,而通过MPW可取得样片,进行真实硬件环境下的:

(1)芯片功能和性能(设计)的测试验证和评价(将芯片放在实际的整机系统中,用各种测试仪器设备,看系统是否正常工作)
(2)芯片制造工艺的验证和评价:确定量产芯片的制造厂商;
(3)芯片量产测试方案的调试和基本确定:确定ATE及测试方案;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Spec.到芯片_(数字IC、模拟IC、FPGA/CPLD设计的流程及EDA工具) 的相关文章

  • CAN FD基础

    CAN FD基础 一 CAN FD与CAN 2 0的区别 1 CAN FD的优势 该协议能够支持更高的速率 可以更快的刷写ECU 在单个数据帧内传送率可达64字节 避免了经常发生的数据分拆传输的状况 对汽车行业而言 CAN FD协议显得非常
  • CUDA异步并发之CUDA流详解

    CUDA中得异步并发 CUDA 将以下操作公开为可以彼此同时操作的独立任务 在主机上计算 设备上的计算 从主机到设备的内存传输 从设备到主机的内存传输 在给定设备的内存中进行内存传输 设备之间的内存传输 这些操作之间实现的并发级别将取决于设
  • ORcad Capture CIS元件库管理

    当电子元器件数量多到一定程度的时候 所有器件都集中在一个library里杂乱无章 使用起来相当不方便 时间长了也很容易把相似的器件封装混淆 如何规范化整理 就成了一个让人头疼的问题 还有就是贴片时硬件工程师都要面对一个整理BOM的问题 小公
  • FPG—VGA显示器字符显示(附代码)

    目录 1 实操 1 1 字符取模 1 2 顶层模块 1 3 图像数据生成模块 1 3 1 模块框图 1 3 2 波形图绘制 1 3 3 代码编写 1 3 4 仿真验证 2 总结 本例程大部分与VGA显示驱动内容相同 只是显示部分改变了 故此
  • [HDLBits] Exams/ece241 2014 q7a

    Design a 1 12 counter with the following inputs and outputs Reset Synchronous active high reset that forces the counter
  • 西门子300系列基本逻辑编程:手自动选择程序及自定义脉冲模块的使用

    西门子内置脉冲发生器 M0 0 0 1S M0 1 0 2S M0 2 0 4S M0 3 0 5S M0 4 0 8S M0 5 1 0S M0 6 1 6S M0 7 2 0S 案例 手自动选择程序 控制要求 I0 0是手自动选择开关
  • PCB设计笔记

    系列文章目录 1 元件基础 2 电路设计 3 PCB设计 4 元件焊接 5 板子调试 6 程序设计 7 算法学习 8 编写exe 9 检测标准 10 项目举例 11 职业规划 文章目录 前言 一 PCB板上的 地 1 详解电路设计中单点接地
  • 使用七牛云进行文件上传

    目录 一 七牛云入门测试 1 注册七牛云账号 完成后选择对象存储 2 在里面创建空间 一个空间相当于一个文件夹 就是将对象上传到的地方 3 查看个人秘钥 注册完成账号后 会有一个秘钥 上传文件的时候进行授权和认证 4 文件上传测试 二 封装
  • ALLEGRO等长时如何将PIN DELAY和VIA长度计算在内

    在PCB设计中 对于时序要求严格的线路 Via和IC pin delay的长度必须得到重视 通过下面的操作 可将Via和Pin delay加入到线路长度的计算中 1st 计算Pin delay 打开Constraint Manager 选择
  • 画时序图软件——TimeGen和Timing Designer下载

    在写实验报告的时候需要画波形图 但是手头没有很好的软件 就上网搜了一些 分享出来 这里分享的是TimeGen和Timing Designer两个软件 资源均来自网上 有侵权请联系 TimeGen使用和安装都比较简单 我发的应该里面有破解方法
  • [从零开始学习FPGA编程-24]:进阶篇 - 基本组合电路-编码器与译码器(Verilog语言)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 125247358 目录 前言 Veri
  • 时序约束理解

    异步配置信息 跨时钟域 配置信息一般set max delay按照3delay来约束 2 异步回读 rst clear信号 设置set false path 放松时序约束要求 不应分析设计中的逻辑路径 因为不关心点到点时序要求
  • linux应用程序直接return与exit的区别

    在Linux应用程序中 可以使用 return 语句直接从 main 函数返回 这将导致程序终止并返回给操作系统 然而 有时候使用 exit 函数比直接使用 return 语句更有优势 以下是一些原因 清理资源 exit 函数可以确保在程序
  • linux ARM64 处理器内存屏障

    一 内存类型 ARMv8架构将系统中所有的内存 按照它们的特性 划分成两种 即普通内存和设备内存 并且它们是互斥的 也就是说系统中的某段内存要么是普通内存 要么是设备内存 不能都是 1 普通内存 Normal Memory 普通内存的特性是
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • allegro画PCB如何更新元件的PCB封装

    allegro画PCB如何更新元件的PCB封装 一 更新单个器件的PCB封装 首先菜单栏选择Place gt Update Symbols 如下图 注意此案例是更新了C0805封装 中更新封装 就将上图第二个红色方框中的勾选即可 二 更新某
  • 如何创建VPC并配置安全组以保护您的阿里云服务器

    将您的基础架构放在云上意味着您可以接触到全球的许多人 但是 这也意味着不怀好意的人可以访问您的服务 保护您的云网络非常重要 阿里云提供虚拟专用网络 VPC 这是一个安全隔离的私有云 将您的弹性计算服务 ECS 实例包含在公有云中 您可以通过
  • 如何正确使用电感和磁珠

    电感和磁珠不仅在外形上相似 而且功能上也存在很多相同之处 有些应用场景下 两者甚至可以相互替代使用 但是 电感和磁珠之间真的能完全划上等号吗 或许 以下的比较会让你更加清楚地知道两者之间存在的差异 额定电流 当电感的工作电流超过其额定电流时
  • 如何正确使用RC滤波网络

    众所周知 最有效的滤波电路应靠近噪声源放置 滤波的作用是对噪声电流进行及时有效地阻止和转移 实际设计中 工程师经常使用高的串联阻抗 电阻 电感和铁氧体 阻止电流 并使用低的并联阻抗 电容 转移电流 通常情况下 我们期望滤波器可以对噪声信号衰
  • 【学习分享】全志平台TWI子系统源码分析(1)从设备树到寄存器

    全志平台TWI子系统源码分析 1 从设备树到寄存器 前言 一 名词解释 二 从设备树入手看源码 1 TWI设备树 2 TWI源码位置 3 TWI总线相关寄存器 总结 前言 这次开坑主要是想把全志平台TWI子系统在源

随机推荐

  • KVM实战入门之Libvirt

    环境说明 本实验在VMware的centos6 7 x64进行的 1 VMware配置 如果不能勾上则不能继续进行 解决办法 重新创建VMware虚拟机 到这一步 自定义 能勾上了 创建虚拟机后即可下一步 2 查看Linux环境 查看是否支
  • HC32L110国产超低功耗华大MCU芯片介绍

    华大HC32L110 系列32 位 ARM Cortex M0 微控制器 HC32L110 系列是一款旨在延长便携式测量系统的电池使用寿命的超低功耗 Low Pin Count 宽电压工作范围的 MCU 集成 12 位 1M sps 高精度
  • VirtualBox+Windbg 进行双机调试的方法

    以前见他们调试驱动程序之类的都是使用的VMWare 我没怎么用这软件 感觉这软件有点臃肿 后台服务挂得太多了 感觉不爽 于是就没搞它 加上电脑上很早就装有Oracle的Virtual Box 于是就看了下 其实Virtual Box也有支持
  • 使用msf监听模块接收反弹shell

    Metasploit Framework MSF 提供了多种方式来监听反弹 shell 使用 multi handler 模块 这是 MSF 中最常用的模块之一 用于监听反弹 shell 它支持多个协议和 payload 可以根据需要进行配
  • SQL基础笔记

    Codecademy中Learn SQL SQL Table Transformaton和SQL Analyzing Business Metrics三门课程的笔记 以及补充的附加笔记 Codecademy的课程以SQLite编写 笔记中改
  • nginx反向代理后获取真实请求ip

    本来接口运行的好好的 后面为了规范接口 我在nginx加了如下代码 location v1 api proxy pass https xxx xxx xxx 8081 v1 api 后面重新部署后发现通过HttpServletRequest
  • python下载安装使用_下载、安装与使用 pysot

    本篇文章简要介绍了如何在windows环境下 使用anaconda进行pysot运行环境的部署以及使用 pysot是商汤科技推出的一个针对单目标跟踪 Single Object Tracking 的 研究平台 里面包含了他们团队的一些算法实
  • 23种设计模式之策略模式

    文章目录 概览 策略模式的优缺点 策略模式的应用场景 策略模式的结构与实现 模式的结构 模式的实现 策略模式的扩展 总结 概览 策略模式定义了一系列算法 并将每个算法封装起来 使他们可以相互替换 且算法的变化不会影响到使用算法的客户 需要设
  • Python从入门到放弃(三):基本语句和语法

    一 一些改变 1 Python增加了什么 相比起C 或者其他一些语言 Python增加了一个冒号 所有的python复合语句 都是首行由冒号来提醒 这个一定不能够掉了 且接下来是以缩进的形式来书写 C 或者一些语言是大括号括起来的 后面会看
  • 【算法与数据结构】98、LeetCode验证二叉搜索树

    文章目录 一 题目 二 解法 三 完整代码 所有的LeetCode题解索引 可以看这篇文章 算法和数据结构 LeetCode题解 一 题目 二 解法 思路分析 注意不要落入下面你的陷阱 笔者本来想左节点键值 lt 中间节点键值 lt 右节点
  • 传感器i2c与arduino连接_Arduino中进行I2C通信发送数据案例分析

    在之前的文章中 我们介绍了Arduino之间的SPI通信 今天我们将学习另一种串行通信协议 I2C 内部集成电路 比较I2C和SPI I2C只有两条线 而SPI使用四条 I2C可以有多个主机和从机 而SPI只能有一个主机和多个从机 因此 如
  • docker容器连接宿主机redis和mysql

    当我们在用docker部署项目的时候可能会遇到这样一个问题 项目A和项目B都用到了redis和mysql 如果在docker compose里link或者dependon一个redis和mysql的话 会发现每一个项目都有一个redis和m
  • static作用:静态变量的生存周期和作用域

    首先要理解生存周期与作用域的区别 生存周期 变量从定义到销毁的时间范围 存放在全局数据区的变量的生存周期存在于整个程序运行期间 而存放在栈中的数据则随着函数等的作用域结束导致出栈而销毁 除了静态变量之外的局部变量都存放于栈中 作用域 变量的
  • 多路开关模式的switch语句

    在实例10中 将break语句去掉之后 会将符合检验条件后的所有语句都输出 利用这个特点 可以设计多路开关模式的switch语句 例如 在平年一年12个月 1 3 5 7 8 10 12月是31天 4 6 9 11月是30天 2月是28天
  • 第1144期AI100_机器学习日报(2017-11-05)

    AI100 机器学习日报 2017 11 05 聊天机器人Chatbot知识资料全集 入门 进阶 论文 软件 数据 专家等 wx 专知内容组 推荐中的序列化建模 Session based neural recommendation wx
  • Echarts饼状legend如何自动显示值和百分比

    效果图如下 重点在legend里如何设置 显示值和百分比 div class div block strong class block box title 硬盘使用情况 总容量 total strong div div div
  • 如何写出好的接口测试用例?一文1500字从0到1教你写一个合格的接口测试用例

    作为测试人 我们经常要对项目中的接口进行接口测试 那么在做接口测试的时候 如何写接口测试用例呢 如何写出好的接口测试用例呢 什么是接口测试 首先我们要了解一下 什么是接口测试 那么首先要搞清楚 我们一般说的接口到底是什么 一般狭义上说的都是
  • Linux查看二进制文件

    方法一 使用hexedit 下载 sudo apt get install hexedit 然后使用hexedit命令就行了 方法二 使用vim 先用vim b file打开文件 然后输入 xxd命令转换为十六进制 输入 xxd r返回原显
  • IntelliJ IDEA:删除当前一整行

    参考 https blog csdn net weixin 40836179 article details 81360342
  • 从 Spec.到芯片_(数字IC、模拟IC、FPGA/CPLD设计的流程及EDA工具)

    从 Spec 到芯片 先来看张图 本图体现出了集成电路产业链 设计业 制造业 封测业 关于制造 封装测试我们看两张图稍作了解即可 关于设计 是本文主要内容 主要从下方几个方面了解 1 IC设计大致分类 2 IC设计需要考虑的因素 3 数字I