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

前端提供的文件

  • 门级网表 (Gate Level Netlist)

数字前端工程师或者是 R2N 的同事在 release 东西给后端工程师做 PR 时,一定会 release 一个门级网表,这个 netlist 是基于 RTL 或者 gtech 文件进行逻辑综合后产生的一个门级网表。这个网表包含了当前 block 的所有 sub-module,通过 hierarchy 的调用方式,最后有个顶层的设计,这个顶层名字就是我们所说的设计 module 名字。另外还有指出了 block 有哪些输入端口,输出端口,block 中用到了标准单元库中的那些 cell。

  • 时序约束文件(Timing Constraint)

时序约束文件在整个数字 IC 设计过程的作用是一样的。它都是 guide 工具基于某个特定的目标去做逻辑和时序的优化。一个时序约束文件都需要含有以下几个部分:

Crete_clock –name CLK -period 10 [get_ports clk]

Set_clock_uncertainty -setup 0.1 [all_clocks]

Set_max_transition –max 0.2 [current_design]

Set_max_transition 0.1 -clock CLK

Set load 50 [all_outputs]

Set_max_fanout 40 [current_design]

Set_dont_touch $cells

Set_input_delay –clock -max [get_ports **]

Set_input_delay –clock -min [get_ports **]

Set_output_delay -clock -max [get_ports **]

Set_output_delay -clock –min [get_ports **]

Set_multicycle_path 3 -setup -end -from ***

Set_multicycle_path 2 -hold -end -from ***

Set_false_path -from ** -to **

Set_clock_group –async -name ic-backend -group {A B} -group {C D}

  • Memory 的 lef 文件

前端工程师在 compiler 对应 memory 的时候会产生对应的一些文件,比如 LEF,DB 和 GDS 文件等。这个 Memory lef 是提供给后端工程师做 milkyway 用的。

  • 逻辑综合(Design Compiler)后 pre-layout 的信息统计

正规的 flow 中,在 release gate level netlist 时都需要附上逻辑综合后的纯逻辑的面积,memory 的面积,io port 数量,IO PAD 数量以及 ip 等相关信息。因为这些信息能够帮助数字后端工程师更快速地完成模块的面积估算,特别是某个 stage RTL 改动比较大的时候。

  • Prime Time QA report

资深的工程师在 release netlist 之前,一定会自己在 Prime time 中对设计进行 QA,检查当前 design 的 timing 是否可接受,检查 memory 是否存在 min period 等问题。

Foundary 提供的文件

  • 工艺库 lef 文件,timing model db 文件

Lef 文件以及 db 文件主要用来后续做 Milkyway library 和 NDM library。

  • 工艺的 tech file 文件

Techfile 文件一般是由 Foundary 提供的,当然也有是第三方 Vendor 提供的,比如 ARM 可能会提供他们自己的 standard cell 和 memory 的 library 给客户使用。

这个 tech file 文件主要是提供给 APR(Auto Place And Route)工具使用,guide 工具完成绕线使用。这个文件会给出每层 Metal 的 min width ,min space 以及 via 的相关定义等信息。

这里留一个思考题: 既然这个 tech file 规定了金属层,via 间的 rule 信息了,能不能将 ICC/ICC2 中绕线后的 DRC 结果作为 signoff drc 的结果(即不用 calibre 跑 DRC)?

  • 天线规则文件 (antenna rule)

Foundary 一般都会提供天线规则文件,以 clf 格式给出。此时需要改成 ICC 或者 ICC2 的 tcl 格式。下图给出供 ICC2 使用的 antenna tcl 文件,大家可以和 clf 文件进行对比。关于 antenna layer 的定义希望大家搞清楚,有的时候可能需要做更改哦。吾爱 IC 社区的小编在之前的文章提及到这个玩意哦。

  • Tluplus 文件和 layer map 文件

这个文件提供了 RC 相关信息,主要用来供工具估算 delay 信息的。

数字后端工程师需要准备的事情

  • Milkyway 和 NDM 生成

为何要用 Milkyway 和 NDM?Milkyway 是供 ICC 使用,NDM 则是供 ICC2 使用。这里简单说下,MIlkyway 是对应 GDS 的抽象化,因为它文件不大,信息量够 PR 工具使用。有人可能会说直接用 GDS,试问你是想玩死工具吗?Milkyway 的制作其实就包含了三类信息,Blockage,Pin,Via,就是通常所说的 BPV。简而言之,就是 Milkyway 就是告诉 tool,这个 ip 有多大,有哪些 signal pin,power ground pin, 哪些地方有 blockage,在哪些地方可以打孔。

