00——Phsical Design数字后端

  • 一、数字后端流程
    • 例:一个完整的设计
  • 1.DATA preparation——数据准备
    • ·Pin list file→PPA file——port信息:IO的顺序、摆放、位置
      • Floorplan 平面图:摆放IP、IO
    • ·Wire Bond and Finger Map
      • Wire Bonding 接口文档
      • Finger Map
    • ·LEF(Library Exchange File) 库交换文件
      • LEF Header(Tech File)
      • LEF Cell View(Milkyway参考库(ref文件))
    • ·Gate level Netlist 门级网表——Verilog
    • ·RC tech file(RTL Compiler)
    • ·timing constraints(SDC)
    • Timing Library(NLDM,CCS,ECSM)
    • First Place and Don't Touch
      • First Plac——部分IP需要优先考虑
    • don‘t touch
  • 2.FloorPlan & Place——平面布置图&摆放(自动)
    • power、IO & blocks
    • Floorplan adjustment 调整
    • Power Distribution(power plan)——配电
    • Placement
  • 3.Timing 优化
    • 原因
    • 方法
  • 4.Clock Tree Synthesis(CTS)
    • 原因:为了同步所有的flip-flops(触发器)
    • 目标
  • 5.Routing 绕线
  • 6.Verification验证
    • STA Setup/Hold
    • Formal Function check
    • SI Glitch check
    • Power Simulation/Low Power check
    • DRC/LVS
    • DFM

一、数字后端流程

前端从RTL→Netlist→PR后端(后端从scan netlist开始)

例:一个完整的设计

module add_decoder_x (mem0,mem1,cs,en,add);output        mem0,mem1,cs;
input       en;
input       [31:30] add;
reg         mem0,mem1,cs; /*register是寄存器的意思*/always 0 (add or en)
begin   (mem0,mem1,cs)=3'b0;casex({add,en})3'b101 : mem0 = 1'b1;3'b111 : mem1 = 1'b1;3'b0?1 : cs = 1'b1;endcase
end
endmodule


gds.lib放在一个文件夹里

1.DATA preparation——数据准备

·Pin list file→PPA file——port信息:IO的顺序、摆放、位置

Floorplan 平面图:摆放IP、IO


布图规划是应用板设计的体现。

·Wire Bond and Finger Map

Wire Bonding 接口文档

这个文档是design house和封装厂的接口。它描述了设计者对于芯片的封装要求。封装厂会根据这份文档完成封装设计,其结果需要design house的设计工程师确认。
Bonding Map中含有的信息包括,封装类型、die size、scribe line和seal ring宽度,还有PAD opening的尺寸和坐标。这些坐标通常是后端工程师从版图中提取的,前端工程师需要计算一下是否合理。最后还有最重要的,就是wire bonding的信息。它指定了每一个PAD opening需要bonding到哪一个finger,哪些PAD之间需要做bonding,哪些PAD需要bonding到substrate,哪些bonding是需要多根wire的。multi-wire bonding有助于减小电感,抑制SSN,当然其缺点是增加了成本。

Finger Map

  • Ball assignment and bonding consider sufficient S.I. and power quality.
  • Pad assignment correspond to substrate design rule.
    引脚排列方式符合design rule

·LEF(Library Exchange File) 库交换文件

LEF Header(Tech File)


手动放置位置,写了用到的层和金属

LEF、Timing lib在IP库里都会带

LEF Cell View(Milkyway参考库(ref文件))


只描述到M1,底层无所谓,还会写上PIN的位置

图形是由下面的代码转化的

·Gate level Netlist 门级网表——Verilog

体现与标准单元的关系,是从前端给的。

参考:什么是门级网表

·RC tech file(RTL Compiler)

用来提取电容文件,是工厂给的

·timing constraints(SDC)

设计约束(时序约束),是前端给的

对信号的约束

