掌桥专利:专业的专利平台
掌桥专利
首页

一种EDA模型按照连通域分Nets的实现方法

文献发布时间:2024-04-18 19:58:30


一种EDA模型按照连通域分Nets的实现方法

技术领域

本发明涉及领域,尤其涉及一种EDA模型按照连通域分Nets的实现方法。

背景技术

按照连通域分Nets,是EDA模型数据仿真的一个重要功能,它可以自动识别导体,同时相互接触的多个导体会被识别成一个Net。设计者可以通过高亮Net、改变Net颜色、隐藏Net等操作来进行电子器件连通关系设计与检查。在电子器件数以万计的EDA模型中,分Nets功能极大的帮助了设计者识别模型中连通网络,进行模型的开路和短路检查,加速了产品的推出。芯和三维电磁场仿真软件Hermes可以很好地支持上述功能,不仅支持自动分Nets,还支持新建、删除、合并Nets。其中自动分Nets是基于广度优先遍历算法,快速计算出电子器件Trace、Pin、Pad、Drill、Via、Shape等在结构上的关系,形成Nets网络,并进行去重和合并,保证Nets的原有类型:Ground、Power、Signal不改变,最后形成相互独立的连通网络组,供设计者方便地检查和设计。而新建、删除、合并Nets是支持手动增加Nets,将已有的Nets结构删除,和将已有的两个或以上的Nets合并,使之成为一个Nets连通网络分组。

现有的技术,有的仅仅支持自动分Nets,有的仅仅支持手动添加Nets,不够灵活全面。芯和三维电磁场仿真软件Hermes支持EDA模型数据自动分Nets,自动检查模型中按照连通域形成的网络,提供了对模型进行开路、短路检查的方法。如果本应该是一个连接网络,而模型自动分Nets分成了两个或者多个Net,说明模型存在开路。如果本该是两个或多个连接网络,自动分Nets分成了一个Net,说明模型存在短路。除此之外,Hermes可以对每个Net单独进行显示与隐藏操作,并且可以更改颜色,可以新增Nets、删除Nets、合并Nets,可以方便的对Nest连通网络进行放大和查看。这些功能使得用户无需对电子器件一个个判断材料类型,无需将导体一个个进行放大,进行两个导体的结构是否连通的判断。而是一步操作,模型自动判断导体并且自动划分连接网络,同时保持原有Nets的类型和名称,极大得方便了设计。

发明内容

鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种EDA模型按照连通域分Nets的实现方法。

根据本发明的一个方面,提供了一种EDA模型按照连通域分Nets的实现方法,所述实现方法包括:

步骤S1:筛选有效数据;

步骤S2:遍历所述有效数据;

步骤S3:进行Net的去重与合并;

步骤S4:判断是否存在原始Nets,如果是,执行步骤S5;否则,执行步骤S6;

步骤S5:用原始Nets数据对自动分Nets的数据进行设定;

步骤S6:对没有设定过的分Nets数据按照规则进行设定;

步骤S7:更新元器件的Net属性和颜色,更新视图。

可选的,所述步骤S1:筛选有效数据具体包括:根据材料类型筛选有效数据,只有材料为导体时,加入待查找的集合S1。

可选的,所述步骤S2:遍历所述有效数据具体包括:

步骤S21:遍历所述有效数据;

步骤S22:判断所述有效数据是否已经查找过,如果是,返回步骤S2;否则,继续执行步骤S4;

步骤S23:采用BFS广度优先遍历;

步骤S24:加入自动分Net的清单列表;

步骤S25:判断遍历操作是否完成,如果是,执行步骤S3;否则,继续返回步骤S2.

可选的,所述步骤S3:进行Net的去重与合并具体包括:新增、合并和删除Nets的操作。

可选的,所述新增Net具体包括:

用户手动增加Net分组,并指定Net名称和类型;

选择目标结构,并指定所述目标结构的Net分组为新增的Net,新增一个连通域。

可选的,所述合并Nets操作具体包括:用户可手动将两个或多个Net合并为一个Net,成为一个连通域。

