ad16自动布线设置规则_【经验分享】Capital创新式设计规则应用分析

课题背景

        随着越来越多的汽车研发团队选择和应用Capital® 创新式设计流程,以及该流程在研发平台的深度应用,除了基本的软件功能应用之外,用户会逐步提出对设计自动化以及软件理解企业规则和规范的需求,Capital®创新式设计流程中的核心工具Capital Integrator™  的先天优势就逐渐体现出来了,Capital Integrator™ 的开放式应用环境、行业通用规则的先天植入使Capital®具备满足企业&行业规范的条件,本文着重对相关规则应用进行分析。

约束(Constraints)

       约束是可以应用于整个设计或设计中单个对象的声明。用户可以将其作为单个约束或规则的一部分来应用。例如(在Capital Integrator™ 中):“请勿在此处放置属性匹配Name = Battery的设备”。如果为插槽设置了此示例约束,则系统不会在该插槽中放置具有电池名称属性的设备。

e257bf4b87c99f2e7ad918edc588aab9.png

       Capital®创新式流程用户可以在Capital Integrator™ 中使用约束模板来定义约束。本主题下面列出的模板是Capital Integrator™ 中的标准模板。也可以使用Java编写自己的自定义约束并将其加载到Capital Integrator™ 中。有关编写和加载自定义约束的更多信息,请参阅Capital®安装的doc  plugin文件夹中的PluginDevelopment.pdf文档。一旦将自定义约束加载到Capital Integrator™ 中,就可以像使用标准约束一样使用它们。一个对象可以为它定义标准约束和定制约束。

规则(Rules)

        规则是一组约束,用户可以将它们应用于整个设计或图表中的单个对象。用户可以从Capital Integrator™ 或Capital Project中定义规则。在Capital Project中,用户可以在项目级别定义规则,也可以在系统级别定义规则库。用户可以将规则库添加到项目。有关定义规则库的更多信息,请参见Capital Project帮助系统。

69f12cec105795a9fa0243efce3ca920.png

Capital Integrator™ 中的对象规则层次结构

       用户可以为设计中的不同对象设置规则和约束,这意味着存在的规则和约束之间可能的冲突。因此,有以下通用层次结构确定在每个对象上使用哪个约束:

  • 捆绑层次-分支上的约束优先于线束上的约束。分支上的约束将覆盖设计上的约束。

  • 插槽等级-插槽上的约束将覆盖设计上的约束。

  • 孔位层级-孔位上的约束优先于插槽连接器上的约束。插槽连接器上的约束将覆盖插槽上的约束。插槽上的约束将覆盖设计上的约束。

  • 对接连接器孔位层次-对接连接器孔位上的约束优先于对接连接器上的约束。对接连接器上的约束将覆盖设计上的约束。对接连接器从设计继承规则和约束,但不从任何连接的线束继承约束。

Note:

       相同类型的约束(即,它们可能会冲突)使用下面描述的规则解析机制。不按任何特定顺序评估不同类型的约束(即,它们不直接冲突)。这通常不是问题,因为大多数约束无论如何都在不同的时间进行评估。但是,如果用户有不同但相关的约束,则可能会出现问题。例如,一个约束设置属性CSA,然后另一个约束使用CSA分配不同的属性/属性。在这种情况下,不能保证它可以正常工作, 需要多次重新评估(即触发)约束,以确保正确分配了它们。

1> 分层对象规则解析

以下规则解析在这些层次结构中垂直运行:

• 第一匹配获胜

      此解析在上面列出的层次结构中使用,从层次结构中的最低对象开始,一直向上进行,直到找到该对象的匹配约束,然后停止。

       例如,线束上的“最大焊接导线约束”优先于线束所属的线束上的“最大焊接导线约束”约束。

2> 同级对象规则解析

      如果对象具有相同类型的多个约束,但是在层次结构中的同一级别上具有不同的值,则将使用其他规则解析来评估规则:

• 最大值

       在这种情况下,在该层次结构级别上具有最大值的约束将覆盖该级别上的其他约束。遵循这种类型的规则解析的数字约束的示例包括:

a) 最小焊点分离

b) 每单位长度的导线成本

c) 焊点成本

f17a03c90f278128aa0a48bd78f16e86.png

2d5299d0b32889351e1a9947eb42460c.png

f0803dae2867be66a73e9acd4cdb83ba.png

       例如,分支的焊点成本约束为5,和另一个焊点约束成本为10。在这种情况下,焊点成本为10。

