天气: 晴朗
心情: 高兴
后端P&R工作,常常需要根据客户的需求确定block的IO pin的顺序和位置,或者full chip的IO pad的顺序和位置。客户会给相应的list或者ppa文件,攻城狮需要做的就是方快捷高效的实现。下面,介绍摆放block pin的几种基于encounter/innovus的常用操作。
第一种:抓出pin list,进行编辑摆放
抓pin的几种方法:
1.set io [open ./pin.list w]
puts $io [dbGet top.terms.name]
close $io
2.在工具中选择 saveIofie;
3.选择 edit -> pin Editor
有了pin list之后,使用command来编辑
<CMD>editPin -pin $list -spreadType START -start {60 0} \
-spacing 0.3 -unit MICRON -layer ME3 -edage 3
editPin -pin [dbGet top.terms.name] -fixedPin
其中的参数根据具体要求进行修改。
第二种:根据ppa文件使用tcl进行处理,写出def文件,直接进行load就好。这种方法适用与block和full chip。
另外,和block Io pin相关的cmd还有 attachIoBuffer,是针对io pin进行加驱动的。
例如:
attachIoBuffer -in buf -out buf -markFixed -selNetFile port.list -suffix INOUT -baseName BUF -excludeClockNet
还有place_connected等相关命令。
使用脚本就是借助工具提高工作效率,依时代发展之势,自动化工作将成必然,因此如何实现io pin摆放的自动化是个值得思考的问题。
目前的方法是编写通用的脚本处理一种标准个格式的ppa文件来实现摆放pin的自动化。将来如果能实现根据design需要自动选择合适的位置摆放pin的功能就更先进了。