chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用ATL技術(shù)與數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換模塊實(shí)現(xiàn)原理圖解析器的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-05-03 08:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

實(shí)現(xiàn)的原理圖解析器使用ATL技術(shù),將解析器包裝成一個(gè)標(biāo)準(zhǔn)的COM組件。該解析器主要針對(duì)Mentor公司的ViewDraw原理圖設(shè)計(jì)工具,可對(duì)ViewDraw設(shè)計(jì)生成的原理圖文件在不依賴ViewDraw的條件下進(jìn)行分析,并將其底層數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換和整理歸納,然后以接口形式提供給客戶程序使用。

1 原理圖通用數(shù)據(jù)結(jié)構(gòu)

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

采用ATL技術(shù)與數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換模塊實(shí)現(xiàn)原理圖解析器的設(shè)計(jì)

2 COM組件技術(shù)與ATL技術(shù)簡(jiǎn)介

COM即組件對(duì)象模型,是由Microsoft提出的組件標(biāo)準(zhǔn),是一種以組件為發(fā)布單元的對(duì)象模型,它不僅提供了組件之間進(jìn)行交互的規(guī)范,也提供了實(shí)現(xiàn)交互的環(huán)境。組件之間的接口是組件軟件的核心,因?yàn)榻涌谑墙M件之間進(jìn)行通信的基礎(chǔ)。因此,軟件組件應(yīng)該遵循統(tǒng)一的標(biāo)準(zhǔn),在同一軟件中的組件必須使用同樣的接口標(biāo)準(zhǔn)才能保證組件之間可以進(jìn)行通信。COM就是這樣一個(gè)為大家一致推崇的組件標(biāo)準(zhǔn)。組件對(duì)象之間進(jìn)行交互的環(huán)境不依賴于任何特定的語言,所以COM也可以是不同語言協(xié)作開發(fā)的一種標(biāo)準(zhǔn)。

ATL(Active Template Library)活動(dòng)模板庫(kù),是Visual c++提供的一套基于模板的C++類庫(kù),利用這些模板庫(kù),可以建立小巧、快捷的COM組件程序。ATL使用了C++中的模板、多繼承等高級(jí)技術(shù),甚至還用到了STL。在Visual C++的編譯環(huán)境中,對(duì)ATL的支持非常強(qiáng)大,所以采用ATL技術(shù)可以方便地實(shí)現(xiàn)COM組件的開發(fā),但又不用過多的去考慮COM的底層技術(shù),這樣極大地提高了COM組件的開發(fā)效率。

采用ATL技術(shù)與數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換模塊實(shí)現(xiàn)原理圖解析器的設(shè)計(jì)

3 系統(tǒng)構(gòu)成

原理圖解析器,主要以數(shù)據(jù)格式轉(zhuǎn)換模塊和原理圖通用數(shù)據(jù)結(jié)構(gòu)模塊,為系統(tǒng)構(gòu)成的基礎(chǔ),按通用數(shù)據(jù)結(jié)構(gòu)格式存儲(chǔ)的原理圖數(shù)據(jù)為數(shù)據(jù)資源,并在ATL技術(shù)平臺(tái)下對(duì)這些數(shù)據(jù)資源進(jìn)行規(guī)劃和組織。解析器最終以COM組件的形式向外部客戶程序提供服務(wù)。解析器提供了21個(gè)接口,81個(gè)方法,這些接口與原理圖的主要構(gòu)成對(duì)象一一對(duì)應(yīng)。整個(gè)系統(tǒng)以下方式進(jìn)行組織和運(yùn)行的:

(1)數(shù)據(jù)格式轉(zhuǎn)換模塊將原理圖進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換并以通用數(shù)據(jù)結(jié)構(gòu)的格式存儲(chǔ)于內(nèi)存中,這個(gè)功能主要由工程接口IFvdProj實(shí)現(xiàn);

(2)按照接口的功能需求對(duì)原理圖的數(shù)據(jù)資源進(jìn)行歸納和整理,這里主要處理了器件、模塊、管腳、網(wǎng)絡(luò)(普通網(wǎng)絡(luò)和總線網(wǎng)絡(luò))、網(wǎng)絡(luò)段、連接等,還有這些物理實(shí)體的位置、標(biāo)識(shí)及屬性等;

(3)對(duì)各種異常情況在組件內(nèi)部進(jìn)行了處理,并將相應(yīng)的錯(cuò)誤代碼以函數(shù)值的形式返回,客戶端可以用捕獲COM異常的方法來獲取這些錯(cuò)誤代碼。系統(tǒng)結(jié)構(gòu),如圖l所示。

