根據課題需要,我們要搭建一個雷達信號處理的硬件平臺。在此平臺上,有4個DSP(C’6203)及多個高速同步RAM,總線頻率100Mhz。我們選用我所新近購買的Mentor公司的PCB工具作為設計手段,目的是熟悉使用該軟件,進行必要的仿真,使設計能夠盡可能一次成功。經過3個多月的工作,我們最終完成了兩塊10層板的設計工作。這段時間中,對Mentor的DxDesigner及ExpediTIon PCB進行了熟悉使用,現將這段工作的設計體會進行簡單的總結。
關于Expedition的設計思想
對于大部分硬件工程師來講,PCB設計使用最多的恐怕就是protel,因此在使用Expedition做PCB設計時不自覺的就會把兩者設計思想進行比較,從本質上來講,兩者并無什么不同,都是符號,封裝,互連關系,但是在具體形式上,Expedition比起Protel要更為細致。Protel在設計時只需要兩個庫:符號庫及封裝庫,原理圖設計時在元件的屬性中進行兩者的對應,然后生成網表文件,就可以帶入到PCB中進行布局布線,如圖1所示。
與此不同,Expedition中引入了中心庫(Central library)的概念,符號(Symbol)與封裝(Cell)的對應是在中心庫中完成,形成器件(Part)。可以說,中心庫是整個設計的基礎,從焊盤定義,封裝制作、符號與封裝的對應,都在中心庫中完成。在進行原理圖設計時,可以從中心庫中調符號,當然也可以自己建立本地符號庫,但是在進行編譯之前,要用中心庫中的符號代替自己建立的符號,并在符號的屬性中指定與中心庫中Part的對應關系,同時指定中心庫路徑,這樣才可以完成編譯,進入下一步 PCB的流程(圖2)。
前端輸入工具(DxDesigner)
我所購置的Mentor軟件的前端管理工具是DxDesigner。由于我們手中沒有現成的中心庫可用,時間又比較緊張,在設計之初,我們采用的是兩個人分頭進行的設計方法:一個人負責建立符號庫及原理圖設計,另一個人則負責作封裝庫,到基本完成后再整合在一起。
原理圖設計工具是viewdraw,在viewdraw的環境中也可以編輯制作符號,符號(symbol)創建有導航,在編輯時比較方便,也可以用 VHDL或Verilog語言作為輸入源,由于現在器件公司網站上一般都會提供語言的描述,所以有時候會比較快,但是用這種方式做出來的符號往往管腳排列不規則,需要改動,有時并不比手動輸入時方便多少;元器件的屬性種類比較豐富,但常用的基本屬性就幾個,只要填寫正確一般也不會出大問題;他的路徑設定比較麻煩,若想把在別的機器上的設計拷過來,必須先進行歸檔(Archive)操作,把庫、設計數據進行打包,這樣的工程才能在新的機器上打開;原理圖編輯功能也都大同小異,總的感覺,它的原理圖輸入工具沒什么優勢可言,輸入的方便性及直觀性都比較一般。
庫管理工具(Library Manager)主要用于中心庫的創建及管理工作,它主要包括四個部分:焊盤堆(Padstack),符號(Symbol),封裝(Cell),元件 (Part),分別由各自編輯器來完成編輯工作。此外,中心庫管理器還提供了導入導出功能,可以與別的中心庫進行較為方便的數據交換。
焊盤是封裝的基礎,因此一般先建焊盤,焊盤堆編輯器中提供的焊盤種類很豐富,能滿足各種需求,除非特殊需要,一般情況下都選用通孔和表貼焊盤,只是孔徑有所區別。封裝建立時有導航器,可以根據需要選擇不同的封裝種類,然后選擇管腳間距,確定焊盤,較快的生成封裝。符號部分可以由符號編輯器完成,我們由于大部分符號在畫原理圖時已經建好,因此可以直接導入。最后一步就是生成元件(Part),這個過程雖然比較簡單,只需在編輯器中導入相應的符號及封裝進行對應,但是對于管腳比較多的器件來講,非常容易出錯,如果在原理圖里管腳定義有問題,在建元件(Part)時并不容易檢查出來,但在進行原理圖編譯時就會報錯,提示為原理圖的符號與中心庫里的元件不匹配(Dismatch), 因為給的提示信息太少,這樣的錯誤非常難找。我們在設計時就碰到了這樣的困難,花了很多的時間和精力來解決原理圖中的符號與中心庫的元件不匹配的問題。
PCB設計工具(Expedition PCB)
當原理圖編譯成功,數據進入公共數據庫,選擇合適的PCB模板,就可以進行PCB設計。相比與原理圖設計工具,Mentor的PCB工具(Expedition PCB)優勢還是相當明顯,從布局、布線到調線功能都非常強大。
在進入PCB設計環境后,先指定中心庫,進行前標(Forward Annotate),將公共數據庫中的數據導入到PCB的設計環境中,這時候元器件的封裝及互連關系就已經確定,就可以開始著手進行布局的工作了。如果是從頭開始的話,可以將所有器件一下全部放到PCB板上,也可以一個一個放,我們使用的方法則是與原理圖連接的交互布局方法,就是把原理圖和PCB進行連接 (Connection),根據原理圖來選擇放什么器件,這樣的好處是比較關鍵器件位置一開始就做到心里有數,等大的、比較關鍵的器件放完之后,再可以把剩下的器件都放在板子上進行調整。
在布局之前最好進行仿真確定拓撲結構,這需要仿真軟件的支持,我們選用的是Hyperlynx,在后面將對仿真做專門的討論。在確定了拓撲結構,完成器件的布局,定義了PCB的分層情況后,就可以開始布線的操作,Expedition PCB為布線提供的功能非常豐富,從手動到自動,選擇很多,設置也就很多。作為初學者,并根據需要,我們沒有做太多的選項設置,除了線寬、線間距、焊盤、過孔等基本設置外,主要在網絡分類、線長控制上作了必要的設置,為將來的后仿真做準備。
在進行布線之前,一般對管腳比較多、比較密的封裝(如 BGA)先進行管腳扇出操作,這樣的好處除了使過孔對的比較整齊外,也省去了從焊盤進行拉線的步驟,當然,選擇每個管腳都向同一方向扇出并打孔可能會占用一些布線資源,這可以在布線之前進行一些整合,把一些相鄰較近的電源、地管腳進行合并。
開始進行布線后,先進行了一次試探性的自動布線,確定各元件附近線的密度情況,從自動布線情況看,布通率還是很高。根據我們的具體情況,我們選擇以手動方式為主對關鍵器件(如DSP)進行布線。 Expedition PCB提供了一個總線布線的方法(multi-plow),對于總線眾多的數字電路來講,要方便快捷很多,同時也很大程度上避免了走線不等長的問題。在比較關鍵的部分用手動完成后,剩下的要求不高的部分可以由自動布線來完成,除非走線太密,一般情況下布通率還是很高,剩下的不多的幾根線再用手動完成,難度也不會太大。在完成布線后,難免要進行一定的調線,Expedition PCB調線非常方便,線之間的推擠,線與過孔之間的位置互換都很靈活,另外,如果有些線之間不等長,他的tune功能可以比較方便的幫助實現。總之,在布線的靈活性及方便性來講,確實感覺原來用的protel要高出不少。
在完成布線工作后,還有一個比較重要的工作就是電源層的生成,電源層網絡的指定及劃分都比較方便。電源層需要處理(planes processor),在那里定義電源的正、負片、熱焊盤的形式,處理過的電源層才會有對應的電源層數據,要注意的一點是一旦設計有改動,必須要重新進行電源層處理,比方說有焊盤的位置移動過,那么在電源層對應位置的阻焊不會跟著移動,必須要重新進行電源層處理后才能和移動過的新焊盤位置對應上。
再往下的工作就是進行規則檢查(DRC),Expedition PCB提供的規則檢查種類很多,要根據具體情況選擇,關鍵的是未連通、電源孤島、懸線、環形線等,根據檢查結果改動設計,當DRC沒有報錯時,這個PCB 的設計也就基本完成了。當設計檢查基本完成后,可以根據需要對PCB板上的元件標號重新定義,按照從左至右或從上到下的順序對源器件進行重新編號,還可以根據要求給器件標號加前綴,方便將來歸檔和元件的焊裝查找。當然,這一步完成后,要對數據庫中的數據進行反標(Back Annotate),然后,用數據庫中的數據對原理圖再進行反標,才能使原理圖與PCB對應上。反標結束后,可以根據情況修改絲印層字體的大小及位置,并用工具(silkscreen generator)處理一下,才能生成絲印層的數據。
最后一步,就是制板數據的生成,Expedition PCB中輸出gerber文件,而且有gerber tool來對觀察生成的gerber文件,在gerber tool中看到的數據與生產廠家看到的數據是一樣的,在這里可以對你的設計進行最后一步的控制。制板需要的最少文件需要兩個:gerber文件和打孔 (NC Drill)文件。
仿真工具(ICX及Hyperlynx)
仿真一般包括兩個部分:前仿及后仿。前仿用來確定器件的拓撲結構及走線距離,后訪可以對整板進行仿真,對器件的信號完整性、時序配合進行觀察,防止一些錯誤情況的出現,使得信號時序盡可能完成要求。當然,仿真只能是參考性的,具體的結果還要根據調試情況而定。
選擇什么樣的拓撲結構與PCB的最后完成情況密切相關,因此,在進行拓撲布局前,有必要進行前期仿真工作,初步確定元件的拓撲形狀及距離遠近。 Mentor提供的仿真工具Hyperlynx可以完成這項工作,它是以器件的IBIS模型為基礎,確定線長及阻抗,對不同拓撲情況下對某些關鍵信號進行仿真,觀察不同拓撲下的信號完整性情況,從中選取一個最好的方案。當然,它的作用并不僅限于此,在PCB完成后,也可以根據實際走線情況進行具體信號的仿真,這對分析解決調試中的一些問題也會有一定的參考作用。在經過不同拓撲的仿真比較,我們最終確定了DSP與高速同步存儲器之間采用菊花鏈的連接方式。
后仿真用于在完成布線后對信號完整性及總線時序配合進行仿真,我們用ICX對某些關鍵信號做了必要的仿真,ICX仿真的基礎也是器件的IBIS模型,不同的是,它已經考慮到了PCB的具體布線情況、走線長度、相鄰線的串擾、終端匹配情況、PCB板的材料等,對我們來說,比較感興趣的就是一組總線到達高速同步存儲器時的時序配合情況,ICX可以看出一個網絡類中不同信號到達終端時的時間,通過這種方式可以判斷布線能否滿足時序要求。
本文小結
從使用的情況看,總的感覺Mentor的這套PCB設計工具前端設計輸入比較麻煩,后端布線則比較方便。尤其是中心庫,如果要從無到有的建立,是個非常艱苦的過程,可以說,沒有一個強有力的中心庫支持,這套軟件的推廣使用就會步履維艱。從外面公司對這套軟件的使用情況看,Mentor一般適于團隊化設計方式:建庫人員負責專門建庫,并負責庫的及時更新,這樣中心庫的器件制作會比較規范,使用起來也會得心應手;工程設計人員只負責進行原理設計,可以把主要的精力放在方案的建立和提出時序要求;PCB人員根據設計人員的要求,專門負責布線,ExpediTIon PCB功能強大,設置很多,沒有長時間的使用經驗,很難完全掌握,因此有專門的人員從事這樣工作才能充分發揮該工具的優勢;仿真部分可以由專門的仿真人員,也可以由設計人員來完成,仿真也是一個工作量很大的工作,從器件模型的查找到建立,非常耗時,而且仿真對設計人員的要求也比較高,如何根據仿真結果進行判斷,合適的修改設計,也需要一個經驗積累的過程。
我所目前的組合設計,是以型號為主線,設計人員從設計到調試全部完成,好處是設計人員對自己的東西比較了解,但對于Mentor這樣的大型軟件來講,后果可能是設計人員對這套工具中的每個軟件了解的都不是很透徹,發揮工具的優勢就會打不少折扣。另外以目前的方式,要推廣使用該套軟件進行設計,從實現角度來講,首先要有一個比較完備的中心庫,省去設計人員艱苦的建庫、修改工作,能投入更多的精力到設計中去,這樣才可能會比較快的上手使用。總的來說,自我感覺Mentor的這套PCB工具是比較完備和先進的產品,比起目前我們的設計工具要上了一個層次。從長遠的角度看,數字產品的速度越來越高,信號完整性的問題越來越突出,因此該套工具在我所使用前景很廣泛。雖然以我所目前的設計方式,完全熟悉整套軟件,對設計人員的要求比較高,把這套軟件的優勢完全發揮出來尚需時日,但是相信隨著今后任務要求的不斷提高,大家會不斷努力嘗試用更先進的軟件來做設計,在使用的人越來越多后,使用水平一定也會水漲船高。
評論
查看更多