嵌入式SoCIC的設計方法和流程
摘要:在介紹嵌入式SoC IC概念的基礎上,介紹基于重用(re-use)的SoC IC設計方法和流程,涉及滿足時序要求、版圖設計流程和測試設計的問題,并給出設計計劃考慮項目。
本文引用地址:http://m.butianyuan.cn/article/241593.htm關鍵詞:嵌入式系統(tǒng) SoC 重用
一、系統(tǒng)集成芯片(SoC)是IC設計的發(fā)展趨勢
(1)隨著微電子技術和半導體工業(yè)的不斷創(chuàng)新和發(fā)展,超大規(guī)模集成電路和集成度和工藝水平不斷提高,深亞微米(deep-submicron)工藝,如0.18μm、0.13μm已經(jīng)走向成熟,使得在一個芯片上完成系統(tǒng)級的集成已成為可能。
(2)各種電子系統(tǒng)出于降低成本、減少體積的要求,對系統(tǒng)集成提出了更高的要求。
(3)高性能的EDA工具得到長足發(fā)展,其自動化和智能化程度不斷提高,為嵌入式系統(tǒng)設計提供了功能強大的開發(fā)集成環(huán)境。
(4)計算機硬件平臺性能大幅度提高,使得很復雜的算法和方便的圖形界面得以實現(xiàn),為復雜的SoC設計提供了物理基礎。
二、何為嵌入式SoC IC
SoC(System on Chip)是指集系統(tǒng)性能于一塊芯片上的系統(tǒng)級芯片。它通常含有一個微處理器核(CPU),有時再增加一個或多個DSP核,以及多個或幾十個的外圍特殊功能模塊和一定規(guī)模的存儲器(RAM、ROM)等。嵌入式SoC更是針對應用所需的性能,將其設計在芯片上而成為系統(tǒng)操作芯片。芯片的規(guī)模常常可以達到數(shù)百萬門甚至上千萬門以上,所以嵌入式SoC是滿足應用的系統(tǒng)級的集成電路產(chǎn)生,一方面要滿足復雜的系統(tǒng)性能的需要,另一方面也要滿足市場上日新月異的對新產(chǎn)品的需求,因此嵌入式SoC的設計也代替了高科技的設計方法和程序。只有在不斷地發(fā)展優(yōu)化下,嵌入式SoC才能提供設計周期短而性能優(yōu)異的產(chǎn)品。因此,要掌握嵌入式系統(tǒng)芯片的設計,就要了解其設計方法和流程。
三、嵌入式SoC IC的設計方法和流程
在介紹SoC IC的設計流程之前,先介紹一下“重用”的概念。
“重用”(re-use)指的是在設計新產(chǎn)品時采用已有的各種功能模塊,即使進行修改也是非常有限的,這樣,可以減少設計人力和風險,縮短設計周期,確保優(yōu)良品質(zhì)。
SoC IC的設計原則,就是盡可能重用各種功能模塊并集成為所需的系統(tǒng)級芯片。讀到設計重用,必須對重用時需要考慮的因素作一些說明。首先,重用的功能模塊要有詳盡的說明書,對模塊的功能和適用范圍以及芯片集成時的總線接口進行說明。其次,要提供該模塊過去已實現(xiàn)的生產(chǎn)工藝。第三,要提供用于測試該模塊的測試程序及測試平臺。最后,也是最重要的,就是模塊的設計內(nèi)核。通常提供的設計分為“軟模塊”和“硬模塊”兩種。“軟模塊”只提供RTL語言描述,可以用EDA綜合工具產(chǎn)生電路。它的優(yōu)點是比較靈活,可以根據(jù)不同的生產(chǎn)工藝產(chǎn)生對應的電路。“硬模塊”提供的是已經(jīng)完成的電路物理設計(physical design),也就是版圖的設計(layout)。它的缺點是一旦生產(chǎn)工藝改變就不能夠再使用了,即使是在采用同樣生產(chǎn)工藝的情況下,由于模塊的物理尺寸已經(jīng)確定因而也影響了布局(floor-plan)的靈活性;它的優(yōu)點是在設計采用同樣生產(chǎn)工藝的產(chǎn)品并且其物理尺寸不影響芯片布局的情況下,能夠直接采用,不用重新設計。由于半導體工藝發(fā)展極快,通常重用“軟模塊”比較多。
目前,在歐洲和北美已經(jīng)在產(chǎn)業(yè)界形成了基于IP(Interllectual Property)總線模塊的重用標準,對于重用的各個因素都有明確的規(guī)定。我國的IC設計產(chǎn)業(yè)正在迅速發(fā)展,應該盡快建立自己的重用標準,與國際接軌。
通常SoC IC的設計方法有兩種:一種是基于模塊(module-based)的設計方法,另一種是“門?!保╯ea-of-cell)的設計方法。
Module-based的設計方法是指各個單元模塊完成各自的RTL和電路綜合以及版圖設計,然后,在頂層完成整個芯片的版圖設計。這種方法的優(yōu)點是當個別模塊進行修改進,不會對整個芯片的設計產(chǎn)生較大的影響。它的設計流程如圖1所示。
Sea-of-cell的設計方法指的是在各個單元模塊完成RTL后,直接對整個芯片進行綜合,產(chǎn)生整個芯片的網(wǎng)表,然后,完成整個芯片的版圖設計。它的優(yōu)點是能夠節(jié)省芯片面積,缺點是一旦某個模塊修改了,整個芯片要重新做綜合和版圖設計。它的設計流程如圖2所示。
四、SoC IC滿足的時序要求
無論采用如種設計方法和流程,確保芯片的工作時序要求始終是芯片設計的核心問題。好的設計方法和流程,應該在芯片設計和初級階段對整個芯片進行時序的控制和分配,以便減少因時序問題造成的反復修改。
由于SoC IC的規(guī)模一般都非常大,因此各個模塊用于綜合(synthesis)的約束條件必須基于整個芯片的時序要求來產(chǎn)生,才不至于對整個芯片的Timing產(chǎn)生影響。Synopsys公司的Design Budgeting工具能夠根據(jù)芯片頂層的約束條件對整個芯片以及子模塊的約束和時序進行分配和控制,并且產(chǎn)生以此為基礎的各個子模塊的約束條件用于電路綜合,由于芯片頂層以及模塊之間的時序已經(jīng)得到平衡考慮,許多時序問題(timing violations)已經(jīng)預先得到控制,能夠減少后期對設計進行反復修改的次數(shù)。
在對電路進行驗證(verify)的時候,除了驗證功能正確外,還要驗證工作時序的正確性。通常的方法是編寫專門的測試程序,運行EDA仿真工具來完成,這通常稱為動態(tài)仿真(dynamic simulation)。由于SoC IC的規(guī)模比較大,仿真(simulation)運行的時間比較長,尤其是在完成版圖設計后做后仿真(postlayout simulation)的時候,因此,我們要引入靜態(tài)時序分析的方法(static timing analysis)。它是從電路的連接和布線上來推測貪污傳輸?shù)臅r序,因此當電路的工作時鐘和約束條件確定后,電路中信號傳輸時的設定時間(setup time)和保持時間(hold time)也已經(jīng)確定,通過靜態(tài)時序分析就可以把那些不滿足要求的路徑或電路單元找出來,提供修改設計的依據(jù)。它的特點是運行時間遠遠少于動態(tài)仿真。許多電路的時序問題可以預先發(fā)現(xiàn)而不用等到動態(tài)仿真完成,因而可以幫助我們縮短設計周期。常用的設計工具有Synopsys公司的Primetime和Cadence公司的Pearl。
五、版圖設計
對于復雜的SoC IC,其版圖設計(layout)也是非常復雜的。隨著半導體工藝的越來越精密,芯片的規(guī)模越來越大,版圖布線的負荷已成為主要的時序影響因素,所以自動布局布線的時序分析成為設計的重點。無論采用module-based的設計方法還是sea-of-cell的方法,最好要采用時序驅(qū)動(timing driven)的版圖設計方式,這樣,可以確保前端各個層次的設計約束條件延伸到物理設計(physical design)中去。具體做法是將綜合電路的約束條件轉(zhuǎn)化為Layout工具可以識別的格式,用來驅(qū)動Layout工具完成設計。此外,為了保證電路的時鐘到達各時序單元的時間的一致性,需要在各時鐘路徑上插入時鐘樹(clocktree),通過一定的約束條件,Layout工具可以通過平衡時鐘路徑之間的差異(skew),自動完成時鐘樹的生成。通常的版圖設計流程如圖3所示。
最后,當布局布線完成之后,還要做DRC和LVS的檢查。DRC(Design Rule Check)是檢查版圖設計定否符號生產(chǎn)工藝的物理規(guī)則要求;LVS(Layout Versus Schematic)是檢查版圖設計是否與電路設計一致。只有當這兩項檢查都通過后,版圖設計的工作才算完成。我們通常采用Cadence或Avanti公司的Layout檢查工具。
需要強調(diào)一點的是,雖然在設計開始時設定了芯片頂層及模塊間的時序約束條件和時鐘樹,也采用了動態(tài)仿真和靜態(tài)時序分析以及時序驅(qū)動的版圖設計方法;但是,由于SoC IC設計的復雜和困難,通常以設計工程師和工具合作也要經(jīng)過多次反復修改才能成功,超過10次的也不少見。所以,在設計開始前應作好設計周期的計劃。
再要一提的是,當生產(chǎn)工藝小于0.35μm以下時,尤其在采用同步電路設計方法時,因為布線而造成的時序差異和延遲常常超過模塊中電路設計的差異和延遲。因此,在Layout時對布局設計和時鐘樹生成需要仔細考慮。Layout完成后的時序分板是做好設計的關鍵。這也是選擇基于模塊設計方法或是“門?!痹O計方法時要考慮的因素之一。
對于深亞微米的版圖設計,還有兩個因素要考慮。一個是當走線過長時產(chǎn)生的天線效應(antennaeffect)會對電路的時序產(chǎn)生影響。解決的辦法是在長走線中插入天線二極管(antenna diode),用于抵消天線效應。另一個情況是當兩條平行的走線非常靠近的時候,它們之間的偶合效應會產(chǎn)生交叉干擾(cross-talk),也會對電路的時序造成不利影響。解決的辦法是在線路中加入buffer來克服,采用Cadence公司的Signal Integrity工具可以分析出交叉干擾出現(xiàn)的電路部分并結合Layout工具自動完成buffer的插入。
對于模塊電路的版圖設計,現(xiàn)在還無法采用上述的自動布局面線方法而需要人工完成,因而設計的時間和工作量比較大,這一點在作計劃時也要考慮。
芯片端口(I/O PAD)的設計也是SoC IC設計的重點,除了要考慮靜電保證ESD、驅(qū)動能力等因素外,還要考慮到當兩個PAD靠得很近的時候,它們之間的耦合效應會形成寄生三極管(parasitic transistor)效應,影響I/O PAD的正常功能。
SoC IC通常都是數(shù)?;旌想娐?,版圖設計的核心是防止噪聲干擾。通常要從兩個方面來考慮:一是在布局時盡量使相互容易受干擾的模塊分開得遠一些;二是數(shù)字電路和模擬電路要采用不同的電源和布線。
六、SoC IC的測試設計DFT(Design For Test)
芯片的測試,一方面是為了保證芯片的質(zhì)量和可靠性,另一方面也要滿足低成本的生產(chǎn)目的。過去,傳統(tǒng)的測試方法是把我們用于功能仿真的測試程序轉(zhuǎn)化為生產(chǎn)測試程序輸入測試儀器。它的缺點是測試時間長,尤其是高覆蓋率(test coverage)的要求下,對于大規(guī)模的SoC IC,其成本將非常高?,F(xiàn)在,通常采用插入測鏈(scan chain)的方法,使得芯片中的時序單元在測試模式下連接成移位寄存器(shift register),然后,采用ATPG(Automatic Test Pattern Generator)工具產(chǎn)生的測試向量,能夠有效地對芯片完成測試。測試時間大大縮短,也能達到高于90%的覆蓋率,保證產(chǎn)品的品質(zhì)和可靠性。許多EDA工具如Synopsys公司的Design Compiler和Mentor公司的DFT Aduvisor/Fastscan都可以幫助完成這一工作,自動化程序相當高。當然,這一方法的代價是會增加芯片的面積。需要指出的是,采用插入測試鏈的方法只適用于同步電路設計,而且在電路的RTL設計階段就要把這一因素考慮進去。對于異步電路的測試主要還是通過功能測試完成。
由于SoC IC比較復雜,芯處中需要設有專門的測試控制模塊(test control module),將整個芯片分為若干個測試組,每個部分都有獨立的測試鏈完成測試。結合若干個芯片端口完成整個芯片的測試控制。
結束語
好的開始是成功的一半。在開始時要做好設計計劃。計劃項目列舉于下,以作參考。
設計計劃考慮項目:
Product Design specification(產(chǎn)品設計規(guī)格書)
Design methodology and EDA tools selection(設計方法和設計工具的選擇)
Database structure(and choose a Database Manager)(設計數(shù)據(jù)的存儲結構)
Naming convertion(命名規(guī)范)
IP Module re-use consideration (IP模塊重用的考慮)
Test plan(測試計劃)
Chip Integration plan(整個芯片的集成計劃)
Design schedule(設計時間表)
Design Resources requirement plan(設計的人力和軟硬件需求計劃)
Detail design task check off list。(詳盡的設計任務完成情況檢查表)
SoC IC成為現(xiàn)代電子系統(tǒng)的核心已是不爭的事實。總而言之,SoC IC的設計方法和流程是一個不斷演變和改進的過程,有效利用“重用”功能模塊和強大EDA工個的支持是SoC IC設計的基礎,而采用好的設計方法和流程、解決好Timing Closure和Testability是SoC IC設計的核心。同時,我們借此機會呼吁業(yè)界同仁的支持和鼓勵,盡快設立中國的IP模塊重用標準,使國內(nèi)嵌入式系統(tǒng)和SoC設計能很快得到普及。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論