当前位置: 首页 > news >正文

干货!数字IC后端入门学习笔记

很多同学想要了解IC后端,今天大家分享了数字IC后端的学习入门笔记,供大家学习参考。
很多人对于后端设计的概念比较模糊,需要做什么也都不甚清楚。
有的同学认为就是跑跑 flow、掌握各类工具。

事实上,后端设计的工作远不止于此。可以说是包含但不限于上述的内容。
如果非要用一句简单的话概括后端设计需要做的工作的话。
就是将前端设计的 RTL 代码转化成门级网表,最终生成 GDSⅡ文件,到这里就可以拿到工厂进行流片生产了。

为了完成上述的工作,后端设计工程师就需要进行逻辑综合、形式验证、物理实现、时钟树综合、寄生参数提取、版图物理验证等一系列高端操作。

在整个芯片设计流程中数字IC后端也是举足轻重的。发展下去,是越老越吃香的,做技术专家也只是时间问题。
布局与布线(Auto Placement & Route ,AP&R)
传统上将布局与布线前的工作称之为前端(Front End),而布局与布线之后的工作称为后端(Back End)。布局的目的在于产生制作掩膜所需的GDSII文件。同时也产生布局后的网表文件(Netlist)及标准延迟文件(SDF)。
在这里插入图片描述
后端设计所用到的工具
• 仿真工具:Mentor modelsim/Questasim
• 综合工具(带DFT):Synopsys DC
• 时序分析:Synopsys PT
• 形式验证:Cadence LEC
• 后端APR(Auto Placement &Route)Cadence SoC Encounter
• 后端参数提取:Mentor Calibre
IC设计全流程

  1. 设计输入 (Ultraedit,Vi等)
  2. 仿真(前、后,Modelsim)
  3. 综合(DC,with DFT)
  4. 形式验证 (Confrml,LEC)
  5. 时序分析 (PT,STA)
  6. 后端APR(Encounter)
  7. 参数提取、验证(Calibre)
    关于IC设计全流程介绍,芯学长网有详细介绍,也有IC设计岗位查询等,对于IC设计不了解的同学,可以点进去网站去看看,对于IC设计有个整体的认识。
    在这里插入图片描述
    理解流程,明确概念
    主要流程:

    RTL——仿真——综合——自动布局布线——参数提取
    • 穿插时序分析,形式验证等步骤
    列举一例,演示一下流程!
    所选实例为:MY_CHIP.v ;
    RTL——仿真——综合
    所使用的工艺为TSMC018
    关于库的一些说明
    在这里插入图片描述
    数据准备
    • 1、新建一个文件夹(如:soce_pad)将所用到的库copy进来:
    lib+addbonding.pl+addIoFiller.cmd+ioPad.list
    • 2、将要用到的源文件添加进来:
    MY_CHIP.vg+MY_CHIP_PAD.v+pad_locs.
    io+MY_CHIP_PAD.sdc
    • 3、实验时使用TSMC 0.18工艺,
    2、关于1中源文件的说明
    MY_CHIP.vg是DC综合之后生成的门级网表文件。
    • MY_CHIP_PAD.v是chip-level Netlist (自己编写),就是输入输出端口,用以IC系统与外部环
    境的接口。与组成集成电路核心电路的单元不同,I/O PAD 是直接与外部世界相连接的特殊单元。
    请参看文档DTS-041028-00-000.pdf,列出了TSMC 0.18所使用的P/G Pad、I/O Pad 和Corner
    名称。参看lib库中tpz973g.lef技术库,列出了相关Pad的宏模块。结合所给例子MY_CHIP_PAD.v,
    编写自己的chip-level Netlist 。
    注意我们使用的是TSMC18工艺,pad名称的部分截图:
    在这里插入图片描述
    pad_locs.io文档就是编写添加进来的pad的摆放位置,如图示:
    在这里插入图片描述
    输入、输出、电源和地的摆放位置示例
    在这里插入图片描述
    MY_CHIP_PAD.sdc文件是DC综合之后的时序约束文件,需要进行修改!只需保留clk和输入输出的
    延迟约束信息,其他删除!修改输入输出信号:输入信号前要加i,输出信号前加o,clk信号不变。参考示例文件进行修改。
http://www.lryc.cn/news/212328.html

相关文章:

  • 力扣:144. 二叉树的前序遍历(Python3)
  • 【数据挖掘 | 数据预处理】缺失值处理 重复值处理 文本处理 确定不来看看?
  • 二叉树问题——前/中/后/层遍历(递归与栈)
  • Nor Flash和Nand Flash的区别——笔记
  • 7+共病思路。WGCNA+多机器学习+实验简单验证,易操作
  • 开发者看亚马逊云科技1024【文末有福利~】
  • 操作系统(Linux)外壳程序shell 、用户、权限
  • C文件操作
  • drawio特性
  • LLM-Embedder
  • xsync 集群远程同步脚本
  • 30秒get视频号视频如何下载,保存视频号视频到本地方法!
  • 优化改进YOLOv5算法:加入SPD-Conv模块,让小目标无处遁形——(超详细)
  • 【数据结构】搜索树 与 Java集合框架中的Set,Map
  • 掌握组件缓存:解开Vue.js中<keep-alive>的奥秘
  • Ajax学习笔记第5天
  • 20.1 OpenSSL 字符BASE64压缩算法
  • Panda3d 教程
  • 除自身以外数组的乘积
  • 干洗店小程序上门洗鞋店管理软件功能介绍;
  • 【C语言初学者周冲刺计划】1.1用筛选法求100之内的素数
  • 1.Vue—简介、实例与容器、MVVM模型
  • 【Java笔试强训】Day7(WY22 Fibonacci数列、CM46 合法括号序列判断)
  • Linux进程的概念
  • XML教学视频(黑马程序员精讲 XML 知识!)笔记
  • 自定义组件实现v-model
  • 【自动驾驶】Free space与Ray casting
  • RHCE---正则表达式
  • 3D RPG Course | Core 学习日记一:初识URP
  • Spring Cloud 之RabbitMQ的学习【详细】