編寫PCB設(shè)計規(guī)則檢查器(DRC)的系統(tǒng)方法
* 非法去耦電容。這可能導致POWER線dv/dt問題。* 非法上拉和下拉電阻。 本文引用地址:http://www.ex-cimer.com/article/190670.htm
* 不與符號POWER或GROUND平面相連的POWER或GROUND引腳。
* 未使用的輸入引腳不被電阻上拉或下拉,或者該電阻不與POWER或GROUND網(wǎng)路直接相連。
* 當單個電阻器上拉或下拉1個以上輸入引腳時發(fā)出警告信息。
* 對于直接與POWER或GROUND網(wǎng)路相連的非專用POWER和GROUND引腳發(fā)出警告信息。
如果采用了標記技術(shù),那么將檢驗該標記是否注明了正確的可選器件,例如型號是否有效及其幾何結(jié)構(gòu)是否與默認的器件規(guī)格匹配。
DRC不應(yīng)當具備的功能
盡管DRC能夠?qū)崿F(xiàn)很多功能,但仍然可以采用其它方法以期更好更便捷地加以實現(xiàn)。后端封裝工具可為布線工具封裝PCB設(shè)計,因此可提供有效幫助。在ViewDraw中,pcbfwd可用來檢測諸多違反規(guī)則的設(shè)計缺陷和設(shè)計錯誤。
DRC和pcbfwd可檢測的問題之間存在重疊,因此何時檢測何種設(shè)計問題就需要進行折衷考慮。DRC通常在設(shè)計完成之后及pcbfwd運行之前才能正確地運行。理想情況下,運行pcbfwd只為了封裝設(shè)計,因此更多的DRC可以得到更好的檢測結(jié)果。但設(shè)計人員仍然需要在其投入精力開發(fā)具有超強功能的DRC與pcbfwd現(xiàn)有的免費功能之間取得平衡。這一節(jié)簡單地討論了這些問題。
pcbfwd由配置文件控制,如果布線工具為Allegro,那么配置文件名為allegro.cfg。配置文件中的BeginChkRules - EndChkRules部分可用來檢測眾多錯誤,如相同符號的重復屬性、非法網(wǎng)路和網(wǎng)路屬性名稱、損壞的異質(zhì)封裝、異質(zhì)符號上的沖突屬性及遺漏屬性。例如,為了在異質(zhì)符號上獲取沖突的屬性,可以在allegro.cfg文件中添加如下內(nèi)容:
CHKBRD _HETERO_ATT ERR 0
但仍有一些問題既不能采用DRC,也不能采用pcbfwd進行檢測,如PCB設(shè)計中的預期冗余。假定器件包含4個完全相同的部分,其中兩個部分用于設(shè)計,那么這些部分既可以封裝在相同器件中,也可以出于冗余考慮將其封裝在兩個器件中。如果只需要一個器件,那么兩部分用到的符號將具有相同的參考標志符(如U4);如果需要兩個器件,那么符號將具有不同的參考標志符(如U4和U5),設(shè)計人員必須有意識地加以標注。目前尚無檢測這類問題的便捷方法,因此只有通過嚴謹?shù)脑O(shè)計進行保障。
此外,盡管DRC和/或pcbfwd可以檢測符號是否具有所需的幾何屬性GEOM,但并不能檢測其值是否與電路圖符號相匹配。例如,ViewDraw符號指定的引腳數(shù)目就有可能與Allegro覆蓋區(qū)的引腳數(shù)目不匹配。
這類特殊錯誤可由Allegro的dev_check進行檢測。首先,在ViewDraw電路圖上運行pcbfwd工具,創(chuàng)建Allegro設(shè)備文件,該文件連同Allegro覆蓋區(qū)文件將導入至dev_check。假定引腳68、69和70位于Allegro覆蓋區(qū)而不在ViewDraw上,那么dev_check就能檢測到該錯誤。這些引腳可以是不相連引腳,安裝孔引腳,甚至是由于失誤而仍留在ViewDraw 符號外的POWER/GROUND引腳。不相連引腳和/或安裝孔引腳必須賦以NC屬性,而POWER/GROUND引腳則必須賦以SIGNAL屬性。按這種方式修正符號,然后重新運行pcbfwd 和dev_check。
最后,DRC輸出的質(zhì)量取決于電路圖質(zhì)量。例如,如果輸入引腳被錯誤地指定為OUT屬性,那么DRC將產(chǎn)生錯誤的出錯消息。器件的符號質(zhì)量應(yīng)仔細而系統(tǒng)地進行控制,因為該質(zhì)量將影響其它所有工具。
DRC的其它功能
除了檢測違反規(guī)則的設(shè)計缺陷,DRC還可以創(chuàng)建有助于設(shè)計分析的附屬輸出文件,如前所述。輸入切換可通知DRC在每次運行時是否創(chuàng)建這些文件。盡管這些文件并不包含DRC出錯或警告消息,但仍然能標示出潛在的設(shè)計問題。例如,一個文件包含了所有網(wǎng)路及每個網(wǎng)路上的負載數(shù)目信息。如果負載數(shù)目超出允許值,那么就有可能導致信號完整性問題。PCB設(shè)計人員可以迅速地檢查該文件以找到潛在的錯誤。設(shè)計人員可以獲得盡可能多的附屬文件,下面給出了部分列表。
* 按網(wǎng)路名稱排序的網(wǎng)路列表及每個網(wǎng)路所在圖表的列表。此外,還可能包含引腳編號和網(wǎng)路連接的符號類型(及其參考標志符)。該文件由drc_net()函數(shù)創(chuàng)建并可用于查找網(wǎng)路所在的圖表。
* 包含所有網(wǎng)路及每個網(wǎng)路上負載數(shù)目的列表,由drc_net()函數(shù)創(chuàng)建。為了獲取更好的信號完整性,網(wǎng)路上的負載數(shù)不應(yīng)超過8個。
* 跨越圖表邊界的網(wǎng)路列表。這有助于設(shè)計人員在調(diào)試中調(diào)整設(shè)計。
* 具有網(wǎng)路屬性的網(wǎng)路及其屬性。設(shè)計人員可以檢驗網(wǎng)路是否具有正確的屬性,該文件由drc_net()函數(shù)創(chuàng)建,其基本代碼實現(xiàn)如下:
[列表11]
這里,ignetatt()和igattnxt()是可以獲取網(wǎng)路屬性的ViewBase例程。igattnam()獲取屬性名,而net_att則是輸出文件的文件指針。
* 未使用引腳列表,這些引腳可以是上拉引腳或下拉引腳。該文件由drc_inst()函數(shù)創(chuàng)建,可以報告上拉電阻和下拉電阻信息。
* 所有去耦電容及其容值列表,此外還可能包括這些電容所在的電路圖表。設(shè)計人員應(yīng)迅速檢驗該文件以確保PCB上具有足夠多的去耦電容
。該文件由drc_inst()函數(shù)創(chuàng)建。
* 所有離散器件及其值的列表,如上拉/下拉電阻、傳輸線終端匹配電阻/電容。此外,還可能包含這些器件所在的電路圖表。設(shè)計人員可迅速檢查器件數(shù)目是否合理,該文件由drc_inst()函數(shù)創(chuàng)建。
該列表的另一項重要應(yīng)用則是PCB設(shè)計的信號完整性和時序分析[4]。該領(lǐng)域的大多數(shù)工具可以通過將所謂的串行元件功能合并為傳輸線分析結(jié)果并從輸出文件中取出這些元件,從而自動處理這些串行元件。圖2中的R1就是一個串行終端匹配電阻。當信號完整性工具報告網(wǎng)路延遲時,由于R1的存在,延遲將由u1.z到u2.i,而不是先從u1.z到 R1.1,再由R1.2到u2.i。這是正確處理時序分析的方法。
然而,為了使信號完整性工具自動識別串行元件,必須滿足一些條件。例如,電阻的參考標志符必須以字母R開頭,后面緊跟數(shù)字,而電容則必須以字母C開頭。另一條件則是每個串行元件符號都必須具有屬性值為DISCRETE 的TYPE屬性。沒有這些條件,這些元件就無法得到正確地處理。
被許多其它的PCB復制的模板設(shè)計也是一個常見問題。為了避免可能的參考標志符沖突,模板設(shè)計中的電阻和電容通常可稱為XR1和XC1。在信號完整性工具數(shù)據(jù)庫中,這些器件都必須更改為R10001和C10001(編號略大于原始PCB設(shè)計中使用的任何參考標志符)。設(shè)計人員可采用由DRC創(chuàng)建的離散器件列表檢查到XR和XC參考標志符。
電路圖符號相關(guān)文章:電路圖符號大全
c++相關(guān)文章:c++教程
評論