• 最小值

        在这种情况下,层次结构的该级别上具有最小值的约束将覆盖该级别上的其他约束。遵循这种类型的规则解析的数字约束的示例包括:

a) 每个焊点的最大导线数

b) 每个并压的最大导线数

02a4cfa67d2e5e2d4933a458afccef02.png

26b1925504e2777c0d59bfc09c5aaa03.png     

     例如,分支的约束条件为每个焊点的最大导线数= 10,约束条件为每个焊点最大导线数=5。在这种情况下,使用约束条件为每个焊点的最大导线数= 5。

• 不覆盖执行

       在这种情况下,在该层次结构中,布尔约束设置为“不执行”的任何实例都将覆盖该约束设置为“ Do”的另一个实例。遵循这种类型的规则解析的约束示例包括:

a) 按属性放置

b) 按属性布置线路

3d9c16c4a43641153b41905ac143bce6.png

• 按优先模式匹配

       对于设置属性或属性的约束,系统会根据约束与相关对象的匹配程度使用特殊的解析器。例如,如果约束之一完全匹配(即没有通配符),则这将覆盖基于通配符的更一般的匹配。同样,具有一些普通字符和一些通配符的约束会覆盖.*的默认匹配项。例如:诸如Name = Sig01之类的特定匹配会覆盖经过改进的通配符值,例如Name = Sig.*。但是,改进的通配符会覆盖广泛的默认值,例如Name =.*。

• 集体对象的作用

      一些规则评估基于单个对象层次结构。例如,如果捆绑包上有“焊点成本”约束,则系统仅需要评估捆绑包上的对象规则。但是,某些规则评估是基于规则对层次结构相同级别上的对象和层次结构其他级别上的对象的集体规则影响。

      例如:电线穿过线束上的两个区域。这些区域的导线每单位长度的成本约束具有不同的值。由于区域处于同一规则对象级别,因此系统将使用“最大值”规则解析对同一级别上的对象共同评估两个规则。此外,该系统在层次结构的其他级别上忽略任何单位长度的导线成本约束,因为它对层次结构中的对象使用“First Match Wins”规则解析。

在Capital Integrator™ 中创建约束定义策略

       开始使用此工具集时,建议用户创建用于定义和使用约束的有组织策略。这确保了整个车辆程序中约束的可重用性和一致性。

• 执行-Do:

        在层次结构中尽可能高地分配约束(即在设计和线束级别)。这避免了在多个对象上重复约束。

       定义使用逻辑对象上指定的属性/属性的约束。这可以使约束非常笼统,并且单个约束可以应用于多个对象。使用在符号上定义的属性,无需工程师记住要添加它。

• 不执行-Do not:

       定义使用对象名称的约束(除非绝对必要)。这些限制非常具体,可能需要不断进行编辑和管理。

1> 定义策略:

定义组织使用的初始约束的一种方法如下:

• 将可用的约束模板细分为影响区域:

o 放置

o 布线

o 导线合成

o 网络综合

o 接线规格

o 接地设计

• 依次考虑每个区域并确定要求:

o 用户对Capital Integrator™ 中合成结果的对象需要什么控制?

o 可能需要进行实验以确定如何实现所需的精确控制。自定义约束条件可以使这一过程变得更容易。

• 定义一般适用的约束:

o 尝试定义可以在设计级别应用的默认约束。

o 尝试定义可以一起应用的约束组(例如,作为规则)

• 期望随着时间的推移完善约束。

2> 放置位置约束策略

      设备到插槽中的放置受到以下主要限制的影响:

o 按属性/属性的选项位置

o 按属性/属性放置

6b6e1282a2ada4d00074dfeac51af72e.png

         默认情况下,在任何将设备放入具有相同名称的插槽的设计中都有一个放置规则。设备放置的策略有限。用户可以使用基于名称的放置策略或基于属性的放置策略。如果可能的话,请考虑使用符号属性来驱动放置,因为一旦避免错误就可以对其进行定义。使用一致的名称/属性以允许在整个车辆程序中重新使用放置规则也很好。自定义约束可以提供一些额外的灵活性。

3> 回路布线约束策略

       布线是综合的组成部分。控制每个信号通过车辆线束拓扑的路径。布线受到以下主要约束的影响:

o 按属性/属性布线

o 每单位长度的导线成本(请注意,默认情况下,导线的单位长度成本为1)

o 直插/接线盒的每根导线成本