4 原理圖解析器接口組織調(diào)用關(guān)系描述

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

該圖列出了原理圖解析器的21個(gè)接口和主要的調(diào)用關(guān)系,其中實(shí)線箭頭表示從原理圖組織結(jié)構(gòu)上講由上層對(duì)象調(diào)用下層對(duì)象,虛線箭頭表示由下層對(duì)象調(diào)用上層對(duì)象。以器件和網(wǎng)絡(luò)為核心介紹接口對(duì)數(shù)據(jù)資源的組織關(guān)系。

(1)原理圖——網(wǎng)絡(luò):由工程接口進(jìn)入,生成目標(biāo)原理圖的通用數(shù)據(jù)結(jié)構(gòu),再調(diào)用單頁(yè)原理圖接口,由單頁(yè)原理圖接口中的GetNets()方法或GetAllNets()方法可以獲取網(wǎng)絡(luò)(包括普通網(wǎng)絡(luò)和總線網(wǎng)絡(luò))集接口IFvdNets,通過該接口的Item()方法可以獲取單個(gè)網(wǎng)絡(luò)對(duì)應(yīng)的接口。

(2)原理圖——器件:由工程接口進(jìn)入,生成目標(biāo)原理圖的通用數(shù)據(jù)結(jié)構(gòu),再調(diào)用單頁(yè)原理圖接口,由單頁(yè)原理圖接口中的GetComps()方法或GetAllComps()方法可以獲取器件(包括普通器件和模塊)集合接口IFvdComps,通過該接口的Item()方法可以獲取單個(gè)器件對(duì)應(yīng)的器件接口IFvdComp。

(3)由下層對(duì)象向上層對(duì)象的訪問:例如可以通過一個(gè)器件管腳的接口IFvdCmpPin來獲得該管腳所在的器件接口IFvdComp,而通過接口IFvd—Comp又可獲取該器件所在的原理圖頁(yè)的接口IFvdSheet,通過接口IFvdSheet又可訪問該原理圖頁(yè)的所有資源。在此需要說明,對(duì)于某一頁(yè)確定的原理圖,不管通過哪種途徑來獲取其對(duì)應(yīng)的接口,這個(gè)接口可以提供的原理圖資源總是相同的,這也是符合客觀實(shí)際的。

由以上分析可以看出,原理圖解析器的這種接口組織調(diào)用關(guān)系支持了各種形式的對(duì)原理圖資源的訪問,同時(shí)也保持了信息的準(zhǔn)確性和完整性。

另外,為了方便用戶使用,在原理圖接口IF—vdSchs和單頁(yè)原理圖接口IFvdSheet的方法中還提供了器件和網(wǎng)絡(luò)的查找功能:對(duì)于器件支持Refdes(器件的引用屬J陛定義)和全路徑uID(器件在原理理圖中的唯一的標(biāo)識(shí))查找;對(duì)于網(wǎng)絡(luò)支持Label值查找和全路徑UID的查找。

各接口說明如下:

(1)IFvdAur:屬性接口,獲取屬性名、屬性值和屬性的可見性;

(2)IFvdAttrs:提供一個(gè)訪問屬性集合對(duì)象的接口,該屬性集合對(duì)象內(nèi)部包含一組屬性對(duì)象的接口指針;

(3)IFvdBox:外圍框接口;

(4)IFvdCmpPin:器件管腳接口,獲取管腳所在器件、管腳屬性集、管腳連接和管腳相連的symbol的管腳;

(5)IFvdCmpPins:器件管腳集合接口,提供一個(gè)訪問器件管腳集合對(duì)象的接口;

(6)IFvdComp:器件接口,可獲取各類子對(duì)象和內(nèi)部屬性;

(7)IFvdComps:器件集合接口,提供一個(gè)訪問器件集合對(duì)象的接口;

(8)IFvdConnection:連接接口,可獲取連接中的器件管腳、網(wǎng)絡(luò)和網(wǎng)絡(luò)段;

(9)IFvdConnections:連接集合接口,提供一個(gè)訪問連接集合對(duì)象的接口;

(10)IFvdLabel:Label接口,獲取Label的名字和可見性;

(11)IFvdNet:網(wǎng)絡(luò)接口,可獲得各類子對(duì)象及內(nèi)部屬性;

(12)IFvdNets:網(wǎng)絡(luò)集合接口,提供一個(gè)訪問網(wǎng)絡(luò)集合對(duì)象的接口;

(13)IFvdSymPin:Symbol管腳接口,可獲得Symbol管腳的內(nèi)部屬性;

