當(dāng)前位置:首頁 > 電源 > 線性電源
[導(dǎo)讀]編寫屬于自己的PCB設(shè)計規(guī)則檢查器具有很多優(yōu)點,盡管設(shè)計檢查器并不那么簡單,但也并非高不可攀,因為任何熟悉現(xiàn)有編程或腳本語言的設(shè)計人員完全能夠設(shè)計檢查器,這項工作的好處是不可估量的,本文介紹編寫PCB設(shè)計規(guī)

編寫屬于自己的PCB設(shè)計規(guī)則檢查器具有很多優(yōu)點,盡管設(shè)計檢查器并不那么簡單,但也并非高不可攀,因為任何熟悉現(xiàn)有編程或腳本語言的設(shè)計人員完全能夠設(shè)計檢查器,這項工作的好處是不可估量的,本文介紹編寫PCB設(shè)計規(guī)則檢查器的技巧。

 

本文闡述了一種編寫PCB設(shè)計規(guī)則檢查器(DRC)的系統(tǒng)方法。利用電路圖生成工具得到PCB設(shè)計后,即可運(yùn)行DRC以找到任何違反設(shè)計規(guī)則的故障。這些操作必須在后續(xù)處理開始之前完成,而且開發(fā)電路圖生成工具的開發(fā)商必須提供大多數(shù)設(shè)計人員都能輕松掌握的DRC工具。

 

然而,市場銷售的通用工具通常不具備足夠的靈活性以滿足特定的設(shè)計需要。因此,客戶必須將新特性需求反映給DRC工具開發(fā)商,而這通常需要耗費一定的資金和時間,尤其當(dāng)需求不斷更新時。幸運(yùn)的是,大多數(shù)工具開發(fā)商均可為客戶提供編寫屬于自己的DRC以滿足特定需求的便捷方法。但是,這種具有強(qiáng)大功能的工具尚未得到廣泛認(rèn)同或使用。本文提供了利用DRC工具獲取最大收益的實用指南。

 

由于DRC必須遍歷 PCB設(shè)計的整個電路圖,包括每個符號、每個引腳、每個網(wǎng)路、每種屬性,如有必要還能創(chuàng)建數(shù)目不限的“附屬”文件。如4.0節(jié)所述,DRC可以標(biāo)示出任何違反設(shè)計規(guī)則的細(xì)微偏差。例如其中一個附屬文件就可能包含設(shè)計用到的全部去耦電容。如果電容數(shù)低于或高于期望值,就將在可能出現(xiàn)電源線dv/dt問題的地方標(biāo)注紅色記號[1]。這些附屬文件或許必不可少,但并非任何商用DRC工具都一定能創(chuàng)建這些文件。

 

DRC的另一優(yōu)勢是便于更新,以適應(yīng)新設(shè)計特性(如那些可能影響設(shè)計規(guī)則的新特性)的需要。而且,一旦在該領(lǐng)域獲得充分經(jīng)驗,那么還能實現(xiàn)許多其它功能。

 

例如,如果能編寫屬于自己的DRC,那么就能編寫屬于自己的物料清單(BOM)創(chuàng)建工具,這樣就能更好地處理特定用戶需求,如如何獲取本身不屬于電路圖數(shù)據(jù)庫一部分的器件“額外硬件”(如插座、散熱裝置或螺絲刀)?;蛘咴O(shè)計人員可以編寫屬于自己的Verilog網(wǎng)表分析器,該分析器在設(shè)計環(huán)境下具有充分的靈活度,如怎樣獲取適用于特定器件的Verilog模型或時間文件。實際上,由于DRC遍歷了整個設(shè)計電路圖,因此可以收集全部有效信息以輸出PCB設(shè)計Verilog網(wǎng)表分析所需的仿真和/或BOM。

 

在不提供任何程序代碼的前提下討論這些話題實在有些牽強(qiáng),為此,我們將以一種電路圖獲取工具為例進(jìn)行說明。本文采用了Mentor Graphics公司開發(fā)的附屬于PADS-Designer產(chǎn)品線的ViewDraw工具。此外,我們還采用了ViewBase工具,這是一個可被調(diào)用并對ViewDraw數(shù)據(jù)庫進(jìn)行存取操作的簡化C例行程序庫。利用ViewBase工具,設(shè)計人員可以輕松地采用C/C++語言為ViewDraw編寫完整且高效的DRC工具[2] [3]。需要注意的是,這里討論的基本原則同樣適用于任何其它的PCB電路圖工具。

 

