当前位置:首页 > 模拟 > 模拟
[导读]提出了一种以ATL(活动模板库)技术为平台的原理图文件解析器的系统架构及设计方法。在该系统中,使用ATL技术封装了原理图文件解析的全过程,并将原理图数据资源按照COM(组件对象模型)接口的要求进行了组织,使得解析器以一个COM组件的形式向客户程序提供服务。

原理图设计过程中,有时候需要在不打开EDA工具的情况下访问原理图文件,详细了解原理图中的资源。如果设计人员通过第三方软件而不是启动一个庞大的EDA软件就可以实现对原理图内部资源访问的话,会很大程度上减轻了对国外EDA软件的依赖并提高效率。尤其对于不是直接进行原理图设计的技术人员,如物料统计配送人员和原理图审查人员更是如此。
    实现的原理图解析器使用ATL技术,将解析器包装成一个标准的COM组件。该解析器主要针对Mentor公司的ViewDraw原理图设计工具,可对ViewDraw设计生成的原理图文件在不依赖ViewDraw的条件下进行分析,并将其底层数据进行格式转换和整理归纳,然后以接口形式提供给客户程序使用。

1 原理图通用数据结构
    在原理图设计中,现在国外有很多种EDA工具,每种设计工具都有自己的底层数据组织结构。原理图解析器采用了一种通用数据结构来兼容ViewDraw、EDIF200和Concept这3种原理图设计的数据结构。文中在解析器前端采用的数据结构转换模块只针对ViewDraw的底层原理图,解析器在工作时通过数据结构转换模块把ViewDraw的底层原理图数据转换为通用数据结构保存在内存中供解析器使用。

2 COM组件技术与ATL技术简介
    COM即组件对象模型,是由Microsoft提出的组件标准,是一种以组件为发布单元的对象模型,它不仅提供了组件之间进行交互的规范,也提供了实现交互的环境。组件之间的接口是组件软件的核心,因为接口是组件之间进行通信的基础。因此,软件组件应该遵循统一的标准,在同一软件中的组件必须使用同样的接口标准才能保证组件之间可以进行通信。COM就是这样一个为大家一致推崇的组件标准。组件对象之间进行交互的环境不依赖于任何特定的语言,所以COM也可以是不同语言协作开发的一种标准。
    ATL(Active Template Library)活动模板库,是Visual c++提供的一套基于模板的C++类库,利用这些模板库,可以建立小巧、快捷的COM组件程序。ATL使用了C++中的模板、多继承等高级技术,甚至还用到了STL。在Visual C++的编译环境中,对ATL的支持非常强大,所以采用ATL技术可以方便地实现COM组件的开发,但又不用过多的去考虑COM的底层技术,这样极大地提高了COM组件的开发效率。

3 系统构成
    原理图解析器,主要以数据格式转换模块和原理图通用数据结构模块,为系统构成的基础,按通用数据结构格式存储的原理图数据为数据资源,并在ATL技术平台下对这些数据资源进行规划和组织。解析器最终以COM组件的形式向外部客户程序提供服务。解析器提供了21个接口,81个方法,这些接口与原理图的主要构成对象一一对应。整个系统以下方式进行组织和运行的:
    (1)数据格式转换模块将原理图进行数据格式转换并以通用数据结构的格式存储于内存中,这个功能主要由工程接口IFvdProj实现;
    (2)按照接口的功能需求对原理图的数据资源进行归纳和整理,这里主要处理了器件、模块、管脚、网络(普通网络和总线网络)、网络段、连接等,还有这些物理实体的位置、标识及属性等;
    (3)对各种异常情况在组件内部进行了处理,并将相应的错误代码以函数值的形式返回,客户端可以用捕获COM异常的方法来获取这些错误代码。系统结构,如图l所示。

4 原理图解析器接口组织调用关系描述
   
