Cadence布局布線常見問題詳解

admin @ 2014-03-26 , reply:0

概述
1. 怎樣建立自己的元件庫?   建立了一個新的project后,畫原理圖的第一步就是先建立自己所需要的庫,所採用的工具就是partdeveloper.首先在建……
1. 怎樣建立自己的元件庫?
    建立了一個新的project后,畫原理圖的第一步就是先建立自己所需要的庫,所採用的工具就是part developer. 首先在建立一個存放元件庫的目錄(如mylib),然後用寫字板打開cds.lib,定義: Define mylib d:\board\mylib(目錄所在路徑). 這樣就建立了自己的庫。在Concept_HDL的component->add,點擊search stack,可以加入該庫。

2. 保存時Save view和Save all view 以及選擇Change directory 和不選擇的區別?
建立好一個元件庫時,首先要先保存,保存盡量選擇 save view。在concept-HDL中,我們用滑鼠左鍵直接點擊器件后,便可以對器件的外形尺寸進行修改,這時如果你再進入part developer做一些修改後,如果選擇save all view會回到原來的外形尺寸,而選save view
會保留改動后的外形。
   

3. 如何建part庫,怎麼改變symbol中pin腳的位置?
    在project manager中tools/part developer可建立,選擇庫並定義part name,在symbol中add symbol,package中add package/addpin,依次輸入pin:
package中:
a, Name : pin’s logical name不能重複
b, pin : pin的標號,原理圖中backannotate后相應的標號
c, pin type: pin腳的類型(input,output等,暫可忽略)
d, active:pin的觸發類型  high(高電平),low(低電平)
e, nc:填入空腳的標號
f,  total:此類型的所有pin腳數
g, 以下暫略
symbol中:
a, logical name:對應package中的name
b, type:對應package中的type
c, position:pin腳在器件中位置(left , right , top , bottom)
d, pintext:pin在器件中顯示的name(對應package中的pin,但可重複,比如package中
的gnd1和gnd2都可設為gnd)
e, active:對應package中的active
    修改:用part developer打開要修改的器件,*選擇edit/restrict changes(若不選擇,則器件被保護,修改後存檔無效),一般修改:
a, package中相應pin的標號和name
b, pin的active類型
c, symbol中各pin腳的順序(pin腳的順序在第一次存檔后再次打開會被改變,對於較多
pin腳的器件,如232pins,修改較繁瑣,故儘力保證的一次的成功率。pin腳在器件中的排列順序是根據symbol中的順序而定,故symbol中pin腳的順序一定要正確,若有錯需修改,選中pin按ctrl鍵配合上下鍵標可移動pin腳位置。

4. 畫電原理圖時為什麼Save及打包會出錯?
    當保存時出錯,主要原因可能是:所畫的信號線可能與元件的pin腳重合,或信號線自身重合;信號線重複命名;信號線可能沒有命名;在高版本中( 版本14.0以上)中,自己所創建的庫不能與系統本身帶有的庫名字相同;建庫時,封裝原件的管腳個數與原件庫的管腳個數不同。打包時會出錯的原因則有可能是所做的封裝類型與元件不匹配(如pin腳的個數,封裝的類型名等。

5. 在電原理圖中怎樣修改器件屬性及封裝類型?
    在菜單Text下拉菜單中選擇Attribute特性,然後點擊器件,則彈出一Attribute 窗口,點擊Add按鈕,則可以加入name ,value,JEDEC_TYPE (封裝類型) 等屬性。

6. 如何在Pad Design中定義Pad/via?及如何調用*.pad?
在pad design中,建立pad 時,type選single類型,應該定義下面幾層的尺寸:begin layer(有時是end layer), soldermask和 pastemask 。建立Via時,type一般選through,定義drill hole 的尺寸 和所有的layer層(注意定義thermal relief和anti pad)以及soldermask。一般Pastemask和Regular一樣大,soldmask比layer的尺寸大幾個Mil,而thermal relief和anti pad比regular pad的尺寸大10Mil以上。

7. 做封裝庫要注意些什麼?
做封裝既可以在Allegro中File->New->package symbol,也可以使用Wizard(自動向
導)功能。在這個過程中,最關鍵的是確定pad與pad的距離(包括相鄰和對應的pad之間),以確保後期封裝過程中元器件的Pin腳能完全的無偏差的粘貼在Pad上。如果只知道Pin的尺寸,在設計pad的尺寸時應該比Pin稍大,一般width大1.2~1.5倍,length長0.45mm左右。除了pad的尺寸需特別重視外,還要添加一些層,比如SilkScreen_top和Bottom,因為在以後做光繪文件時需要(金手指可以不要),Ref Des也最好標註在Silkscreen層上,同時注意絲印層不要畫在Pad上。還應標誌1號pin腳的位置,有一些特殊的封裝,比如金手指,還可以加上一層Via keep out,或者route keep out等等,這些都可以根據自己的要求來添加。操作上要注意的是建好封裝后,一定不要忘了點擊Create symbol,不然沒有生成*.psm文件,在Allegro就無法調用。


8.為什麼無法Import網表?
  在Allegro中File選項中選Import???>logic,在import logic type選HDL-concept,注意在Import from欄確認是工作路徑下的packaged目錄,系統有可能自動默認為是physical目錄。

9.怎麼在Allegro中定義自己的快捷鍵?
在allegro下面的空白框內,緊接著command>提示符,打入alias F4(快捷鍵) room out(命令)。或者在Cadence 安裝目錄/share/pcb/text里有個env文件,用寫字板打開,找到Alias定義的部分,進行手動修改既可。

10.怎麼進行疊層定義?在布線完成之後如何改變疊層設置?
在Allegro中,選Setup-Cross-section。如果想添加層,在Edit欄選Insert,刪除為del,材料型號,絕緣層一般為FR-4,Etch層為Copper,層的類型,布線層選Conductor,鋪銅層為Plane,絕緣層為Dielectric,Etch Subclass Name分別為Top,Gnd,S1,S2,Vcc,Bottom。
Film Type一般選擇Positive,plane層選擇Negative。如果布線完成之後,發現疊層設置需要改動。比如原來設置的為3,4層是plane層,現在需要改為2,5層,不能簡單的通過重命名來改變,可先在2,5層處添加兩層plane層,然後將原來的plane層刪除。


11.為什麼在Allegro布局中元器件在列表中不顯示或者顯示而調不出來?
首先確定Psmpath,padpath的路徑有沒有設置,如果沒有設置可以在Partdevelop里設置,或者在env文件中手動添加。也有可能器件在列表中存在,但是無法調出,可檢查該器件所用到的*.pad文件及封裝庫文件*.dra,*.psm是否存在於你的工作目錄×××/physical里。另外還有一種可能就是頁面太小,不夠擺放器件,可以在setup-draw size中調整。

12.為什麼器件位置擺放不準確,偏移太大?
    主要是因為Grids設置的問題,可在setup-grids中將每一層的Etch及Non-etch的grids的X、Y的spacing間隔調小。對於一些對位置要求比較嚴格的器件,比如插槽,金手指等用於介面的元器件,則應該嚴格按照設計者給定的位置尺寸,在命令行里用坐標指令進行定位。如:x 1200 3000 。

13.怎樣做一個Mechanical symbol,以及如何調用?
Allegro中File-new,在drawing type中選擇Mechanical symbol。主要是為了生成PCB板的外框模型,在這裡面雖然也可以添加pad,但是沒有管腳對應關係。Mechanical symbol 完成以後,生成*.dra文件。在Allgro中調用時,選擇by symbol?>mechanical。注意右下角的library前面的勾打上。

14.在布局后如何得到一個整理后的所有元件的庫?
如果嫌physical目錄下各類文件過分繁冗,想刪除一些無用的文件,或者只有一個*.brd文件,想獲取所有的元件及pad封裝庫的信息,可以採用這種辦法:將*.brd另存在一個新的目錄下,在File->選export->libraries,點中所有選項,然後export,即可在你的新目錄下生成所有的*.pad,*.psm,*.dra文件。

15.如何定義線與線之間距離的Rule?
    我們以定義CLK線與其它信號線之間的距離為例:
在Allegro中:setup->constraints,在spacing rule set中點set values。首先add一個constraint set name,比如我們取名為CLOCK_NET,然後就在下面定義具體需要遵守的規則。
比如line to line 我們定義為10 mil。接著在allegro主窗口的edit菜單下選擇properties,會跳出你的Control工具欄,在find by name 中選擇net,在右下角點擊more。在新彈出的窗口的列表中選擇你所想規定的CLK線,如CK0、CK1、CK2等等,確定右邊的selected objects中以選中所有的線,點Apply。又會出現一個新窗口,在左邊的available properties中選擇NET_SPACING_TYPE,在左邊給它賦值(名字隨意),比如CLK。回到setup->constraints,
在剛才set values的下面點擊Assignment table,即可將所定義的規則賦給所選用的net。
在Specctra中,可先選中所要定義間距的信號線(select —>nets->by list),然後在rules中選selected net->clearance,在該窗口可定義一系列的布線規則,比如要定義線與線之間的間距,可在wire-wire欄定義,注意,當點Apply或者OK之後,該欄仍然顯示-1(意思是無限制),只要看屏幕下方的空白欄,是否有定義過的信息提示。


16.為什麼在Allegro中畫線不能走45度角?
在control控制欄的line lock中,可將90改為45,如果想畫弧線,可以將line改為Arc。

17.如何在CCT中定義走線最大最小距離?
同上面定義間距的方法類似,在選中所要定義的線之後,rules->selected net->timing,則可以在minimum length和maximum length中定義走線的最長最短長度限制,也可以用時間延遲為限制來定義。還有一種方法就是在Specctra Quest中提取某一根信號線的拓補結構作為模型,在裡面定義各段導線的長度限制,然後生成rule文件,可以約束相同類型信號線的走線。

18.在CCT中如何進行一些保存讀盤操作(顏色設置、規則保存)?
在Specctra里,可用file->write->session來保存當前布線,用file->write->rules did files來保存規則文件,調用時均使用file->execute do file,然後打需要調用的存檔文件,如Initial.ses或rules.rul 。在color palette中使用write colormap和來load colormap來保存和讀取顏色設置。

19.在CCT中怎麼大致定義自動打孔的位置,怎麼打一排過孔及定義其排列形狀?
CCT中有自動打過孔的功能,在Autoroute->Pre Route->Fanout 。可以指定過孔的方向,比如想把過孔都打在Pad的內部,則可以在location中選inside。其中也可以定義一些其他限制。另外有時我們可以選擇一組線進行平行走線,這時就可能同時打一排過孔,右擊滑鼠選擇set via pattern,可選擇其排列形狀。在窗口的右下方也有快捷按鈕可以選擇。

20.為什麼提示的最大最小距離不隨走線的長度變化而改變?
我們在定義了最長最短走線的規則之後,在布線時會有數字顯示,隨時告訴你如果按當前走向布線會離所定義的規則有多大的偏差。一般在規則長度以內的用綠色字體顯示,超過了或長度不夠會有紅色字體顯示,並用+/—提示偏差量。但是這個提示的偏差量並不是簡單的隨你走線的長度變化而變化。它是根據你的布線方向,軟體自動計算按此方向走線的長度與規定長度的比較,如果變換走線方向,它也會重新計算。

21.怎麼鋪設Plane層?鋪好后怎麼修改?
鋪銅這一步驟一定要在Allegro中進行,Add->shapes->Solid Fill,同時注意在Control工具欄中Active Class選Etch,Subclass選所要鋪設的Plane層,如VCC或者GND。然後即可畫外框,注意離outline有20 Mil左右的間距。Done之後會進入鋪銅的操作界面,選Edit->Change net(by name)給Plane層命名。在shape—>parameters確定是否使用了Anti Pad和Thermal relief,接著選Void->Auto,軟體會自動檢測Thermal relief,完成之後會有log彙報,如果沒有任何錯誤既可鋪設shape,shape->Fill 。如果鋪好之後又有過孔的改動,需要重新鋪銅,則應選Edit->shape,點在shape上,然後右擊滑鼠選done,這樣就會自動將連接在shape上的Thermal relief刪除,不能硬刪鋪銅的shape層,否則那些Thermal relief將遺留在Plane層上。

22.怎麼定義thermal-relief 中過孔與shape連線的線寬?
在Allegro的Setup->constraints里的set standard values中可定義每一層走線的寬度,比如,可以定義VCC和GND的線寬為10 Mil。在鋪銅時注意shape->parameters里一些線寬的定義是否設置成DRC Value。

23.如何優化布線而且不改變布線的總體形狀?
布線完成之後,需要對其進行優化,一般採用系統自動優化,主要是將直角變為45度,以及線條的光滑性。Route->gloss->parameters,在出現的列表中,選Line smoothing,進行Gloss即可,但有時布線中為了保證走線距離相等,故意走成一些彎曲的線,優化時,點擊Line Smoothing左邊的方塊,只選擇convert 90’s to 45’s ,把其他的勾都去掉,這樣進行優化時就不會將設計者故意彎曲的走線拉直或變形。

24.如何添加淚滴形焊盤以及加了之後如何刪除?
在優化的parameters選項中只選擇倒數第二個,Pad And T Connection Fillet ,並去掉其中的Pin選項,進行優化即可。想要刪除的話,則只選Line smoothing中的dangling Lines進行優化。注意:如無特殊要求,現在我們不再進行此項優化。

25.布線完成之後如果需要改動封裝庫該如何處理?
在器件擺放結束后,如果封裝庫有改動,可以Place->update symbols,如果是pad有變化,注意要在update symbol padstacks前打勾。布線完成之後盡量避免封裝庫的改動,因為如果update,連接在Pin上的連線會隨Symbol一起移動,從而導致許多連線的丟失,具體解決辦法有待於研究。

26.為什麼*.brd 無法存檔?
遇到這種情況注意看屏幕下方的空白欄的提示,有可能是硬碟空間不夠,還有一種可能是因為資料庫出錯,軟體會自動存檔為*.SAV文件,這時可以重新進入Cadence(可能需要重起動),打開*.SAV,再另存為*.brd 。或在Dos下運行DBFix  .SAV,會自動將其轉換為
*.brd文件,然後即可調用。

27.Allegro有哪些在Dos下的資料庫修正命令?
有時Allegro會出現一些非法超作,導致一些數據出錯,我們可以在Dos方式下,在工作目錄下(即physical目錄下),運行一些修正命令,如Dbcheck *.brd , 或Dbfix *.brd 。不過實際中這些命令好像效果不大。

28.如何生成*.DML模型庫?
    在dos模式,工作目錄下,敲入brd2dml *.brd 命令,這樣在該目錄下會生成對應brd文件的模型庫dml文件。

29.如何在Specctra Quest里使用IBIS模型進行模擬?
首先將IBIS模型轉化為*.dml文件。在Specctra Quest SI expert中Analyze->Si/EMI SI->library,在出現的新窗口的右下角,點擊translate->ibis2signoise,然後在browse里選擇*.ibs文件,將其轉化為*.dml文件。然後在Analyze->SI/EMI SI->model Assign中將所有的器件載入對應的模型。然後就可以用probe提取信號線進行模擬了。

30.生成Gerber file要哪些文件?如何產生?
在PCB 布線完成以後,所做的最後一項工作就是產生生產廠家所需要的光繪文件,具體步驟在Allegro工具下完成。在Manufacture 菜單下點擊Artwork 選項, 則出現一個artwork control form窗口。所提供的光繪文件除了包括已產生的TOP, GND, S1, S2, VCC, BOTTOM6層,還應包括silkscreen_top, silkscreen_botom, soldermask_top, soldermask_bottom, pastemask_top, pastemask_bottom, drill drawing file, 及drill hole。我們以製作Silkscreen的top層為例。
1) 在Allegro窗口中,點擊color 圖標,在產生的窗口中,global visibility 選擇
 all invisibility, 關掉所有的顯示。
2)  在group 選擇Geometry. 然後選中所有的subclass(Board_Geometry , package
 Geometry)下的silkscreen_top 。
