wangjicheng886的个人空间 https://blog.eetop.cn/1774723 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

快速切换LSW中当前输入层

热度 2已有 612 次阅读| 2023-5-18 15:27 |系统分类:芯片设计| SKILL学习资料

注:数据来源“小目老师” “IC技术搬运工”

https://mp.weixin.qq.com/s/qxZB4m2CG69nmannkSiT5w


这个小脚本的功能是帮助用户在layout过程中把LSW中的entry layer(输入层)设置为当前版图中的选中层。


下面介绍的脚本可以帮助大家解决一部分困惑,如果在layout过程中需要切换LSW的entry layer,而恰好当前layout中就有需要用到的层,那么用户就可以通过下面两个步骤实现LSW层的快速切换:

  • 先在版图中点击选中需要使用的层,注意只能是可以被单独选中的层,除此之外的instance、group等都不行。

  • 按下快捷键,LSW中的entry layer将自动切换到上一步中选中的层。

以上功能的脚本实现包含两个步骤,首先是获取当前版图中选中层的信息,然后使用函数切换LSW中的entry layer,具体在下面介绍。

介绍脚本前,首先了解一下版图中layer的属性,依然使用「~>?」运算符查看对象的属性,这里举了一个例子:

Image


函数:

geGetSelSet()

selected_layer=car(geGetSelSet())~>?

selected_layer=car(geGetSelSet())~>lpp



可以看到,对于一个选中的层包含很多属性,本次脚本中使用的是「lpp」属性,该属性值是一个列表,包含layer的名称和用途信息。

Image


获取完layer的信息之后,使用函数pteSetActiveLpp(),更改LSW中当前entry layer的信息即可。


/**********************************************************************

*author     :   Write by Official Wechat Account: ICSkillSharing

*date       :   2020-06-15

 *function   :   Change current entry layer quickly by select layer

 **********************************************************************/

 

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 ;;; start change current entry layer quickly

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;;; bindkeys

hiSetBindKeys("Layout" 

   list(

        list("Shift<Key>L" "change_entry_layer_quickly_cb()")

   )

)


procedure( change_entry_layer_quickly_cb( )

    let(

        ( 

            selected_layer

      )

        selected_layer = car(geGetSelSet())~>lpp

        if(selected_layer then

            pteSetActiveLpp( strcat(nth(0 selected_layer) " " nth(1 selected_layer)) )

        else

            warn("Select a valid layer please! \n");select a valid layer

        );if

    ) ;let

) ; procedure


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; end change current entry layer quickly

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


函数:

 pteSetActiveLpp()




如果觉得使用脚本不方便,可以直接在快捷键中定义该功能。

hiSetBindKeys("Layout" 

    list(

        list("Shift<Key>L" "pteSetActiveLpp( strcat(nth(0 car(geGetSelSet())~>lpp) \" \" nth(1 car(geGetSelSet())~>lpp)) )")

    )

)


2

点赞

刚表态过的朋友 (2 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 28

    粉丝
  • 7

    好友
  • 19

    获赞
  • 8

    评论
  • 131

    访问数

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

GMT+8, 2024-6-20 04:19 , Processed in 0.043793 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部