微波EDA網(wǎng)-關(guān)于我們 微波EDA網(wǎng)-出版的圖書專著 微波EDA網(wǎng)培訓(xùn)課程列表 射頻工程師養(yǎng)成培訓(xùn)學(xué)習(xí)教程
  • 1
  • 2
  • 3
  • 4
您當前的位置  
首頁
PCB設(shè)計
正文

利用Cadence Allegro進行PCB級的信號完整性仿真

 

        摘要:在高速PCB設(shè)計過程中僅僅依靠個人經(jīng)驗布線,往往存在巨大的局限性.利用Cadence的Allegro軟件包對電路進行PCB級的仿真,可以最優(yōu)化線路布局,極大地提高電路設(shè)計質(zhì)量,從而縮短設(shè)計周期,本文結(jié)合作者的實際設(shè)計經(jīng)驗.介紹使用Cadence的一般步驟并列舉在使用過程中所發(fā)現(xiàn)的一些問題.

        隨著信息寬帶化和高速化的發(fā)展,以前的低速PCB已完全不能滿足日益增長信息化發(fā)展的需要,而高速PCB的出現(xiàn)將對硬件人員提出更高的要求,僅僅依靠自己的經(jīng)驗去布線,會顧此失彼,造成研發(fā)周期過長,浪費財力物力, 生產(chǎn)出來的產(chǎn)品不穩(wěn)定,一般認為高速PCB是指其數(shù)字信號邊沿上升時間小于4倍信號傳輸時延,這種高速PCB的信號線必須按照傳輸線理論去設(shè)計,否則將會嚴重影響信號的完整性.Cadence公司針對PCB Design Studio發(fā)布一個功能非常實用的高速電路設(shè)計及信號完整性分析的工具選件-Allegro PCB.利用這個仿真軟件能夠根據(jù)疊層的排序,PCB的介電常數(shù),介質(zhì)的厚度,信號層所處的位置以及線寬等等來判斷某一PCB線條是否屬于微帶線,帶狀線,寬帶耦合帶狀線,并且根據(jù)不同的計算公式自動計算出信號線的阻抗以及信號的反射、串繞、電磁干擾等等,從而可以對布線進行約束以保證PCB的信號完整性.下面根據(jù)我們的具體實踐,介紹其基本使用方法.

        由于我們在實際設(shè)計過程中,通常使用ORCAD進行電路前期設(shè)計,得到的是電路的max文件為了利用Cadence進行電路仿真,首先需要將ORCAD的max文件轉(zhuǎn)換為Allegro 的brd文件.完成這一轉(zhuǎn)換的工具是Cadence公司提供的一組附件,該附件包含4個文件,分別是Layout.ctl,Layout.fnt,layout.ini和Toallegro.exe.  使用時需要設(shè)置好路徑和環(huán)境變量然后運行Toallegro.exe文件,在提示下輸入所要轉(zhuǎn)換的max文件名就可以將max文件轉(zhuǎn)換為bsd文件.但是需要特別注意的是 ,轉(zhuǎn)換后的brd文件與原來的文件相比有一些隱蔽性的問題,列舉如下:

        首先,元件的焊盤名和封裝名會出現(xiàn)問題,在ORCAD中合法的命名規(guī)則在ALLEGRO中則可能不合法.例如:在ORCAD中可這樣定義一個封裝名"SBGA \1.27M\K31\W31\P304",但是在轉(zhuǎn)換至Allegro的bsd文件時會轉(zhuǎn)變?yōu)?SBGA127ML31W31P304";而在ORCAD中定義的焊盤名 "9DT I0.038X0.032"在轉(zhuǎn)換至ALLEGRO的brd文件時會轉(zhuǎn)變?yōu)?9DTI0_038X0_032".即它將封裝名的"\"刪掉 而將焊盤名的"."改為"_"有的焊盤名如果與ALLEGRO 中的一些關(guān)鍵字重名,必須將其改名才能轉(zhuǎn)換成功.

        第二,它會給PCB自動加上默認疊層,然而ORCAD中沒有疊層的選項.

        第三,它不能將原來的各種線寬、間距帶到allegro中.

        第四,在將ORCAD的max文件轉(zhuǎn)換至ALLEGRO的brd文件后,有時會發(fā)現(xiàn)轉(zhuǎn)換后的brd文件在ALLEGRO中雖然能夠正常打開,但是卻不能正常存盤,它只能將PCB的brd文件存為*.SAV文件.解決的方法是在dos環(huán)境下執(zhí)行dbfix命令糾正該錯誤.

        第五,轉(zhuǎn)換至ALLEGRO的brd文件的裝焊層有些元件值沒有帶過來,因此不能在allegro的brd文件中輸出裝焊圖.

        第六,也是最重要的一點,在ALLEGRO中自動加上疊層后,將原來的通孔焊盤按照默認疊層結(jié)構(gòu)自動改變, 如果要調(diào)整疊層結(jié)構(gòu),就必須對每一個通孔焊盤進行修改,否則會出現(xiàn)很嚴重的后果.因為在ALLEGRO中每一層都定義了各種焊盤,根據(jù)不同的層進行選擇,相比之下,ORCAD只在平面層上才定義熱焊盤.

        在成功轉(zhuǎn)到ALLEGRO之后還需要做些仿真前的準備. 首先是根據(jù)器件的Datasheet對器件的IBIS進行檢查, 檢查的內(nèi)容包括:
        察看IBIS庫是否有語法上的錯誤,這個可以在將IBIS文件轉(zhuǎn)換成dml文件報告時看出,或是在轉(zhuǎn)換后的dml文件上,用ALLEGRO的工具中的dml check選項進行檢查; 
        管腳的輸入、輸出類型是否正確; 
        VI、VT曲線是否有明顯的非單調(diào)性、不連續(xù)性或其他明顯的錯誤; 
        對所有的管腳模型是否都有Max,Min,Typical值以及它們的關(guān)系是否正確,如果只有Typical值,那么仿真的時候只能用Typical; 
        所有的輸出和雙向管腳模型是否都有測試負載值,即 Cref,Rref,Vref和Vmeas,如果是純?nèi)菪詼y試負載,可以沒有Rref; 
        在標準測試負載情況下,VT 的上升和下降的波形是否達到了Vmeas的值; 
        IBIS庫的管腳是否與器件的Datasheet管腳相一致. 
        做完這些檢查之后,就要對相應(yīng)的器件指定各自的IBIS庫.而對離散器件,則要手工加上SPICE庫,接著需要指定DC網(wǎng)線的電壓值,這是為以后抽取模型時,不至于把 DC網(wǎng)線當成是信號網(wǎng)線.再下一步進行疊層編輯時, 還需要同制板廠商聯(lián)系,讓他們給出滿足需要的pcb 各層的介電常數(shù),介質(zhì)厚度,銅皮厚度以及疊層的順序 ,上述參數(shù)要填在疊層表中.

        做完準備工作后,就可以抽取網(wǎng)線的拓撲結(jié)構(gòu)進行信號完整性仿真了.仿真分為2種:一種是數(shù)據(jù)線仿真, 一種是時鐘線仿真,這都是在同步電路下進行的.仿真時應(yīng)該從器件的Datasheet中查找以下的參數(shù):Tco.min,Tco.max,Tcycle,Tsetup.min,Thold.min;從所提供的時鐘的Datasheet中查找以下參數(shù)Tskew.clk,Tjit;;另外還需要估計PCB的Tskew.pcb,給出余量Tmargin. 然后根據(jù)以下兩個計算公式計算兩個參數(shù)Tsettledelay.max和Tswitchdelay.min.這兩個算式分別為:
        Tsettledelay.max≤ Tclcle-Tco.max-Tsetup.min-Tskew.clk-Tskew.pcb-Tjit-Tadj;
        Tswitchdelay.min≥Thold-Tco.min+Tskew.pcb+Tskew.clk

        經(jīng)過仔細分析,發(fā)現(xiàn)該公式確實已考慮得非常周全,把上升和下降沿的細微時間以及沿的細小抖動也,包含在內(nèi),這可能也是Cadence的PCB軟件中最核心最精華的部分.通過公式算出Tsettledelay.max,Tswitchdelay.min后,需要和根據(jù)拓撲結(jié)構(gòu)仿真出來的Tsettledelay.max,Tswitchdelay.min值進行比較以便用來調(diào)整參數(shù)這些參數(shù)包括:布線長度、線阻抗、線速、增加減電阻、電容、節(jié)點的位置以及線的連接方式等,時鐘線還需考慮它的單調(diào)性,參數(shù)調(diào)節(jié)是不能隨心所欲的,不僅要找一定的規(guī)律,還要考慮到PCB疊層的參數(shù)設(shè)置及一些現(xiàn)實所允許的值.這樣才能找到適合實際PCB的,比較理想的拓撲結(jié)構(gòu).否則如果在自動布線完成后才發(fā)現(xiàn)拓撲結(jié)構(gòu)有問題,就需要來回進行修改.還要注意一點,就是所有以上參數(shù)都必須在最壞情況下找出它們的最大范圍. 所謂最壞情況是指,在仿真Tsettledelay.max數(shù)據(jù)時, 必須是在slow的環(huán)境下;而仿真Tswitchdelay.min數(shù)據(jù)時,必須在fast的環(huán)境下進行.在我們仿真的過程中,還發(fā)現(xiàn)有些器件的Tco.min和Tco.max是在不同的測試條件下測試的,在仿真時還要改變dml庫的測試環(huán)境值,才能測出更準確的值.調(diào)整好拓撲結(jié)構(gòu)后,千萬別忘了填寫拓撲結(jié)構(gòu)的限制表,限制表里頭才是最終起作用的限制條件,接下來只要將填好限制后的拓撲結(jié)構(gòu)加在同類網(wǎng)線上,然后轉(zhuǎn)到SPECTRA中進行自動布線,SPECTRA會盡量根據(jù)限制自動布線,但是,最后在ALLEGRO 中做檢查時會發(fā)現(xiàn)有一些DRC報告是因為沒有按照限制完成布線,它會提示限制是多長,而實際只布了多長,這時,一種解決方法是刪除所有線,改變器件位置,重新自動布線;再一種就需要改變拓撲結(jié)構(gòu).如果兩種方法都失敗了就要考慮到換性能更好的器件.按照以上方法 一塊高質(zhì)量信號完整性的高速PCB就已基本完成.

        通過使用Cadence軟件進行信號完整性的仿真,我們體會到該軟件具有很強的實用性,對于硬件設(shè)計人員來說,是一種不可多得的設(shè)計工具,對高速PCB來說尤為如此.當然,對于這樣一個高智能仿真軟件,使用起來也并不那么容易,如果對它的內(nèi)部計算不甚了解, 很有可能會因為一兩個參數(shù)或選項的錯誤而導(dǎo)致仿真結(jié)果失敗,希望本文能夠起到一定的幫助作用.

推薦課程

射頻工程師學(xué)習(xí)培訓(xùn)教程