前言
分享国科大《EDA工具及设计实践-数字集成电路21-22春季》课程的实验流程笔记,希望同课程的同学可以快速复现。
笔记内容
placement(标准单元的放置)
- 依照上述步骤,然后打开工程 file->Open Design ->选择mw目录下的文件(init_design_icc是上次操作最后保存的版本)
- 打开操作脚本1
vim {your_path}/icc_2_scr/place_opt_icc.tcl
-
依序复制上述脚本中的命令(从第一行到倒数第N行(source …/scripts/usr_tcl/pins_placement.tcl前面那一行))至icc的gui命令行窗口中(可分步查看命令执行效果)回车执行。(中间出现了因为tie的位置而导致的错误,但通过legalize_placement -incremental 命令进行了修正)
-
修改…/scripts/usr_tcl/pins_placement.tcl文件中的内容,将VDD、VSS相关注释取消(推荐使用:1查找定位,2ctrl+v区块选择),操作后效果如下:
- 接着执行place_opt_icc.tcl脚本中的命令(如下图),看到得到的版图中IR-DROP红色部分较大,说明电压降问题严重
- 重新执行pins_placement.tcl脚本中的部分命令(如下图),通过添加VDD PORT来改善电压降问题
- 重新执行place_opt_icc.tcl脚本中的命令(如下图),查看改善后的版图信息(测压降的命令)
- 继续执行place_opt_icc.tcl脚本之后的命令,完成第一个脚本的运行。(期间可以使用Global Route Congestion分析阻塞:一般出现0的级别控制在5、6以下比较良好。如果阻塞严重需要修floorplan)
时钟树综合
分为三个部分,本节课完成了前两步,对应两个脚本分别是:clock_opt_cts_icc.mergesdc.tcl和clock_opt_psyn_icc.tcl
clock_opt_cts_icc.mergesdc.tcl
直接source 该脚本即可,期间没有任何错误。
clock_opt_psyn_icc.tcl
- 首先修改脚本/icc_all/pnr/scripts/usr_tcl/set_mmmc_libs.tcl,用vim打开,并使用以下命令替换路径(图中xxx对应文件中每个名字)
:%s/eda\/xxx\/90nm/user_zz\/pub/g
- 直接souce 该脚本clock_opt_psyn_icc.tcl,查看rpt目录下的违例报告all_vios.psyn1.rpt,可以看到产生了max_capacitance和max_leakage_power违例
- 参考《物理设计_Error合集.pdf》中方法解决max_capacitance违例问题。
- max_leakage_power违例本节课暂且不用解决。
参考内容
《EDA工具及设计实践-数字集成电路21-22春季》
附录
如需了解更多实验流程,欢迎关注我的公众号“多读点书”。