編寫(xiě)PCB設計規則檢查器(DRC)的系統方法
編寫(xiě)屬于自己的PCB設計規則檢查器具有很多優(yōu)點(diǎn),盡管設計檢查器并不那么簡(jiǎn)單,但也并非高不可攀,因為任何熟悉現有編程或腳本語(yǔ)言的設計人員完全能夠設計檢查器,這項工作的好處是不可估量的,本文介紹編寫(xiě)PCB設計規則檢查器的技巧。
本文引用地址:http://dyxdggzs.com/article/190670.htm本文闡述了一種編寫(xiě)PCB設計規則檢查器(DRC)的系統方法。利用電路圖生成工具得到PCB設計后,即可運行DRC以找到任何違反設計規則的故障。這些操作必須在后續處理開(kāi)始之前完成,而且開(kāi)發(fā)電路圖生成工具的開(kāi)發(fā)商必須提供大多數設計人員都能輕松掌握的DRC工具。
然而,市場(chǎng)銷(xiāo)售的通用工具通常不具備足夠的靈活性以滿(mǎn)足特定的設計需要。因此,客戶(hù)必須將新特性需求反映給DRC工具開(kāi)發(fā)商,而這通常需要耗費一定的資金和時(shí)間,尤其當需求不斷更新時(shí)。幸運的是,大多數工具開(kāi)發(fā)商均可為客戶(hù)提供編寫(xiě)屬于自己的DRC以滿(mǎn)足特定需求的便捷方法。但是,這種具有強大功能的工具尚未得到廣泛認同或使用。本文提供了利用DRC工具獲取最大收益的實(shí)用指南。
由于DRC必須遍歷 PCB設計的整個(gè)電路圖,包括每個(gè)符號、每個(gè)引腳、每個(gè)網(wǎng)路、每種屬性,如有必要還能創(chuàng )建數目不限的“附屬”文件。如4.0節所述,DRC可以標示出任何違反設計規則的細微偏差。例如其中一個(gè)附屬文件就可能包含設計用到的全部去耦電容。如果電容數低于或高于期望值,就將在可能出現電源線(xiàn)dv/dt問(wèn)題的地方標注紅色記號[1]。這些附屬文件或許必不可少,但并非任何商用DRC工具都一定能創(chuàng )建這些文件。
DRC的另一優(yōu)勢是便于更新,以適應新設計特性(如那些可能影響設計規則的新特性)的需要。而且,一旦在該領(lǐng)域獲得充分經(jīng)驗,那么還能實(shí)現許多其它功能。
例如,如果能編寫(xiě)屬于自己的DRC,那么就能編寫(xiě)屬于自己的物料清單(BOM)創(chuàng )建工具,這樣就能更好地處理特定用戶(hù)需求,如如何獲取本身不屬于電路圖數據庫一部分的器件“額外硬件”(如插座、散熱裝置或螺絲刀)?;蛘咴O計人員可以編寫(xiě)屬于自己的Verilog網(wǎng)表分析器,該分析器在設計環(huán)境下具有充分的靈活度,如怎樣獲取適用于特定器件的Verilog模型或時(shí)間文件。實(shí)際上,由于DRC遍歷了整個(gè)設計電路圖,因此可以收集全部有效信息以輸出PCB設計Verilog網(wǎng)表分析所需的仿真和/或BOM。
在不提供任何程序代碼的前提下討論這些話(huà)題實(shí)在有些牽強,為此,我們將以一種電路圖獲取工具為例進(jìn)行說(shuō)明。本文采用了Mentor Graphics公司開(kāi)發(fā)的附屬于PADS-Designer產(chǎn)品線(xiàn)的ViewDraw工具。此外,我們還采用了ViewBase工具,這是一個(gè)可被調用并對ViewDraw數據庫進(jìn)行存取操作的簡(jiǎn)化C例行程序庫。利用ViewBase工具,設計人員可以輕松地采用C/C++語(yǔ)言為ViewDraw編寫(xiě)完整且高效的DRC工具[2] [3]。需要注意的是,這里討論的基本原則同樣適用于任何其它的PCB電路圖工具。
輸入文件
除了電路圖數據庫,DRC還需要一些可以描述特定情況處理的輸入文件,如自動(dòng)連接到電源平面的合法電源網(wǎng)路名稱(chēng)。例如,如果電源網(wǎng)路名為POWER,那么電源平面將采用后端封裝設備(如適用于ViewDraw的pcbfwd)自動(dòng)連接到電源平面。下面給出了輸入文件列表,這些文件必須放在固定的全局位置,這樣DRC就能自動(dòng)找到并讀取,然后在運行時(shí)將這些信息保存在DRC內部。
* 文件legal_pwr_net_name可選,該文件包含POWER信號全部合法網(wǎng)路名稱(chēng),如VCC、V3_3P和VDD。在PCB布局/路由工具中,需要對名稱(chēng)的大小寫(xiě)進(jìn)行區分,一般VCC并不等同于Vcc或vcc。VCC可以是5.0V的電源,而V3_3P則可以是3.3V的電源。
* 文件legal_pwr_net_name可選,因為后端封裝設備的配置文件通常必須包含一組合法電源線(xiàn)網(wǎng)路名稱(chēng)。如果采用Cadence設計系統公司的Allegro布線(xiàn)工具,那么pcbfwd的文件名則為allegro.cfg并且具有如下入口參數:
接地:VSS CGND GND GROUND
電源:VCC VDD VEE V3_3P V2_5P +5V +12V
如果DRC可以直接讀取allegro.cfg文件,而非legal_pwr_net_name,那么將能得到更好的結果(即引入誤差的幾率較小)。
電源線(xiàn)引腳通常并不外接到器件符號上,相反,該符號的一個(gè)屬性(這里稱(chēng)為SIGNAL)描述了哪個(gè)引腳是電源引腳或接地引腳并描述引腳應當連接的網(wǎng)絡(luò )名稱(chēng)。
SIGNAL = VCC:10
SIGNAL = GROUND:20
DRC可讀取該屬性并確保網(wǎng)路名稱(chēng)保存在legal_pwr_net_name文件中,如果legal_pwr_net_name中不包含網(wǎng)路名稱(chēng),那么電源引腳將不會(huì )連接到電源平面,而這個(gè)問(wèn)題確實(shí)非常嚴重。
一些符號必須具有外接電源線(xiàn)引腳,因為這些符號并不連接到常規電源線(xiàn)層。例如,ECL器件的VCC引腳要么連接到VCC,要么連接到GROUND;其VEE引腳則可連接到GROUND或-5.0V平面。此外,電源線(xiàn)引腳在到達電源線(xiàn)層之前也可連接到濾波器。
引腳與濾波器之間的網(wǎng)路可具有任意名稱(chēng),而DRC很難檢測到這一點(diǎn)。DRC可以錯誤形式匯報這一點(diǎn),而用戶(hù)則必須將其標示出或在legal_pwr_net_name文件中添加該網(wǎng)路名稱(chēng)。這就是我們需要類(lèi)似legal_pwr_net_name文件的一個(gè)原因。最后,DRC將讀取legal_pwr_net_name,以1)找到上拉電阻,2)在設計中檢查POWER網(wǎng)路名稱(chēng)的大小寫(xiě),3)檢測任何與POWER直接相連但尚未使用的引腳。
* 包含GROUND信號(如GROUND、VSS和F_GND)中所有合法網(wǎng)路名的legal_gnd_net_name文件可以隨意創(chuàng )建。而需要再次注意的是,符號的大小寫(xiě)可能會(huì )對一些PCB布線(xiàn)工具產(chǎn)生影響。而且,如果DRC可以直接讀取上述allegro.cfg文件,而非legal_gnd_net_name文件的話(huà),無(wú)疑可以得到更好的設計結果。
legal_gnd_net_name不僅具有與legal_pwr_net_name相同的功能,而且DRC還可讀取該文件,以1)找到下拉電阻,2)檢查POWER網(wǎng)路名稱(chēng)的大小寫(xiě),3)檢測任何與POWER直接相連但尚未使用的引腳。
* 包含全部合法符號庫路徑和名稱(chēng)的legal_lib_path_name文件可以隨意創(chuàng )建,這一點(diǎn)非常重要。例如,一個(gè)常見(jiàn)的嚴重錯誤是使用未授權程序庫中的符號。在PCB設計階段,根據測試需要,通常要求創(chuàng )建臨時(shí)器件符號并保存在本地符號庫目錄中。最終用到的器件符號來(lái)源于此并將保存在聯(lián)合或全局的程序庫目錄中,這些符號具有一些不同于本地器件符號的重要特征。設計人員通常會(huì )因為沒(méi)有采用共同符號取代本地符號而引入設計錯誤。
legal_lib_path_name可選,因為對于大多數電路圖工具,程序庫信息包含在啟動(dòng)工具所需的初始化文件中。對于ViewDraw工具,該文件稱(chēng)為viewdraw.ini,當工具啟動(dòng)時(shí),該文件就自動(dòng)創(chuàng )建(利用腳本程序):目錄 [r] /corp_lib/pcb/symbol_libraries/viewdraw/fct (fct)。
Fct(快速CMOS技術(shù))是ViewDraw眾多子庫中的一個(gè),也是fct器件各符號的來(lái)源。如果初始化文件存在,那么DRC不僅可以而且也應當直接讀取該文件,因為設計人員可以及時(shí)地添加新程序庫。
* 可以創(chuàng )建包含合法上拉電阻的legal_pullup_res文件以檢測那些被終止以及未被使用的輸入引腳。通常,可以限定一組設計人員能使用的電阻,當然電阻值本身也是一個(gè)重要因素。如果上拉了未使用的輸入引腳,那么該電阻的阻值將為5K或更高。
* 可以創(chuàng )建包含合法下拉電阻的legal_pulldown_res文件以檢測那些被終止以及未被使用的輸入引腳。如果下拉了未使用的輸入引腳,那么阻值將會(huì )很小以阻止任何電流泄漏,從而使引腳電壓高于觸發(fā)閥值。
* 可以創(chuàng )建包含合法去耦電容的legal_decoup_cap文件,而且公司還可要求設計人員只使用特定的合格器件以滿(mǎn)足電源線(xiàn)dv/dt要求。
* 可以創(chuàng )建一個(gè)包含器件符號全部屬性的legal_comp_attr文件,如PART_NO、GEOM、REFDES和SIM_CLASS。BOAM創(chuàng )建工具、Verilog網(wǎng)表分析器及其它工具都能使用這些屬性。
* 可以創(chuàng )建一個(gè)包含器件符號全部引腳屬性的legal_pin_attr文件,如PIN_NAME、PINTYPE和PIN_NO。
設計目錄結構
運行DRC必須滿(mǎn)足的第二個(gè)條件就是需要可被所有PCB設計共享的單獨設計目錄結構。沒(méi)有該目錄結構,DRC將難以確定如何找到電路圖數據庫并存儲輸出文件。該架構可以極復雜的分層架構支持全部PCB設計業(yè)務(wù),如設計規則檢查、BOM創(chuàng )建、Verilog仿真、靜態(tài)時(shí)序分析、信號完整性分析、布線(xiàn)、PAL/FPGA設計(綜合與仿真)及文檔控制。但對于DRC本身,如果采用了ViewDraw,那么下述條件就完全充分:
pcb_info應最少包含兩個(gè)文件:design_def和design_type。design_def應包含PCB器件(組合)數目及其它所需信息,這不僅僅對于DRC,對于其它所有工具也同樣如此。design_type應當包含設計類(lèi)型信息,即PCB信息。如果其它類(lèi)型的設計(如ASIC或FPGA)可以共享該設計目錄結構,那么design_type將指定該目錄,這樣設計自動(dòng)化工具將能根據不同的設計類(lèi)型進(jìn)行適當的操作。如果沒(méi)有pcb_info目錄或該目錄內容為空,這就意味著(zhù)設計目錄并非標準設計目錄。在這種情況下,DRC應當退出并發(fā)送出錯信息。
Schem目錄包含電路圖數據庫并可由DRC使用的ViewBase直接存取。sch子目錄包含了在圖表上描述符號位置的電路圖文件及其它信息,wir子目錄則包含設計網(wǎng)表分析及全部符號屬性。ViewBase例程可直接存取這些內容。drc目錄應存儲DRC輸出文件。
電路圖符號相關(guān)文章:電路圖符號大全
c++相關(guān)文章:c++教程
評論