輸入文件

 

除了電路圖數(shù)據(jù)庫,DRC還需要一些可以描述特定情況處理的輸入文件,如自動連接到電源平面的合法電源網(wǎng)路名稱。例如,如果電源網(wǎng)路名為POWER,那么電源平面將采用后端封裝設(shè)備(如適用于ViewDraw的pcbfwd)自動連接到電源平面。下面給出了輸入文件列表,這些文件必須放在固定的全局位置,這樣DRC就能自動找到并讀取,然后在運(yùn)行時將這些信息保存在DRC內(nèi)部。

 

* 文件legal_pwr_net_name可選,該文件包含POWER信號全部合法網(wǎng)路名稱,如VCC、V3_3P和VDD。在PCB布局/路由工具中,需要對名稱的大小寫進(jìn)行區(qū)分,一般VCC并不等同于Vcc或vcc。VCC可以是5.0V的電源,而V3_3P則可以是3.3V的電源。

* 文件legal_pwr_net_name可選,因為后端封裝設(shè)備的配置文件通常必須包含一組合法電源線網(wǎng)路名稱。如果采用Cadence設(shè)計系統(tǒng)公司的Allegro布線工具,那么pcbfwd的文件名則為allegro.cfg并且具有如下入口參數(shù):

 

接地:VSS CGND GND GROUND


電源:VCC VDD VEE V3_3P V2_5P +5V +12V

 

如果DRC可以直接讀取allegro.cfg文件,而非legal_pwr_net_name,那么將能得到更好的結(jié)果(即引入誤差的幾率較小)。

 

電源線引腳通常并不外接到器件符號上,相反,該符號的一個屬性(這里稱為SIGNAL)描述了哪個引腳是電源引腳或接地引腳并描述引腳應(yīng)當(dāng)連接的網(wǎng)絡(luò)名稱。

 

SIGNAL = VCC:10


SIGNAL = GROUND:20

 

DRC可讀取該屬性并確保網(wǎng)路名稱保存在legal_pwr_net_name文件中,如果legal_pwr_net_name中不包含網(wǎng)路名稱,那么電源引腳將不會連接到電源平面,而這個問題確實非常嚴(yán)重。

 

一些符號必須具有外接電源線引腳,因為這些符號并不連接到常規(guī)電源線層。例如,ECL器件的VCC引腳要么連接到VCC,要么連接到GROUND;其VEE引腳則可連接到GROUND或-5.0V平面。此外,電源線引腳在到達(dá)電源線層之前也可連接到濾波器。

 

引腳與濾波器之間的網(wǎng)路可具有任意名稱,而DRC很難檢測到這一點。DRC可以錯誤形式匯報這一點,而用戶則必須將其標(biāo)示出或在legal_pwr_net_name文件中添加該網(wǎng)路名稱。這就是我們需要類似legal_pwr_net_name文件的一個原因。最后,DRC將讀取legal_pwr_net_name,以1)找到上拉電阻,2)在設(shè)計中檢查POWER網(wǎng)路名稱的大小寫,3)檢測任何與POWER直接相連但尚未使用的引腳。

 

* 包含GROUND信號(如GROUND、VSS和F_GND)中所有合法網(wǎng)路名的legal_gnd_net_name文件可以隨意創(chuàng)建。而需要再次注意的是,符號的大小寫可能會對一些PCB布線工具產(chǎn)生影響。而且,如果DRC可以直接讀取上述allegro.cfg文件,而非legal_gnd_net_name文件的話,無疑可以得到更好的設(shè)計結(jié)果。

 

legal_gnd_net_name不僅具有與legal_pwr_net_name相同的功能,而且DRC還可讀取該文件,以1)找到下拉電阻,2)檢查POWER網(wǎng)路名稱的大小寫,3)檢測任何與POWER直接相連但尚未使用的引腳。

 

* 包含全部合法符號庫路徑和名稱的legal_lib_path_name文件可以隨意創(chuàng)建,這一點非常重要。例如,一個常見的嚴(yán)重錯誤是使用未授權(quán)程序庫中的符號。在PCB設(shè)計階段,根據(jù)測試需要,通常要求創(chuàng)建臨時器件符號并保存在本地符號庫目錄中。最終用到的器件符號來源于此并將保存在聯(lián)合或全局的程序庫目錄中,這些符號具有一些不同于本地器件符號的重要特征。設(shè)計人員通常會因為沒有采用共同符號取代本地符號而引入設(shè)計錯誤。

 

