数字芯片是怎样设计出来的?

news2025/2/27 14:29:27

芯片在我们的生活和工作中无处不在。例如,交通智能卡就嵌入了一颗带有微处理器、储存单元、芯片操作系统的芯片;而手机的主板则集成了数百颗芯片,有的负责无线电收发、有的负责功率放大、还有的负责存储照片和文件、处理音频,完成指纹、虹膜、面部的识别。当然,手机中最重要,也是价格最昂贵的还属CPU,它是手机的控制中枢和逻辑计算的中心,通过运行存储器内的软件及数据库来操控手机。

根据处理的信号类型不同,芯片可以分为数字芯片和模拟芯片。要制造出芯片,首先要完成芯片设计。本文将概要介绍数字芯片设计的十大流程,以及各大流程中使用的主流EDA软件。

iphone13pro的A15芯片

芯片设计可以分为前端设计(即逻辑设计)和后端设计(即物理设计)。前端设计包括以下四个步骤:

前端设计

(1)算法或硬件架构设计与分析

在明确芯片的设计需求之后,系统架构师会把这些市场需求转换成芯片的规格指标,形成芯片的Spec,也就是芯片的规格说明书。这个说明书会详细描述芯片的功能、性能、尺寸、封装和应用等内容。

系统架构师会根据芯片的特点将芯片内部的规格使用划分出来,规划每个部分的功能需求空间,确立不同单元间联结的方法,同时确定设计的整体方向。这个步骤对之后的设计起着至关重要的作用,区域划分不够的,无法完成该区域内的功能实现,会导致之前的工作全部推翻重来。设计出来的东西,必须能够制造出来,所以芯片设计需要与产业链后端晶圆的制造和封装测试环节紧密合作,工程师不但需要考虑工艺是否可以实现相应电路设计,同时需要整合产业链资源确保芯片产品的及时供给。这里的算法构建会用到编程语言(MATLAB,C++, C,System C, System Verilog等),对于不同类型的芯片,工程师们会有不同的偏好选择。

(2)RTL code(Register Transfer Level,寄存器传输级)实现

由于芯片的设计及其复杂,设计人员并不在晶体级进行设计,而是在更高的抽象层级进行设计。RTL实现就是根据第一步的架构设计结果,转化为Verilog HDL或VHDL语言,这两种语言是世界上最流行的两种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的硬件编程语言,可以用于表示逻辑电路图、表达式等逻辑输出。所以,可以理解为上一步是统筹规划,第二步是具体去实现,设计工程师们通过敲一行行代码,去实现电路的功能。输出结果转化为Verilog HDL或VHDL语言。

(3)编码检查与分析

这一步就是检查代码有没有错误,保证代码不会出现什么歧义导致实现结果和设计目的不一致。一般来说,最常用的编码检查工具就是Synopsys的Spyglass,这个工具最主要检查的内容有两个,一个是Lint检查,一个是CDC (Clock Domain Crossing,跨时钟域)检查。Lint检察不仅可以检测出许多编译器编译过程中的错误,还可以关联很多文件进行错误的检查和代码分析;CDC检查则是对电路设计中同步电路设计的检查,在大型电子电路设计中,设计人员很难设计出整个大型的同步电路,而只能根据电路逻辑功能,划分为多个同步电路部分,由不同的时钟域控制。这些部分可能存在重叠,这会导致重叠部分的触发器状态变化不能在统一的时钟作用下完成,从而导致电路出现亚稳态。电路出现亚稳态会让组合逻辑电路输入状态不可顶知,甚至产生突然的跳变,因此需要进行CDC检查。

SPYGLASS截图,图片源自网络

(4)功能验证

这一步是验证芯片设计与预定的设计需求是否相符的关键步骤,主要是验证电路设计逻辑功能的正确性,而非电路的物理特性(后面的步骤会讲到物理验证)。数字仿真器是数字集成电路逻辑功能验证的主要手段。

随着超大规模集成电路的高速发展,高性能数字仿真器已经成为数字集成电路设计与验证中必备的一环。近年来数字仿真器技术发展很快,当今主流数字仿真软件可以支持数十亿晶体管规模的超大规模集成电路的逻辑功能进行高效精确的仿真验证。为了保证芯片的稳定性,这个阶段的过程时间会持续数月。EDA工程师常用的EDA工具是Mentor(西门子EDA)的Modelsim、Synopsys的VCS和Candence 的NC-Verilog。