可选的,所述删除Nets的操作为用户可批量删除Nets,连同电子器件一起从设计图中删除。

本发明提供的一种EDA模型按照连通域分Nets的实现方法,所述实现方法包括:步骤S1:筛选有效数据;步骤S2:遍历所述有效数据;步骤S3:进行Net的去重与合并;步骤S4:判断是否存在原始Nets,如果是,执行步骤S5;否则,执行步骤S6;步骤S5:用原始Nets数据对自动分Nets的数据进行设定;步骤S6:对没有设定过的分Nets数据按照规则进行设定;步骤S7:更新元器件的Net属性和颜色,更新视图。实现了对模型的导体连通性自动识别并分组,还能够手动设置连通域分组,进行合并、删除、新增连通域。辅助对模型数据的检查判断。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种EDA模型按照连通域分Nets的实现方法的流程图;

图2为本发明实施例提供的广度优先遍历的查找过程示意图;

图3为本发明实施例提供的用原始Nets数据对自动分Nets数据进行设置的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。

下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。

如图1所示,一种EDA模型按照连通域分Nets的实现方法,包括:

步骤S1:筛选有效数据;

步骤S2:遍历所述有效数据;

步骤S3:进行Net的去重与合并;

步骤S4:判断是否存在原始Nets,如果是,执行步骤S5;否则,执行步骤S6;

步骤S5:用原始Nets数据对自动分Nets的数据进行设定;

步骤S6:对没有设定过的分Nets数据按照规则进行设定;

步骤S7:更新元器件的Net属性和颜色,更新视图。

自动分Nets操作:根据材料类型筛选有效数据,只有材料为导体时,加入待查找的集合S1,对集合S1中的每个元素进行遍历,通过广度优先遍历算法查找连通的所有Trace、Pin、Pad、Drill、Via、Shape电子器件,形成一个个Net。

图2为广度优先遍历算法的查找过程示意图,S1的数据包含A、B、C、D、E、......O、P等16个器件数据。为避免重复查找,提高算法效率,已经查找过的数据会被标识为已查找。例如从A开始查找,将数据A加入待查找队列QueueKeys中。进入QueueKeys是否有元素的循环判断,没有元素说明从A开始的查找已经结束,有元素则说明查找未完成,还有接触的结构没有进一步查找。

具体过程如下:

2.1从待查找队列中取出数据A,找到与A连通的数据A、B、C。此时数据A标识为已查找,将A加入已查找数据集AlreadySet中。判断数据B和C,还没有被查找过,也就是AlreadySet中不存在数据B和C。则将数据B和C加入待查找队列QueueKeys。此时AlreadySet中剩下元素A,QueueKeys剩下元素B和C。

2.2继续从待查找队列QueueKeys中取出数据B,找到与B接触的材料类型为导体的数据B、D、E。此时数据B标识为已查找,将B加入已查找数据集AlreadySet。判断数据D和E,AlreadySet中不存在数据D和E,则将数据D和E加入待查找队列QueueKeys。此时AlreadySet中剩下元素A、B,QueueKeys剩下元素C、D、E。

2.3继续从待查找队列QueueKeys中取出数据C,除了C之外找不到与C接触的任何元素。此时数据C标识为已查找,将数据C从待查找队列中去除,并将C加入已查找数据集AlreadySet。此时AlreadySet中剩下元素A、B、C,QueueKeys剩下元素D、E。

2.4继续从待查找队列QueueKeys中取出数据D,找到与D接触的材料类型为导体的数据D、B、F。此时数据D标识为已查找,将数据D加入已查找数据集AlreadySet。判断数据B和F,AlreadySet中不存在数据F,则将数据F加入待查找队列QueueKeys。数据B已经被查找过,不做任何数据处理。此时AlreadySet中剩下元素A、B、C、D,QueueKeys剩下元素E、F。

2.5继续从待查找队列QueueKeys中取出数据E,找到与E接触的材料类型为导体的数据E、B、F。此时数据E标识为已查找,将数据E加入已查找数据集AlreadySet。判断数据B和F,AlreadySet中不存在数据F,则将数据F加入待查找队列QueueKeys。数据B已经被查找过,不做任何数据处理。此时AlreadySet中剩下元素A、B、C、D、E,QueueKeys剩下元素F。