legal_lib_path_name可選,因為對于大多數(shù)電路圖工具,程序庫信息包含在啟動工具所需的初始化文件中。對于ViewDraw工具,該文件稱為viewdraw.ini,當(dāng)工具啟動時,該文件就自動創(chuàng)建(利用腳本程序):目錄 [r] /corp_lib/pcb/symbol_libraries/viewdraw/fct (fct)。

 

Fct(快速CMOS技術(shù))是ViewDraw眾多子庫中的一個,也是fct器件各符號的來源。如果初始化文件存在,那么DRC不僅可以而且也應(yīng)當(dāng)直接讀取該文件,因為設(shè)計人員可以及時地添加新程序庫。

 

* 可以創(chuàng)建包含合法上拉電阻的legal_pullup_res文件以檢測那些被終止以及未被使用的輸入引腳。通常,可以限定一組設(shè)計人員能使用的電阻,當(dāng)然電阻值本身也是一個重要因素。如果上拉了未使用的輸入引腳,那么該電阻的阻值將為5K或更高。

 

* 可以創(chuàng)建包含合法下拉電阻的legal_pulldown_res文件以檢測那些被終止以及未被使用的輸入引腳。如果下拉了未使用的輸入引腳,那么阻值將會很小以阻止任何電流泄漏,從而使引腳電壓高于觸發(fā)閥值。

 

* 可以創(chuàng)建包含合法去耦電容的legal_decoup_cap文件,而且公司還可要求設(shè)計人員只使用特定的合格器件以滿足電源線dv/dt要求。

 

* 可以創(chuàng)建一個包含器件符號全部屬性的legal_comp_attr文件,如PART_NO、GEOM、REFDES和SIM_CLASS。BOAM創(chuàng)建工具、Verilog網(wǎng)表分析器及其它工具都能使用這些屬性。

 

* 可以創(chuàng)建一個包含器件符號全部引腳屬性的legal_pin_attr文件,如PIN_NAME、PINTYPE和PIN_NO。

 

設(shè)計目錄結(jié)構(gòu)

 

運(yùn)行DRC必須滿足的第二個條件就是需要可被所有PCB設(shè)計共享的單獨設(shè)計目錄結(jié)構(gòu)。沒有該目錄結(jié)構(gòu),DRC將難以確定如何找到電路圖數(shù)據(jù)庫并存儲輸出文件。該架構(gòu)可以極復(fù)雜的分層架構(gòu)支持全部PCB設(shè)計業(yè)務(wù),如設(shè)計規(guī)則檢查、BOM創(chuàng)建、Verilog仿真、靜態(tài)時序分析、信號完整性分析、布線、PAL/FPGA設(shè)計(綜合與仿真)及文檔控制。但對于DRC本身,如果采用了ViewDraw,那么下述條件就完全充分:

 

 

pcb_info應(yīng)最少包含兩個文件:design_def和design_type。design_def應(yīng)包含PCB器件(組合)數(shù)目及其它所需信息,這不僅僅對于DRC,對于其它所有工具也同樣如此。design_type應(yīng)當(dāng)包含設(shè)計類型信息,即PCB信息。如果其它類型的設(shè)計(如ASIC或FPGA)可以共享該設(shè)計目錄結(jié)構(gòu),那么design_type將指定該目錄,這樣設(shè)計自動化工具將能根據(jù)不同的設(shè)計類型進(jìn)行適當(dāng)?shù)牟僮?。如果沒有pcb_info目錄或該目錄內(nèi)容為空,這就意味著設(shè)計目錄并非標(biāo)準(zhǔn)設(shè)計目錄。在這種情況下,DRC應(yīng)當(dāng)退出并發(fā)送出錯信息。

 

Schem目錄包含電路圖數(shù)據(jù)庫并可由DRC使用的ViewBase直接存取。sch子目錄包含了在圖表上描述符號位置的電路圖文件及其它信息,wir子目錄則包含設(shè)計網(wǎng)表分析及全部符號屬性。ViewBase例程可直接存取這些內(nèi)容。drc目錄應(yīng)存儲DRC輸出文件。 [!--empirenews.page--]

封裝程序

 