关于 Milkyway 和 NDM 的制作脚本,小编之前已经分享在知识星球了,需要的朋友可以前往查看。

  • 检查时序约束文件

在读入 netlist 前,需要检查下前端提供的时序约束文件 constraint,检查时钟周期是否符合 spec? 检查时序约束是否存在缺失?检查是否有 ideal network 的约束?

  • 读入 netlist 和 DC constraint

做完以上各个准备工作后,可以读入 design 的 netlist 和 DC constraint。经常会有人来问关于读 netlist 出现的各种错误,这里简单罗列几种常见错误的原因

  • 参考库(reference library)缺失

  • Netlist 中含有未映射到标准单元库的 cell,比如存在 GTECH 这样的 cell

  • TOP module 名字指定错误

  • 子模块的 milkyway 和 db 文件不一致(主要是指两边 port 不一致)

成功读入 design 的 netlist 和 constraint 后,设计就算导入成功了,完成了第一步 initial design 的工作。整个 initial design 的参考脚本请点击下方的 “阅读原文” 查看。

好了,今天的分享就到这里了。下一期会进行数字 IC 后端实现中关于 floorplan 的内容分享。

https://mp.weixin.qq.com/s/bfmCxNlhlI9LftBF2HAXLQ">https://mp.weixin.qq.com/s/bfmCxNlhlI9LftBF2HAXLQ

数字IC后端设计实现流程之initial design相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 数字IC后端实现40天速成篇(上)

    数字IC后端实现40天速成篇(上) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 为了更好服务好大家,现把小编目前这边的主营业务向大家汇报下.其中对于设计 ...

  7. 数字IC后端实现40天速成篇(中)

    数字IC后端实现40天速成篇(中) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 为了更好服务好大家,现把小编目前这边的主营业务向大家汇报下.其中对于设计 ...

  8. 如何才能成为数字IC后端ECO专家?

    如何才能成为数字IC后端ECO专家? 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 临近 618,这几天很多粉丝私信表达希望小编知识星球搞个优惠活动.但是 ...

  9. 数字IC后端实现TOP Floorplan专家秘籍

    数字IC后端实现TOP Floorplan专家秘籍 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 2020 年是不平凡的一年,新冠疫情战役也还未结束.目前 ...

最新文章

  1. python_day2基本数据类型
  2. 基于数据挖掘的旅游推荐APP(二):主界面布局
  3. docker与虚拟机的对比
  4. 红外热成像拥抱无人机 迸发安防救援新活力
  5. OpenGL使用Perlin噪声的腐蚀效果
  6. java并发中CountDownLatch的使用
  7. ASP 缩略图 (纠错版)
  8. AOP in dotnet :AspectCore的参数拦截支持
  9. 2016第11届四川省高校计算机(软件)院长论坛纪要(旁听)
  10. [css] 如何重写行内样式?方法有哪些(至少两种)?
  11. C语言fscanf函数了解
  12. 安卓系统曝漏洞!有人可能正在用你的手机秘密拍照
  13. 代码创建listview android,android ListView 示例4 使用 SimpleAdapter 创建 ListView
  14. Ehcache整合spring配置
  15. 2021最新学习路线,Java快速入门到精通(附Java教学视频)
  16. 嵌入式分享合集101-PLC
  17. 【比较】2022 程式语言排名与分析,该学习哪一种程式语言?
  18. Nuc做文件服务器,Intel NUC 安装Windows Server 2016 图解教程
  19. 【译】Rust 中的错误处理
  20. [Database] 关系型数据库中的MVCC是什么?怎么理解?原理是什么?MySQL是如何实现的?

热门文章

  1. Nginx配置Thinkphp3.2.3配置,访问Nginx报 No input file specified. 的问题解决
  2. 解决js跨域使用nginx配置问题
  3. VS2012打开项目 提示Asp.net4.0未在web服务器上注册的解决方案
  4. Linux服务器出现:No space left on device的解决方法
  5. 如何在Python中打印到stderr?
  6. Win11无法识别Wmic怎么办?Win11识别不了Wmic的解决方法
  7. win8系统电脑中病毒了怎么办,如何解决win8电脑中毒
  8. 读写文件RandomAccessFile
  9. idea 阿里巴巴规范插件_阿里巴巴 Java 开发者手册,编码事半功倍
  10. Android:Android SDK的下载与安装