3) 同樣在Group/ manufacture 中選擇Autosilk_top 。 在Group/components ,subclass  REF DES 中選擇 silkscreen。
4)  選擇OK按鈕 ,則在Allegro窗口中出現 silkscreen_top層 。
5)  在artwork control form 窗口,右鍵點擊Bottom ,在下拉菜單中選擇add ,   則在出現的窗口中輸入:silkscreen_top, 點擊O.K , 則在avilibity films 中出現了新加的silkscreen_top。
    注意:在FILM opition選中Use Aperure Rotation, 在Underined line width 中填寫5(或10) ,來定義還沒有線寬尺寸的線的寬度。
按照上面的步驟,產生silkscreen_bottom層。soldermask_top和 soldermask_bottom 層分別在 :  Gemoetry 組和  Stackup 組(選擇PIN 和VIA子集);Pastemask_top 和Pastemask_bottom 分別在Stackup組(選擇PIN 和VIA子集);DrillDraw 包括Group組/Board Geometry中的outline、Dimension 和Manufacturing 中的 Ncdrill_Legend。這樣,按照上面的步驟,分別添加上述各層。然後在  Artwork control form 窗口中 ,點擊Select All   選中所有層 , 再點擊 Apertures….按鈕, 出現一新的窗口EditAperture Wheels, 點擊EDIT, 在新出現的窗口中點擊AUTO>按鈕,選擇with rotation, 則自動產生一些Aperture文件。然後點擊O.K。在 Artwork control form 中點擊 Creatartwork , 則產生了13個art文件。 回到 Allegro 窗口, 在 Manufacture  菜單下點擊NC 選項中的Drill tape 菜單 ,產生一個*.tap 文件。到此,就產生了所有的14個光繪文件。

31.如何調看光繪文件?及如何製作Negtive的Plane層光繪文件?
新建一個空白layout文件,File->import->Artwork,然後就可以在browse中選擇*.art文件,Manual中選gerber 6×00。注意不要點OK,點擊Load File。在調用Soldermask 時要在display pad targets前打勾。 調用silkscreen層時,可能會發現沒有器件名標誌。這是因為在上面製作光繪文件時,Underined line width沒有定義寬度,而在以前製作封裝庫時,silk_screen層時標註的Ref也沒有定義寬度,則在調用時會不顯示。另外如果想製作Negtive的光繪文件。在製作光繪文件時,Gnd和Vcc層的Plot mode選為Negative就行。



[admin via 研發互助社區 ] Cadence布局布線常見問題詳解已經有5868次圍觀

http://cocdig.com/docs/show-post-44410.html