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

利用Cadence Allegro進(jìn)行PCB級的信號完整性仿真

 

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

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

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

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

        第二,它會給PCB自動加上默認(rèn)疊層,然而ORCAD中沒有疊層的選項(xiàng).

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

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

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

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

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

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

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

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

推薦課程

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