功能仿真验证

在整个芯片设计流程中的位置(黑体)

后端设计

(5)逻辑综合(Synthesis)

从这一步开始,就进入芯片设计的后端设计(物理设计)阶段了。主要负责将RTL code转换为实际后端使用的Netlist(网表,包含了RTL中所有的逻辑信息,以及离散傅立叶变换、门控时钟和I/O等)。网表的质量对芯片的布局布线工作起到决定性作用。该过程需要考虑工艺的电特性和物理特性等因素,要尽可能做到Performance(性能)、Power(功耗)和Area(面积)的PPA优化。Synthesis的质量在一定程度上取决于综合软件的性能,业界流行的两个逻辑综合工具是Synopsys的Design Compiler和Cadence的Genus,综合工程师的一个基本要求便是熟练的掌握两个工具的使用方法。

国内外布局布线工具厂商

(6)布局布线(PD)

布局布线是数字后端中占比最大的工作,主要就是把网表转化成GDSII流格式(这是一种用于集成电路版图的数据转换的标准数据文件库格式,其中含有集成电路版图中的平面的几何形状、文本或标签等有关信息,由层次结构组成),确定各种功能电路的摆放位置。PD的步骤包括Floorplan(布局规划)、Place(功能电路的摆放)、CTS(时钟综合)、Optimize(优化)、Route(布线)和ECO(工程变更)等,确保各个模块满足时序和物理制造的要求。这个步骤是后端设计中最核心的工作。布局布线对工具的依赖程度较强,而且工具操作相对来说较为复杂。业界较为常用的是Cadence的Innovus和Synopsys的ICC。

国内外布局布线工具厂商

Leplace图形界面

(7)静态时序分析(STA)

STA(Static Timing Analysis,静态时序分析)是芯片后端设计中的重要步骤。芯片上有海量的极其微小的金属元器件,这些元器件的大小不一,通过引线流过这些元器件的延时会有不同,由于元器件过于微小,芯片的布局布线肯定会受到这些不同大小元器件和之间引线的各种限制,而静态时序分析则是模拟各种元器件间的互联和各种不同状况的仿真,找出存在的各种问题。

静态分析需要保证芯片设计中所有的路径,满足内部时序单元对建立时间和保持时间的设计要求。也就是说无论信号的起点是什么,信号都可以被及时地传递到该路径的终点。同时,也要满足电平跳变时间、电容、噪声、等要求。STA需要制定整个芯片的时序约束约束文件,选择芯片需要Signoff(签发)的Corner(工作范围)以及全芯片的Timing(时序) ECO流程,这个步骤的难度要求很高。STA阶段应用较广的是Synopsys的Primetime和Cadence的Tempus软件。值得一提的是国内鸿芯微纳的ChimeTime,它是一种静态时序签核工具,提供了SPICE仿真精度的签核结果。

(8)物理验证

物理验证也是流片(即试生产)前的一项重要事项。如果物理验证有错,那芯片生产就会失败。在布局布线工具中,真正的物理验证需要检查到器件底层。因此,物理验证需要将金属层和底层金属合并到一起,进行全芯片的DRC(设计规则检查)。同时,还需要做全芯片的LVS(版图与原理图一致性检查),ERC(电气规则检查),确保芯片没有违反任何物理设计规则。物理验证的主要工具在Mentor(西门子EDA)的Calibre中进行,Calibre也是业界标准的物理验证工具。

(9)功耗分析(PA)

功耗分析也是芯片签发的重要步骤,功耗分析的两大任务是分析IR drop(电压降)和EM(电迁移)。及时将结果反馈给布局布线任务组,让他们及时修改后端设计图,解决设计中潜在的问题。功耗分析常用的软件有Ansys公司的Redhawk,以及Cadence公司的Voltus和Synopsys公司的Ptpx。

(10)时序仿真

该步骤是对芯片实际工作时的状态进行仿真,即后仿真,来验证功能是否正常。时序仿真使用布局布线后器件给出的模块和连线的延时信息,在最坏的情况下对电路的行为进行实际评估。时序仿真使用的仿真器和上述第四步的功能仿真使用的仿真器是相同的,区别在于功能仿真是在布线前进行,仅仅关注输出和输入的逻辑关系是否正确,不考虑时间延时信息;而时序仿真是在布线后进行,不仅关注输出和输入的逻辑关系是否正确,同时还计算了时间延时信息。