2.6继续从待查找队列QueueKeys中取出数据F,找到与F接触的材料类型为导体的数据F、D、E。此时数据F标识为已查找,将F加入已查找数据集AlreadySet。判断数据D和E,AlreadySet中都已经存在,不做任何数据处理。此时AlreadySet中剩下元素A、B、C、D、E、F,QueueKeys中没有剩余元素。

经过步骤2.1~2.6,S1中从A开始查找的最终成果是找到了A~F这6个数据形成的的一个连接网络AutoNet1。

S1中包含16个元素,上面的步骤已经查找了数据A,接下来对剩余元素进行查找时,发现元素B、C、D、E、F已经全部查找过,可以直接跳过,提升了效率,缩短了查找时间。接下来的的查找根据第2步的方法,可以找出AutoNet2、AutoNet3、AutoNet4。

对AutoNet1、AutoNet2、AutoNet3、AutoNet4进行合并和去重。对于两个Net有共同元素的情况,需要将两个Net进行合并,成为一个Net。最终得到的,就是Nets间彼此没有共同元素的连接网络。每个自动分Net含有元器件链表DataListAuto,建立自动分Net与元器件链表DataListAuto的映射表MapAuto。

对于模型中已经有Nets数据的情况,自动分Nets后要保持原有的Nets类型和名称不改变。原始Nets网络记为NetList,每个原始的Net含有元器件链表DataList,建立原始Net与元器件链表DataList的映射表MapOld。要用原始Nets数据NetList对MapAuto的数据进行设置。具体做法如下:

5.1图3是原始的Net和自动分Net新生成的数据示意图,遍历MapOld,对每个原始的Net查找其对应的DataList是否和自动分Nets中的DataListAuto任何一个元素存在包含关系,如果满足包含关系,则建立该原始Net与自动分Net的映射关系。如果有多个自动分Net的DataListAuto中的元素被包含,选择DataListAuto数量最多的那个。

如图3的例子最终每一个原始Net都有新的Net相对应,生成映射数据包含Net1-AutoNet1,Net2-AutoNet2,Net3-AutoNet2键值对,以这些映射关系构建映射表MapOldAuto。

5.2遍历NetList,通过MapOldAuto找到其对应的自动分Net,将原始Net的名称、类型、颜色信息设置到自动分Net中。如果自动分Net已经被设置过,则不再进行覆盖设置。图2的示例中AutoNet1将被设置为和Net1的名称、类型、颜色等数据一致,AutoNet2将被设置为和Net2的数据一致。

5.3遍历自动分Net数据MapAuto,如果Net已经在上一步设置过数据,并且不存在与其重名的Net,则不用做数据修改。否则将对自动分Net进行命名和类型设定,命名规则是“unnamed-”加上自增的数字后缀,保证命名的唯一性。类型统一设置为Signal类型。

5.4最终根据原始Nets的数据对自动分Net数据设置后的结果,对元器件的颜色和Net属性进行统一修改,更新设计视图。

6、新增、合并、删除Nets操作:新增Net指的是用户手动增加Net分组,并指定Net名称和类型,然后选择目标结构,指定目标结构的Net分组为刚才新增的Net,即可新增一个连通域。合并Nets指的是将两个或多个Net合并为一个Net,成为一个连通域。删除Nets操作可批量删除Nets,连同电子器件一起从设计视图中删除。

有益效果:本发明实现了对模型的导体连通性自动识别并分组,还手动设置连通域分组,进行合并、删除、新增连通域。辅助对模型数据的检查判断。对模型的开路或者短路情况有直观清晰的展示,让设计者有清晰的了解。不必在复杂的模型设计中,对元器件一个个进行检查判断。

以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于.Net程序集实现PCB分板程序轨迹绘制方法
  • Net平台下基于属性标签和配置文件的Xml序列化模型实现方法
技术分类

06120116501851