原理图通用数据结构本身有着庞大复杂的组织结构,如果直接把通用数据结构以COM接口的形式提供给客户端,会使原理图解析器接口规模过大,信息零散且组织规律性较差。因此,必须对数据资源的提供方式进行规划。原理图解析器提供了,如图2所示的数据资源组织方式。

    该图列出了原理图解析器的21个接口和主要的调用关系,其中实线箭头表示从原理图组织结构上讲由上层对象调用下层对象,虚线箭头表示由下层对象调用上层对象。以器件和网络为核心介绍接口对数据资源的组织关系。
    (1)原理图——网络:由工程接口进入,生成目标原理图的通用数据结构,再调用单页原理图接口,由单页原理图接口中的GetNets()方法或GetAllNets()方法可以获取网络(包括普通网络和总线网络)集接口IFvdNets,通过该接口的Item()方法可以获取单个网络对应的接口。
    (2)原理图——器件:由工程接口进入,生成目标原理图的通用数据结构,再调用单页原理图接口,由单页原理图接口中的GetComps()方法或GetAllComps()方法可以获取器件(包括普通器件和模块)集合接口IFvdComps,通过该接口的Item()方法可以获取单个器件对应的器件接口IFvdComp。
    (3)由下层对象向上层对象的访问:例如可以通过一个器件管脚的接口IFvdCmpPin来获得该管脚所在的器件接口IFvdComp,而通过接口IFvd—Comp又可获取该器件所在的原理图页的接口IFvdSheet,通过接口IFvdSheet又可访问该原理图页的所有资源。在此需要说明,对于某一页确定的原理图,不管通过哪种途径来获取其对应的接口,这个接口可以提供的原理图资源总是相同的,这也是符合客观实际的。
    由以上分析可以看出,原理图解析器的这种接口组织调用关系支持了各种形式的对原理图资源的访问,同时也保持了信息的准确性和完整性。
    另外,为了方便用户使用,在原理图接口IF—vdSchs和单页原理图接口IFvdSheet的方法中还提供了器件和网络的查找功能:对于器件支持Refdes(器件的引用属J陛定义)和全路径uID(器件在原理理图中的唯一的标识)查找;对于网络支持Label值查找和全路径UID的查找。
    各接口说明如下:
    (1)IFvdAur:属性接口,获取属性名、属性值和属性的可见性;
    (2)IFvdAttrs:提供一个访问属性集合对象的接口,该属性集合对象内部包含一组属性对象的接口指针;
    (3)IFvdBox:外围框接口;
    (4)IFvdCmpPin:器件管脚接口,获取管脚所在器件、管脚属性集、管脚连接和管脚相连的symbol的管脚;
    (5)IFvdCmpPins:器件管脚集合接口,提供一个访问器件管脚集合对象的接口;
    (6)IFvdComp:器件接口,可获取各类子对象和内部属性;
    (7)IFvdComps:器件集合接口,提供一个访问器件集合对象的接口;
    (8)IFvdConnection:连接接口,可获取连接中的器件管脚、网络和网络段;
    (9)IFvdConnections:连接集合接口,提供一个访问连接集合对象的接口;
    (10)IFvdLabel:Label接口,获取Label的名字和可见性;
    (11)IFvdNet:网络接口,可获得各类子对象及内部属性;
    (12)IFvdNets:网络集合接口,提供一个访问网络集合对象的接口;
    (13)IFvdSymPin:Symbol管脚接口,可获得Symbol管脚的内部属性;
    (14)IFvdSymPins:Symbol管脚集合接口,提供一个访问Symbol管脚集合对象的接口;
    (15)IFvdPoint:位置坐标接口,获取位置的坐标值;
    (16)IFvdProj:解析原理图工程接口;
    (17)IFvdSheet:单页原理图接口,可获取单页原理图中各种对象及搜索器件和网络;
    (18)IFvdSch:原理图接口,可获得原理图中单页原理图的页数和原理图对象集合;
    (19)IFvdSegment:网络集合接口,可获取网络段属性集合和网络段所属的网络;
    (20)IFvdSegments:网络段集合接口,提供一个访问网络段集的接口;
    (21)IFvdSymbol:符号接口,获取内部管脚集和属性集。

5 调用方法说明
    原理图解析器是基于ATL技术而开发的,是一个符合COM标准的组件,因此在使用时要按照COM组件的使用规范。原理图解析器共有21个接口,其内部分别对应21个COM类。在这21个COM类中,只有原理图工程接口IFvdProj对应的类为可创建类,其余20个接口对应的类均为不可创建类。客户端程序都要以工程接口IFvdProj为入口点,通过创建解析器的组件实例来获取接口IFvdProj的地址指针,其它接口的获取都要从IFvdProj开始,通过接口提供的各种方法来获取。客户端建立组件,通过组件接口访问原理图资源的流程如下:
    (1)在系统上注册…原理图解析器组件PST.DLL;
    (2)在客户程序中使用“import”预处理指令导入PST.DLL:
    (3)创建解析器组件,并获取入口点接口IF

    
    (4)通过接口IFvdProj的方法ParseProj()生成目标原理图的通用数据结构,并用原理图接口IF—vdSchs接收其返回值如下:


6 使用结果示例
   
下面这段程序统计了一页原理图中当前层的网络数和包括所有底层后的网络数,并且使用了对网络的查找功能:

    程序的执行结果,如图3所示。

7 结束语
    文中描述了自行开发的基于ATL技术的原理图解析器,介绍了系统的基本构成和接口的组织关系。另外,还对解析器的使用作了详细说明,并在文中最后给出了一个实际使用的示例。原理图解析器的开发得以在不使用国外EDA工具的情况下,方便地访问原理图资源,从而节约了大量的资金,并为国产EDA软件的开发和市场化进行了有益的尝试。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

南京2022年10月17日 /美通社/ -- 日前《2022第三届中国高端家电品牌G50峰会》于浙江宁波落幕,来自两百余名行业大咖、专家学者共同探讨了在形势依然严峻的当下,如何以科技创新、高端化转型等手段,帮助...

关键字: LINK AI BSP 智能家电

模拟

31144 篇文章

关注

发布文章

编辑精选

技术子站

关闭