• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 模擬技術 > 設計應用 > 基于ATL技術原理圖解析器的開發(fā)

    基于ATL技術原理圖解析器的開發(fā)

    作者: 時間:2009-08-21 來源:網(wǎng)絡 收藏
    設計過程中,有時候需要在不打開EDA工具的情況下訪問文件,詳細了解中的資源。如果設計人員通過第三方軟件而不是啟動一個龐大的EDA軟件就可以實現(xiàn)對原理圖內(nèi)部資源訪問的話,會很大程度上減輕了對國外EDA軟件的依賴并提高效率。尤其對于不是直接進行原理圖設計的技術人員,如物料統(tǒng)計配送人員和原理圖審查人員更是如此。
    實現(xiàn)的原理圖使用技術,將包裝成一個標準的COM組件。該主要針對Mentor公司的ViewDraw原理圖設計工具,可對ViewDraw設計生成的原理圖文件在不依賴ViewDraw的條件下進行分析,并將其底層數(shù)據(jù)進行格式轉(zhuǎn)換和整理歸納,然后以接口形式提供給客戶程序使用。

    1 原理圖通用數(shù)據(jù)結(jié)構(gòu)
    在原理圖設計中,現(xiàn)在國外有很多種EDA工具,每種設計工具都有自己的底層數(shù)據(jù)組織結(jié)構(gòu)。原理圖解析器采用了一種通用數(shù)據(jù)結(jié)構(gòu)來兼容ViewDraw、EDIF200和Concept這3種原理圖設計的數(shù)據(jù)結(jié)構(gòu)。文中在解析器前端采用的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換模塊只針對ViewDraw的底層原理圖,解析器在工作時通過數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換模塊把ViewDraw的底層原理圖數(shù)據(jù)轉(zhuǎn)換為通用數(shù)據(jù)結(jié)構(gòu)保存在內(nèi)存中供解析器使用。

    本文引用地址:http://www.czjhyjcfj.com/article/188725.htm

    2 COM組件技術與技術簡介
    COM即組件對象模型,是由Microsoft提出的組件標準,是一種以組件為發(fā)布單元的對象模型,它不僅提供了組件之間進行交互的規(guī)范,也提供了實現(xiàn)交互的環(huán)境。組件之間的接口是組件軟件的核心,因為接口是組件之間進行通信的基礎。因此,軟件組件應該遵循統(tǒng)一的標準,在同一軟件中的組件必須使用同樣的接口標準才能保證組件之間可以進行通信。COM就是這樣一個為大家一致推崇的組件標準。組件對象之間進行交互的環(huán)境不依賴于任何特定的語言,所以COM也可以是不同語言協(xié)作開發(fā)的一種標準。
    (Active Template Library)活動模板庫,是Visual c++提供的一套基于模板的C++類庫,利用這些模板庫,可以建立小巧、快捷的COM組件程序。ATL使用了C++中的模板、多繼承等高級技術,甚至還用到了STL。在Visual C++的編譯環(huán)境中,對ATL的支持非常強大,所以采用ATL技術可以方便地實現(xiàn)COM組件的開發(fā),但又不用過多的去考慮COM的底層技術,這樣極大地提高了COM組件的開發(fā)效率。

    3 系統(tǒng)構(gòu)成
    原理圖解析器,主要以數(shù)據(jù)格式轉(zhuǎn)換模塊和原理圖通用數(shù)據(jù)結(jié)構(gòu)模塊,為系統(tǒng)構(gòu)成的基礎,按通用數(shù)據(jù)結(jié)構(gòu)格式存儲的原理圖數(shù)據(jù)為數(shù)據(jù)資源,并在ATL技術平臺下對這些數(shù)據(jù)資源進行規(guī)劃和組織。解析器最終以COM組件的形式向外部客戶程序提供服務。解析器提供了21個接口,81個方法,這些接口與原理圖的主要構(gòu)成對象一一對應。整個系統(tǒng)以下方式進行組織和運行的:
    (1)數(shù)據(jù)格式轉(zhuǎn)換模塊將原理圖進行數(shù)據(jù)格式轉(zhuǎn)換并以通用數(shù)據(jù)結(jié)構(gòu)的格式存儲于內(nèi)存中,這個功能主要由工程接口IFvdProj實現(xiàn);
    (2)按照接口的功能需求對原理圖的數(shù)據(jù)資源進行歸納和整理,這里主要處理了器件、模塊、管腳、網(wǎng)絡(普通網(wǎng)絡和總線網(wǎng)絡)、網(wǎng)絡段、連接等,還有這些物理實體的位置、標識及屬性等;
    (3)對各種異常情況在組件內(nèi)部進行了處理,并將相應的錯誤代碼以函數(shù)值的形式返回,客戶端可以用捕獲COM異常的方法來獲取這些錯誤代碼。系統(tǒng)結(jié)構(gòu),如圖l所示。

    4 原理圖解析器接口組織調(diào)用關系描述
    原理圖通用數(shù)據(jù)結(jié)構(gòu)本身有著龐大復雜的組織結(jié)構(gòu),如果直接把通用數(shù)據(jù)結(jié)構(gòu)以COM接口的形式提供給客戶端,會使原理圖解析器接口規(guī)模過大,信息零散且組織規(guī)律性較差。因此,必須對數(shù)據(jù)資源的提供方式進行規(guī)劃。原理圖解析器提供了,如圖2所示的數(shù)據(jù)資源組織方式。

    該圖列出了原理圖解析器的21個接口和主要的調(diào)用關系,其中實線箭頭表示從原理圖組織結(jié)構(gòu)上講由上層對象調(diào)用下層對象,虛線箭頭表示由下層對象調(diào)用上層對象。以器件和網(wǎng)絡為核心介紹接口對數(shù)據(jù)資源的組織關系。
    (1)原理圖――網(wǎng)絡:由工程接口進入,生成目標原理圖的通用數(shù)據(jù)結(jié)構(gòu),再調(diào)用單頁原理圖接口,由單頁原理圖接口中的GetNets()方法或GetAllNets()方法可以獲取網(wǎng)絡(包括普通網(wǎng)絡和總線網(wǎng)絡)集接口IFvdNets,通過該接口的Item()方法可以獲取單個網(wǎng)絡對應的接口。
    (2)原理圖――器件:由工程接口進入,生成目標原理圖的通用數(shù)據(jù)結(jié)構(gòu),再調(diào)用單頁原理圖接口,由單頁原理圖接口中的GetComps()方法或GetAllComps()方法可以獲取器件(包括普通器件和模塊)集合接口IFvdComps,通過該接口的Item()方法可以獲取單個器件對應的器件接口IFvdComp。
    (3)由下層對象向上層對象的訪問:例如可以通過一個器件管腳的接口IFvdCmpPin來獲得該管腳所在的器件接口IFvdComp,而通過接口IFvd―Comp又可獲取該器件所在的原理圖頁的接口IFvdSheet,通過接口IFvdSheet又可訪問該原理圖頁的所有資源。在此需要說明,對于某一頁確定的原理圖,不管通過哪種途徑來獲取其對應的接口,這個接口可以提供的原理圖資源總是相同的,這也是符合客觀實際的。
    由以上分析可以看出,原理圖解析器的這種接口組織調(diào)用關系支持了各種形式的對原理圖資源的訪問,同時也保持了信息的準確性和完整性。
    另外,為了方便用戶使用,在原理圖接口IF―vdSchs和單頁原理圖接口IFvdSheet的方法中還提供了器件和網(wǎng)絡的查找功能:對于器件支持Refdes(器件的引用屬J陛定義)和全路徑uID(器件在原理理圖中的唯一的標識)查找;對于網(wǎng)絡支持Label值查找和全路徑UID的查找。


    上一頁 1 2 下一頁

    關鍵詞: ATL 原理圖 解析器

    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 桃江县| 浏阳市| 乌拉特前旗| 海城市| 股票| 兴海县| 万山特区| 江孜县| 湾仔区| 土默特右旗| 遂平县| 中江县| 华安县| 邵武市| 太仓市| 筠连县| 桐庐县| 会理县| 郸城县| 天镇县| 神农架林区| 英山县| 龙岩市| 广汉市| 兴宁市| 综艺| 上犹县| 东山县| 玉树县| 天水市| 蒙山县| 临朐县| 陆河县| 信宜市| 禹州市| 柘荣县| 印江| 集贤县| 沈丘县| 玛纳斯县| 汝州市|