良许Linux教程网 干货合集 如何提升研发效率?模拟IC设计要点解析

如何提升研发效率?模拟IC设计要点解析

2023年开篇——芯片设计五部曲来了!

本季将会包括:模拟IC、数字IC、存储芯片、算法仿真和总结篇(排名不分先后)

第一集:模拟IC

模拟IC负责生产、放大和处理各类模拟信号的电路。工程师通过模拟电路将模拟信号放大或缩小,并记录下全部连续的信号。而数字IC则通过0和1两个代号处理手机信号、宽带信号和数码信号等,是离散的信号。

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

想要了解如何玩转数字IC设计的科学,请查看:芯片设计五部曲之二 | 图灵艺术家——数字IC

以及第三集算法仿真,抢先收看:

芯片设计五部曲之三 | 战略规划家——算法仿真

如果说数字IC像科学,那么模拟IC则更像是一种魔法。利用计算机来辅助模拟芯片设计,本质上是在解一道高阶微分方程题。

EDA工具就是用来完成这个任务的,它的价值不言而喻。

而我们今天的主题是:模拟IC设计不同阶段的典型业务特点,使用的EDA工具特性,以及如何利用计算机技术提高不同业务场景的计算效率,协助模拟芯片工程师更高效地完成芯片研发工作,提升整体效率。

本篇将主要从EDA工具的计算任务视角出发。

在调度、管理、数据、协同、CAD等角度上,将会在另外的篇章中进行探讨。

先给大家一个模拟芯片设计全流程分析图:

image-20240103202459839
image-20240103202459839

1、前仿阶段:前端电路设计与仿真

本阶段包括了设计需求/说明书架构、原理图输入、前仿结果比对设计需求3大步骤****。

前仿阶段本质上是数值计算,因此对主频要求很高,一旦资源无法满足,会直接造成CPU过载,且任务之间独立可切割,十分适合并行。基于设计图的设计与仿真,参数范围较少,对内存要求不高。此阶段多为多corner与蒙特卡罗Monte Carlo任务,峰值算力需求较高,存储需求一般。

2、中期:版图设计验证

本阶段包括版图设计、版图规则检查DRC/LVS两个步骤

版图绘制/验证同属规则检查,因为不涉及数值计算,对主频要求不高,重内存需求。版图可以模块为单位进行切割,子任务间几乎无数据关联、适合并行。但版图检查量十分大,算力需求比前仿高,推荐使用多核+大内存机型存储要求最高

3、后仿阶段:后端仿真

后仿包括寄生参数提取、后端仿真、GDS文件形成****。

后仿和前仿类似,多个任务可进行分布式处理。但后仿阶段任务,因为有可能涉及电磁场仿真,本质虽为数值计算,但需在优先满足内存情况下,再满足高主频需求,因为加入了各类元器件的寄生参数,算力需求是三大阶段里最高的,存储比前仿要求高,有时会与版图阶段相当。

下图是我们某客户全生命周期月度算力实际用量曲线,可以看到后端的波峰相当明显,详情戳:*解密一颗芯片设计的全生命周期算力需求*

image-20240103202455620

以下,我们选了三种典型场景,展开说说:

两大超常见数值计算场景

多corner又称为多工艺角,和蒙特卡罗Monte Carlo属于两种不同的电路性能与工艺误差的估计方法本质上都是数值计算,前仿和后仿都会大量使用这两种方法进行任务处理。这两种方法里的单个任务间都独立、没有数据关联,不论是多corner 还是Monte Carlo都很适合进行分布式并行计算

荐阅读****:揭秘20000个VCS任务背后的“搬桌子”系列故事

这个故事拆开揉碎地解释了我们怎么帮助用户从单机单任务单线程运行的阶段大幅度跨越到了大规模任务自动化集群化运行阶段,应该能很好地帮助你理解为啥分布式并行计算会大大提高计算效率。

多corner是将元件的电阻、温度、电压等参数的误差上下限固定后,取每个参数的极值(误差上限或误差下限)进行排列组合,每一个组合都是一个独立的任务。

一种组合就是一个corner,全部的排列组合即多corner。

这就像你来到一家二选一****奶茶店。这家店奶茶店的甜度、热度、加多少配料都只提供两个选择,你要么选择不甜,要么最甜。你每喝一次无非都在这些选项里排列组合(222种),比如超多糖、烫嘴、超多料;下次你换一种排列组合,无糖,多冰,无料;所有选项的排列组合全点了,那就是多corner。

image-20240103202452159
image-20240103202452159

***蒙特卡罗*Monte Carlo则是在上、下限之间无穷尽地取值进行排列组合。

这次你来到了一家新的奶茶店,名字叫无穷∞奶茶店,选项完全定制化。你可以在选择任意一个值,比如第一次你喝的是3分甜、少少冰、不加料;下一次觉得不够甜,不冰,你点了6.6分甜、7.8分冰、加两颗珍珠。

**这样就会有出现无数种排列组合的奶茶,这就是*蒙特卡罗*Monte Carlo了。

image-20240103202448402
image-20240103202448402

可取无数个组合的蒙特卡罗Monte Carlo可以用来估算良率的范围,随着取值组合越多,对工艺偏差导致的误差估计范围****越准确,对实际的成品良率预测范围越准确,当然计算量也会成倍提高。

不管是哪家奶茶店,这杯奶茶与那杯奶茶之间互相独立,你喝你的,我喝我的。

