PCB layout – PCB設計操作流程和注意事項

PCB layout – PCB設計操作流程和注意事項

PCB設計操作流程和注意事項
最後修改時間:2014-12-10

本文主要描述PCB設計的流程和注意事項。彙總了一些小技巧和軟體設定。主要使用的軟體有:Cadence Allegro 15.5,CAM350 V10.5,PROE5,Si9000等。

匯入網表

Allegro 15.5開啟*.dsn/*.opj檔案出錯解決方法
在allegro15.7中也有效。

    使用Allegro 15.7中的Orcad Capture CIS(or Allegro Design Entry CIS)會出現如下問題的說明:

exception access violation
threads has read from or write to a virtual address for which it does not have the appropriate access

當用Allegro 15.7的Orcad Capture CIS(or Allegro Design Entry CIS)開啟一個檔案時,彈出錯誤視窗,大意是一個執行緒讀取虛擬地址錯誤,程式將關閉,點確定是儲存後再關閉,點取消是直接關閉程式

解決方法:

step1: 從開始選單中點選執行,輸入regedit,進入登錄檔編輯器;

HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\Policies\Explorer下的 NoRecentDocsHistory登錄檔項(DWORD型別的)設定為0;

step2: 用windows工作管理員結束explorer.exe程序,然後再用其新建一個任務,輸入explorer,再次啟動Orcad Capture CIS(or Allegro Design Entry CIS)即可。

來源:http://fcy007.blog.163.com/blog/static/6218020087425653551/

建立網表 Creat Netlist
在原理圖中點選選中Design Resources下的.dsn檔案,Tools –> Creat Netlist;或者直接點選Creat Netlist按鈕。彈出Undo warning,選yes。然後一路yes下去。
設定封裝庫路徑
若封裝不齊,無法匯入網表。
在PCB editor中,Setup –> User Preferences Editor –> Design_paths:padpath & psmpath。這兩個路徑設定為封裝所在的資料夾路徑。
PCB匯入網表
開啟.brd檔案。File –> Import –> Logic。Import logic type選擇Design entry CIS;Place changed component:Always;勾選Ignore FIXED property。找到網表所在的allegro資料夾,Import Cadence確認匯入。

匯入DXF,繪製PCB的形狀

在Board Geometry 層新建一個Dxf層,把DXF檔案全部匯入進去。在Setup – Subclasses裡為BOARD GEOMETRY新建一個層,名字自取。然後Import-DXF。DXF units選擇MM。因為DXF使用的是MM。勾選Incremental addition。在Edit/View layers..裡Sellect all,下方的Class選擇BOARD GEOMETRY,Subclass選擇DXF。點選Map,選中的圖層都會設為DXF。漢字部分不會匯入。
如果是規則的外框,可以自己畫一個outline,並且做好倒角。做倒角的時候可以在Control欄的option中選擇倒角半徑。然後設定離板邊40mil的Route keepin,和離板邊80mil的Package keepin框。
 將line轉換成shape。Shape –> Compose Shape,依次選中各個線段。在option中,active class:Board Geometry;add Shape to Subclass:Outline。這裡的line必須嚴格封閉成一個區域。否則可能無法生成Shape。
如果生成Outline Shape失敗。在line的不連線處會生成一些小導線。一般在Top層。使用Tools –> Reports –> Dangling Lines Report可以找到它們。把它們刪掉。檢查line的中斷處,用show measure來檢視線頭間距。Vertex –> ix(iy)來準確地連線上。
也可以使用allegro的change功能將DXF的線段變成outline。Edit –> change,在右邊Control的Option中選擇目標圖層和線寬。change後DXF的線段直接變成outline。change成的outline線段連線緊密,可以直接做倒角。
使用Edit –> Z-Copy生成package keepin 和 route keepin。器件布放區域一般離板邊80mil(或2mm),禁止佈線區離板邊40mil(或1mm)。
放入器件
Place中有manually和Quickplace兩種方式。如果器件較少,可以手動放置。如果器件較多,成百上千各器件,Quickplace是首選。Quickplace需要board geometry outline。軟體會把器件自動放置在板邊界旁邊。

使用Si9000計算阻抗

開啟Si9000,輸入相關引數來計算目標阻抗。比如2層板的SATA差分訊號。設定單位為mil。目標阻抗85歐姆(±10%)。FR4基板的電介質常數設為4.2。板厚1.6mm(62.9921mil)。用板厚減去銅厚和蓋油厚度可得基板厚度。蓋油的厚度一般由工廠控制。我們可取C1 = 1.7;C2 = 0.5。基板厚度H1 = 62.9921 – C2 – 2 * T1。這裡取59.1921mil。
1oz銅厚約為34微米,約1.3386mil。一般取1oz銅厚。

計算值儘量接近目標值。這樣也方便工廠調整阻抗。
得到W1 = 8.01,S1 = 5.01,D1 = 6.00。設定差分線規則的時候可以參考這些數值。
對於訊號線來說,目的在於控制阻抗而不是線寬。把線寬設定成5.01或5.02這種有小數的形式,讓工廠快速地找到相應的訊號線。

約束規則設定

設定約束規則,賦予規則
點天平圖示Cns開啟規則設定。Spacing rule set設定的是間距。Physical(lines/vias) rule set設定的是線寬等導線的屬性。兩個大類都分別有4個選項。
Set values為設定規則。新增規則時,填好規則名,先點Add,再去設定各個選項。具體的設定參考設計說明書。
Attach property,nets… 為訊號線賦予執行規則。可以在板上點選net,也可以用More鍵來找需要的net。Find by Name or Property的Object type下拉框中選擇 net。在左邊的備選框裡選擇需要的網路訊號。右邊是已選擇的訊號。選擇完成後,點選apply。這時是Edit Property和Show Properties兩個框。在Edit Property裡選擇規則型別,規則名填在value中,apply即可。
Assignment Table為Net選擇執行的區域。Area Property是訊號所在的區域。右邊的下拉框中選擇在這個區域內執行的規則。
Set DRC models一般保持預設狀態。
開啟Spacing rule set裡的same net DRC檢查選項。

參考設計說明書,把Spacing和Physical的規則設定好。然後用Attach Property賦予各個訊號規則。設定好規則後,Assignment Table指定在各個區域內執行的規則。
規則設定也是按照模組的順序來進行。這樣不會漏掉規則。在Cmgr中設定Bus與Group。設定Bus是為了方便查詢訊號。用Group來設定等長線。還需要設定最大過孔數(Max Via Count),最大線長。
設定Crt_RGB訊號等長時需引入封裝引線長度。封裝引線長度在原理圖中設定。

電流與線寬

一般認為,線寬與電流大小呈正相關。保守估計,10mil承載250mA電流,20mil承載500mA電流,40mil承載1A電流。即1mm線寬約能過1A電流。

差分線設定

用Si9000計算出合適的線寬線距後,設定相應的規則。比如,6層板,參考層為Gnd,目標阻抗85歐姆(±10%)。根據計算,設定差分線線寬為5.01mil,差分線間air gap(DiffPair primary gap)為6.99mil,DiffPair neck gap為4mil。
開啟Cns,在Physical Rule中新建一個規則。起名為85OHM-W5.01\S6.99。

如圖所示,填入各項引數。

在Physical rule set的assign table中,指定區域的執行規則。舉例如下:

將兩個訊號(Nets)設定為差分對。點選Cmgr開啟Constrain Management,左邊找到Net下的Routing –> Differential Pair。框選差分訊號,右鍵Creat –> Differencial Pair。Phase Tolerance是差分線組間的長度差距,一般設5mil。Neck gap設為4mil。給這對差分訊號賦予規則。一定要2個NET都賦予同樣的規則。

Net: EXAMPLE
DIFFP_MIN_SPACE = 6.99 MIL
DIFFP_PHASE_TOL = 5 mil
LOGICAL_PATH = @\123\.schematic1(sch_1):loutn
NET_PHYSICAL_TYPE = 85OHM-W5.01\S6.99
NET_SPACING_TYPE = 20 MIL

前兩項可以在Cmgr中設定。NET_PHYSICAL_TYPE用前面定義好的85歐姆規則。NET_SPACING_TYPE指的是差分線和其他訊號線之間的距離。

佈局相關

設定好約束規則,開始佈局。
    在Color and Visibility中選中Drc的Through All、Package_Top、Package_Bottom。可以顯示CC DRC。在器件的place_bound_top重疊時會有CC DRC。
有些器件底部要挖空一部分。器件封裝上會畫有outline來提示。需要根據器件的outline來修改板子的形狀。
把各個介面對齊放置好。根據DXF,介面的外邊在一條水平線上。若不平行,測量並用move – iy的方式調整。兩個並排放置的USB接頭可以根據走線的實際情況來互換位置。要有封裝才能匯入logic。首先完善封裝庫。封裝可以從之前的Brd檔案中匯出來。
正片與負片
Xsection(Layout Cross Section)中有層的選項。Film type:Negative/Positive。TOP和BOTTOM層(訊號層)一般都是正片。中間電源層和地層為負片。負片用Anti-Etch來劃分割槽域。製造過程中,正片是留下有線的部分。而負片是腐蝕掉有線的部分。

特殊區域規則設定
首先設定一條規則;其次賦予該特殊區域規則;當兩個規則相遇,設定優先執行的規則;最後更新一下區域。
設定規則:天平圖示Cns中,在Spacing rule set 的“Set value…”選項中,Add一個新的規則。編輯shape的屬性,指定執行規則。在Assignment table…中可以設定優先規則,在最右邊的下拉框裡選擇。最後把shape拖動一下或edit一下,讓軟體更新操作。

走線相關

佈局完成後,開始layout。

Fix和UnFix

這是個很好用的功能。能把導線、銅箔、器件等等板上的元素保護起來。剛開始佈線的時候,有好幾次把電源層的平面刪除。重新設定了電源層後將它們Fix。這樣避免了誤操作。這也提醒使用者,在操作時注意Find中選中的物件。

關於鋪銅時creat pin voids

鋪銅時,由於銅箔與pin的間距問題,在pin和pin之間經常會產生一些尖角。一個個修改銅箔邊界又很麻煩。在shape的parameters裡面有個功能,Void controls選項卡create pin voids選中In-Line,distance between pins裡填上引腳間距,銅箔會自動避讓開,邊界成一條直線。填入的數值必須大於引腳間距。否則不會避讓。即這個間距以下的都不會產生尖角。一個銅箔只能避讓一種間距的引腳。parameter可以用shape select選中後右鍵找到。
銅箔邊界得和pin平行。輸入數值50,間距小於50mil的都不會產生尖角。

設定Minimum aperture for artwork fill的引數,可以讓銅箔不進入寬度小於這個引數的縫隙。

檢視差分線誤差資訊

開啟Cmgr,左邊框Net –> Routing –> Differential Pair,在右邊可以看到差分線資訊。Phase Tolerance是差分對組內線長差。右鍵Analyze可以計算當前差值。綠色表示滿足要求。
如果連線上差分對後還是顯示黃色。點選選單欄Analyze –> Analysis modes。在DRC Modes裡把All differential pair設定為On。確定即可。

allegro與proe互動

主要輸出.emn,.emp2個檔案。

設定PCB元器件的封裝。對於一些焊盤、測試點類的封裝,package_Height_Max = 0.1 MIL 最好不要設定為0。在proe中建立3D元件庫,檔名和allegro封裝庫一致。匯入的時候會根據檔名搜尋匹配模型。
    對於機械孔,只需要mechanical pin即可。不需要place_bound_top等資訊。
基準點MASK,視為無器件高度。將package_height設定為0.01mil。PROE根據place_bound_top的形狀和高度資訊。
    PROE中匯入的零件來自allegro的封裝庫。emp檔案像是一個索引。在.brd檔案中修改器件的引數,比如器件高度。匯入PROE中不會受影響。因為PROE使用的是封裝庫裡的器件引數。
    使用拼板前的PCB。只應有單板。輸出emn和emp之前應先備份,取另一個檔名。檔名不能有空格下劃線等字元。
    PROE5對應IDF3.0格式。目前我們匯出IDF2.0格式。使用IDF3.0格式也可以。

    PROE中要有相對應的零件(.prt)。檔名和PCB元件封裝名一致。匯入時PROE會根據檔名自動尋找零件。這些零件需要放在安裝目錄的bin資料夾中。或者放在自定義的library資料夾中。如果找不到對應的零件,PROE會根據器件的place_bound_top形狀和器件高度拉伸一個零件出來。
    PCB元件封裝的原點要和.prt的基準點對應起來。元件封裝和零件的X、Y軸正方向一致。根據右手螺旋定則可以得到Z軸正方向。零件的基準點要放在器件和PCB重合的那個面上。

使用CAM350檢視Gerber檔案

CAM350 V10.5匯入RS-274-D Gerber檔案

    CAM350匯入時,注意把CAM350的精度設定成和Gerber一樣。autoimport時,先檢查單位,再點finish。
 
    可以看到單位是ELA2.6,即6位小數,2位整數。這個要調整到和Gerber一樣的狀態。
    
    這裡調整為5.5,應用到所有圖層。調整好,點選Finish即可。

CAM350 V10匯入RS-274-X的Gerber檔案

新開啟CAM350 V10,工作區內沒有開啟的檔案。File –> Setup –> Photoplotter;選擇RS274-X。再AutoImport Gerber檔案即可。

如果不進行此項設定,CAM350 V10可能會在匯入某層Gerber時卡死。

有的時候CAM350 V10.5匯入274-X檔案時卡死,原因是資料量太大。輸出Gerber時不要把好幾層都疊在一個檔案中。