KLayout DRC输入层过滤器使用注意事项

KLayout DRC输入层过滤器使用注意事项

klayout KLayout Main Sources klayout 项目地址: https://gitcode.com/gh_mirrors/kl/klayout

关于DRC输入层过滤器的正确使用方式

在KLayout的DRC脚本中,用户经常需要从版图中提取特定层的数据进行处理。常见的提取方式包括使用层号/数据类型组合或层名称来指定目标层。然而,这两种方式在使用上存在一些需要注意的差异。

层指定方式的对比

传统上,KLayout支持两种层指定语法:

  1. 使用LayerInfo对象明确指定层号和数据类型
  2. 使用字符串格式指定层名称或层号/数据类型组合

例如,以下两种方式在理论上应该等效:

active = input(RBA::LayerInfo.new(43, 1, "active"))
active = input("active (43/1)")

然而,实际上第二种方式在最新版本的KLayout中会抛出错误。这是因为字符串格式的层过滤器语法已经演变为支持更复杂的多层选择功能。

多层输入过滤器的正确用法

现代KLayout版本中,字符串格式的层过滤器主要用于以下场景:

  1. 通配符选择:可以选择特定层的所有数据类型
# 选择层1的所有数据类型
l1_all = input("1/*")
  1. 多条件组合:可以同时选择多个层/数据类型组合
# 同时选择层1/0和层10/0
combined = input("1/0", "10/0")

因此,要实现最初的需求,正确的写法应该是:

active = input("active", "43/1")

最佳实践建议

  1. 优先使用层号/数据类型:在处理GDS或OASIS格式时,建议直接使用层号/数据类型组合,因为这些格式中:

    • GDS完全不支持层名称
    • OASIS中的层名称可能不唯一或不存在
    • 只有层号/数据类型组合能确保精确匹配
  2. 层名称的使用场景:层名称主要适用于CIF和DXF等基于名称的格式,或者当用户确实需要基于名称选择层时。

  3. 明确性优先:在关键脚本中,使用LayerInfo对象或明确的层号/数据类型组合可以提高代码的可靠性和可维护性。

通过理解这些差异和最佳实践,用户可以更有效地编写DRC脚本,避免常见的层选择错误。

klayout KLayout Main Sources klayout 项目地址: https://gitcode.com/gh_mirrors/kl/klayout

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殷希承

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值