总结下来,数字芯片的前端设计是逻辑设计,用逻辑电路实现其预期的功能。后端部分则是对前端设计的物理实现。芯片设计完成后,Fabless(芯片设计)公司一般会将设计结果以GDSII格式记录的电路版图数据交给Foundry(芯片代工厂)进行Tape-out(流片)了,也就是试生产。

为什么会叫Tape-out呢?因为在上世纪七八十年代,芯片的设计数据都是写到磁带或者胶片里传给工厂,设计团队将数据写入磁带叫Tape in,工厂读取磁带的数据叫Tape out,虽然随着科技的发展,自动化集成电路版图工具软件早已代替了磁带,但是这个叫法一直沿用下来了。当Tape out完成后,芯片就可以正式开始生产了。

由于芯片的流片花费巨大,因此芯片的可靠性和可制造性,需要尽可能在设计阶段就能确保。主流EDA软件的验证和仿真功能十分完善,可以通过在各个阶段不断地进行验证仿真,减少在流片中的错误,降低流片的成本,确保芯片的可靠性。

芯片设计非常专业,每一个设计阶段涉及到的各种软件种类繁多,虽然全球EDA软件市场只有数百亿美元的规模,但是它撬动的是万亿美元级的集成电路市场,因此,EDA软件产业具有重要的战略意义。

当前,我国高速重视发展工业软件,国产EDA软件迎来了发展的春天,我国的EDA市场正在全面发力,涌现出华大九天、概伦电子、广立微、九同方、上海立芯、芯华章、芯愿景和鸿芯微纳等知名品牌。虽然EDA领域的“卡脖子”问题对我国高端芯片的设计与制造产生了较大影响,但同时也为国产EDA软件厂商带来更大的市场机会。通过更多芯片设计、制造和封装测试企业在实践中的应用,不断为国产EDA软件反馈应用需求和软件改进需求,将迅速提升我国EDA软件的技术水平。

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

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

相关文章

如何查找专用 IP 地址?

专用 IP 地址:这些地址在网络内部使用,例如,平板电脑、Wi-Fi 相机、无线打印机和台式电脑使用的家庭网络。这些类型的 IP 地址为设备提供了一种与路由器和专用家庭网络上的其他设备进行通信的方法。私有IP地址可以手动设置,也可以…

Mr. Cappuccino的第40杯咖啡——Kubernetes之Pod生命周期

Kubernetes之Pod生命周期Pod生命周期官方文档Pod的状态初始化容器案例钩子函数Exec命令TCPSocketHTTPGet案例容器探测Exec命令TCPSocketHTTPGet探测时间重启策略Pod生命周期官方文档 Pod生命周期官方文档 Pod的状态 pending:挂起,apiserver创建了pod资…

2月第2周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年2月6日-2月12日飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营能力强的B站…

python基于django+vue微信小程序的校园跑腿平台

随着计算机技术的高速发展,现代计算机系统已经从以计算为中心向以信息化处理为中心的方向发展。而校园跑腿服务系统,不仅需要在硬件上为现代社会的学生们提供一个学习知识,获取知识的环境,更要在软件上为愿意上课的人提供必要的便利。于是校园跑腿服务系统系统便应运而生。 目前…

企业与第三方供应商合作时,会存在哪些安全风险?

随着现代社会的发展,企业供应链、产业供应链已日渐成熟。其中,供应商与企业的关系也由最初的纯粹买卖关系发展成了合作伙伴关系。在整个供应链体系中,供应商与其受众承担着供应链中环环相扣的责任,可以说,企业安全的薄…

站在行业C位,谷医堂打开健康管理服务新思路

对于农村及贫困地区老百姓来说,由于交通因素和家庭经济条件制约,看病难致身体调理情况一直不太乐观,这也导致心理压力很大。然而,随着近年中医药产业崛起与快速发展,这种局面很快就会得到改观,以湖南谷医堂…

MySQL InnoDB表的碎片量化和整理(data free能否用来衡量碎片?)

网络上有很多MySQL表碎片整理的问题,大多数是通过demo一个表然后参考data free来进行碎片整理,这种方式对myisam引擎或者其他引擎可能有效(本人没有做详细的测试).对Innodb引擎是不是准确的,或者data free是不是可以参…

让逆向工程师们头疼的代码混淆,就像永远也走不出的“浪浪山”

