ASIC 数字设计:概述和开发流程

news2024/11/13 21:26:59

概述

集成电路是由硅晶圆(wafer)切割出来的芯片(die)组成的。每个晶圆可以切割出数百个芯片。

4545922fb3bc054c5e0796cb75dd1a38.png

ASIC是指针对特定应用而设计的集成电路(Application Specific Integrated Circuit),与通用的存储器、微处理器等不同。ASIC有以下几种类型:

  1. 全定制ASIC(Full-Custom ASIC):这种类型的ASIC是完全手工设计的,没有使用预先设计好的逻辑门,而是自己绘制芯片的版图(layout)。

  2. 标准单元ASIC(Standard Cell ASIC):这种类型的ASIC是使用预先设计好的逻辑门,例如AND,NOR等,来构建电路。这些逻辑门被称为标准单元(Standard Cell)。标准单元ASIC的优点是设计者可以节省时间、金钱和风险,因为标准单元库已经过设计和测试。每个标准单元都是用全定制的方法设计的,可以进行单独的优化。

设计ASIC时,需要平衡以下几个目标:

  1. 速度(Speed):指芯片运行的时钟频率和响应时间,影响芯片的性能和效率。

  2. 面积(Area):指芯片占用的硅晶圆面积,影响芯片的成本和产量。

  3. 功耗(Power):指芯片运行时消耗的电能,影响芯片的可靠性和散热。

  4. 上市时间(Time to Market):指从设计开始到产品上市所需的时间,影响芯片的竞争力和市场占有率。

为了实现这些目标,设计者需要熟悉CMOS工艺,即使用互补金属氧化物半导体(Complementary Metal Oxide Semiconductor)制造芯片的技术。

CMOS工艺

1.1 CMOS工艺

CMOS工艺是目前最常用的芯片制造技术,它利用互补金属氧化物半导体(Complementary Metal Oxide Semiconductor)来构建电路。CMOS电路由NMOS和PMOS两种类型的MOSFET晶体管组成。

1.2 MOSFET晶体管

MOSFET是金属氧化物半导体场效应晶体管(Metal Oxide Semiconductor Field Effect Transistor)的简称,它是一种电压控制的开关器件,也是数字集成电路设计中的基本单元。MOSFET的结构和工作原理如下图所示。

b2c106d23765568bc7d2024ffa31498d.png 7224e8393a98cbbef151eb62decf00cc.png

CMOS工艺利用NMOS和PMOS两种MOSFET来实现高密度、复杂的数字集成电路,主要用于信号处理。CMOS工艺的优点是低功耗、高速度和易于集成等。在数字IC中,MOSFET可以看作是简单的开关。例如:CMOS反相器只需要一个PMOS和一个NMOS晶体管。

  • 当输入为逻辑“0”时,PMOS导通,NMOS截止,输出负载电容被充电,输出为逻辑“1”。

  • 当输入为逻辑“1”时,PMOS截止,NMOS导通,输出负载电容被放电,输出为逻辑“0”。

逻辑门的输出负载电容由两部分组成:本征电容和外部电容(走线、扇出等)。PMOS和NMOS的载流子分别是空穴和电子。由于电子的迁移率比空穴高出一倍多,导致输出上升时间和下降时间不对称。

为了平衡这种差异,通常让PMOS的宽长比(W/L)比NMOS的大一些。这样可以使PMOS和NMOS具有相近的驱动能力(drive strength)。

在标准单元库中,晶体管的长度L一般是固定的,而宽度W则根据不同门的驱动需求进行调整。

1.3 CMOS集成电路的功耗

CMOS集成电路的功耗主要有以下三个来源:

  1. 动态功耗:由于电路负载电容在开关过程中的充放电而产生。给定频率f,动态功耗为:负载电容* Vdd * Vdd * f

  2. 短路功耗:由于PMOS和NMOS在开关过程中同时导通而形成短路路径而产生。

  3. 静态功耗:由于晶体管存在漏电流而产生。

1.4 CMOS传输门

