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