大家好,第一篇文章想来简单介绍一下数字芯片后端的基本流程。对于没有接触过后端设计的新人可能会有用。

后端设计总体来说,是将前端写好的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设计全流程介绍

1.数字芯片后端设计小概述相关推荐

  1. 数字芯片后端设计——Memory Complier使用及库导入

    ARM公司MC软件使用 Memory Compiler用于生成数字芯片中片上存储SRAM的生成. 关于所生成SRAM的结构和参数概念,参考1即可.在这里只谈一下自己平时需要设置的参数.下图为软件界面, ...

  2. 数字芯片后端设计——SRAM宏模块布局布线

    在40nm SMIC工艺下,根据手册总结单端SRAM的布局布线问题. ArtiGrid power structure options:以下图为例,memory的电源布线,无论是core核还是外围pe ...

  3. 给在校学生的科普文:数字芯片后端工程师的日常

    芯片后端设计,看似只是将网表中的晶体管摆放好.但并不是如同砖头砌墙那样简单粗暴.它是一门兼具形式美和工程实践需求的技术.形式美,直接来源于功能内容和需求,在后端设计的环节中,数以万计的标准单元如散乱的 ...

  4. 数字IC后端设计实现流程之floorplan及powerplan规划

    数字IC后端设计实现floorplan及powerplan规划 数字 IC 后端设计实现流程之 initial design 初始化 Initial 模块形状 估算完模块的面积后,block owne ...

  5. 数字IC后端设计实现floorplan及powerplan规划

    数字IC后端设计实现floorplan及powerplan规划 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 今天是一年一度的 "双十一&quo ...

  6. 数字IC后端设计如何快速入门?(内附学习视频)

    虽然2022年IC行业门槛有所提高,但这也抵挡不住同学们对转行IC行业的热情,数字后端设计的发展前景和高薪也在众多岗位中脱颖而出,那么数字IC后端设计如何快速入门?下面IC修真院就带大家来了解一下. ...

  7. 数字IC后端设计实现Timing分析利器(附七月重大福利)

    数字IC后端设计实现Timing分析利器(附七月重大福利) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 在开始今天的主题分享之前,先来个劲爆好消息.吾爱 ...

  8. 数字IC后端设计实现流程之initial design

    数字IC后端设计实现流程之initial design 前端提供的文件 门级网表 (Gate Level Netlist) 数字前端工程师或者是 R2N 的同事在 release 东西给后端工程师做 ...

  9. 数字IC后端设计技术全局观

    数字IC后端设计flow(不含DFT) 数字IC后端设计工具 DC:用于逻辑综合 FM:用于形式验证 ICC:用于物理实现 PrimeTime:用于STA 步骤(或文件类型)简述 RTL(Regist ...

  10. 数字芯片的设计流程及其使用工具

    IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计. 前端设计的主要流程: 1.规格制定 ...

最新文章

  1. Java反射在JVM的实现
  2. 将Datatable一分为二
  3. .net上传,一个选择直接上传(ashx)和byteArray上传
  4. 经典C语言程序100例之二一
  5. VirtualBox没有64位选项,无法安装64位的解决方法 感谢源作者
  6. java中b的平方表示_第七届蓝桥杯Java B——四平方和
  7. VMware workstation 网络设置详解
  8. input输入框匹配数字(带两位小数) js--金额匹配
  9. c++: size_type与 size_t一些概念
  10. 软件工程相关书目之《大道至简》读后感
  11. AJAX(Asynchronous JavaScript And XML,异步JavaScript + XML)
  12. css3-自定义字体
  13. 天正cad计算机快捷键,CAD、天正快捷键(专用)
  14. QTreeWidget支持双击编辑Item节点的内容
  15. 中科大计算机博士毕业条件,惊呆!中科大博士毕业6年后再考医学专科,他这样回应……...
  16. psn请验证您不是机器人_PS4无法登陆PSN的解决办法
  17. 第十届极客大挑战——复现未解决的web和RE
  18. 数据分析及挖掘到底能带来什么价值?
  19. ROS TF2 中的 四元数 基础部分
  20. 立德教育净利润下滑四成:股价早已“腰斩”,拟并购一所高校

热门文章

  1. 现在PayPal还可以怎样提现???账户只有91刀!
  2. matlab求取状态方程的传递函数并实现系统解耦
  3. linux渲染农场大连教程,Deadline渲染农场搭建
  4. HP1010和HP1020的区别
  5. 打开php页面变成下载的解决办法
  6. deepfacelab安卓版_DeepFaceLab2.0中文版
  7. 人工客服——图灵机器人教程
  8. 3d建模公司可视化建模数字孪生应用
  9. Linux服务器间信任关系建立方法
  10. 抓取手机端app日志的方法总结