将PMOS和NMOS并联起来就形成了传输门。传输门可以将输入信号传递到输出端。

1.5 时序元件

在CMOS中,可以通过反馈回路来实现逻辑值的存储,这样的元件被称为时序元件。最简单的时序元件就是两个反相器相互连接。基于这种结构,可以有两种基本的时序元件,分别是:

1、锁存器(Latch):锁存器是在两个反相器之间加入一个传输门来控制数据的输入和输出。

  • 当传输门的控制信号为逻辑“1”时,传输门打开,输入信号“D”可以传递到输出端。

  • 当控制信号为逻辑“0”时,传输门关闭,输出端保持原来的值不变。

19ffa5db5791e12700027045ce306968.png

2、触发器(Flip-Flop):触发器是由两个锁存器串联而成的。第一个锁存器叫做主锁存器(Master latch),第二个锁存器叫做从锁存器(Slave latch)。

在这种情况下,传输门的控制信号就是时钟信号(Clock)。时钟信号经过反相后送到从锁存器的传输门。

  • 当时钟信号为高电平时,主锁存器的传输门打开,输入信号“D”可以被两个反相器锁定。同时,由于时钟信号反相,从锁存器的传输门关闭,输出信号“Q”保持原来的值不变。

  • 当时钟信号为低电平时,从锁存器的传输门打开,输出信号“Q”更新为主锁存器锁定的值。此时,输出信号“Q”与输入信号“D”的变化无关。

由于触发器只在时钟信号由低变高的上升沿更新数据,所以这种类型的触发器叫做正边沿触发器。如果触发器只在时钟信号由高变低的下降沿更新数据,则叫做负边沿触发器。
e7f7bcf0d6f9c06566317f597fc68ded.png

芯片设计的过程

要设计芯片,首先需要有一个清晰的设计目标和功能需求(Idea)。

在ASIC设计流程中,这个Idea会不断地转化为不同的表现形式。

ASIC设计流程的第一步就是把Idea写成详细的规格说明书(Specifications)。规格说明书包括:

  • 设计的目标和约束条件。

  • 设计的功能描述。

  • 设计的性能指标,如速度和功耗。

  • 设计的面积预估。

  • 设计的制造工艺和设计方法选择。

传统意义上,ASIC设计流程如下所示:

3f28da31bd18cbc403bdc1d01ba95494.png

1、给出设计的结构和功能分解(Structural and Functional Description)。这意味着要确定使用什么样的设计架构,例如 RISC / CISC,ALU,流水线等,并且将整个系统划分为若干个子模块。每个子模块的功能也要在规格说明书中明确定义。

2、确定了系统层次结构之后,就要开始用具体的逻辑元素来实现设计的功能。这一步称为RTL级逻辑设计(Register Transfer Level)。RTL设计通常用硬件描述语言(Verilog、VHDL)来编写。硬件描述语言(HDL)是一种用于描述数字系统的语言,可以用来表示逻辑门、微处理器、存储器、触发器等任何级别的硬件。在这个阶段,要对设计进行功能验证,以确保设计符合规格说明书的要求。

3、功能验证

4、逻辑综合(Logic synthesis),使用Design Compiler (Synopsys),Genus(Cadence)等综合工具,将 RTL代码转换为优化后的门级网表(Gate Level Netlist)。综合工具需要输入RTL代码和标准单元库(Standard cell library),输出门级网表。标准单元库是集成电路设计中常用的基本逻辑模块的集合。综合工具在进行逻辑综合时,要考虑各种约束(Constraints),如时序、面积、可测性和功耗等。综合工具会根据不同的优化策略和代价函数(cost function),来寻找满足约束条件的最佳实现方案。逻辑综合完成之后,会得到一个只包含结构信息而不包含行为信息的门级网表。

5、对门级网表进行功能验证,以检查是否与RTL代码一致。