(14)IFvdSymPins:Symbol管腳集合接口,提供一個(gè)訪問Symbol管腳集合對(duì)象的接口;

(15)IFvdPoint:位置坐標(biāo)接口,獲取位置的坐標(biāo)值;

(16)IFvdProj:解析原理圖工程接口;

(17)IFvdSheet:?jiǎn)雾?yè)原理圖接口,可獲取單頁(yè)原理圖中各種對(duì)象及搜索器件和網(wǎng)絡(luò);

(18)IFvdSch:原理圖接口,可獲得原理圖中單頁(yè)原理圖的頁(yè)數(shù)和原理圖對(duì)象集合;

(19)IFvdSegment:網(wǎng)絡(luò)集合接口,可獲取網(wǎng)絡(luò)段屬性集合和網(wǎng)絡(luò)段所屬的網(wǎng)絡(luò);

(20)IFvdSegments:網(wǎng)絡(luò)段集合接口,提供一個(gè)訪問網(wǎng)絡(luò)段集的接口;

(21)IFvdSymbol:符號(hào)接口,獲取內(nèi)部管腳集和屬性集。

5 調(diào)用方法說明

原理圖解析器是基于ATL技術(shù)而開發(fā)的,是一個(gè)符合COM標(biāo)準(zhǔn)的組件,因此在使用時(shí)要按照COM組件的使用規(guī)范。原理圖解析器共有21個(gè)接口,其內(nèi)部分別對(duì)應(yīng)21個(gè)COM類。在這21個(gè)COM類中,只有原理圖工程接口IFvdProj對(duì)應(yīng)的類為可創(chuàng)建類,其余20個(gè)接口對(duì)應(yīng)的類均為不可創(chuàng)建類??蛻舳顺绦蚨家怨こ探涌贗FvdProj為入口點(diǎn),通過創(chuàng)建解析器的組件實(shí)例來獲取接口IFvdProj的地址指針,其它接口的獲取都要從IFvdProj開始,通過接口提供的各種方法來獲取??蛻舳私⒔M件,通過組件接口訪問原理圖資源的流程如下:

(1)在系統(tǒng)上注冊(cè)…原理圖解析器組件PST.DLL;

(2)在客戶程序中使用“import”預(yù)處理指令導(dǎo)入PST.DLL:

(3)創(chuàng)建解析器組件,并獲取入口點(diǎn)接口IF

采用ATL技術(shù)與數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換模塊實(shí)現(xiàn)原理圖解析器的設(shè)計(jì)

(4)通過接口IFvdProj的方法ParseProj()生成目標(biāo)原理圖的通用數(shù)據(jù)結(jié)構(gòu),并用原理圖接口IF—vdSchs接收其返回值如下:

采用ATL技術(shù)與數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換模塊實(shí)現(xiàn)原理圖解析器的設(shè)計(jì)

6 使用結(jié)果示例

下面這段程序統(tǒng)計(jì)了一頁(yè)原理圖中當(dāng)前層的網(wǎng)絡(luò)數(shù)和包括所有底層后的網(wǎng)絡(luò)數(shù),并且使用了對(duì)網(wǎng)絡(luò)的查找功能:

采用ATL技術(shù)與數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換模塊實(shí)現(xiàn)原理圖解析器的設(shè)計(jì)

程序的執(zhí)行結(jié)果,如圖3所示。

7 結(jié)束語

