论坛账号至少一个月登录一次,否则会被自动冻结!论坛全站广告位出租300元一年,有需要联系QQ:154000559。下载资料E币不足?可以每日签到可获取E币,土豪则可以充值即可。
搜索
版图设计服务,首选奋芯电子 微信:13816911948
广告位出租:ML02 有需要联系QQ:2322712906。
欢迎大家来EDA1024硬件设计开发论坛学习交流!【eda1024.com】
广告位出租:ML04 有需要联系QQ:2322712906。
芯片版图外包,首选奋芯电子 微信:13816911948

[转帖] 解决layout中off grid问题

[复制链接]
查看: 346|回复: 0

19

主题

19

帖子

98

E币

助理工程师

Rank: 3Rank: 3

积分
19
发表于 2022-4-27 13:42:42 | 显示全部楼层 |阅读模式
有的时候layout里会有一些线或者device 不在格点上,如果一个个去修改坐标,势必很烦。分享一个脚本,可以快速修改不在格点上的问题。
具体方法如下:1.将putCellOnGrid.il 文件copy到cadence的home的工作目录下;2.打开Cadence virtuoso的CIW窗口;3.打开需要改变格点的layout文件,并将layout全选(Ctrl+A)
4.在virtuoso的CIW窗口里输入两行命令:load “putOnCellsGrid.il”   PutOnGrid(0.005)。此处的0.005是你需要的最小格点。
5.如果程序正常运行,就可以看到运行完后,CIW窗口最后一行是一个t.
PutOnGrid.il脚本如下:
  1. procedure( OnGrid( Point )
  2. if(listp( Point ) then
  3. mapcar( lambda((x) OnGrid(x)) Point)
  4. else
  5. round((Point/Grid))*Grid
  6. )
  7. )

  8. procedure( PutOnGrid(Grid)
  9. let(( SelectObj )
  10. SelectObj = geGetSelSet()
  11. foreach( Object SelectObj
  12. cond(
  13. (Object~>objType == "path"
  14. Polygon = leConvertShapeToPolygon(Object)
  15. Polygon~>points = OnGrid(Polygon~>points)
  16. )


  17. (Object~>objType == "polygon"
  18. Object~>points = OnGrid(Object~>points)
  19. )


  20. (Object~>objType == "rect"
  21. Object~>bBox = OnGrid(Object~>bBox)
  22. )



  23. (Object~>objType == "inst" || Object~>objType == "mosaic"
  24. Object~>xy = OnGrid(Object~>xy)
  25. )
  26. )
  27. )
  28. )
  29. )
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入住EDA1024

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|EDA1024硬件论坛 ( 苏ICP备15024581号 )

GMT+8, 2022-7-1 03:00 , Processed in 0.062552 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表