6、门级网表的物理实现(Physical Implementation)。这一步是将门级网表映射到芯片上的具体位置和连线。物理实现需要考虑制造工艺对布局布线(Layout)的限制条件,如DRC规则等。物理实现步骤包括三个子步骤:Floor planning->Placement->Routing。物理实现的输出是GDSII文件。这是芯片制造厂所需要的文件格式。物理实现可以由IC Compiler (Synopsys)、Innovus (Cadence)等软件完成。

7、进行物理验证(Physical Verification),以检查是否满足DRC规则、LVS规则等。

8、时序分析。对于任何有特定时钟频率要求的设计,都必须进行时序分析(timing analysis)。我们需要检查设计是否满足规格说明书中的时序要求。这是通过静态时序分析(Static Timing Analysis)工具完成的,例如Primetime(Synopsys)。它会检查设计中所有的时序路径,来验证设计是否存在时序违规(timing violations)。例如:建立时间(setup)、保持时间(hold)等。

9、在物理实现和时序分析都通过之后,设计就可以交付给制造厂进行制造(Fabrication)了。制造完成之后,芯片会被切割、封装和测试。

最后,值得思考的是,我们是否一定要遵从这种瀑布式开发流程???能否尽可能地流程左移。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ctfhub靶场练习——SSRF攻击

文章目录 前言关卡、内网访问关卡、伪协议读取文件关卡、端口扫描关卡、POST1、使用http协议查看本地的flag.php文件2、使用burp抓包,并发送到Repeater模块进行操作3、构造一个简单的POST请求:4、对构造的post请求进行url编码第一次编码:对第…

【裸机开发】GPT 定时器(一) —— GPT的功能、寄存器解析

后续需要使用 GPT 计数器实现中断以及延时,这里我们需要先了解一下GPT的功能以及相关寄存器。 目录 一、GPT 定时器的功能 1、计数器 2、输入捕获 3、输出比较(GPT的两种工作模式) 二、寄存器解析 1、GPTx_CR 2、GPTx_PR 3、GPTx_SR …

Jetson Nano烧写系统镜像

