<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 編寫(xiě)屬于自己的PCB設計規則檢查器

編寫(xiě)屬于自己的PCB設計規則檢查器

作者: 時(shí)間:2010-12-23 來(lái)源:網(wǎng)絡(luò ) 收藏

DRC開(kāi)發(fā):drc_net()函數

drc_net()在設計中遍歷所有網(wǎng)路并檢測任何違反設計規則的故障,然后創(chuàng )建附屬的輸出文件。實(shí)現上述功能的基本代碼如下:

[列表4]

這里,iggrpnet()和ignetnxt()函數是在設計中檢查每個(gè)網(wǎng)路的ViewBase 例程。ignetnam()函數也是檢查網(wǎng)路名稱(chēng)的ViewBase例程。ViewBase中的數據類(lèi)型包括NETS、PINS、COMPONENTS、SYMBOLS和ATTRIBUTES。drc_net()函數可檢測下述違反設計規則的錯誤:

* 非法網(wǎng)路名。如果網(wǎng)路名由ViewDraw自動(dòng)分配,那么將具有如下格式:$#...#N#...#,第一個(gè)#...#表示圖表編號,第二個(gè)#...#則表示網(wǎng)路號。設計人員指定的網(wǎng)路名必須以字母開(kāi)頭,其后的字符數不多于30。

drc_net()函數應調用legal_net_name()函數執行該任務(wù)。在UNIX系統中,利用包含在DRC程序中的regexp.h頭文件可以極大地簡(jiǎn)化采用C語(yǔ)言的常規表達式匹配/校驗程序。drc_net()應將網(wǎng)路名稱(chēng)變量和違反設計規則的文件指針存儲在legal_net_name()函數中,該函數具有如下形式:

[列表5]

后端封裝工具pcbfwd也可檢測非法網(wǎng)路名,但其功能受限于簡(jiǎn)單的常規表達式。上述代碼可處理任何常規表達式,同樣地,如何在運行pcbfwd工具之前或之后找到非法網(wǎng)路名稱(chēng)也需要權衡。對于簡(jiǎn)單的網(wǎng)路名稱(chēng),可以使用pcbfwd。

* 網(wǎng)路上的總線(xiàn)競爭也是嚴重問(wèn)題??偩€(xiàn)競爭有兩類(lèi):一類(lèi)是圖騰柱輸出間的總線(xiàn)競爭,而另一類(lèi)則是圖騰柱與三態(tài)輸出間的總線(xiàn)競爭?;敬a實(shí)現如下所示:

[列表6]

這里,ignetpin()和igpinnnx()函數是在網(wǎng)路上檢查每個(gè)引腳的ViewBase例程。igpinown()例程返回引腳實(shí)例(系主)指針。函數get_inst_attr()、get_pin_attr() 和get_sheet_num()則返回請求實(shí)例屬性(參考標志符REFDES)、引腳屬性(PINTYPE)及引腳實(shí)例所在的圖表編號。get_pin_attr()函數的基本代碼如下:

[列表7]

get_inst_attr()函數的基本代碼如下:

[列表8]

get_sheet_num()函數的基本代碼如下:

[列表9]

* POWER和GROUND網(wǎng)路中的非法名稱(chēng)。這些名稱(chēng)將與存儲在內部數據結構中的信息(如鏈接列表)進(jìn)行比較。


* 報告那些具有負載但不具有驅動(dòng)程序或者具有驅動(dòng)程序但不具有負載的網(wǎng)路。這可以通過(guò)標注網(wǎng)路上每個(gè)引腳的類(lèi)型加以實(shí)現。網(wǎng)路應當帶有1個(gè)輸出引腳或多個(gè)三態(tài)輸出引腳及最少一個(gè)輸入引腳,此外還可提供與網(wǎng)路全部器件和引腳相關(guān)的參考標志符和符號。


* 報告那些不帶上拉電阻或所帶上拉電阻未連接到POWER的所有集電極開(kāi)路輸出。


* 一旦網(wǎng)路的負載超過(guò)常規數目(良好的信號完整性條件下限額為8),那么將打印警告信息。

DRC開(kāi)發(fā):drc_inst()函數

drc_inst()函數與drc_net()函數類(lèi)似,不同的是,前者遍歷了全部電路圖表及PCB設計中電路圖表上的所有實(shí)例,從而檢測違反規則的設計缺陷或創(chuàng )建附屬的輸出文件。其代碼實(shí)現如下:

[列表10]

上面關(guān)于drc_net()函數的討論提供了充分的C和ViewBase代碼示例,這里就不在贅述。下面給出了drc_inst()函數可檢測的部分違反規則的設計缺陷:

* 非法或遺漏的符號庫混淆。PCB設計中的所有符號必須來(lái)自共同符號庫,使用來(lái)自錯誤符號庫的符號是一個(gè)極為常見(jiàn)的錯誤,尤其是對于那些只依賴(lài)于符號進(jìn)行設計的后端處理工具。


* 遺失符號和/或引腳屬性,例如那些描述器件幾何結構和引腳類(lèi)型(in、out、bi和tri)的特性。


* 非法的符號和/或引腳屬性。例如,引腳類(lèi)型可具有IN值,但不包括INPUT值。這將對后端封裝工具(如pcbfwd)如何為布線(xiàn)工具(如Allegro)提供信息產(chǎn)生影響。


* 符號上的參考標志符值,尤其是對于串行器件(如電阻、電容和電感)。大多數信號完整性工具需要這些器件以字母R、C和L開(kāi)頭,因此可將這些器件作為串聯(lián)元件而非離散器件進(jìn)行分析。類(lèi)似地,drc_inst()函數可將其值同描述的屬性進(jìn)行對比以保證兩者完全匹配。



關(guān)鍵詞: PCB 編寫(xiě)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>