編寫屬于自己的PCB設(shè)計規(guī)則檢查器
編寫屬于自己的PCB設(shè)計規(guī)則檢查器具有很多優(yōu)點,盡管設(shè)計檢查器并不那么簡單,但也并非高不可攀,因為任何熟悉現(xiàn)有編程或腳本語言的設(shè)計人員完全能夠設(shè)計檢查器,這項工作的好處是不可估量的,本文介紹編寫PCB設(shè)計規(guī)則檢查器的技巧。
本文引用地址:http://www.ex-cimer.com/article/191411.htm本文闡述了一種編寫PCB設(shè)計規(guī)則檢查器(DRC)的系統(tǒng)方法。利用電路圖生成工具得到PCB設(shè)計后,即可運行DRC以找到任何違反設(shè)計規(guī)則的故障。這些操作必須在后續(xù)處理開始之前完成,而且開發(fā)電路圖生成工具的開發(fā)商必須提供大多數(shù)設(shè)計人員都能輕松掌握的DRC工具。
然而,市場銷售的通用工具通常不具備足夠的靈活性以滿足特定的設(shè)計需要。因此,客戶必須將新特性需求反映給DRC工具開發(fā)商,而這通常需要耗費一定的資金和時間,尤其當(dāng)需求不斷更新時。幸運的是,大多數(shù)工具開發(fā)商均可為客戶提供編寫屬于自己的DRC以滿足特定需求的便捷方法。但是,這種具有強大功能的工具尚未得到廣泛認同或使用。本文提供了利用DRC工具獲取最大收益的實用指南。
由于DRC必須遍歷 PCB設(shè)計的整個電路圖,包括每個符號、每個引腳、每個網(wǎng)路、每種屬性,如有必要還能創(chuàng)建數(shù)目不限的“附屬”文件。如4.0節(jié)所述,DRC可以標(biāo)示出任何違反設(shè)計規(guī)則的細微偏差。例如其中一個附屬文件就可能包含設(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。
在不提供任何程序代碼的前提下討論這些話題實在有些牽強,為此,我們將以一種電路圖獲取工具為例進行說明。本文采用了Mentor Graphics公司開發(fā)的附屬于PADS-Designer產(chǎn)品線的ViewDraw工具。此外,我們還采用了ViewBase工具,這是一個可被調(diào)用并對ViewDraw數(shù)據(jù)庫進行存取操作的簡化C例行程序庫。利用ViewBase工具,設(shè)計人員可以輕松地采用C/C++語言為ViewDraw編寫完整且高效的DRC工具[2] [3]。需要注意的是,這里討論的基本原則同樣適用于任何其它的PCB電路圖工具。
輸入文件
除了電路圖數(shù)據(jù)庫,DRC還需要一些可以描述特定情況處理的輸入文件,如自動連接到電源平面的合法電源網(wǎng)路名稱。例如,如果電源網(wǎng)路名為POWER,那么電源平面將采用后端封裝設(shè)備(如適用于ViewDraw的pcbfwd)自動連接到電源平面。下面給出了輸入文件列表,這些文件必須放在固定的全局位置,這樣DRC就能自動找到并讀取,然后在運行時將這些信息保存在DRC內(nèi)部。
* 文件legal_pwr_net_name可選,該文件包含POWER信號全部合法網(wǎng)路名稱,如VCC、V3_3P和VDD。在PCB布局/路由工具中,需要對名稱的大小寫進行區(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)路名稱,那么電源引腳將不會連接到電源平面,而這個問題確實非常嚴重。
一些符號必須具有外接電源線引腳,因為這些符號并不連接到常規(guī)電源線層。例如,ECL器件的VCC引腳要么連接到VCC,要么連接到GROUND;其VEE引腳則可連接到GROUND或-5.0V平面。此外,電源線引腳在到達電源線層之前也可連接到濾波器。
引腳與濾波器之間的網(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)建,這一點非常重要。例如,一個常見的嚴重錯誤是使用未授權(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)
運行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è)計類型進行適當(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輸出文件。
評論