本文提出的DRC工具采用C語言和C例程ViewBase庫編寫,C例程ViewBase庫可提供對ViewDraw電路圖數(shù)據(jù)庫進(jìn)行存取的便捷方法。每個例程均對一個數(shù)據(jù)項進(jìn)行存取或在兩個數(shù)據(jù)項之間建立聯(lián)系。但DRC不能直接運(yùn)行:DRC應(yīng)“包裝”在一個采用Perl或UNIX命令解釋語言編寫的封裝程序中。該封裝程序具有如下形式:

 

* 檢查如圖1所示的PCB設(shè)計目錄結(jié)構(gòu)是否有效。


* 可以運(yùn)行后端封裝程序(如應(yīng)用于ViewDraw的pcbfwd)。該程序可檢測一些違反規(guī)則的設(shè)計缺陷(如網(wǎng)路名稱的數(shù)目和類型特性),而這通常很難采用DRC工具檢測。此外,還能賦值給那些尚未賦值的符號參考標(biāo)志符特性 (如R4)。


* 檢測2.0.1節(jié)中討論的輸入文件是否存在,并將其注入DRC。


* 找到PCB設(shè)計名稱并將其注入DRC。


* 將其輸出文件的路徑和名稱注入DRC。


* 建立所需的工具環(huán)境變量,如用于ViewDraw和ViewBase的WDIR。


* 調(diào)用DRC程序。


* 按需求打印幫助信息。


* 打印用戶和運(yùn)行時間信息。


* 執(zhí)行后處理。這既可以像修正控制工具檢測DRC輸出文件那樣簡單,也可以像主動處理DRC輸出文件那樣復(fù)雜(如從其它數(shù)據(jù)源添加更多的信息或執(zhí)行排序操作)。C或許不是最佳的數(shù)據(jù)排序或文件分析工具,因為如果按數(shù)字順序排列文件,采用UNIX排序命令更為簡單:sort +1n source_file > sorted_file。

 

DRC開發(fā):main()函數(shù)

 

可以調(diào)用DRC程序drc.c,該文件具有兩個主要函數(shù):drc_net()和drc_inst()。drc_net()遍歷了全部網(wǎng)路而drc_inst()則遍歷所有的元件(符號),這樣就能檢測任何有違規(guī)則的設(shè)計缺陷。這兩個函數(shù)都能產(chǎn)生附屬的輸出文件,可以參見1.0節(jié)和4.0節(jié)。

 

drc.c首先應(yīng)當(dāng)包含全部由C、ViewBase和用戶創(chuàng)建的頭文件,如stdio.h、viewbase.h和viewbase.h?,F(xiàn)在可以設(shè)定drc.c接收輸入?yún)?shù),這樣不僅能為輸入和輸出文件聲明變量和文件指針,還可使ViewBase指向ViewDraw數(shù)據(jù)庫,并創(chuàng)建鏈接列表和散列表以存取從輸入文件讀入的信息。下面給出了main()函數(shù)的部分代碼實現(xiàn)。

 







 

 

當(dāng)DRC封裝程序激活DRC時,將導(dǎo)入輸入和輸出文件名及PCB設(shè)計名 (參見3.0.1節(jié))。數(shù)據(jù)結(jié)構(gòu)Str_list_elem和Hash_table定義在drc.c包含的頭文件中,而GROUPS則是ViewBase數(shù)據(jù)類型。

 

下一步,main()函數(shù)可以通過檢驗argc的取值從而確保輸入?yún)?shù)數(shù)目正確。如果參數(shù)值正確,那么將為變量分配正確的輸入?yún)?shù)。

 

 








 

 

此時,main()函數(shù)可以初始化ViewBase數(shù)據(jù)結(jié)構(gòu),并使ViewBase指針pcb-ptr指向PCB設(shè)計。如果該設(shè)計存在并有效,那么main()函數(shù)應(yīng)當(dāng):

 

* 打開全部輸入文件,讀取信息并將信息存儲到內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如Str_list_elem和Hash_table)中, 然后關(guān)閉輸入文件。


* 打開所有輸出文件以寫入信息,這些文件可以是設(shè)計規(guī)則錯誤/警告文件,也可以是附屬文件。


* 調(diào)用drc_net()和drc_inst()函數(shù)執(zhí)行實際操作。


* 關(guān)閉所有輸出文件。

 

main()函數(shù)中完成上述功能的C和ViewBase代碼如下:

 

[列表3]

 