create_clock -name {CLKR_TSTCLK_v0} -period 10 -waveform { 0.000 5.000 }         /*> -period 10       ——  周期10
> -waveform{0.000 5.000}     ——  上升沿0-5*/set_multicycle_path -through [list \[get_pins AUX_TOP/U_EXTHOSTBRIDGE_AUX/WDATAFIFO/G13299/Y] \
-to [get_pins AUX_TOP/U_EXTHOSTBRIDGE_AUX/F2/G13445/Y] ] -setup -end 2

Timing Library(NLDM,CCS,ECSM)

定义power、pin、电容等约束

 pin(Y) {• direction : output ;
• function : "(A&B)" ;
• max_capacitance : 1.3113 ;
• max_transition : 2 ;
• min_capacitance : 0.001 ;
• internal_power() {• related_pin : "A" ;
• when : "B" ;
• fall_power(pwr_tin_oload_7x7) {• index_1("0.03, 0.0654369, 0.189828, 0.427371, 0.797451,1.31672, 2");
• index_2("0.001, 0.024571, 0.10731, 0.26531, 0.51147, 0.85686, 1.3113");
• values("0.0219344, 0.0224672, 0.0229511, 0.0230905, 0.0231408, 0.0231651, 0.0231768",\
• cell_rise(tmg_ntin_oload_7x7) {• index_1("0.03, 0.0654369, 0.189828, 0.427371, 0.797451, 1.31672, 2");
• index_2("0.001, 0.024571, 0.10731, 0.26531, 0.51147, 0.85686, 1.3113");
• values("0.09922, 0.138288, 0.25111, 0.461, 0.787618, 1.2452, 1.84572",

First Place and Don’t Touch

First Plac——部分IP需要优先考虑


优先考虑一些特殊要求,比如:

  • 距离相等
  • 数据不需要同时到达
  • 时钟和数据都from/to IP模块

IP指设计好的可以移植到别的芯片中的模块(可以是电路或者是版图),能够买卖

don‘t touch

1.SDC文件无法约束此类路径。
2.通过手动逐个打开,set_max_delay设置最大延迟,或set_min_delay设置最小延迟来检查延迟。
IP模块的的timing library几乎都是假的。
3.对于我们来说,develop a mix model flow to signoff the interface非常重要

2.FloorPlan & Place——平面布置图&摆放(自动)

power、IO & blocks

1.根据PPA文件放置IO和IP。
2.微调每个SRAM和模块位置。
3.优先考虑first place关键cell。
4.power planning。

floorplan的目标是:
◆ 物理blocks的分区设计。
◆ 决定IO pads的位置、power pads的数量/位置和配电。
◆ 最小的congestion(拥塞)和关键path delay。
◆ 使芯片尽可能致密。
撑面积解决问题,chip小供电最好

Floorplan adjustment 调整


布局→place→尝试绕线→时序收敛

由routable和Timing判断Floorplan合不合理

  • Floorplan:微调SRAM位置,检查电源plan,调整芯片size,添加布线金属等
  • Placement:创建place guide,设置模块密度,保留布线通道等

Power Distribution(power plan)——配电

把需要供电的吃到电,减少压降

RDL和metal7用线连起来

配电的目标是:
•连接电源pads和逻辑单元的VDD/VSS之间的金属线。
•将压降降至最低
•尽量减少地弹(ground bounce)
•VDD压降和VSS地弹之和小于5%*VDD(静态)

Placement

stdcell的place是工具自动完成的,placement是把stdcell拼起来

1.平面图决定stdcell的放置位置。
2.每个cell等高不等宽。
3.放置在row上。
placement的目标是——
❑ 确定cell的位置。
❑ 最小的timing violation and congestion(时序冲突和拥塞)。

3.Timing 优化

原因

解决timing violation,修复wire load线负载模型 (预估stdcell之间的连线)和真实的RC loading的差距

前端拿来的是理想的,后端有真实绕线


物理层的面积 placement远大于线负载区域

方法

如何进行timing优化
定时优化的任务包括:

  1. 首先,清除max、load max、transition冲突。(会导致大的delay)
  2. 清除setup/hold的time violation冲突。
  3. 最大限度地减少关键path的延迟。
  4. 触发器脉冲(flip flop pulse)宽度检查。(最小宽度)
  5. clock负载检查。(高电平)

Timing优化的办法包括:

  1. 调整up/down cell的大小
    ——同一段功能不同size的stdcell,驱动不够所以要增大减小size
  2. 插入缓冲区(buffers) ——距离过远
  3. split loading分载 64→32*2这样分裂
  4. 重构/复制

4.Clock Tree Synthesis(CTS)

原因:为了同步所有的flip-flops(触发器)


将单个clock net转换为多级缓冲树,因为cell的驱动能力

前端不需要buffer(缓冲)→后端需要接太多flip-flops(触发器→为了时钟同步→同步delay)。为了增加驱动必须接buffer降loading

目标

  1. 缩小clock skew——最大和最小的delay的差值(越小越好,能容易的修复setup/hold的时序冲突 time violations)
  2. clock transition time最小——couple noise(耦合噪音)变小;clock jitter(时钟抖动)变好
  3. 更少的clock缓冲来降低power功耗——功耗占full chip的20%~30%
  4. 最小的clock buffer level——降低OCV和clock jitter时钟抖动

5.Routing 绕线

stdcell之间;ip和stdcell之间有连线在netlist里,在这步接M2接stdcell的pin,自动绕线,如果不通就干预


绕线的目的是:
❑ 用金属线物理连接逻辑单元。
❑ 让连线绕线最短和面积最小化。
❑ 尽可能减少图层的变动次数以建立连接。

6.Verification验证

STA Setup/Hold

28HLP sta标准
电压是0.9*C

Formal Function check

SI Glitch check

Power Simulation/Low Power check

DRC/LVS

DFM

52.sram的位置会影响摆放、timing和绕线
53.如何摆放sram 一般是一大片出现
每个module关系比较近的要靠在一起 按G找一个group的

54.congestion解决不掉就要重来
55.时序收敛
优化时序之前要
看timing report
分析摆放
解决congestion问题
完成CTS之后要确认你的verilation

56.时序收敛的方法
57.绕线资源紧张会发生short
不能发生congestion issues

00——Phsical Design初稿2021-09-06上午相关推荐

  1. 2021/09/06 Terraform 从入门到精通(二)

    P38 Route53 demo 在这个演示中,我将向你展示Route 53如何使用Terraform.这里我们有一个文件"route53.tf".有一个资源"aws_r ...

  2. 投票服务器维护时间,2021年06月21日维护预览,合服投票结果公布! ​

    原标题:2021年06月21日维护预览,合服投票结果公布! ​ 亲爱的玩家,大家好!!又到了每周的维护预览时间! 以下是本周维护内容: 1.本周维护之后, 新资料片<天粹英华>将在 局部服 ...

  3. 橘子CPS联盟操作手册2021.09

    橘子CPS联盟操作手册2021.09 目录 橘子CPS联盟操作手册2021.09 橘子CPS联盟是干嘛的 橘子CPS基本操作流程 PC端操作 1.注册 2.登陆 3.渠道管理 4.分享网站 5.分享网 ...

  4. 【跃迁之路】【578天】程序员高效学习方法论探索系列(实验阶段335-2018.09.06)...

    [跃迁之路][578天]程序员高效学习方法论探索系列(实验阶段335-2018.09.06) @(跃迁之路)专栏 [跃迁之路]奖励金计划正式开始 从2018.7.1起,[跃迁之路]奖励金计划正式起航, ...

  5. 从腾讯朋友圈揭秘内部AI部门竞争关系,谁能像微信当年一样熬出头? By 微胖2017年11月10日 09:06 撰文 | 宇多田 在腾讯合作伙伴大会上,腾讯首席运营官任宇昕提出的「AI in All」

    从腾讯朋友圈揭秘内部AI部门竞争关系,谁能像微信当年一样熬出头? By 微胖2017年11月10日 09:06 撰文 | 宇多田 在腾讯合作伙伴大会上,腾讯首席运营官任宇昕提出的「AI in All」 ...

  6. 2021.09.27 MySQL笔记

    2021.09.27 MySQL笔记 文章目录 2021.09.27 MySQL笔记 一.展示当前存在的所有数据库 二.使用(选中)一个数据库 三.创建一个数据表 四.查询并展示该数据库内的所有数据表 ...

  7. 实习日志 (2021.09.13)

    2021.09.13星期一 今天把之前的算法题终于给弄明白了,并能够按照自己的思路去把他给完成,总结这个题目并不是很难,最重要的是要把链表给弄懂,一开始由于我对链表不是很熟悉,导致我在写该题目的时候花 ...

  8. 2021.09青少年软件编程(Python)等级考试试卷(三级)

    2021.09青少年软件编程(Python)等级考试试卷(三级) 一.单选题(共25题,每题2分,共50分) 1.使用map函数可以实现列表数据元素类型的转换,而无需通过循环.则将列表L=['1',' ...

  9. 2021.09.24—皮皮与帅帅的第二篇情话

    2021.09.24我们小情书的第二天 每天晚上,小兔子都会一个人来到溪水边,坐在地上数着星星.而且他个人也非常喜欢一闪一闪的东西.对于小兔子来说,每颗星星都是特别的,于是她就给每颗星星都起了一个可爱 ...

最新文章

  1. icinga的idoutils插件
  2. 沿任意方向缩放、镜像、正交投影及切变及其推导
  3. 逆向查找_CTFer成长之路--一道数独逆向题目解题过程(算法分析、查找线索)...
  4. 为什么孙悟空能大闹天宫,却打不过路上的妖怪?
  5. Windows 7下实现×××连接自动创建
  6. C++——必须使用复制构造函数的情况
  7. oracle12cr2发布时间,Oracle 12cR2 发布在即
  8. 高性能MySQL读书笔记 (五)
  9. 关于BTA12-600B双向可控硅应用中遇到问题的思考
  10. 书名带冒号_冒号_冒号的用法和作用_冒号怎么打_标点符号网
  11. mysql数据驱动测试_[ddt02篇]十年测试老鸟帮您解析:ddt结合excel,csv,mysql实现自动化测试数据驱动...
  12. Stopping service [Tomcat]和Disconnected from the target VM排查
  13. 全屏的微粒子3D动画特效
  14. C++11中的时间库std::chrono(引发关于时间的思考)
  15. java nul 字符_Java字符串替换和NUL(NULL,ASCII 0)字符?
  16. python库numpy使用技巧(二)——随机抽取二维矩阵中多行或多列
  17. 【陈工笔记】# 期刊 # Elsevier 期刊的投稿模板
  18. 2021年中国低代码行业白皮书
  19. 计算机bootmgr丢失,bootmgr丢失无法开机
  20. 关于智慧城市的中对智慧的理解

热门文章

  1. Android Socket通讯 之 心跳消息
  2. 深入浅出的理解透析小程序插件、组件和控件的区别
  3. 永磁同步电机矢量控制到无速度传感器控制学习教程(PMSM)(一)
  4. Web前端学习笔记(三)---白色/黑暗背景切换
  5. 几款常用幻灯片制作软件对比
  6. mmdvm 接收_MMDVM全称Multi-Mode Digital Voic
  7. (转贴)关于《三体》的天文学
  8. 关于ICache和DCache
  9. UEX 3.3.0.4 For Ubuntu 试用期30天到期的解决办法
  10. Linux配置samba服务器