beb5000da830aa5dbffb4380c8d2e6f2.png

       这些约束中的第一个提供了绝对的控制方法(例如,切勿将此路径用于此信号)。将第二个和第三个约束应用于信号的子集时,可以考虑将它们作为合成的提示(也就是说,如果可能的话,优选一条路径而不是另一条路径)。

       这些约束是不言自明的,没有很多可用的策略。但是,请注意,第一个约束可能完全阻止合成找到任何解。因此,用户可能希望在可能的地方使用其他约束。路由器会根据电线长度和成本找到最佳路由。但是,第一个约束对于使信号类别保持独立(例如,通过并行或相似路径)可能很有用。

      考虑使用第二个约束来限制某些需要使用昂贵电线类型(例如高温)的路径的使用,或者在路由通道的可用空间有限的情况下使用某些路径。

     第三个约束通常用于安全或接地信号,非常需要在单个线束中进行所有连接。

4> 导线合成约束策略

      根据焊点和并压导线的数量和位置来获得所需的综合解决方案可能是定义约束条件中最具挑战性的部分,导线的合成受到以下主要约束的影响:

o 焊点成本

o 每单位长度的导线成本

o 多线并压费用

o 对接件/接线盒的每线成本

o 每个并线最大导线数

o 每个焊点的最大导线数

o 最小焊点分离

0437b049616c00ba61d0bd33c94ed425.png

        前两个约束条件用于权衡导线长度与焊点成本。它们提供了对焊点创建的主要控制。默认情况下,系统假定焊点的成本为零,每单位长度的导线的成本为1。这意味着,它会根据需要使用尽可能多的焊点,以确保信号中没有重叠的导线(导致在需要三根导线的每个线束焊点处产生焊点)。随着焊点成本的增加(相对于单位长度导线的成本),系统倾向于减少焊点的数量并增加附加导线的数量。例如,如果最初将两个焊点放在相距100个单位的引出线上,则在系统有效组合这些焊点之前,用户需要焊点的成本比每单位长度导线的成本高100倍。一个焊点而不是两个)。

       并压导线约束(Multiterm)的成本相似,但是它控制了焊接和多项(Multiterm)之间的权衡。如上所述,随着焊点成本的增加,系统趋于增加重叠并压导线的数量。这可能会导致优先于焊接创建多个并压导线(Multiterm)。此约束可减少这种趋势(尽管通常大多数情况下使用“每个焊点的最大导线数”约束禁止使用并压导线)。

       通常根据物理或机械要求(例如,可用的焊点零件)来定义“每项的最大导线数”和“每个焊点的最大导线数”约束。它们通常用于为信号类别提供不同的控制(例如,电源和接地可以是多端的,而其他信号则不能)。这些约束条件也可以用来完全禁止焊点或多个术语(例如,湿区线束中无焊点)。

     最小焊点分隔符约束可能只需要一个默认规则(在设计上)来定义允许的间距。

5> 网络合成约束策略

       网络(例如LIN,CAN或FlexRay)通常需要非常具体的综合约束,以确保生成的布线符合网络规范。有四个约束:

o 网络终端

允许用户指定布线综合是否将逻辑引脚设置为“ IxO端接”以识别网络端。

c9a5e5ba7b45895ebfe52ba7d94a336c.png

o 网络规格

控制网络干线的多核或信号的路由。

f85bb2b0cb646e6363d2f940f617b5ae.png

o 菊花链网络规范

控制菊花链网络中的多核或信号的路由。

ef30884da7612fb4e5a477445426a959.png

o 菊花链网络组

05ddc389aa8cbe770e1dcb43af7c3213.png

        允许用户指定属于网络组的引脚,有关用于控制网络综合的对象属性和约束的更多详细信息(包括示例),请参阅“网络综合中的骨干网络”或“网络综合中的菊花链网络”。

6> 接线规格约束策略

导线规格受到以下约束的影响:

o 导线规格

o 焊点分离

o 多芯线规格

o 端子类型规格

o 电线的长度变化

d1ce20295d7de3b67b6c86899656a1ce.png

       在定义这些约束时,重要的是要考虑所有下游需求。在大多数情况下,应该可以使用默认设置(例如,在设计中)。例如,单个约束可以基于逻辑网上指定的值来设置导线属性。尽可能将约束应用于信号类别(例如,使用属性)。这为工程师设计系统提供了一种简单的机制,可以为对象分配有意义的值,而不必担心Capital Integrator™ 中的行为。

Capital Integrator™ 规则和约束的用法示例