這里,iwinit()和iw1level()是ViewBase例程。前者初始化全部載入例程(這也是必須的),而后者則載入整個PCB設(shè)計。為了保證只載入一張電路圖,可以調(diào)用iw1sheet()例程(本文的DRC工具并不使用該例程)。需要注意的是,正確的設(shè)計指針、文件指針、鏈接列表、變量名稱等必須傳入drc_net()和drc_inst()函數(shù):

 

drc_inst(pcb_ptr, pcb_name, drc_error, list_legal_pwr_name, ...);


drc_inst(pcb_ptr, pcb_name, drc_error, list_legal_pwr_name, ...);

 

如果設(shè)計采用分層結(jié)構(gòu)及不同的器件符號,那么還必須確保DRC能正確處理這些器件。[!--empirenews.page--]

DRC開發(fā):drc_net()函數(shù)

 

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

 

[列表4]

 

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

 

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

 

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

 

[列表5]

 

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

 

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

 

[列表6]

 

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

 

[列表7]

 

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

 

[列表8]

 

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

 

[列表9]

 

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


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


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


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

 

DRC開發(fā):drc_inst()函數(shù)

 

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

 

[列表10]

 

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

 

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


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


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


* 符號上的參考標(biāo)志符值,尤其是對于串行器件(如電阻、電容和電感)。大多數(shù)信號完整性工具需要這些器件以字母R、C和L開頭,因此可將這些器件作為串聯(lián)元件而非離散器件進(jìn)行分析。類似地,drc_inst()函數(shù)可將其值同描述的屬性進(jìn)行對比以保證兩者完全匹配。[!--empirenews.page--]
* 非法去耦電容。這可能導(dǎo)致POWER線dv/dt問題。* 非法上拉和下拉電阻。

 


* 不與符號POWER或GROUND平面相連的POWER或GROUND引腳。


* 未使用的輸入引腳不被電阻上拉或下拉,或者該電阻不與POWER或GROUND網(wǎng)路直接相連。


* 當(dāng)單個電阻器上拉或下拉1個以上輸入引腳時發(fā)出警告信息。


* 對于直接與POWER或GROUND網(wǎng)路相連的非專用POWER和GROUND引腳發(fā)出警告信息。

 

如果采用了標(biāo)記技術(shù),那么將檢驗該標(biāo)記是否注明了正確的可選器件,例如型號是否有效及其幾何結(jié)構(gòu)是否與默認(rèn)的器件規(guī)格匹配。

 

DRC不應(yīng)當(dāng)具備的功能

 

盡管DRC能夠?qū)崿F(xiàn)很多功能,但仍然可以采用其它方法以期更好更便捷地加以實現(xiàn)。后端封裝工具可為布線工具封裝PCB設(shè)計,因此可提供有效幫助。在ViewDraw中,pcbfwd可用來檢測諸多違反規(guī)則的設(shè)計缺陷和設(shè)計錯誤。

 

DRC和pcbfwd可檢測的問題之間存在重疊,因此何時檢測何種設(shè)計問題就需要進(jìn)行折衷考慮。DRC通常在設(shè)計完成之后及pcbfwd運(yùn)行之前才能正確地運(yùn)行。理想情況下,運(yùn)行pcbfwd只為了封裝設(shè)計,因此更多的DRC可以得到更好的檢測結(jié)果。但設(shè)計人員仍然需要在其投入精力開發(fā)具有超強(qiáng)功能的DRC與pcbfwd現(xiàn)有的免費功能之間取得平衡。這一節(jié)簡單地討論了這些問題。

 

pcbfwd由配置文件控制,如果布線工具為Allegro,那么配置文件名為allegro.cfg。配置文件中的BeginChkRules - EndChkRules部分可用來檢測眾多錯誤,如相同符號的重復(fù)屬性、非法網(wǎng)路和網(wǎng)路屬性名稱、損壞的異質(zhì)封裝、異質(zhì)符號上的沖突屬性及遺漏屬性。例如,為了在異質(zhì)符號上獲取沖突的屬性,可以在allegro.cfg文件中添加如下內(nèi)容:

 

CHKBRD _HETERO_ATT ERR 0

 

但仍有一些問題既不能采用DRC,也不能采用pcbfwd進(jìn)行檢測,如PCB設(shè)計中的預(yù)期冗余。假定器件包含4個完全相同的部分,其中兩個部分用于設(shè)計,那么這些部分既可以封裝在相同器件中,也可以出于冗余考慮將其封裝在兩個器件中。如果只需要一個器件,那么兩部分用到的符號將具有相同的參考標(biāo)志符(如U4);如果需要兩個器件,那么符號將具有不同的參考標(biāo)志符(如U4和U5),設(shè)計人員必須有意識地加以標(biāo)注。目前尚無檢測這類問題的便捷方法,因此只有通過嚴(yán)謹(jǐn)?shù)脑O(shè)計進(jìn)行保障。

 

