在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

采用ATL技術與數據結構轉換模塊實現原理圖解析器的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-05-03 08:48 ? 次閱讀

在原理圖設計過程中,有時候需要在不打開EDA工具的情況下訪問原理圖文件,詳細了解原理圖中的資源。如果設計人員通過第三方軟件而不是啟動一個龐大的EDA軟件就可以實現對原理圖內部資源訪問的話,會很大程度上減輕了對國外EDA軟件的依賴并提高效率。尤其對于不是直接進行原理圖設計的技術人員,如物料統計配送人員和原理圖審查人員更是如此。

實現的原理圖解析器使用ATL技術,將解析器包裝成一個標準的COM組件。該解析器主要針對Mentor公司的ViewDraw原理圖設計工具,可對ViewDraw設計生成的原理圖文件在不依賴ViewDraw的條件下進行分析,并將其底層數據進行格式轉換和整理歸納,然后以接口形式提供給客戶程序使用。

1 原理圖通用數據結構

在原理圖設計中,現在國外有很多種EDA工具,每種設計工具都有自己的底層數據組織結構。原理圖解析器采用了一種通用數據結構來兼容ViewDraw、EDIF200和Concept這3種原理圖設計的數據結構。文中在解析器前端采用的數據結構轉換模塊只針對ViewDraw的底層原理圖,解析器在工作時通過數據結構轉換模塊把ViewDraw的底層原理圖數據轉換為通用數據結構保存在內存中供解析器使用。

采用ATL技術與數據結構轉換模塊實現原理圖解析器的設計

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組件的開發效率。

采用ATL技術與數據結構轉換模塊實現原理圖解析器的設計

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

采用ATL技術與數據結構轉換模塊實現原理圖解析器的設計

(4)通過接口IFvdProj的方法ParseProj()生成目標原理圖的通用數據結構,并用原理圖接口IF—vdSchs接收其返回值如下:

采用ATL技術與數據結構轉換模塊實現原理圖解析器的設計

6 使用結果示例

下面這段程序統計了一頁原理圖中當前層的網絡數和包括所有底層后的網絡數,并且使用了對網絡的查找功能:

采用ATL技術與數據結構轉換模塊實現原理圖解析器的設計

程序的執行結果,如圖3所示。

7 結束語

文中描述了自行開發的基于ATL技術的原理圖解析器,介紹了系統的基本構成和接口的組織關系。另外,還對解析器的使用作了詳細說明,并在文中最后給出了一個實際使用的示例。原理圖解析器的開發得以在不使用國外EDA工具的情況下,方便地訪問原理圖資源,從而節約了大量的資金,并為國產EDA軟件的開發和市場化進行了有益的嘗試。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信
    +關注

    關注

    18

    文章

    6046

    瀏覽量

    136216
  • eda
    eda
    +關注

    關注

    71

    文章

    2773

    瀏覽量

    173509
  • C++
    C++
    +關注

    關注

    22

    文章

    2113

    瀏覽量

    73742
