引言
集成電路制作工藝進(jìn)入深亞微米之后,IC設(shè)計能力滯后于工藝水平日甚,勢必要提出新的設(shè)計思想和設(shè)計方法,SOC (System On a Chip)為緩解設(shè)計滯后問題提供了一個有效途徑,SoC設(shè)計中集成了復(fù)雜的IP(intellectualproperty)模塊和嵌入式軟件,受到普遍的重視和認(rèn)可。作為SOC技術(shù)的核心,可復(fù)用的1P核(IntellectualProperty)和軟硬件協(xié)同設(shè)計,得到已有的一些EDA公司和IC公司的重視,通過IP(IntelligentProperty)復(fù)用的方法可以有效地提高設(shè)計效率、降低市場風(fēng)險、減少研發(fā)費(fèi)用,縮短研發(fā)周期;軟硬件協(xié)同設(shè)計(software/hardware co-design)技術(shù)允許在設(shè)計早期進(jìn)行軟件和硬件的協(xié)同測試,及早地發(fā)現(xiàn)設(shè)計的問題從而能夠縮短上市時間,因此成為當(dāng)前研究的熱點(diǎn)。
一、 IP核復(fù)用技術(shù)
SOC的設(shè)計過程中最具特色的是IP復(fù)用技術(shù),即選擇所需功能的IP(給出IP定義)核集成到一個芯片中用。成功的IP復(fù)用并不僅僅是簡單的錯誤修補(bǔ)過程,通常需要經(jīng)過多次實(shí)驗(yàn)、糾錯才能成功地將IP核集成到SoC中?;贗P核復(fù)用技術(shù)的SoC設(shè)計使芯片設(shè)計不再是門級的設(shè)計,而是可重用IP核為基礎(chǔ)的系統(tǒng)級設(shè)計,這主要關(guān)心的是IP核間的互連性,通常采用片上總線結(jié)構(gòu)來解決IP核之間的互連性,即核與核之間并非直接相連而是通過片上總線進(jìn)行互連,IP核之間通過網(wǎng)絡(luò)結(jié)構(gòu)來實(shí)現(xiàn)數(shù)據(jù)的傳輸(如圖1)。
IP核集成到系統(tǒng)所要考慮的問題包括:同步,例如全局執(zhí)行、數(shù)據(jù)交換和協(xié)議方面的同步操作;協(xié)議轉(zhuǎn)換,不同模塊間不兼容的協(xié)議的轉(zhuǎn)換,封裝可用來解決這個問題,但需要考慮時序約束;I/O緩存,為滿足系統(tǒng)行為和時序約束可能需要緩存數(shù)據(jù)。由于IP核的設(shè)計千差萬別,IP核的連接就成為構(gòu)造SoC的關(guān)鍵。為解決這些問題需要一個好的接口標(biāo)準(zhǔn),目前一些大公司已經(jīng)開發(fā)出許多可用于核互聯(lián)的片上總線,比如Altera 的Avalon、IBM 的Coreconnect、 ARM 的AMBA、OCP-IP提出的OCP 及Silicore的WishBone等等。
AMBA總線是一個多總線系統(tǒng)。它獨(dú)立于處理器和制造工藝技術(shù),增強(qiáng)了各種應(yīng)用中的外設(shè)和系統(tǒng)宏單元的可重用性。典型的基于AMBA的SOC核心部分如圖2所示。其中高性能系統(tǒng)總線(AHB或ASB)主要用以滿足CPU和存儲器之間的帶寬要求。CPU、片內(nèi)存儲器和DMA設(shè)備等高速設(shè)備連接在其上,而系統(tǒng)的大部分低速外部設(shè)備則連接在低帶寬總線APB上。系統(tǒng)總線和外設(shè)總線之間用一個橋接器(AHB/ASB—APB-Bridge)進(jìn)行連接。
AMBA的AHB適用于高性能和高時鐘頻率的系統(tǒng)模塊。它作為高性能系統(tǒng)的骨干總線,主要用于連接高性能和高吞吐量設(shè)備之間的連接,如CPU、片上存儲器、DMA設(shè)備和DSP 或其它協(xié)處理器等。AMBA 的ASB適用于高性能的系統(tǒng)模塊。在不必要適用AHB的高速特性的場合,可選擇ASB作為系統(tǒng)總線。其主要特性與AHB類似,主要不同點(diǎn)是它讀數(shù)據(jù)和寫數(shù)據(jù)采用同一條雙向數(shù)據(jù)總線。AMBA 的APB適用于低功耗的外部設(shè)備,它已經(jīng)過優(yōu)化,以減少功耗和對外設(shè)接口的復(fù)雜度,可連接在兩種系統(tǒng)總線上。 [nextpage]
OCP是基于核的免費(fèi)開放的接口協(xié)議,是一個已經(jīng)通用的標(biāo)準(zhǔn)接插口,可以從OCP-IP(www.ocpip.org)得到。這個標(biāo)準(zhǔn)成熟且可移植,同時得到了OCP-IP組織100多個成員公司的認(rèn)可。
OCP協(xié)議使IP核與系統(tǒng)的接口與IP核的功能無關(guān),設(shè)計人員不需要了解核內(nèi)部也可以利用它進(jìn)行系統(tǒng)主設(shè)計。OCP接口允許設(shè)計者根據(jù)不同的IP核的通信要求進(jìn)行配置和擴(kuò)展,包括接口的數(shù)據(jù)寬度、交換的握手協(xié)議等,在SoC設(shè)計中可以裁剪核的功能,降低設(shè)計復(fù)雜性,減小面積,同時滿足SoC的要求;OCP接口還保持核在集成到系統(tǒng)的過程中自身完全不被改變,即在總線寬度、總線頻率或電氣負(fù)載有變化時保持不變。其工作原理如圖3所示。
OCP能夠?qū)崿F(xiàn)硬件集成真正的即插即用,允許系統(tǒng)集成根據(jù)需要選擇最好的IP核和互聯(lián)機(jī)制。OCP為IP核設(shè)計提供了解決可配置性和接口的較好辦法,實(shí)現(xiàn)了IP核與系統(tǒng)集成的Socket接口,能夠做到核的模塊化和即插即用特性。
片上總線還處于發(fā)展階段,一般都具有以下特點(diǎn):
1、總線應(yīng)盡可能簡單,以便于使用者學(xué)習(xí)和接受;首先結(jié)構(gòu)簡單,這樣可以占用較少的邏輯單元;其次時序簡單,以利于提高總線的速度;第三接口簡單,如此可減少與IP 核連接的復(fù)雜度。
2、有較大的靈活性,支持多個主單元,各主單元可以同時與相應(yīng)的從單元進(jìn)行數(shù)據(jù)交換,從而提高數(shù)據(jù)吞吐量。支持可變寬度的地址和數(shù)據(jù)線,一般的片上總線支持32~128位的數(shù)據(jù)寬度,并且這些地址和數(shù)據(jù)線的寬度都是可以改變的。
3、為了降低功耗,各種信號一般都盡可能保持不變,并且多采用單向信號線。這同時有利于結(jié)構(gòu)的簡化及時鐘的同步。
IP復(fù)用技術(shù)的優(yōu)點(diǎn)有:一是重復(fù)利用IP可以提高設(shè)計能力,節(jié)省設(shè)計人員,是填平集成電路的設(shè)計與制造之間鴻溝的最有效方法之一;二是充分利用IP技術(shù),減少產(chǎn)品設(shè)計復(fù)雜性和開發(fā)成本,縮短產(chǎn)品開發(fā)的時間;三可以有效地降低系統(tǒng)功耗,簡化系統(tǒng)加工的復(fù)雜性,加快了數(shù)據(jù)傳輸和處理的速度,內(nèi)嵌的線路可以減少甚至避免電路板信號傳送時所造成的系統(tǒng)信號串?dāng)_。
二、 軟硬件協(xié)同設(shè)計
軟硬件協(xié)同設(shè)計技術(shù)和傳統(tǒng)的IC設(shè)計流程有著比較大的差別。在這個設(shè)計過程中,軟件和硬件必須自始至終都是交互狀態(tài),硬件為軟件提供設(shè)計平臺,反過來,軟件也為硬件提供了設(shè)計平臺,它們相互作用,實(shí)現(xiàn)交互設(shè)計。傳統(tǒng)的IC設(shè)計方法采用硬件先行的方法,即先設(shè)計硬件,再根據(jù)算法設(shè)計軟件。在深亞微米設(shè)計中,硬件的費(fèi)用非常大,當(dāng)設(shè)計完成后,再來更改設(shè)計中發(fā)現(xiàn)的錯誤需要花費(fèi)大量的費(fèi)用和時間。所以在SoC設(shè)計中,為了縮短開發(fā)周期,且獲得更好的設(shè)計效果,要求使用軟硬件協(xié)同設(shè)計技術(shù)。軟硬件協(xié)同的方法可以使軟件設(shè)計者在硬件完成之前接觸到硬件模塊,從而更好地設(shè)計硬件的驅(qū)動、應(yīng)用程序、操作系統(tǒng)等軟件,同時可以使硬件設(shè)計者盡早接觸軟件,為軟件設(shè)計者提供高性能的硬件平臺,減少了設(shè)計中的盲目性,如圖4。
[nextpage]
SoC的設(shè)計技術(shù)也可以稱為基于平臺的設(shè)計技術(shù)
(PlatformBasedDesign,簡稱PBD),該設(shè)計技術(shù)包涵兩個內(nèi)容,即平臺的建立和平臺的應(yīng)用,這兩部分也就是SoC設(shè)計的核心,前者是可重用IP核的設(shè)計,后者便是軟硬件協(xié)同設(shè)計。軟硬件協(xié)同設(shè)計技術(shù)主要是上述平臺的應(yīng)用,其設(shè)計流程如圖5所示,該設(shè)計流程與傳統(tǒng)的IC設(shè)計和板級系統(tǒng)設(shè)計有著本質(zhì)的區(qū)別,因此該方法的重點(diǎn)是在頂層完成系統(tǒng)仿真驗(yàn)證,保證在最低層模塊設(shè)計之前整個系統(tǒng)的所有功能都已完成并經(jīng)過驗(yàn)證,與傳統(tǒng)的設(shè)計方法的顯著區(qū)別便是原來的順序式設(shè)計變?yōu)楝F(xiàn)在的并行式設(shè)計,所有的設(shè)計問題都要在設(shè)計之初考慮到并提出相應(yīng)的解決方案,在真正子模塊設(shè)計之前,所有的設(shè)計工作都是基于虛擬模塊完成的,這也是SoC設(shè)計的另一個顯著特點(diǎn)。
1.行為描述就是把系統(tǒng)分成多個功能塊,由這幾個模塊完成系統(tǒng)所要求的功能;結(jié)構(gòu)描述主要是把已有的IP核或者自行設(shè)計的IP核描述成模塊,使之與功能模塊相匹配,通過不斷的系統(tǒng)仿真從而確定與系統(tǒng)行為描述相匹配的系統(tǒng)結(jié)構(gòu)描述。這主要涉及到系統(tǒng)描述(行為描述和結(jié)構(gòu)描述)的規(guī)范性。為了便于系統(tǒng)性能仿真,系統(tǒng)描述必須是規(guī)范的,這樣才能解決描述不匹配的問題,才能使性能仿真人員快速進(jìn)行仿真,從而節(jié)省系統(tǒng)描述到性能仿真的過渡時間。
2.軟硬件劃分是軟硬件協(xié)同設(shè)計的關(guān)鍵技術(shù)。軟硬件劃分是指在設(shè)計系統(tǒng)時,確定各個模塊是采取軟件還是硬件的實(shí)現(xiàn)方式。軟件實(shí)現(xiàn)的特點(diǎn):靈活、成本低;而硬件實(shí)現(xiàn)的特點(diǎn):性能高,但同時成本也增高。如何兼顧系統(tǒng)的速度和成本,達(dá)到成本和性能的最佳結(jié)合,是軟硬件劃分所要解決的問題。應(yīng)遵循的基本原則是高速、低功耗由硬件實(shí)現(xiàn);多品種、小批量由軟件對應(yīng);處理器和專用硬件并用以提高處理速度和降低功耗。劃分的方法應(yīng)該從兩方面著手:面向軟件:從軟件到硬件滿足時序要求;面向硬件:從硬件到軟件降低成本。
3.軟硬件并行綜合與IC設(shè)計綜合相比,增加了許多約束和限制,其中最大的問題就是SoC與眾多IP核之間接口的綜合。軟硬件并行仿真就是用軟件控制硬件的仿真,在系統(tǒng)級芯片上,硬件和軟件之間密切相關(guān),但在系統(tǒng)做出之前,軟硬件之間的相互作用通常很難精確測出,一些設(shè)計錯誤也不會明顯表示出來。為了解決這個問題,必須采用軟硬件協(xié)同驗(yàn)證技術(shù)。軟硬件的協(xié)同仿真始終是設(shè)計中的關(guān)鍵,需利用相應(yīng)的EDA工具采取先進(jìn)的協(xié)同仿真技術(shù),才能達(dá)到協(xié)同仿真的目的。
軟硬件協(xié)同設(shè)計與傳統(tǒng)的單流程設(shè)計有著本質(zhì)的區(qū)別,其軟件和硬件的設(shè)計不再是兩個獨(dú)立的設(shè)計單元,在設(shè)計之初便相互交織在一起,相互提供設(shè)計平臺,相互作用,真正實(shí)現(xiàn)二者的并行性。不管是整體設(shè)計還是局部設(shè)計,并行的思想始終貫穿于設(shè)計之中,這也是軟硬件協(xié)同設(shè)計技術(shù)的核心。協(xié)同設(shè)計流程中目前解決較好的是算法級和系統(tǒng)級的行為描述及模擬,難點(diǎn)在于軟硬件劃分。在硬件流程中,高級層次的行為描述與RTL級之間的接口,尚待完善。
與此同時EDA環(huán)境也將不斷進(jìn)步,以適應(yīng)SOC開發(fā)的需要,一些新興的EDA公司還提供出了重點(diǎn)發(fā)展C++語言、標(biāo)準(zhǔn)單元庫和網(wǎng)上設(shè)計服務(wù)等新的發(fā)展策略,并且開發(fā)基于C++語言的硬件描述工具,采用C++為設(shè)計語言,不但運(yùn)行速度比HDL快2~3個數(shù)量級,而且可為IP供應(yīng)商提供知識產(chǎn)權(quán)保護(hù),這些又為SOC技術(shù)的發(fā)展注入了新的活力。
三、結(jié)論與展望
本文作者創(chuàng)新點(diǎn):目前的SOC的主要研究方法是將現(xiàn)有的器件和電路模塊進(jìn)行集成化,將來會根據(jù)系統(tǒng)集成的特點(diǎn),將傳感器、執(zhí)行器嵌入系統(tǒng)之中,這樣SOC將不斷走向高性能、高功能,在模塊融合的基礎(chǔ)上產(chǎn)生新的結(jié)構(gòu),以便產(chǎn)生高附加價值。
SOC設(shè)計的熱點(diǎn)將集中在兩個方面:一個是采用硬件/ 軟件協(xié)調(diào)設(shè)計的高抽象度設(shè)計與驗(yàn)證體系;另一方面是與深亞微米對應(yīng)的CAD體系;前者幫助我們克服復(fù)雜性的危機(jī),后者為進(jìn)入微細(xì)化時代解決好功耗、布線延遲、可靠性等物理量的挑戰(zhàn)所必須。這些設(shè)計工具與設(shè)計人員的創(chuàng)造力結(jié)合,將會不斷地推進(jìn)系統(tǒng)LSI(大規(guī)模集成電路)的進(jìn)步,滿足社會發(fā)展的需要。