一种用于硬件设计的原理图审查方法 【技术领域】
本发明涉及通信领域硬件电路设计技术,特别是一种用于硬件设计的原理图审查方法。
背景技术
在通信领域的硬件设计中,用于电路原理图设计的电子设计自动化(Electronic Design Automatic,简称EDA)方法种类非常多,但由于这些工具的原理图都有各自的数据组织方式,因此需要通过对原理图进行审查以保证这些设计要求和规范。
为此,现有的解决方法有二种:一是对于不同的EDA工具开发不同的审查方法;二是通过EDA工具生成电子设计转换格式(Electronic Design InterchangeFormat,简称EDIF)文件,在另一个EDA工具上进行原理图审查。另外,有些EDA工具支持用户自定义设计规则,但这些规则和EDA工具有很强的依赖关系,脱离该EDA工具后,规则就无法使用。也就是说,这些设计经验是定义在各种EDA工具自己的数据结构上的。同时EDA工具对用户自定义设计规则的支持也是很有限的,很大程度上不能够满足不同用户的需求。
可见,不管是通过EDA工具自身还是通过专用的审查方法,都存在着如下缺点:
1、对不同的EDA工具开发的审查方法不具备通用性,设计经验无法有效继承,只能用文档描述,传递效率低,在EDA工具升级后审查方法也要重新开发。
2、一个EDA工具生成的原理图EDIF文件本身使用时绝大部分信息可以恢复,但是另一EDA工具使用时不能完整的恢复原理图,丢失信息比较严重。EDIF文件非常庞大,本身的组织结构也不便于原理图审查。
【发明内容】
本发明提供一种用于硬件设计的原理图审查方法,以解决现有审查方法通用性差的问题。
为解决上述问题,本发明方法包括下述步骤:
A、利用格式转换工具对电子设计自动化(EDA)工具的原理图进行转换,生成包含该原理图所有原始信息、并建立有展平地信号网络和元件的公共数据结构;
B、选定需要的审查规则;
C、由审查模块从公共数据结构中查找原理图的相关信息,并判断该信息是否与审查规则中定义的规范或要求相符,根据判断结果输出审查报告。
所述的方法,其中步骤A包括:
(1)根据原理图底层符号信息创建符号,判断基本元件原型是否存在,若不存在,则创建基本元件原型以存放符号,创建设计模块原型以存放符号和其底层设计页;
(2)判断原型所存放的设计库是否存在,不存在则创建设计库对象,以存放基本元件原型和设计模块原型;
(3)根据底层原理图设计页信息创建设计模块的底层设计分页和顶层分页;
(4)创建设计页中的基本元件实例,与库中的基本元件原型、符号建立对应关系;
(5)创建设计页中的设计模块实例,与库中的设计模块原型、符号建立对应关系;
(6)创建设计页中的网络连接关系,存放设计页中元件的管脚;
(7)对整个展平的工程,创建工程设计模块实例并和设计页中的设计模块建立对应关系,创建工程基本元件实例并和设计页中的基本元件建立对应关系,创建信号存放工程元件实例的管脚;
(8)创建原理图设计存放公共数据结构。
3、如权利要求2所述的方法,其特征在于还包括首先将原理图转换为电子设计转换格式(EDIF)文件的步骤。
4、如权利要求1所述的方法,其特征在于所述的公共数据结构至少包括设计页类、元件类、元件实例类和符号类。
5、如权利要求1或3所述的方法,其特征在于所述的公共数据结构采用基本元件原型和设计模块原型、设计模块分页、设计元件实例和高计模块实例、信号信息四级实现方式。
6、如权利要求1所述的方法,其特征在于所述的公共数据结构的物理存放方式为二进制文件。
7、如权利要求1所述的方法,其特征在于审查报告以特定格式的文本输出和/或以屏幕的方式输出。
本发明的优点在于:
1)绝大多数EDA工具的原理图文件格式都可以转换为公共数据结构,即使不能直接转换,也可以通过转换成EDIF文件来间接实现,从而保证了该数据结构的稳定性和适用性。
2)公共数据结构中包含了所有的原始信息,同时,按照逻辑关系建立了展平的数据结构,可以非常方便地用于审查。
3)原理图审查与EDA工具无关,审查方法建立在公共的数据结构上,只要结构不发生变化,审查规则就可以继续使用。这样原理图设计的标准化、典型电路应用的规范性等原理图设计经验就可以不断在一个平台上积累,大大提高了经验的共享和重用,提高了原理图审查的效率。
【附图说明】
图1为本发明的示意图;
图2为公共数据结构元件四级实现方式简图;
图3为从原理图工程生成公共数据结构的流程图;
图4为本发明审查方法示意图;
图5为输入管脚悬空审查流程图;
图6为标准电路审查流程图。
【具体实施方式】
请参考图1所示,从示意图可以看到:不同的EDA工具,如ViewDraw、Concept、Capture等,都有自己的原理图格式,这些格式转化成一个公共数据结构,从而使审查规则和设计经验的描述基于这个公共数据结构,排除审查软件对EDA工具的依赖性。
首先,本发明定义一个能完整描述不同EDA工具的原理图信息的公共数据结构;其次是开发对于不同EDA原理图格式到公共数据结构的转换工具;最后是开发基于公共数据结构的原理图审查方法。
参阅图2,本发明完整描述一个原理图设计工程使用的是四级实现方式,该方式对于各种EDA工具都适用。这种实现方式,借鉴了EDIF组织数据的方式,它以层次化方式将可重用的设计元件原型(基本元件原型和设计模块原型)封装到库中,对于设计模块分页描述其底层各页中的设计元件及其网络连接关系,在整个展平工程中描述所有的工程元件(即设计元件实例和设计模块实例)及信号(完全展平的网络)信息。这种方式虽层次较多,但能最大程度地共享各种共有信息,以最少的存储体现最大的信息量,便于工程的展平处理,同时此实现方式符合模块化设计的思想,原理图公共数据结构正是采用这种方式。
本发明中的展平是指经过分析处理,将原理图的分页、分层(引用)关系消除,在一个最顶层的数据结构中,完整描述各种器件具体对象的属性和网络连接关系。
公共数据结构完整地保存原理图的所有原始信息,并建立展平的信号网络和元件,为后续处理程序提供了相应的接口函数,可以方便地用于原理图的自动审查。本公共数据结构研究的基础是三种EDA工具:ViewDraw、Concept-HDL和Capture,在对三种EDA工具的底层格式和其输出的EDIF200格式进行研究对比的基础上,将原理图设计对象分为符号、元件、符号管脚、元件管脚、网络(电气连线)、总线;辅助原理图对象分为注释文本、点、线、矩形、圆、圆弧等。
对于各种EDA工具原理图格式都按照以下步骤生成公共数据结构:
1、准备设计库:进行原理图设计时,我们首先需要的是各种元件符号库或自定义符号。由于对于一个元件可以由不同的符号来描述(诸如常规符号,国标符号等),因此公共数据结构中的设计库将存放的是设计元件原型,设计元件原型中包含了符号映射表存储了它可以使用的所有符号,同时符号具有符号管脚,存放的是设计元件管脚的公有信息。对于自定义符号,我们将其封装到称之为UserLibrary的设计库中。
2、准备设计模块原型:对于设计模块原型,因它是将一定功能的原理图封装起来的设计元件原型,所以将会有一个设计页的集合。
3、准备单页原理图:这将调用设计元件原型到原理图中成为设计元件,同时绘制它们的连接关系。符号管脚此时便成为设计元件管脚,网络存放了设计元件管脚来体现连接关系。
4、生成原理图设计:当数据结构中对每一个原理图页都建立相应的对象以后,由于实际的设计中每一原理图页可能被多次使用,因此对页中的对象我们再提高一个层次成为各种实例,同时从顶层开始将所有连通的网络合并为信号,信号存放的是实例管脚对象来体现连接关系。到此原理图设计的公共数据结构生成。
所有的原理图设计对象将会有属性集合记录其属性信息。符号和设计页将会有图形集合记录图形信息。
经过以上四个步骤后将生成原理图公共数据结构,这个结构将使用多个C++类来完整描述原理图中的元件信息和属性信息,每个类的具体说明见表1。
表1类作用类作用CDesign设计类,用于工程中的一个设计CText文本类,用于注释文字CPage设计页类,用于一张CLabel标号类,用于元件,原理图设计页管脚和网络对象的名称或标号CLibrary库类,存放可重用的基本元件原型和设计模块原型CDot点类,用于描述图中的点CAttr属性类,用于对象的属性CLine线条类,用于图形线或电连线线段描述CSchObj属性类集合。用于对象属性的集合CBox矩形类,用于图中的矩形CFigObj图形共有信息类。存放图形(辅助原理图对象)的共有信息CArc圆弧类,用于图中的圆弧CGraph注释和图形集合类,用于注释和图形对象的集合CCircle圆类,用于图中的圆CSymPin符号管脚类,用于符号的管脚CNet网络类,描述设计页中的一个电气连接CSymbol符号类,用于存放元件共有的图形和属性信息CBus总线类,用于设计页中的总线也即CNet的集合CComp基本元件原型类,库中存放的基本元件的共有信息CSignal信号类,用于展平的网络CBlock设计模块原型类,库中存放的设计模块的共有信息COPin元件实例管脚类,用于工程中设计元件实例(COComp、COBlock)的管脚CPin设计元件管脚类,用于设计页中设计元件的管脚COComp基本元件实例类,用于基本元件在工程中的实例CCmpIns基本元件类,用于基本元件原型在设计页中的实例COBlock设计模块实例类,用于设计模块在工程中的实例CBlockIns设计模块类,用于设计模块原型在设计页中的实例
公共数据结构元件四级实现方式说明公共数据结构包含四个主要部分:设计页类、元件类、元件实例类、符号类,设计页类CDesign是公共数据结构的基础,由它来派生其他的各个类。表1中的子类都重载了父类的串行化函数,调用设计页类的串行化就把描述整个原理图工程的类都进行串行化得到二进制文件,这个文件就是公共数据结构的物理存在方式,如图2所示。
参阅图3,原理图工程到公共数据结构的类实现过程:
1、根据底层符号信息创建符号(CSymbol),判断原型(CComp、CBlock)是否存在,若不存在,则创建基本元件原型(CComp)以存放符号,创建设计模块原型(CBlock)以存放符号和其底层设计页;
2、判断原型所存放的设计库(CLibrary)是否存在,不存在则创建设计库对象,以存放基本元件原型和设计模块原型;
3、根据底层原理图设计页信息创建设计模块的底层设计分页和顶层分页(CPage);
4、创建设计页中的基本元件实例(CCmpIns),和库中的基本元件原型,符号建立对应关系;
5、创建设计页中的设计模块实例(CBlockIns),和库中的设计模块原型,符号建立对应关系;
6、创建设计页中的网络连接关系(CNet),存放设计页中元件的管脚(CPin);
7、对整个展平的工程,创建工程设计模块实例(COComp)和设计页中的设计模块建立对应关系,创建工程基本元件实例(COBlock)和设计页中的基本元件建立对应关系,创建信号(CSignal)存放工程元件实例的管脚(COPin);
8、创建原理图设计(CDesign)存放数据结构。
对于不同EDA原理图格式开发的公共数据结构转换工具都遵循图2的设计步骤。在制定了公共数据结构和开发了不同EDA工具原理图转换工具后,就可以开发基于公共数据结构的原理图审查方法,实现的流程如图3所示。
原理图审查的实现过程:对于某个EDA工具的原理图,首先分析原理图文件格式的构成,接着将该原理图转换为公共数据结构(将一个原理图工程转换成了一个二进制文件),然后选定需要审查的规则,审查软件访问数据库调出相应的规则或调用固化了的审查模块,对需要审查的元件、属性或是标准电路,审查模块从公共数据结构(二进制文件)中查找相应的元件、属性和电路信息,判断是否和规则中定义的原理图设计规范或要求相符,最后输出审查报告。
审查规则是指原理图设计中需要满足的规范和要求,一张原理图设计需要符合多条规则,审查过程中将逐条调用规则对原理图进行审查。如图5所示,检查器件输入管脚是否悬空情况的流程:首先,审查软件将先将待审查的原理图工程通过格式转换工具转换为公共数据结构,接着调用信息提取模块获得结构中所有的元件信息和管脚信息及连接信息,然后逐一判断每个输入管脚是否连接网络或其他元件,没有任何连接的管脚即为悬空管脚,输出这个管脚和其所在的元件信息到审查报告中。
参阅图6,标准电路审查的流程:审查软件先将待审查的原理图转换为公共数据结构,然后从数据库中下载规则(以公共数据结构的方式存储,此时的规则是指标准电路),然后调用标准电路审查模块通过匹配标准电路的核心器件,特征器件以及所有的特征网络对原理图进行审查,输出审查报告。
对于审查报告,以特定格式的文本输出和/或以屏幕的方式输出。
对于一些原理图,可以通过先转换成EDIF文件,然后再转换成公共数据结构的实现审查。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。