此外,盡管DRC和/或pcbfwd可以檢測符號是否具有所需的幾何屬性GEOM,但并不能檢測其值是否與電路圖符號相匹配。例如,ViewDraw符號指定的引腳數(shù)目就有可能與Allegro覆蓋區(qū)的引腳數(shù)目不匹配。

 

這類特殊錯誤可由Allegro的dev_check進(jìn)行檢測。首先,在ViewDraw電路圖上運(yùn)行pcbfwd工具,創(chuàng)建Allegro設(shè)備文件,該文件連同Allegro覆蓋區(qū)文件將導(dǎo)入至dev_check。假定引腳68、69和70位于Allegro覆蓋區(qū)而不在ViewDraw上,那么dev_check就能檢測到該錯誤。這些引腳可以是不相連引腳,安裝孔引腳,甚至是由于失誤而仍留在ViewDraw 符號外的POWER/GROUND引腳。不相連引腳和/或安裝孔引腳必須賦以NC屬性,而POWER/GROUND引腳則必須賦以SIGNAL屬性。按這種方式修正符號,然后重新運(yùn)行pcbfwd 和dev_check。

 

最后,DRC輸出的質(zhì)量取決于電路圖質(zhì)量。例如,如果輸入引腳被錯誤地指定為OUT屬性,那么DRC將產(chǎn)生錯誤的出錯消息。器件的符號質(zhì)量應(yīng)仔細(xì)而系統(tǒng)地進(jìn)行控制,因為該質(zhì)量將影響其它所有工具。

 

DRC的其它功能

 

除了檢測違反規(guī)則的設(shè)計缺陷,DRC還可以創(chuàng)建有助于設(shè)計分析的附屬輸出文件,如前所述。輸入切換可通知DRC在每次運(yùn)行時是否創(chuàng)建這些文件。盡管這些文件并不包含DRC出錯或警告消息,但仍然能標(biāo)示出潛在的設(shè)計問題。例如,一個文件包含了所有網(wǎng)路及每個網(wǎng)路上的負(fù)載數(shù)目信息。如果負(fù)載數(shù)目超出允許值,那么就有可能導(dǎo)致信號完整性問題。PCB設(shè)計人員可以迅速地檢查該文件以找到潛在的錯誤。設(shè)計人員可以獲得盡可能多的附屬文件,下面給出了部分列表。

 

* 按網(wǎng)路名稱排序的網(wǎng)路列表及每個網(wǎng)路所在圖表的列表。此外,還可能包含引腳編號和網(wǎng)路連接的符號類型(及其參考標(biāo)志符)。該文件由drc_net()函數(shù)創(chuàng)建并可用于查找網(wǎng)路所在的圖表。


* 包含所有網(wǎng)路及每個網(wǎng)路上負(fù)載數(shù)目的列表,由drc_net()函數(shù)創(chuàng)建。為了獲取更好的信號完整性,網(wǎng)路上的負(fù)載數(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就是一個串行終端匹配電阻。當(dāng)信號完整性工具報告網(wǎng)路延遲時,由于R1的存在,延遲將由u1.z到u2.i,而不是先從u1.z到 R1.1,再由R1.2到u2.i。這是正確處理時序分析的方法。

 

 

然而,為了使信號完整性工具自動識別串行元件,必須滿足一些條件。例如,電阻的參考標(biāo)志符必須以字母R開頭,后面緊跟數(shù)字,而電容則必須以字母C開頭。另一條件則是每個串行元件符號都必須具有屬性值為DISCRETE 的TYPE屬性。沒有這些條件,這些元件就無法得到正確地處理。

 

被許多其它的PCB復(fù)制的模板設(shè)計也是一個常見問題。為了避免可能的參考標(biāo)志符沖突,模板設(shè)計中的電阻和電容通??煞Q為XR1和XC1。在信號完整性工具數(shù)據(jù)庫中,這些器件都必須更改為R10001和C10001(編號略大于原始PCB設(shè)計中使用的任何參考標(biāo)志符)。設(shè)計人員可采用由DRC創(chuàng)建的離散器件列表檢查到XR和XC參考標(biāo)志符。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