大家好,第一篇文章想来简单介绍一下数字芯片后端的基本流程。对于没有接触过后端设计的新人可能会有用。
后端设计总体来说,是将前端写好的RTL代码通过综合(synthesize)转换成物理网表(netlist),这些网表包含一些大的IP(macro)以及无数小的标准单元(stadard cell,门电路)。根据网表中用到的IP以及cell的数量推算出芯片面积,通过EDA工具,创建芯片的框架(形状,尺寸)。
图1 芯片框架,一般都采用矩形
在创建好的芯片框架上,先摆放大的Macro(IP),例如Ram,Flash,IO,模拟IP等,这一步称为FloorPlan。FloorPlan是非常重要的一步,FloorPlan做的不好,后面会遇到很多问题。做FloorPlan的过程中也需要做各种检查,不断地反馈优化。完成Macro的布局后还需要对供电网络(PowePlan)与一些模拟信号进行布线,供电网络的好坏也显著影响着芯片的性能。
图2 在芯片上摆上大块的Macro
图3 供电网络
FloorPlan将大的Macro(IP)摆放在芯片上,就大体定下了芯片的布局。接下来要在这个布局上摆上剩下数量众多的基本单元(cell)。cell是芯片的基本单位,根据芯片的复杂度不同,可能会用到数个至数十个Marco,而小的标准单元则会有百万以上,当然Macro本身也是由众多标准单元构成的,只是封装在内部,从芯片顶层无法看到。
图4 摆放好的Macro与标准单元
Macro的数量相对较少,摆放位置也许要精确,因此基本依靠手动,目前也有一些研究利用AI进行自动摆放,各家EDA公司的工具也在朝自动化发展。但标准单元数以百万计,不可能再手动一个一个摆放,那么要如何确定标准单元在芯片上的位置呢?现在EDA工具可以自动完成这一过程,称为布局布线(Place&Route)简称P&R。包括标准单元的摆放与数字信号的布线,工具都能够自动完成,我们可以通过一些设置使P&R尽量达到我们期望的结果。
图5 布局与布线
FloorPlan,PowerPlan,P&R确定后,剩下的就是各种检查。包括一些来自代工厂的规则(DRC),各种时序是否满足约束(STA),供电检查(IR Drop,CLP等),物理检查(Physical Verification)等。这些检查出现问题时,需要进行修复,称为ECO,类似于Debug。通过一次次ECO,将须要修复的问题全部搞定之后,就可以将最终版本的数据输出为GDSII,进行流片了。
这次的后端流程介绍就先到这里,根据公司的不同,后端的范围可能也会有所区别。有些公司从RTL到网表转换的综合部分放在前端,有些公司放在后端。另外还有设计测试电路的DFT(Design For Test)可能也会放在后端,但大体上就是以上的过程。虽然看似不多,但每一步都有不少学问,并且由于芯片功能的复杂化,制程不断减小,功耗不断严苛,频率不断提升,芯片的收束也变得越来越复杂,需要考虑的因素越来越多,也会面临更多更新的挑战。
虽然芯片看似微小,但其中的复杂度远超想象,涉及到的检查与规则多如牛毛。在后端设计过程中,可能并不会需要奇思妙想去进行各种创新,更重要的是稳扎稳打用较为优秀的结构,尽量减少时序,布线等违例,这需要诸多项目的经验积累。
数字后端设计中,EDA工具的作用也越来越大,结合了AI的强大算力,需要人工进行的工作量在不断减少,这既是好事也是坏事。虽然可以减少很多杂活,效率更高,但可能需要的人数减少,岗位缩减。和前辈也讨论过这个问题,即使AI功能不断强化,但还是有许多无法完成的事,尤其在诸多细节问题上,AI的效果欠佳。如果从事这行,那么还是应该不断学习,掌握新的知识以及新的趋势,相信这会帮助我们走得更远。
与君共勉
参考资料:
1.Bo Zhao,Synthesis with Synopsys and Encounter
2.温戈,数字IC设计全流程介绍
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)