在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 968|回复: 2

[求助] 求助关于AddPinToFloatingWire.il

[复制链接]
发表于 2023-11-7 17:14:47 | 显示全部楼层 |阅读模式
200资产
本帖最后由 YuSHL 于 2023-11-7 17:18 编辑

请教大佬们,我先用schHiCreateWireStubs() create wires to symbol,然后选中wire线再用这个脚本发现没有创建Pin,是在哪出问题呢?




  1. /* abAddPinToFloatingWire.il

  2. Author     A.D.Beckett
  3. Group      Custom IC (UK), Cadence Design Systems Ltd.
  4. Language   SKILL
  5. Date       Dec 02, 2020
  6. Modified   
  7. By         

  8. Add a pin to any selected floating wire. Usage:

  9. abAddPinToFloatingWire()
  10. abAddPinToFloatingWire(?direction "input")

  11. The default is to add inputOutput pins unless the ?direction
  12. is specified

  13. ***************************************************

  14. SCCS Info: @(#) abAddPinToFloatingWire.il 12/02/20.10:59:59 1.1

  15. */

  16. /********************************************************************
  17. *                                                                   *
  18. *         abAddPinToFloatingWire([?direction "inputOutput"]         *
  19. *                      [?pinUsage "schematic"]                      *
  20. *                      [?wires geGetSelSet()]                       *
  21. *                                 )                                 *
  22. *                                                                   *
  23. *   Take the selected wires (or wires passed in) and add pins to    *
  24. *  the floating end of that wire, based on the net information on   *
  25. *   the wire. The pin direction can be specified as an argument,    *
  26. *  and the pins to use are looked up using schPinMasters (the same  *
  27. * as the schematic editor create pin command uses to seed the form) *
  28. *                                                                   *
  29. ********************************************************************/

  30. procedure(abAddPinToFloatingWire([url=home.php?mod=space&uid=316438]@key[/url] (direction "input") (orientation "R90")
  31.         (pinUsage "schematic")
  32.         (wires geGetSelSet()))
  33.     let((netName cvId pinUnderneath pinOptions pinMasterInfo offsheet
  34.             pinMaster wireUnderneath)
  35.         ;----------------------------------------------------------------
  36.         ; Determine the pin master to use given the direction
  37.         ; and pinUsage (normally schematic)
  38.         ;----------------------------------------------------------------
  39.         offsheet=cadr(assoc(pinUsage car(schPinMasters)))
  40.         pinOptions=foreach(mapcar (usageInfo pinInfo)
  41.                 car(schPinMasters)
  42.                 cddr(assoc(direction schPinMasters))
  43.             cons(car(usageInfo) pinInfo)
  44.         )
  45.         pinMasterInfo=cdr(assoc(pinUsage pinOptions))
  46.         if(pinMasterInfo then
  47.             pinMaster=dbOpenCellViewByType(
  48.                 car(pinMasterInfo) cadr(pinMasterInfo) caddr(pinMasterInfo)
  49.             )
  50.             unless(pinMaster
  51.                 error("Could not open pin master %L\n" pinMasterInfo)
  52.             )
  53.         else
  54.             error("Could not find pin master for direction %L usage %L\n"
  55.                 direction pinUsage)
  56.         )
  57.         ;----------------------------------------------------------------
  58.         ; Determine cellView to create in from one of the wires
  59.         ;----------------------------------------------------------------
  60.         cvId=car(wires)~>cellView
  61.         ;----------------------------------------------------------------
  62.         ; Visit each wire and check that it's actually a wire (in case you
  63.         ; have selected other things on the schematic
  64.         ;----------------------------------------------------------------
  65.         foreach(wire wires
  66.             when(wire~>objType=="line" || wire~>objType=="path"
  67.                 netName=wire~>net~>name
  68.                 if(netName then
  69.                     foreach(point wire~>points
  70.                         pinUnderneath=dbShapeQuery(
  71.                             cvId
  72.                             "pin"
  73.                             list(point point)
  74.                         )
  75.                         ;------------------------------------------------
  76.                         ; Find any wires underneath that aren't this wire
  77.                         ;------------------------------------------------
  78.                         wireUnderneath=setof(
  79.                             shapeUnderneath
  80.                             dbShapeQuery(
  81.                                 cvId
  82.                                 "wire"
  83.                                 list(point point)
  84.                                 0
  85.                                 0
  86.                             )
  87.                             shapeUnderneath!=wire
  88.                         )
  89.                         unless(pinUnderneath || wireUnderneath
  90.                             schCreatePin(
  91.                                 cvId
  92.                                 pinMaster
  93.                                 netName
  94.                                 direction
  95.                                 offsheet
  96.                                 point
  97.                                 orientation
  98.                             )
  99.                         )
  100.                     )
  101.                 else
  102.                     warn("Selected wire does not have net name yet\n")
  103.                 )
  104.             )
  105.         )
  106.         dbClose(pinMaster)

  107.         t
  108.     )
  109. )
  110. hiSetBindKey( "Schematics" "<Key>F7" "abAddPinToFloatingWire()")



复制代码



abAddPinToFloatingWire_V2.txt

4.87 KB, 下载次数: 2 , 下载积分: 资产 -2 信元, 下载支出 2 信元

售价: 1 信元资产  [记录]

发表于 2023-11-16 14:07:06 | 显示全部楼层
适当print一些重要的中间结果看看?
 楼主| 发表于 2023-11-16 16:44:19 | 显示全部楼层


dugucloud 发表于 2023-11-16 14:07
适当print一些重要的中间结果看看?


好的, 谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-18 02:54 , Processed in 0.036181 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表