芯片设计五部曲之二 | 图灵艺术家——数字IC

news2024/11/17 17:47:43

《芯片设计五部曲》模拟IC、数字IC、存储芯片、算法仿真和总结篇(排名不分先后

上一集我们已经说了,模拟IC,更像是一种魔法

我们深度解释了这种魔法的本质,以及如何在模拟芯片设计的不同阶段,根据常见的EDA工具特性和原理,从计算角度帮助模拟工程师更高效地完成吟唱施法

芯片设计五部曲之一 | 声光魔法师——模拟IC

第二集:数字IC

假如我们想要录制一段声音,模拟信号的做法是把所有的声音信息用一段连续变化的电磁波或电压信号原原本本地记录下来。而按照一定的规则将其转换为一串二进制数0和1,然后用两种状态的信号来表示它们,这叫数字信号

处理数字信号的芯片就是数字芯片,比如常见的CPU、GPU

 

当声音变大或变小了,模拟信号都会跟着变化,所以模拟信号有无数种状态。状态之间微妙的差异,需要人的经验判断,有点玄学的成分

而数字信号永远只有0和1两种状态,信号的转换严格遵循逻辑关系,一个输出对应唯一确定的结果,程序完全依照输出指令执行,这是科学

数字IC设计工程师的设计目标:在PPA(Power、Performance、Area)三个指标上追求完美的平衡。

怎么玩转这门科学?

这,是一种艺术。

今天,我们就从资源需求、并行特征、数据敏感度等角度展开聊聊在数字芯片设计各阶段,如何利用不同EDA工具的特点,让数字芯片的设计研发效率获得显著提升

和模拟芯片相呼应,这篇还是从计算角度出发,至于调度/管理/数据/协同/CAD等视角,会在后面的文章里体现~(比如第三集

和模拟相比,数字芯片需要使用EDA工具的场景更多,IC工程师们对于计算机的使用天然比较亲近。但就跟《解密一颗芯片设计的全生命周期算力需求》一样,只负责某项工作的研发可能不关心,或者只了解自己的这部分,IT对业务所知有限,也不一定清楚。除非有大佬坐镇,大多数公司的日常大概是以拍脑袋经验论为主

我们先来看一下大画面,数字芯片设计全流程分析图

 

数字前端:前端设计/验证

这一阶段包含了规格制定、架构设计、RTL编码等步骤。数字前端算法仿真和功能验证场景有大量中小任务并行,这一阶段,对于资源类型和用量通常无特殊需求。不过需注意若大量使用现有IP通常没有算法仿真这一步。而且每家公司业务不同,算法仿真需求量差异非常大(下一集主角就是ta)。

数字中端:逻辑综合与DFT实现


这一阶段可分为逻辑综合、形式验证、门级仿真、ATPG验证等业务场景。数字中端呈现单、多任务混合的特点,因为计算的输入数据中包含门延迟信息,输入数据变多,对内存的需求相比前端有一定增长。ATPG验证建议内存优化型,其他三种场景更加偏计算密集型。

数字后端:物理实现


这一阶段包括布局布线、形式验证、版图验证、寄生参数提取、后仿、ATPG验证、静态时序分析和IR分析等业务场景。数字后端基本都是多任务,由于包含版图的寄生参数,信息量非常大,普遍需要大内存机器。其中,布局布线、后仿、静态时序分析、IR分析的大任务数量非常多,对主频也有要求,需要兼具高主频和大内存的资源
 

资源需求

后端>中端>前端,数字后端·真·资源黑洞

把数字IC设计前、中、后端三大阶段进行资源需求对比。

可以看到无论是任务运算时间、所需计算资源、存储需求还是IP与输入数据量级上,数字前中后端形成了非常明显的阶梯结构,整体资源需求呈现前端<中端<后端的趋势。
这是由三个阶段的具体工作内容决定的:

数字前端,用RTL代码将芯片架构师的设计写出来,前端验证也主要是针对RTL的功能进行验证,偏逻辑功能

数字中端,需要将RTL代码综合成网表并规划、插入各种用于芯片测试的逻辑电路,需要加入Foundry厂提供的标准单元库的工艺参数,验证也到了逻辑门这一级。

数字后端负责芯片的物理实现,先将电路网表通过自动布局布线画成版图,再进行寄生参数提取,创建一个可以精确模拟数字电路响应的模型,这一阶段会加入版图的寄生参数

从代码到逻辑门电路再到物理层,随着阶段的演进,信息量逐级递增,计算时所需消耗的资源量也随之增加

而在28nm以及更先进制程下,包含的工艺参数更多,电路更复杂,前中后端每一阶段的信息量级还会被进一步放大。

 

哪怕前端RTL基本一致,中端和后端因为Foundry厂工艺参数更多更复杂,同样的代码计算量也是更大的。

换个思路,我们举个栗子

通过一个在数字前中后端都会出场的EDA工具来看看三大阶段的资源需求

VCS的主要作用是将Verilog HDL(一种硬件描述语言)转成C语言,编译出来并执行。作为一个翻译官,ta的工作量取决于双方对话的频率,以及需要翻译的文本量。

VCS在前端的功能验证、中端的门级仿真、后端仿真中都有出场,在不同阶段对任务资源的需求完全不同:

 

从前端到中端再到后端,虽然VCS的工作性质没变,但整体来说,消耗的资源越来越多了。

综上,数字后端设计与验证环节相比中端和前端资源需求更高、运算时间更长、数据量更大,往往会占据整个项目周期资源需求量的50%以上。

这也就意味着,数字后端对IC设计公司的压力相当大,能否在这一阶段获取充足的资源,是提升研发效率、保障项目进度的关键。
 

典型并行场景

静态时序验证&版图验证


并行度是我们评估任务能否通过分布式计算完成,提升效率的标准之一。
这里涉及到两个重要的判断标准:可拆分,互不干扰可拆分指的是,大任务可以分解为小任务,原任务目标不变。

互不干扰指的是,拆分为小任务之后,任务之间互相不干扰,可以不同步。

从前端到中端再到后端,任务数量越来越多。

任务的并行度决定了速度提升的空间。

静态时序验证:最常见且并行度较高

静态时序验证是最常见的设计场景之一,基本原理是检查各信号通路上经过的门电路,然后累加门延迟,求取整个路径的信号延迟。

沿信号通路求Delay Time的过程,就是沿信号通路不停做简单加法。

在静态时序验证过程中,有一个PVT的概念。

我们需要验证逻辑门在不同的工艺(Process)、电压(Voltage)、温度(Temperature)条件下的延迟。

首先,列出可能的条件,如:

工艺:TT、FF、SS……

电压:0.9V、1.0V、1.1V……

温度:-40°C、0°C、25°C……

随后,穷举每一种可能性,如:

PVT1=TT、0.9V、-40°C

PVT2=TT、1.0V、25°C

PVT3=TT、1.0V、0°C

……

最后,验证逻辑门在每一种PVT条件下的延迟:

 

数字芯片中有着无数这样的逻辑门,每一个PVT下,逻辑门都有对应的Delay Time,而P、V、T之间可以有很多种组合,就会有很多个Delay Time的情况需要验证。

这一场景,天然适合暴力堆机器。

版图验证:最高并行度

模拟芯片和数字芯片,这一场景的原理一模一样,使用的EDA工具也完全相同。

版图验证属于检查类任务,以模块为单位,本质上是数据对比工作,重内存需求,子任务间没有数据关联,是数字芯片设计与验证中并行度最高的场景。

这一阶段很适合利用云上的内存优化型资源,使用“小F影分身术(版图分割术),通过暴力堆资源的方式快速完成任务。

关于版图验证,我们在《芯片设计五部曲之一 | 声光魔法师——模拟IC》中有更详细的说明。

数据敏感度

前端>中端>后端,但是不用担心

我们按照数据敏感度从高到低的顺序给各类设计数据排了个序:RTL数据 > IP、PDK和版图 > Netlist、Session、过程波形、归档数据和Report

好了,接下来我们看看这些数据都会出现在哪些阶段:

数字前端有大量RTL代码,甚至部分公司在此过程中还自己开发了IP,属于数据安全等级最高的那一拨。许多公司都会严格管理这部分数据,设置一定的保密等级,甚至固定放在某几台机器上。

中端则涉及到部分的RTL代码、IP和PDK数据,以及一些Netlist、Session和Report。

后端彻底告别了代码,以IP、PDK、版图和数据敏感度较低的数据为主。

如果你要做一款游戏,前端相当于游戏的源代码,中端是详细的角色形象设计稿,后端就是玩家拿到手的游戏光碟了。

 

 

前端泄密,恭喜你的对手达成“代码级抄袭”;

中端泄密,别人能照着样子把仿品做出来,但没有源代码参考,知其然不知其所以然;

后端泄密,等对方逆向明白,大半年时间也过去了,你的下一代产品已经在路上了。

值得一提的是,如果使用的是先进工艺,Foundry厂也会对IP/PDK数据有保密要求。

所以在选择云上业务场景的时候,我们一般优先推荐数字后端先来。当然,会根据每家公司的实际情况进行具体分析。(以后会写到,这次一定

那么,前端或者中端是不是就适合用云了呢?

甚至,在某些情况下,IC设计公司会面临全部数据无论敏感度高低必须存放在本地的情况,比如一些高保密项目(军工项目或国家重点项目),或者有点微妙的竞争关系,怎么办?

我们有针对性的存算分离解决方案,欢迎来对号入座。

存算分离究竟是什么意思?我们又是如何实现的?扫描文末二维码关注小F,对暗号“存算分离”抢先了解哦~

关于数字IC设计,从不同设计阶段的计算任务视角出发,我们总结了四点:

1、与模拟芯片相似,数字芯片三大阶段的资源需求同样呈现前期<中期<后期的趋势,但数字芯片需要使用EDA工具的场景更多,整体资源需求更大;

​2、版图验证并行度最高,静态时序验证出场率非常高且并行度很高,都适合用暴力堆机器的方式提高任务效率;

​ 3、数字后端往往会占据整个项目周期资源需求量的50%以上,兼具资源需求高、计算时间长、数据量级大,数据敏感度相对低的特征,是提升数字芯片整体研发效率的关键;

​4、数据敏感度高?必须放本地?没关系,我们有解决办法。

芯片设计五部曲的第二集——数字IC篇到此结束啦。敬请期待第三集!
关于fastone云平台在各种EDA应用上的表现,可以点击以下应用名称查看:HSPICE │ OPC │ VCS │ Virtuoso

END -


我们有个IC设计研发云平台

​集成多种EDA应用,大量任务多节点并行

​应对短时间爆发性需求,连网即用

​跑任务快,原来几个月甚至几年,现在只需几小时

​5分钟快速上手,拖拉点选可视化界面,无需代码

​支持高级用户直接在云端创建集群


现在免费试用,送300元体验金,入股不亏~


更多EDA电子书

​欢迎关注小F(ID:iamfastone)获取


你也许想了解具体的落地场景:

​王者带飞LeDock!开箱即用&一键定位分子库+全流程自动化,3.5小时完成20万分子对接
这样跑COMSOL,是不是就可以发Nature了
Auto-Scale这支仙女棒如何大幅提升Virtuoso仿真效率?
1分钟告诉你用MOE模拟200000个分子要花多少钱

​LS-DYNA求解效率深度测评 │ 六种规模,本地VS云端5种不同硬件配置
揭秘20000个VCS任务背后的“搬桌子”系列故事

​155个GPU!多云场景下的Amber自由能计算

​怎么把需要45天的突发性Fluent仿真计算缩短到4天之内?
大规模OPC上云,5000核并行,效率提升53倍
提速2920倍!用AutoDock Vina对接2800万个分子

​从4天到1.75小时,如何让Bladed仿真效率提升55倍?

​从30天到17小时,如何让HSPICE仿真效率提升42倍?


关于为应用定义的云平台:

​芯片设计五部曲之一 | 声光魔法师——模拟IC
【ICCAD2022】首次公开亮相!国产调度器Fsched,半导体生态1.0,上百家行业用户最佳实践
解密一颗芯片设计的全生命周期算力需求

​居家办公=停工?nonono,移动式EDA芯片设计,带你效率起飞

​缺人!缺钱!赶时间!初创IC设计公司如何“绝地求生”?

​续集来了:上回那个“吃鸡”成功的IC人后来发生了什么?

​一次搞懂速石科技三大产品:FCC、FCC-E、FCP

​速石科技成三星Foundry国内首家SAFE™云合作伙伴

​EDA云平台49问
亿万打工人的梦:16万个CPU随你用

​帮助CXO解惑上云成本的迷思,看这篇就够了

​花费4小时5500美元,速石科技跻身全球超算TOP500​


速石科技(ID:Fastone_tech)

我们致力于构建为应用定义的云,让任何应用程序,始终以自动化、更优化和可扩展的方式,在任何基础架构上运行。希望和你共同建立持续迭代的多云世界观。

说出你的应用,我们就有故事~~

(你要是唠这个我就不困了。)

 

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

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

相关文章

千万别乱用!Lombok不是万能的

背景 在使用Lombok构建无参构造器的时候&#xff0c;同事同时使用了Data和Builder&#xff0c;造成了编译不通过的问题&#xff01; Data使用说明 Lombok的Data注解可以为我们生成无参构造方法和类中所有属性的Getter和Setter方法。这样在我们开发的过程中&#xff0c;我们就…

seaborn的调色板、刻度、边框、标签、数据集等的一些解释

文章目录前言数据集构建整体风格设置调色板x轴的刻度值设置sns.lineplot实例前言 seaborn是对matplotlib进一步封装的库&#xff0c;可以用更少的代码&#xff0c;画出更好看的图。 官网&#xff1a;https://seaborn.pydata.org/index.html 下面记录一下seaborn的基础用法 数…

【日常业务开发】策略+工厂模式优化 if...else判断逻辑

【日常业务开发】策略工厂模式优化 if...else判断逻辑场景策略工厂模式优化利用Spring自动注入的特点处理继承InitializingBean静态工厂方法调用处理注解CommandLineRunnerApplicationContextAware处理/ApplicationListener\<ContextRefreshedEvent>场景 业务中经常有支…

一行代码写一个谷歌插件 —— Javascript

回顾 前期 【提高代码可读性】—— 手握多个代码优化技巧、细数哪些惊艳一时的策略_0.活在风浪里的博客-CSDN博客代码优化对象策略https://blog.csdn.net/m0_57904695/article/details/128318224?spm1001.2014.3001.5501 目录 技巧一&#xff1a;谷歌插件 第一步: 第二步…

Tomcat的安装和使用

作者&#xff1a;~小明学编程 文章专栏&#xff1a;JavaEE 格言&#xff1a;热爱编程的&#xff0c;终将被编程所厚爱。 目录 下载Tomcat tomcat文件介绍 启动Tomcat 简单的部署静态页面 HTTP 服务器&#xff0c;就是在 TCP 服务器的基础上&#xff0c;加上了一些额外的功能…

计算机网络 - 概述

文章目录前言一、计算机网络概述1.1、计算机网络在信息时代的作用1.2、Intnet概述网络、互连网&#xff08;互联网&#xff09;和因特网因特网发展阶段因特网的组成1.3、计算机网络的定义和分类定义分类1.4、报文交换方式电路交换分组交换报文交换三种交换方式对比1.5、性能指标…

5-1输入/输出管理-I/O管理概述

文章目录一.I/O设备二.I/O控制器/设备控制器三.I/O控制方式1.程序直接控制方式2.中断驱动方式3.DMA方式&#xff08;直接存储器存取&#xff09;4.通道控制方式四.I/O子系统的层次结构五.输入/输出应用程序接口&设备驱动程序接口&#xff08;一&#xff09;输入/输出应用程…

【学Vue就跟玩一样】组件-单文件组件

单文件组件在实际开发中是经常使用的&#xff0c;那么如何创建一个单文件组件呢&#xff1f;那么本篇就来简单入一下单文件组件。一&#xff0c;创建单文件组件 1.切换到你想要创建该文件的目录下&#xff0c;我这里切换的是desktop这个目录&#xff0c;当然&#xff0c;也可以…

大学高校供配电系统谐波危害及治理方案

摘要&#xff1a;安全科学用电是保障高校教学科研及办公的基础条件&#xff0c;随着现代化教学、电子图书馆等先进教学手段的不断引入&#xff0c;智能给排水、变频空调、电梯传送系统等配套设施以及电子镇流的照明灯具设备等大量非线性电力电子设备涌现&#xff0c;很多高等院…

「科普」带你认识5G基站

随着5G时代的到来&#xff0c;为了信号的稳定传输&#xff0c;为了覆盖面更广&#xff0c;5G基站作为5G规模组网的“先行军”&#xff0c;其建设至关重要。 那么&#xff0c;5G时代的基站是如何建设的呢&#xff1f;下面就来给大家介绍一下。 截至2022年末&#xff0c;我国移…

【Lilishop商城】No4-7.业务逻辑的代码开发,涉及到:商品模块

仅涉及后端&#xff0c;全部目录看顶部专栏&#xff0c;代码、文档、接口路径在&#xff1a; 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑&#xff0c;其中重点包括接口类、业务类&#xff0c;具体的结合源代…

当代年轻人超半数人为“单身贵族”,数据可视化教你如何应付春节相亲

春节临近&#xff0c;不知大家在完成“年度总结”的同时&#xff0c;是否完成找到对象这个任务&#xff0c;如果还是单身&#xff0c;建议大家准备好如何应对家里安排的相亲吧&#xff01;现如今男女比例严重失调&#xff0c;也相对产生多数的“单身贵族”&#xff0c;当代年轻…

牛客竞赛每日俩题 - Day14

目录 错排算法 三维数组的应用 错排算法 发邮件__牛客网 错排: 假设有n封信要装入到n个信封中&#xff0c;每封信应该要放到对应的信封中&#xff0c;比如: 信: A B C D... 信封: a b c d. ... 由于疏忽将信放置出错&#xff0c;总共有多少种可能性每封信都放错 假设:D(n)…

自定义类型详解

这次我们来看自定义类型&#xff0c;我们之前接触过的自定义类型就有数组和结构体&#xff0c;我们来详细解析一下这些自定义类型的特点&#xff0c;已经一些我们没接触过的自定义类型 目录 1.结构体 1.1结构体的基础知识 1.2结构体的声明 1.3特殊声明 1.4结构的自引用 …

Mac AndroidStudio生成签名文件,显示SHA1和MD5值

一、首先&#xff0c;生成签名文件 1.点击菜单栏中的Build的。 2.弹出窗体&#xff0c;创建新的KeyStore&#xff1a;如下图。 3.生成jks文件 4.填写keystore和key密码。ketystore密码和key密码在后面会用到。其他信息也不是很重要&#xff0c;自己差不多能记住就好。 5.然后点…

设计模式学习(五):State状态模式

一、什么是State模式 在面向对象编程中&#xff0c;是用类表示对象的。也就是说&#xff0c;程序的设计者需要考虑用类来表示什么东西。类对应的东西可能存在于真实世界中&#xff0c;也可能不存在于真实世界中。 在State模式中&#xff0c;我们用类来表示状态。在现实世界中&a…

【部署】Apache DolphinScheduler 伪集群部署

【部署】Apache DolphinScheduler&#xff08;海豚&#xff09; 伪集群部署&#xff08;Pseudo-Cluster&#xff09;Standalone极速体验版DolphinScheduler 伪集群部署前置准备工作本地部署环境准备 DolphinScheduler 启动环境配置用户免密及权限配置机器SSH免密登陆启动zookee…

解决bootstrap table footerFormatter表脚和表体列错位问题

需求&#xff1a;需要把表格的一列的内容在表最下面一行进行汇总&#xff0c;显示合计 实现合计步骤&#xff1a; 1.在初始化表格时&#xff0c;开启显示表脚的属性&#xff0c;如图 2.在需要合计的列中添加footerFormatter函数&#xff0c;如图 这样就会在表格最下面显示合计…

年度征文 | 再见2022,你好2023

年度征文 | 再见2022&#xff0c;你好2023题记个人简介初衷写作展望题记 这两天打开CSDN&#xff0c;发现消息栏一直提示我写这个年度征文&#xff0c;本来觉得自己没有经验可以分享&#xff0c;毕竟自己仍处于该领域的起步阶段&#xff0c;无法给大家提供有用的建议或实用的总…

功率放大器模块是什么意思(功率放大模块工作原理)

在日常电子实验测试中&#xff0c;很多电子工程师都会经常使用到功率放大器&#xff0c;随着人们对于功率放大器的频繁使用&#xff0c;对于功放的要求也越来越多&#xff0c;有些工程师就想要使用尺寸较小的仪器&#xff0c;功率放大模块便应运而生&#xff0c;今天就请安泰电…