这就是多corner和蒙特卡罗Monte Carlo任务特别适合分布式并行计算的本质原因。

不同任务,你算你的,我算我的,分开算,人多力量大。

不论是前仿还是后仿阶段,都需要大量多corner与蒙特卡罗Monte Carlo仿真。

两者相比,蒙特卡罗Monte Carlo仿真因为取值选择多,组合多,计算量明显比多corner大。

而前仿和后仿之间,后仿因****涉及更多的物理参数,两种算法的计算量都会呈几何倍增长,算力需求也更大。

整体来说,这两种数值计算方法任务间独立,算力需求大,是我们帮用户提高效率的典型场景之一。

“大家来找茬”之版图验证任务

版图设计,就是把设计好的电路原理图变成包含实际布局布线规划内容的掩模版图,设计师每天在电路图上画花花绿绿的MOS管,确定要用多少元件、用哪种排列方法,在保证芯片电气性能的前提下,怎么跨层使得芯片体积最小、最省钱。

版图验证****就是把画好的版图和原理图进行比对,确保两者的拓扑连接关系一致,同时检查版图是否符合foundry的设计工艺

版图设计与验证,就像是在玩一个“大家来找茬”的游戏,首先几个版图设计师先一起把这张图分工合作给画出来。到了版图验证阶段,就开始正式玩找茬游戏了。目的是检查版图有哪些地方不对,有问题的话,打回去重新画。画完再继续检查,循环往复。

如果使用“小F影分身术(版图分割术),可以把小F分为9个影子,每个影子只需负责找茬九分之一个版图,影分身的数量越多(版图切割的任务数)越多,****分配的资源数越多,单位效率越高(当然,版图大小有个物理上限,没必要走极端)。

更重要的一点,切割版图与找茬任务之间互不干扰,你改你的,我改我的。你改完了重新提交下一轮,也不影响我还在上一轮。中间也不用因为等待而停工。

image-20240103202423800
image-20240103202423800

切割版图并合理分配资源的检查方法,可以让版图设计师无需苦苦等待一台计算机对单个大版图各部分逐一检查,而可以让多台计算机并行检查同一张大版图的不同部分,并自动汇总结果。这样一来就能更快地完成任务。

版图、原理图对比与设计规则检查同属检查类任务,都是以模块为单位,本质上是数据对比工作、重内存需求、子任务间没有数据关联,是一种高并行度任务。因此这一阶段很适合在云上使用内存优化型资源,通过暴力堆资源的方式快速完成任务。

模拟电路王冠上的明珠–射频电路

射频芯片作为模拟电路王冠上的明珠,一直被认为是芯片设计中的“华山之巅”。

一方面因为射频电路的物理形状和周围介质分布会对射频信号的传输造成很大影响,因此设计之路十分困难,前期需要进行大量仿真测试,而且为了保证高频性能,材料的选取也十分讲究,比如砷化镓和氮化镓。

另一方面,为了保证射频芯片各类指标的性能均衡,很多指标的性能要求都需要挑战工艺极限或设计创新性的电路结构,十分考验工程师的经验积累。

射频需要使用电磁场仿真,需要计算三维空间向量

如果说版图是将二维世界切成一片片的,那射频就是将立体空间切成一粒粒的,当然更具挑战性,算力需求也会呈指数级增加。

image-20240103202414416
image-20240103202414416

当遇到CPU无法满足的情况,不妨尝试使用GPU处理,他们可是处理向量计算的一把好手

目前射频电路电磁场仿真的三种常用软件分别为:HFSS、EMX、ADS

HFSS处理智能制造/汽车制造场景下的电磁场仿真较多、也支持部分芯片设计场景,EMX和ADS处理芯片设计场景的电磁场仿真更为广泛。其中,HFSS和19版之后的ADS支持GPU处理电磁场仿真任务,且通过并行化处理后,效率提升十分显著;EMX作为Cadence里的万能插件暂不支持GPU任务。

关于计算量级的本质

单模块、多模块和top级任务是三种计算量级的任务,从字面上就能猜到单模块任务,计算量最少;以此递增,top级任务计算量最多。

image-20240103202405973
image-20240103202405973

单模块任务指的是单一模块的任务,比如单层上的某个元器件就是一个单模块任务,计算量级最小,可能可以继续拆,也可能是最小不可拆分任务;

多模块任务指的是多个单模块合并在一起的任务,比如一层上的多个元器件组合在一起的模块,计算量级中等,可将多个模块拆分进行多线程处理;

top级任务,字如其名,是整个芯片设计阶段最大规模的仿真,将整个芯片的全部功能模块聚在一起,做全功能验证。top级仿真是在顶视图下的一整套前仿或后仿,算力需求最高。

如果涉及到先****进工艺(28nm以下芯片),更小的空间,更多的模块,更复杂的PDK工艺库,计算量呈指数级增长。

而且先进制程芯片后仿时还要做IR Drop的独立性检查,是SignOff的一个必要步骤。业内在该步骤使用的工具大多为Redhawk,和DRC/LVS的算法流程基本一致。

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

1、三大阶段的算力需求呈现前期

2、多corner、蒙特卡罗Monte Carlo以及DRC、LVS这类任务,非常适合直接用多机并行来提升任务效率;

3、基于单模块不可拆的任务,虽不能做到多机分布式处理,但可以通过上大内存、高主频机型,靠机器的性能实现任务效率的提升。

说到这,模拟IC篇就结束啦,敬请期待我们的第二集–数字IC!

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部