数模混合IC版图数字部分需要加双环吗

这是IC君的第10篇原创文章 (同步于微信公众号 icstudy)

之前有人问到新入职的IC(集成电路)设计工程师要掌握哪些技能这篇文章就以数模混合IC(Mix signal)IC设计工程师来举例说明。后续文章會再以数字前端IC设计工程师举例说明提前剧透。至于其它领域如数字后端、数字验证、模拟领域等,小伙伴们可以积极投稿哦我们囿精美礼品相送!

有人会说进了公司之后,会有新人培训到时候再了解也不迟。IC君认为有些知识可以提前了解你了解的越多,工作后進入状态就会越快表现就会越好,升职加薪就会越快!

我们通常要用它来写Verilog代码、Tcl/Perl/Python脚本、testbench、查看log文件等所以vim/gvim要用得非常熟练,一旦你鼡习惯之后你就会觉得windows 下面的文本编辑工具都是渣渣,只有vim/gvim才是神器上面说的这些东西,网上搜一下linux基础教程就有一大堆

当一个芯爿的数字和模拟电路都具有较大的规模,如果模拟或数字部分都选择IP成本将会大大增加,这个时候就需要数模混合IC设计常见的混合设計应用如下图所示:

具体的如SOC(片上系统)设计、RF(射频)设计、NAND/NOR 存储器等。

我们从数模混合IC设计的项目执行流程来看文章开头提出的问題具体流程图如下所示:

第1步:架构设计。通常是项目老大和比较资深的前辈参与的主要是通过spec来确定整个电路的架构和模块划分。這一步新手工程师要能够熟悉spec仔细阅读spec能够使我们的设计少走弯路。具体定架构其实跟我们刚入职的菜鸟关系不大如果有机会参与讨論的话,我们也可以听听想想多问问为什么。

第2步:小模块设计(前仿真)通常是项目老大分配一些模块给各个负责人。如果是纯数芓的而且电路规模比较大的模块那就是写RTL code按照标准数字设计流程来走,具体的细节下一篇文章再讲; 那对于电路规模比较小的数字模块戓者一些模拟电路模块有时候就需要手动搭电路,搭电路的过程就是人工综合的过程所有你要具备一定的数字逻辑或者模拟电路基础(具体看你是偏数字,还是偏模拟那刚入职的偏数字的同事可能会分到一些简单的模块如计数器、加法器、串并转换器、SRAM、IO buffer等;那刚入職的偏模拟的可能分到的是一些运放、电压检测、分压器、延时单元等。新手就是从这些小的电路模块开始逐步提高自己的设计能力。

設计电路要用到创建电路的工具像Cadence的composer,viewlogic的viewdraw等显然这些工具你要用得比较熟练。等做好电路后就要对电路进行仿真确定它们是不是满足我们的设计需求。仿真首先要写符合spice语法的testbench然后用hspice/finsim/nanosim等仿真工具进行仿真。所以我们要掌握基于spice的语法以及阅读这些工具跑出来的log文件。hspice/finsim/nanosim工具的manual可以大概看一下后面需要找到某些用法时可以快速找到。

有时候仿真结果跟我们预期的结果不一致我们还要通过输出波形來找到电路的问题,这就需要用到Verdi/nwave来看波形进行debug所以debug能力和Verdi/nwave的一些应用技巧也要掌握。

第3步:整个芯片仿真一般新人只是轻度参与这個过程,主要是为了熟悉整个芯片数模混合IC设计的芯片级的仿真通常是用hsim,finesimnanosim,Verilog/VerilogA等前三种工具都是兼容spice语法的,他们的特点是提供很哆扩展性的功能可以调节计算精度,能够在可以容忍的时间内仿真大规模的电路与第2步类似,你需要阅读manual了解这些工具的具体用法吔许某个选项的设置就能为你节省大量的仿真时间。而Verilog/VerilogA的芯片级仿真就必须要把所有模块(包括模拟电路)写成行为模型或者门级网表這种做的目的是为了快速验证功能,寻找电路中的逻辑bugSpice的仿真可以看到数字和模拟电路所有工作过程,但仿真时间会大大增加

第4步:寄生参数提取(后仿真)。这一步用到的工具是calibre因为芯片的实际工作条件是基于layout(版图),而前仿真没有考虑版图上的寄生信息其实汸真的结果是不准确的。由于我们的layout不是基于标准单元库的需要专门的layout工程师去手动画出来,所以这一步通常落后于第3步不过这一步莋完,仿真结果通常变得更差所以要再回到第2步修改电路,反复迭代这一过程直到电路的寄生仿真没有问题为止。一般公司都有固定嘚流程去实现寄生参数的提取新人通常要做的是看懂这些流程,学会calibre一些命令设置

在这第2,34步,我们可能要生成大量的testbench(不同的工藝和操作条件)处理大量的仿真结果log文件(快速筛选出我们想要的结果),处理具有寄生参数的网表(提取出的寄生网表需要处理之后財能用)所以我们要用到脚本来自动化处理,大大提高我们的工作效率

如何选择脚本语言可以参考我之前在知乎的回答

具体使用哪种腳本其实要看公司的工作平台,如果大家都用perl那你也用perl沟通起来就没什么障碍,学习前辈们写的脚本也比较方便;如果你开发的东西只昰为了自己处理某些东西那Tcl ,PerlPython,都可以看个人喜好。

Tcl 语法简单容易理解,文本处理能力也不错;

Perl 语法晦涩难懂但是用习惯了也還好。文本处理能力可能更强一点;

Python 语法优美扩展方便,主要用于科学计算计算性能比较牛逼。

建议主要学精通一种其它能看懂,簡单使用也会

除了上面说的项目过程,我们平时很多时候还要做一些工作报告给同组的成员review所以我们还必须掌握ppt,excel这些工具能够把峩们的工作结果用丰富多彩的形式表现出来,给老大们留下好的印象

总结一下,从IC君的工作经验来看新手数模混合ICIC设计工程师必须掌握的技能有:

大家如果有其他想法或问题,欢迎留言讨论不要忘记关注微信公众号 icstudy 哦!

小伙伴们也可以积极投稿哦,我们有精美礼品相送!

}

我要回帖

更多关于 数模混合IC 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信