1.数字芯片后端设计小概述

2023-05-16

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

        后端设计总体来说,是将前端写好的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(使用前将#替换为@)

1.数字芯片后端设计小概述 的相关文章

  • Hbase的API

    Hbase API 文章目录 Hbase API准备工作Namespace DDL1 Junit执行代码模板2 创建namespace的API3 列出所有的namespace4 列出所有namespace中的表名5 修改namespace的
  • 【Python】 matplotlib 以pdf形式保存图片

    Python matplotlib 以pdf形式保存图片 span class token keyword import span matplotlib span class token punctuation span pyplot as
  • 51单片机 | 点亮第一个LED | LED 闪烁实验 | LED流水灯实验

    文章目录 一 51单片机GPIO介绍1 GPIO概念2 GPIO 结构框图与工作原理2 1 P0端口2 2 P1端口2 3 P2端口2 4 P3端口 2 5 要点 二 LED简介三 硬件设计四 软件设计1 点亮第一个LED2 LED 闪烁实
  • matlab二维矩阵可视化几种方法

    目录 一 pcolor 二 imagesc 三 spy 四 文末彩蛋 一 pcolor 以一个100x100块对角矩阵B为例 1 xff1a 原生pcolor 可以在矩阵维度不大时进行可视化 xff0c 带小方格 矩阵比较大时画出整体为黑色
  • 【ROS入门】双系统安装和ros安装踩坑

    记录一下安装Ubuntu双系统和和ros过程中踩的坑 xff0c 防止下次再犯错 一 双系统安装与删除 双系统的安装比一开始想的说实话要简单得多 xff0c 随便用u盘制作一个系统安装盘 xff0c 或者在u盘里面放需要的Ubuntu镜像
  • 【ROS入门】TF与URDF

    一 什么是TF TF全程就是transform xff0c 就是一个坐标系的转换 在ROS中坐标的转换是一个很重要的内容 xff0c 主要还是因为机器的不灵活性 xff0c 如果是人 xff0c 完全可以灵活地控制手臂去抓取一个物体 xff
  • 树莓派3B+——系统安装及显示

    树莓派3B 43 系统安装及显示 目录 树莓派3B 43 系统安装及显示系统安装显示显示器显示3 5寸显示屏显示pc显示 树莓派3B 43 系统安装及显示 初次接触树莓派 xff0c 花了差不多一天的时间把系统的安装和显示全部搞定 xff0
  • VSLAM 相关知识点总结

    VSLAM 相关知识点 这篇文章是对VSLAM涉及的知识点进行系统性的总结和更新 xff0c 一些内容来源至VSLAM经典教材 xff0c 博客 xff0c 和开源项目 引用材料如下表 SLAM十四讲高博古月老师的技术博客崔神的github
  • Windows下CLion中文乱码最有效的解决方式

    作者开发环境 Windows 10 Clion 18 3 MinGW W64 很多人都遇到了Clion的中文乱码问题 xff0c 然后在CSDN上面寻找解决办法 比如这篇很有代表性https blog csdn net Cbk XLL ar
  • Neutron复盘及学习笔记

    前言 对于openstack neutron xff0c 曾花费很多的时间去看它的源码 xff0c 结果啥都没有看出来 openstack代码风格是 xff0c 为了实现plugin的可插拔 xff0c 运用了很多设计模式 xff0c 设计
  • 匿名飞控底层PID代码解析

    大半年就快过去了 大二上学期转瞬即逝 xff0c 离上一次博客也有一段时间了 xff0c 没错 xff0c 庆幸的是我又回来了 xff0c 其实本来第二篇博客是想着写一下两轮平衡车来着 xff0c 代码早就写好了 xff0c 但是硬件不给力
  • IAR、KEIL常见编译报错警告的解决方法(持续更新中)

    Warning Pe550 variable 变量 was set but never used 原因 xff1a 变量定义赋值了但从未使用 解决 xff1a 变量定义删了就可以 xff0c 编译器也不会真的给这个变量分配空间 Warnin
  • VS2019 未能正确加载”balabal.........Package“

    修复VS2019不能自动补全Unity脚本代码时 xff0c 更新了下面这个东西 导致一直蹦下面这些警告 嘣 嘣 嘣 嘣 嘣 网上有很多博客说重置用户数据 禁用Live Share 分析Log信息等等 xff0c 最后看到一个博文说检查更新
  • 51单片机 | 蜂鸣器实验

    文章目录 一 蜂鸣器介绍二 硬件设计三 软件设计四 实验现象 通过单片机的一个 IO 口控制 板载无源蜂鸣器 xff0c 实现蜂鸣器控制 一 蜂鸣器介绍 蜂鸣器是一种一体化结构的电子讯响器 xff0c 采用直流电压供电 xff0c 广泛应用
  • Vue 中WebSocket的使用

    span class token function data span span class token punctuation span span class token punctuation span span class token
  • npm版本与node版本不对应

    npm与node版本不对应 导致无法npm i 报错提示 WARNING You are likely using a version of node tar or npm that is incompatible with this ve
  • 吴恩达阅读文献步骤

    接下来 xff0c 就集中介绍一下如何研究一篇论文 吴恩达认为 xff0c 要理解一篇论文 xff0c 一次将一篇论文从第一个字读到最后一个字 xff0c 可能并不是最佳方式 正确的打开方式是 xff0c 一篇论文至少要看三遍 第一遍 xf
  • 更新docker

    以下是做为前端开发如何更新docker xff0c 萌新操作 1 xff0c 使用工具Finalshell xff0c 连接到ssh 2 xff0c 连接到服务器 xff0c 选择ssh xff0c 并配置服务名称 主机 服务地址 xff0
  • 计算机视觉理论笔记 (11) - 运动估计 (Motion Estimation)

    运动估计 光流法 Optical Flow 限制Horn xff06 Schunck 全局方法 global method 光流法约束等式 Constrain Equation 小幅度动作问题全局方法和局部方法的比较全局方法局部方法 基于块

随机推荐