文中描述了自行開發(fā)的基于ATL技術(shù)的原理圖解析器,介紹了系統(tǒng)的基本構(gòu)成和接口的組織關(guān)系。另外,還對(duì)解析器的使用作了詳細(xì)說明,并在文中最后給出了一個(gè)實(shí)際使用的示例。原理圖解析器的開發(fā)得以在不使用國(guó)外EDA工具的情況下,方便地訪問原理圖資源,從而節(jié)約了大量的資金,并為國(guó)產(chǎn)EDA軟件的開發(fā)和市場(chǎng)化進(jìn)行了有益的嘗試。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6319

    瀏覽量

    139612
  • eda
    eda
    +關(guān)注

    關(guān)注

    72

    文章

    3062

    瀏覽量

    181581
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2122

    瀏覽量

    76725
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    XCP解析器如何組成的

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

    請(qǐng)問大神這種數(shù)據(jù)結(jié)構(gòu)一般如何解析額?

    請(qǐng)問大神,這種數(shù)據(jù)結(jié)構(gòu)一般如何解析額。。 不太懂。。
    發(fā)表于 06-10 09:27

    電子滅蠅電路原理圖解析

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

    分享一個(gè)命令解析器代碼實(shí)現(xiàn)

    一、介紹嵌入式里面經(jīng)常會(huì)自己做命令行,這里分享一個(gè)命令解析器代碼實(shí)現(xiàn)二、代碼實(shí)現(xiàn)mycmd.c
    發(fā)表于 02-17 07:02

    基于黑板結(jié)構(gòu)模式的XML解析器

    以協(xié)同工作平臺(tái)服務(wù)(CWPS)項(xiàng)目為研究背景,提出一種基于黑板結(jié)構(gòu)模式的XML解析器的設(shè)計(jì)方案。分析傳統(tǒng)編譯的缺陷,給出XML解析器的軟件構(gòu)架,闡述該構(gòu)架的設(shè)計(jì)思想,探討關(guān)
    發(fā)表于 04-14 09:23 ?19次下載

    數(shù)據(jù)結(jié)構(gòu)教程,下載

    1. 數(shù)據(jù)結(jié)構(gòu)的基本概念 2. 算法與數(shù)據(jù)結(jié)構(gòu)3. C語言的數(shù)據(jù)類型及其算法描述要點(diǎn)4. 學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)的意義與方法
    發(fā)表于 05-14 17:22 ?0次下載
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>教程,下載

    華碩電腦電路原理圖解析

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

    TI最新C2000 MCU解析器套件替代昂貴的解析器至數(shù)字轉(zhuǎn)換解決方案

    德州儀器 (TI) 宣布推出首款支持解析器至數(shù)字解碼的可編程微控制 (MCU) 解決方案:C2000? MCU 解析器套件,能夠?yàn)闄C(jī)器人、伺服驅(qū)動(dòng)、自動(dòng)化、航空與交通運(yùn)輸?shù)雀鞣N工業(yè)
    發(fā)表于 04-16 17:34 ?2029次閱讀

    數(shù)據(jù)結(jié)構(gòu)是什么_數(shù)據(jù)結(jié)構(gòu)有什么用

    數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高
    發(fā)表于 11-17 14:45 ?1.7w次閱讀
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>是什么_<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>有什么用

    什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實(shí)例分析

    本文檔的主要內(nèi)容詳細(xì)介紹的是什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實(shí)例分析包括了:數(shù)據(jù)結(jié)構(gòu)在串口通信當(dāng)中的應(yīng)用,數(shù)據(jù)結(jié)構(gòu)在按鍵
    發(fā)表于 09-26 15:45 ?14次下載
    什么是<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?為什么要學(xué)習(xí)<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>的應(yīng)用實(shí)例分析

    MIT開發(fā)新語義解析器應(yīng)用于家用機(jī)器人

    美國(guó)麻省理工學(xué)院(MIT)的研究人員開發(fā)出一種語義解析器,該解析器通過模仿兒童學(xué)習(xí)語言的方式,將口語短語轉(zhuǎn)換為機(jī)器可理解的意思。該解析器會(huì)觀察一些帶標(biāo)題的視頻,并將這些單詞與視頻中的對(duì)
    的頭像 發(fā)表于 11-14 16:36 ?3195次閱讀

    自己動(dòng)手實(shí)現(xiàn)命令行解析器

    一、介紹嵌入式里面經(jīng)常會(huì)自己做命令行,這里分享一個(gè)命令解析器代碼實(shí)現(xiàn)二、代碼實(shí)現(xiàn)mycmd.c
    發(fā)表于 12-22 18:51 ?13次下載
    自己動(dòng)手<b class='flag-5'>實(shí)現(xiàn)</b>命令行<b class='flag-5'>解析器</b>

    構(gòu)建BittWare的數(shù)據(jù)解析器

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

    NetApp的數(shù)據(jù)結(jié)構(gòu)是如何演變的

    統(tǒng)一數(shù)據(jù)跨分布式資源進(jìn)行管理,以實(shí)現(xiàn)數(shù)據(jù)移動(dòng)的一致性和控制,安全、可見性、保護(hù)和訪問。 本文定義了數(shù)據(jù)結(jié)構(gòu)及其體系結(jié)構(gòu),討論了
    發(fā)表于 08-25 17:15 ?0次下載
    NetApp的<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>是如何演變的

    redis數(shù)據(jù)結(jié)構(gòu)的底層實(shí)現(xiàn)

    Redis是一種內(nèi)存鍵值數(shù)據(jù)庫(kù),常用于緩存、消息隊(duì)列、實(shí)時(shí)數(shù)據(jù)分析等場(chǎng)景。它的高性能得益于其精心設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)和底層實(shí)現(xiàn)。本文將詳細(xì)介紹Redis常用的
    的頭像 發(fā)表于 12-05 10:14 ?1114次閱讀