Jetson Nano是一款形状和接口类似于树莓派的嵌入式主板,搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA Maxwell架构显卡,内存为4GB的LPDDR4,60Hz视频解码。 1.烧录前准备 电源线(必备&#xf…

游戏陪玩语音聊天系统3.0商业升级独立版本源码

首发价值29800元的最新商业版游戏陪玩语音聊天系统3.0商业升级独立版本源码 1、增加人气店员轮播 2、优化ui界面丨优化游戏图标展示丨优化分类展示 3、增加动态礼物打赏功能 4、增加礼物墙功能 增加店员满足业绩,才能升级功能 5、增加店员等级不同,可接…

操作系统第4章习题

B 一个目录文件包含多个目录项 B. 在打开文件的时候还不用 只有在读文件的时候 才需要把数据读到内存中 C 不完整 D 在外存中 FCB不是文件控制块吗 为什么是文件目录项 文件属性:有的文件是只读的 访问控制的灵活性较高

【前端2】jquary,bootstrap,vue

文章目录 1.jquary:选择器1.1 jquery框架引入:$("mydiv") 当成id选择器1.2 jquery版本/对象:$(js对象) -> jquery对象1.3 jquery的页面加载事件:$ 想象成 window.onload 1.4 jquery的基本选择器:$()里内容…

7 拓展中断_事件控制器(EXTI)(STM32HAL库 )

目录 EXTI-扩展中断和事件控制器 事件的概念 EXTI-扩展中断和事件控制器 EXTI外设框图 F1/F4/F7(看懂与或门) H7 STM32CubeMX中的EXTI配置 EXTI-扩展中断和事件控制器 事件的概念 STM32上许许多多的外设,是通过内部信号来协同工作的。…

Android Compose Button defaultButtonColors

Android Compose Button defaultButtonColors 本文最新更新地址 https://gitee.com/chenjim/chenjimblog 发现问题 最近看 Android Compose 相关资料发现如下代码 colors defaultButtonColors( backgroundColor if (count > 5) Color.Green else Color.White )原文地…

从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题

目录 1. 多态(polymorphism) 1.1 构成多态的两个条件 1.2 虚函数重写(覆盖) 1.3 协变构成多态 1.4 父虚子非虚构成多态 1.5 析构函数的重写 1.6 final 和 override 关键字(C11) 1.7 重载、覆盖、隐藏的对比 2. 抽象类&am…

通信接口和通信方式总结

通信接口和通信方式总结 一、通信接口主要的5种类型二、通信方式2.1 并行和串行2.2 单工、半双工及全双工通信2.3 串行通信分类 - 同步\异步2.4 波特率 Baud Rate 三、串联设备的接口类型 - 网口和串口3.1 串口 - COM口3.1.1 基本介绍及应用3.1.2 接线方式 - 232、422、485接线…

时序预测 | MATLAB实现PSO-GRU(粒子群优化门控循环单元)时间序列预测

时序预测 | MATLAB实现PSO-GRU(粒子群优化门控循环单元)时间序列预测 目录 时序预测 | MATLAB实现PSO-GRU(粒子群优化门控循环单元)时间序列预测预测效果基本介绍模型介绍PSO模型GRU模型PSO-GRU模型 程序设计参考资料致谢 预测效果 基本介绍 Matlab基于PSO-GRU粒子群算法优化门…

【vue3-element-admin 】基于 Vue3 + Vite4 + TypeScript5+ Element-Plus 从0到1搭建企业级后台管理系统(前后端开源)

vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 Vite4 TypeScript Element Plus Pinia Vue Router 等当前主流框架。 相较于其他管理前端框架,vue3-element-admin 的优势在于一…

Docker中安装Nginx

查看可以安装的Nginx版本: docker search nginx 下载最新版本: docker pull nginx :latest 可以省略 运行容器: docker run -itd --name my_nginx -p 80:80 nginx 在主机通过 https://localhost:80或者 http://192.168.40.100:80可以访问 如果之前创…

Java阶段四Day10

Java阶段四Day10 文章目录 Java阶段四Day10关于RedisRedis的数据类型Redis中的list类型Redis的常用命令关于Key的格式Redis编程使用Redis时的数据一致性问题 关于ApplicationRunnerLoadCacheRunnerContentCategoryServiceImpl 计划任务ScheduleConfigurationCategoryCacheSched…

已烧写过的镜像重新烧镜像教程

本教程是已经烧录过镜像的SD卡,无法被电脑识别盘符导致无法重新烧录镜像的教程。一般是win7系统无法识别烧录过的Ubuntu系统盘符。win10可以使用SDformat软件格式化。 1.确定读卡器是否识别到SD卡。 点击计算机右键选择“管理”,选择磁盘管理&#xff0…

Vue3中Vuex的基本使用

src/store/uuidState.js const uuidState {namespaced: true,state: {uuid: "",state_tag: "",},// 要想改变state中的数据必须使用mutations的方法mutations: {changeUuid(state, value) {state.uuid value;},changeTag(state, value) {state.state_ta…

如何通过空号检测,验证电话号码数据的准确性

引言 空号检测 API 接口通常与电话号码数据库或相关的电话服务提供商进行交互,使用验证算法和查询技术来确定电话号码的状态。通过该接口,开发者可以通过编程方式对电话号码进行验证,帮助验证号码的有效性,确保数据的准确性和可靠…

HJ76 尼科彻斯定理

描述 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 例如: 1^31 2^335 3^37911 4^313151719 输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。 数…

vmware17安装群辉6.2懒人包

懒人包下载 链接:https://pan.baidu.com/s/1onGpM3BLIKUuxs10lLM83A?pwdcmdr 提取码:cmdr --来自百度网盘超级会员V5的分享 解压安装 如果已经安装了vmware软件的话,直接双击打开即可 上图说明安装成功 点击搜索 , 会出现服务…

0-1BFS 双端队列 广度优先搜索

一. BFS及0-1BFS的简单介绍 深度优先搜索DFS和广度优先搜索BFS是经常使用的搜索算法,在各类题目中都有广泛的应用。 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。其过程简要来说…