EDA365电子论坛网

标题: 十天学会Skill之第八天 [打印本页]

作者: deargds    时间: 2023-8-27 22:42
标题: 十天学会Skill之第八天
本帖最后由 deargds 于 2023-8-27 22:42 编辑

十天学会skill之第八天
By deargds
https://www.eda365.com
学习目的:了解常用约束规则类函数,学会读取和设置基本的约束规则

一,约束规则的开启状态获取
通过axlCNS*ModeGet类函数获取约束规则开启状态

axlCNSDesignModeGet:设计规则
axlCNSEcsetModeGet:电气规则
axlCNSPhysicalModeGet:物理规则
axlCNSSpacingModeGet:间距规则
axlCNSSameNetModeGet:同网络间距规则

以axlCNSPhysicalModeGet为例,示例代码如下:
1.获取支持的物理规则项
  1. axlCNSPhysicalModeGet(nil)
复制代码

2.获取所有物理规则开启状态
  1. axlCNSPhysicalModeGet('all)
复制代码

3.获取最小线宽检查项的开启状态
  1. axlCNSPhysicalModeGet('width_min)
复制代码

约束管理器中的物理规则开启状态选项界面:


二,约束规则的开启状态设置
通过axlCNS*ModeSet类函数设置约束规则开启状态

axlCNSDesignModeSet:设计规则
axlCNSEcsetModeSet:电气规则
axlCNSPhysicalModeSet:物理规则
axlCNSSpacingModeSet:间距规则
axlCNSSameNetModeSet:同网络间距规则

axlCNSPhysicalModeSet为例,示例代码如下:
1.开启所有物理规则检查项
  1. axlCNSPhysicalModeSet('all 'on)
复制代码

2.开启最小线宽检查项
  1. axlCNSPhysicalModeSet('width_min 'on)
复制代码

3.批量开启物理规则检查项
  1. axlCNSPhysicalModeSet('(bbvia_stagger_max bbvia_stagger_min) 'on)
复制代码

三,约束规则的检查值获取

axlCNSDesignValueGet:设计规则
axlCNSEcsetValueGet:电气规则
axlCNSGetPhysical:物理规则
axlCNSGetSpacing:间距规则
axlCNSGetSameNet:同网络间距规则

axlCNSGetPhysical为例,示例代码如下:
1.获取"50-OHM"物理规则的TOP层最小线宽值
  1. axlCNSGetPhysical("50-OHM" "TOP" 'width_min)
复制代码

2.获取"50_OHM"物理规则TOP层的所有检查值
  1. axlCNSGetPhysical("50-OHM" "TOP" nil)
复制代码

四,约束规则的检查值设定

axlCNSDesignValueSet:设计规则
axlCNSEcsetValueSet:电气规则
axlCNSSetPhysical:物理规则
axlCNSSetSpacing:间距规则
axlCNSSetSameNet:同网络间距规则

axlCNSGetPhysical为例,示例代码如下:
1.将"50-OHM"物理规则的TOP层最小线宽值设置为7
  1. axlCNSSetPhysical("50-OHM" "TOP" 'width_min 7)
复制代码

1.将"50-OHM"物理规则的所有层最小线宽值设置为6
  1. axlCNSSetPhysical("50-OHM" nil 'width_min 6.0)
复制代码

五,其它常用约束规则函数
1.获取当前设计中定义的物理规则列表
  1. axlCnsList('physical)
复制代码

获取的列表如下:


2.获取当前设计中定义的间距规则列表
  1. axlCnsList('spacing)
复制代码

3.获取当前设计中定义的电气规则列表
  1. axlCnsList('electrical)
复制代码

4.获取当前设计中定义的SameNet间距规则列表
  1. axlCnsList('sameNet)
复制代码

5.获取指定物理规则的VIA列表
  1. axlCnsGetViaList("50-OHM")
复制代码

6.创建物理规则
  1. axlCNSCreate('physical "50-OHM" nil)
复制代码

7.创建间距规则
  1. axlCNSCreate('spacing "50-OHM" nil)
复制代码

8.创建SameNet间距规则
  1. axlCNSCreate('sameNet "50-OHM" nil)
复制代码

9.批量更新规则设置
  1. axlCNSMapClear()
  2. axlCNSSetPhysical("50-OHM" nil 'width_min 6.0)
  3. axlCNSSetPhysical("100-OHM" nil 'width_min 4.0)
  4. ;...其它规则设置操作
  5. axlCNSMapUpdate()
复制代码

总结:以上仅对常用约束规则函数进行介绍,实际开发中还会涉及到区域规则,NET CLASS,DIFF PAIR,Match Group等操作,可以在熟悉基础操作之后再作进一步的拓展。


作者: aarom    时间: 2023-8-27 22:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhang1990    时间: 2023-8-28 00:03
学习了 !!!!!!
作者: 后青春继续传说    时间: 2023-9-1 17:21
支持!写得很详细!支持原创文章!
作者: 苦咖啡    时间: 2023-9-7 10:46
感谢楼主,支持
作者: zwzlove    时间: 2023-9-27 10:34
学习了 !!!!!!
作者: 子木_eda    时间: 2023-10-20 16:44

感谢楼主,支持
作者: 侏罗纪    时间: 2023-11-8 14:28
请问第九天和第十天的有吗
作者: Dc2024061241a    时间: 2024-7-22 14:31
学习学习,赞
作者: Dc2024061241a    时间: 2024-7-23 20:03
感谢分享,赞

作者: 雞翅加辣    时间: 2024-8-6 17:36
樓主請收下我的膝蓋,並期待您繼續更新!
謝謝您
作者: 式试1813    时间: 2025-4-22 14:16
期待9和10,啦啦啦啦啦啦




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2