收藏 人收藏

    評論

    相關推薦

    XCP解析器如何組成的

    嗨,我正在嘗試用XCP為向量CANape生成一個.a2l。我使用的ASAP2工具支持ELF或COFF文件。XC16創建的COFF很大(>10MB),不知怎么搞砸了解析器。ELF沒有包含足夠
    發表于 04-22 12:57

    請問大神這種數據結構一般如何解析額?

    請問大神,這種數據結構一般如何解析額。。 不太懂。。
    發表于 06-10 09:27

    電子滅蠅電路原理圖解析

    電子滅蠅電路原理圖解析
    發表于 04-27 07:18

    分享一個命令解析器代碼實現

    一、介紹嵌入式里面經常會自己做命令行,這里分享一個命令解析器代碼實現二、代碼實現mycmd.c
    發表于 02-17 07:02

    基于黑板結構模式的XML解析器

    以協同工作平臺服務(CWPS)項目為研究背景,提出一種基于黑板結構模式的XML解析器的設計方案。分析傳統編譯的缺陷,給出XML解析器的軟件構架,闡述該構架的設計思想,探討關
    發表于 04-14 09:23 ?19次下載

    數據結構教程,下載

    1. 數據結構的基本概念 2. 算法與數據結構3. C語言的數據類型及其算法描述要點4. 學習算法與數據結構的意義與方法
    發表于 05-14 17:22 ?0次下載
    <b class='flag-5'>數據結構</b>教程,下載

    華碩電腦電路原理圖解析

    華碩電腦電路原理圖解析
    發表于 09-09 16:23 ?1527次下載

    TI最新C2000 MCU解析器套件替代昂貴的解析器至數字轉換解決方案

    德州儀器 (TI) 宣布推出首款支持解析器至數字解碼的可編程微控制 (MCU) 解決方案:C2000? MCU 解析器套件,能夠為機器人、伺服驅動、自動化、航空與交通運輸等各種工業
    發表于 04-16 17:34 ?1771次閱讀

    數據結構是什么_數據結構有什么用

    數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高
    發表于 11-17 14:45 ?1.6w次閱讀
    <b class='flag-5'>數據結構</b>是什么_<b class='flag-5'>數據結構</b>有什么用

    什么是數據結構?為什么要學習數據結構數據結構的應用實例分析

    本文檔的主要內容詳細介紹的是什么是數據結構?為什么要學習數據結構數據結構的應用實例分析包括了:數據結構在串口通信當中的應用,數據結構在按鍵
    發表于 09-26 15:45 ?14次下載
    什么是<b class='flag-5'>數據結構</b>?為什么要學習<b class='flag-5'>數據結構</b>?<b class='flag-5'>數據結構</b>的應用實例分析

    MIT開發新語義解析器應用于家用機器人

    美國麻省理工學院(MIT)的研究人員開發出一種語義解析器,該解析器通過模仿兒童學習語言的方式,將口語短語轉換為機器可理解的意思。該解析器會觀察一些帶標題的視頻,并將這些單詞與視頻中的對
    的頭像 發表于 11-14 16:36 ?2859次閱讀

    自己動手實現命令行解析器

    一、介紹嵌入式里面經常會自己做命令行,這里分享一個命令解析器代碼實現二、代碼實現mycmd.c
    發表于 12-22 18:51 ?13次下載
    自己動手<b class='flag-5'>實現</b>命令行<b class='flag-5'>解析器</b>

    構建BittWare的數據解析器

    BittWare的SmartNIC Shell和BittWare的Loopback Example的功能之一是一個數據解析器/分類,它可以從數據包中提取協議字段。通過這篇白皮書,我
    的頭像 發表于 08-02 08:03 ?950次閱讀
    構建BittWare的<b class='flag-5'>數據</b>包<b class='flag-5'>解析器</b>

    NetApp的數據結構是如何演變的

    統一數據跨分布式資源進行管理,以實現數據移動的一致性和控制,安全、可見性、保護和訪問。 本文定義了數據結構及其體系結構,討論了
    發表于 08-25 17:15 ?0次下載
    NetApp的<b class='flag-5'>數據結構</b>是如何演變的

    redis數據結構的底層實現

    Redis是一種內存鍵值數據庫,常用于緩存、消息隊列、實時數據分析等場景。它的高性能得益于其精心設計的數據結構和底層實現。本文將詳細介紹Redis常用的
    的頭像 發表于 12-05 10:14 ?639次閱讀
    主站蜘蛛池模板: 操的好爽视频| 色综合色综合色综合色综合| 久青草免费在线视频| 久久狼人综合| 国产高清成人| 亚洲成色999久久网站| 一级毛片视频在线| 91人成网站色www免费| 又粗又大撑满了好爽| 护士一级aaaaaa毛片| 亚洲综合一二三区| 李老汉的性生生活2| 一级毛片黄色片| 色中射| 欧美xxxx色视频在线观看免费| 午夜看大片| 日韩毛片视频| 精品你懂的| 永久免费观看午夜视频在线| 天堂在线www在线资源| 99插插| 久久在线播放| 特级做a爰片毛片免费看| 亚洲 欧美 日韩 综合| 四虎国产| 色天天综合网色鬼综合| 婷婷六月色| 欧美成人三级伦在线观看| 国产精品人成在线播放新网站| 天天宗合网| 天天舔天天操天天干| 福利在线播放| 日本不卡免费高清一级视频| 五月婷婷六月合| 精品三级在线观看| 手机看片福利盒子久久| tube69hdxxxx日本| 特级无码毛片免费视频尤物| 很色视频| 理论视频在线观看| 热久久久久久|