1> 在布线综合过程中向导线,焊点和多芯线添加属性和属性的规则。

       用户可以在对象上设置规则,以便在布线综合过程中将特定的属性和属性添加到布线,焊点或多芯。属性和属性可以具有固定值,也可以具有从信号(或功能性多芯)的属性或属性派生而来的值,导线或焊点或多芯从该信号或属性布线。

a) 电线规格

      允许用户指定导线应具有固定值的属性或特性,或者从布线的信号的属性或特性派生的值。

      例如:Wire Spec: Wirecolor is ValueOf(color) where Signal matches Name=.*

      在这种情况下,导线具有Wirecolor属性,该属性的值是从信号的color属性值得出的。

b) 焊点规格

       允许用户指定一个焊点应具有固定值的属性或特性,或者应从路由该焊点的信号的属性或属性派生一个值。

       例如:Splice Spec: Type is ValueOf(splicetype) where Signal matches Name=.*

       在这种情况下,焊点的Type属性具有从信号的splicetype属性的值派生的值。

c) 多芯线规格

      允许用户指定拓扑多芯线应具有固定值的属性或属性,或者从路由拓扑多芯线的功能多芯线的属性或属性派生的值。

      例如:Multicore Spec: Sheath Type is ValueOf(type) where Multicore matches Name=.*

       在这种情况下,拓扑多芯线具有“护套类型”(Sheath Type)属性,该属性的值从功能性多芯线的type属性的值得出。

     以下设计规则检查可用于检查违反任何适用规范约束的电线/接头/多芯:

a) 违反规格规则的电线

b) 违反规格规则的接头

c) 违反规格规则的多芯线

2> 使用约束设置对象的属性和属性

       用户可以使用“在对象上设置综合设计的特性/属性”约束来在特定类型的对象上设置具有特定值的属性或属性。

a) 在设计或设计中的对象上设置“在对象上设置综合设计的特性/属性”约束。用户可以多次设置此约束,每次指定不同的对象类型和不同的属性/属性值。

应用的约束是:

Set Object Type AttrOrProp to Value where AttrOrProp = Value

其用法的一个示例是:

Set Wire Name to ValueOf(PartNumber) where EMC Category = A

在此示例中,如果电线的EMC类别属性为A,则该电线的“名称”属性将设置为其零件号值。

b) 要将一个或多个约束应用于图表,请按空格键,输入“应用”,然后选择“自动->应用”功能区操作。

3> 使用约束来管理跳线的长度

       用户可以管理由布线综合生成的跨接线的长度。跳线的默认长度为0.0。

程序:

a) 在进行布线综合之前,请对设计中的必要对象(连接器,孔,插槽或设计本身)设置“跳线的长度改变”约束。有关设置规则和约束的更多信息,请参见规则和约束概述。

b) 编辑约束。使用约束的示例如下:

Length change Absolute = 5.0 for jumper of signal matching Name = COND.*

      在此示例中,对于任何带有以COND开头的Name属性值传输信号的跳线,Length属性设置为5.0。

Length change Offset = 4.0 for jumper of signal matching Name = COND.*

      在此示例中,对于携带带有以COND开始的Name属性值的信号的任何跳线,Length属性设置为计算的图形长度加4.0。

4> 使用约束来管理电线的长度

      用户可以管理由布线综合生成的布线的附加长度。对于掉头导线,这对于增加导线长度很有用。

      应用程序是:

a) 在进行布线综合之前,请对设计中的必要对象(束区域,线束,线束或设计本身)设置“电线的长度变化”约束。有关设置规则和约束的更多信息,请参见规则和约束概述。

b) 使用约束的示例是:

Length change Absolute = 5.0 for wire of signal matching Name = COND.*

     在此示例中,对于任何带有以COND开始的Name属性值的信号传输的电线,Length属性设置为5.0。

Length change Offset = 4.0 for wire of signal matching Name = COND.*

      在此示例中,对于任何带有以COND开始的Name属性值的信号传输的电线,将Length属性设置为计算的图形长度加上4.0。

小结

Capital®提供了强大的企业规则植入功能,基于行业标准和规范,通过Capital Integrator™工具的自动合成功能,驱动自动合成满足企业规则和行业规范的结果,如果用户有企业特殊的规范和规则不在Capital®自带约束范围之内,也可以通过Capital®平台的开放的二次开发环境进行自定义规则进行合成驱动,通过定制方式满足用户的需求,提升设计效率和自动化。

996cf1781030166af0b61513b8135c1b.png

f32cfdb5ae14c039296af1732adf5951.png


版权声明:本文为weixin_39645308原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。