ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-08-17 09:30:01  阅读:224  来源: 互联网

标签:文件 Set netlist clock initial design Milkyway IC


数字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

标签:文件,Set,netlist,clock,initial,design,Milkyway,IC
来源: https://blog.csdn.net/b18821622297/article/details/119748341

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有