目录 代码混淆究竟是什么? 如何做代码混淆? 代码混淆不等于加密 App 加固非一时之功 “我想离开浪浪山。” 在数次尝试破解某个App 时,某个逆向工程师无奈感慨道。 逆向工程师顾名思义就是把一个个完整的软件逆推,还原成一段段…

【MySQL】数据库操作

文章目录1、创建和管理数据库1.1 创建数据库1.2 查看数据库1.3 修改数据库1.4 删除数据库2、 创建表2.1 创建表CREATE2.2 创建表AS3、修改表3.1 添加列 ALTERT TABLE ADD3.2 修改列 ALTER TABLE MODIFY3.3 重命名列 ALTER TABLE CHANGE3.4 删除列 ALTER TABLE DROP4、重命名表 …

一文讲透丨如何破解安全应用容器架构的17大挑战!

众所皆知,云计算/云原生技术因能极大地提高云上资源利用率以及应用交付效率而被广泛采用。然而,云计算/云原生技术的发展也让用户遭受了更多高级威胁与攻击。如何构建有效的云原生安全管理体系应对层出不穷的安全威胁这一问题也一直受到千行百业用户的关…

Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏

Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏 0. 前言1. 问题与模型分析2. 使用深度 Q 学习进行 SpaceInvaders 游戏相关链接0. 前言 在《深度Q学习算法详解》一节中,我们使用了深度 Q 学习来进行 Cart-Pole 游戏。在本节中,我们将利用深度Q学习来玩“太空侵略…

CHAPTER 2 Zabbix界面操作

Zabbix界面操作2.1 Zabbix界面操作1.zabbix的web界面安装2.添加监控信息3.查看监控内容4.查看图像2.2 自定义监控与监控报警1.自定义监控1.1 说明1.2 预备知识2.实现自定义监控2.1 自定义语法2.2 agent注册2.3 在server端注册(web操作)2.4 查看监控图形2.3 监控报警1.第三方报警…

hive实现oracle merge into matched and not matched

create database cc_test; use cc_test; table1 可以理解为记录学生最好成绩的表。 table2可以理解为每次学生的考试成绩。 我们要始终更新table1的数据 create table table1 (id string ,maxScore string );create table table2 (id string ,score string );insert into table…

用于汽车传感器的混合点云语义压缩:性能评估

Hybrid Point Cloud Semantic Compression for Automotive Sensors: A Performance Evaluation https://arxiv.org/pdf/2103.03819.pdf 在自动驾驶中,车辆与车辆之间的信息共享起着重要作用。在所有传感器中,激光雷达产生的3D点云的数据量通常较高。因…

设计模式实践示例

以下是我针对自己所掌握的知识出的设计模式题目,有不足的地方欢迎指摘。 一、设计模式原则 设计模式原则有哪些? 1.开闭原则:对扩展开放,对修改关闭 2.接口隔离原则:每个接口只完成单独业务的部分,不要将…

设计模式之工厂模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、工厂模式是什么? 工厂模式是一种创建型的软件设计模式。定义一个用于创建对象的工厂接口,并让工厂子类…

MybatisPlus------application文件配置新增SQL打印以及测试类编写(二)

MybatisPlus------application文件配置新增SQL语句打印以及测试类编写 增加日志打印,具体打印执行的SQL语句。 操作: 只需在application配置文件中增加如下配置: mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout…

快递员配送手机卡,要求当面激活有“猫腻”吗?

咨询:快递员配送手机卡,要求当面激活有“猫腻”吗?有些朋友可能在网上看到了一些关于快递小哥激活会采集信息的文章,所以觉得让快递小哥激活流量卡并不安全,其实,哪有这么多的套路,只要你自己在…

一文看懂Java语言与Java生态圈

Java语言与Java生态圈 1、Oracle JDK与Open JDK之间的关系 Oracle JDK Java最早是由SUN公司发明,Oracle JDK之前叫SUN JDK,显而易见,这是在2009年Oracle收购SUN公司之前,收购之后被名为Oracle JDK,实际上&#xff0…

【图文教程】笔记本总是自动关机怎么办?win11自动关机问题解决方案

使用场景及环境: 日常使用,代码、文档使用。 系统:win11、win10、win8、win7笔记本都可通用 笔记本:联想ThinkPad E450 笔记本相关性能参数 设备名称 XXX 处理器 Intel Core™ i3-8145U CPU 2.10GHz 2.30 GHz 机带 RAM 8.00 GB (…