SOC設(shè)計方法與實例_第1頁
SOC設(shè)計方法與實例_第2頁
SOC設(shè)計方法與實例_第3頁
SOC設(shè)計方法與實例_第4頁
SOC設(shè)計方法與實例_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SOC設(shè)計方法與實例I數(shù)字電路設(shè)計的演進與HDLI.A歷史背景數(shù)字電路的發(fā)展,一路隨著真空管、晶體管到ic的發(fā)明而持續(xù)演進,而IC的問世,更是 不斷地將數(shù)字電路的功能及復(fù)雜度,提升到新的境界;從早期的SSI、MSI、LSI、VLSI,到現(xiàn) 在大家??吹降?.25u、0.18u、0.13u等等,其中不斷增加的,就是單一 IC中邏輯閘的數(shù)目,從 早期的十數(shù)個,到現(xiàn)在0.13u制程的IC,其中的邏輯閘數(shù)目可能高達1025M,這其中的的差距 真的是不可同日而語。當IC中的邏輯閘數(shù)目隨著制程的進步而越來越多時,一些在設(shè)計上的問題就伴隨而來:我 要怎么利用這么多可用的邏輯閘?我可以拿來設(shè)計什么?我要怎么設(shè)

2、計?大家可以回想一下當 初是怎么學(xué)習(xí)數(shù)字電路的,一開始的時候不外乎是利用真值表、有限狀態(tài)機等等將數(shù)字電路轉(zhuǎn)成 一堆邏輯閘的組合,之后在面包版上用一堆小IC跟接線將電路實作出來,而在計算機上也有一 些輔助設(shè)計軟件(CAD )幫助設(shè)計者作布線的工作以及邏輯閘層次的仿真。這樣看起來好像不錯,但是請大家想一下,現(xiàn)在一顆0.13u制程的IC起碼有上千萬個邏輯 閘,這下好了,我們要到哪里去找這么大的面包版來測試電路,就算全部都在計算機上測試,接 下來的問題是,我們要怎么去組織這么多的邏輯閘?我們只能在邏輯閘的層次去設(shè)計數(shù)字電路 嗎?I.B硬件描述語言與邏輯合成如果大家學(xué)過計算機程序設(shè)計的話,就應(yīng)該會有一種

3、感覺,那就是我們可以用程序語言去 描述一些功能,不管這些功能是用來排序或是用來作判斷;同樣的,設(shè)計數(shù)字電路也是為了實現(xiàn) 某些功能,那有沒有程序語言可以用來描述硬件電路的?答案是有的,這種語言我們通稱為硬件 描述語言(Hardware Description Language(HDL),HDL經(jīng)過長時間的發(fā)展,目前較普遍的有VHDL 以及Verilog HDL。但是光有HDL并不能解決IC設(shè)計上的問題,我們還是需要以人工的方式將 HDL的設(shè)計轉(zhuǎn)換成邏輯閘之間的連接線路,而邏輯合成(Logic Synthesis)工具的出現(xiàn),正好彌補 這個空缺,使得數(shù)字電路的設(shè)計工作,產(chǎn)生巨大的改變。另一方面,相

4、較于用HDL開始Top-to-Button的設(shè)計方式,還有一種稱之為Cell Based的方法是采取 從晶體管層次開始由下往上的設(shè)計方式,目前較常用于內(nèi)存的設(shè)計。II SOC設(shè)計方法與業(yè)界的解決方案II.A數(shù)字IC設(shè)計流程 L High Level DesignP&RFunctional VerificationTiming Simulation.SynthesisLVS/DRCFront EndRC Extraction-Back End圖1 Top-to-Button的IC設(shè)計流程圖1是一般數(shù)字IC的設(shè)計流程,大體來說Top-to Button的IC設(shè)計分為Front End以及BackE

5、nd兩個部分,F(xiàn)ront End的工作主要就是把程序代碼轉(zhuǎn)換成邏輯閘層次的電路,而到了 Back End 的部分,P & R作的是布局(Place)與繞線(Route), Timing Simulation主要是測試經(jīng)過P & R后某 些電路產(chǎn)生的延遲對整個系統(tǒng)的影響,最后兩個步驟是投光罩前所作的修正;大家應(yīng)該可以感覺 到Front End的工作主要是在功能開發(fā)以及邏輯合成產(chǎn)生電路,而Back End就是作一些電路布局 以及半導(dǎo)體相關(guān)的工作,通常Front End跟Back End會交給不同的人或小組負責,在業(yè)界甚至有 些公司就是專精在作Front End或Back End的部分。B硅智財與模

6、塊化設(shè)計從前文的介紹,我們可以看出目前數(shù)字IC設(shè)計的重心,就在于如何用HDL撰寫適合邏輯 合成的程序,而這些程序也就是硅智財(Intellectual Property(IP)中的一種,通常我們稱這種用 HDL寫出來的程序為Soft IP; 一般來說,用HDL撰寫程序代碼時,通常會以模塊化的方式將電 路組織起來,換句話說,利用模塊化的方式將一個個IP組合成一個電路是現(xiàn)在數(shù)字電路設(shè)計普 遍采用的方式。II.C System On Chip (SOC)之前討論的話題,一直圍繞在數(shù)字ic設(shè)計的演進,但是我們不要忘了,設(shè)計方法的演進, 有部分是因為IC的制程不斷提升而產(chǎn)生的需求,前面也提過一顆0.13

7、u制程的IC可以包含上千 萬個邏輯閘,那么延續(xù)文章一開始我們提的問題,我們現(xiàn)在可以利用HDL設(shè)計大型的數(shù)字電路, 而現(xiàn)在單一 IC的容量也放得下這么大型的電路,那我們可以拿它來作什么?說到系統(tǒng)(System),以PC為例子,大家應(yīng)該都看過PC的主板,上面有CPU、內(nèi)存、控制 芯片、總線等等不同的部分,而整張主板也布滿了大大小小一堆的IC,也就說PC這個系統(tǒng)并不 是由單一的IC所組成的;換過來說,如果我們今天需要一個系統(tǒng),但是不需要擁有類似PC的 計算能力或完整的功能,再加上現(xiàn)在的IC可以塞那么多的東西,那我們可不可以把整個系統(tǒng)放 到一顆IC里面?System On Chip (SOC),照字面

8、的意思講起來就是把系統(tǒng)放到芯片上,它現(xiàn)在也是電子業(yè)界 熱門的話題,我們先給系統(tǒng)一個簡單的定義,那就是系統(tǒng)是一些模塊以及子系統(tǒng)的集合,將這些 模塊跟子系統(tǒng)鏈接起來達到特定的功能就是一個系統(tǒng),所以說起來,PC是一個系統(tǒng),手機也是 一個系統(tǒng),游樂器也是一個系統(tǒng),很多東西都可以稱得上是系統(tǒng)。那把整個系統(tǒng)塞到一顆或少數(shù)幾顆芯片中么好處?以下就列舉幾項SOC的優(yōu)點:成本降低。執(zhí)行效能增加。耗電量降低。體積縮小??煽慷仍黾印⑾到y(tǒng)中IC數(shù)目降到最低,體積縮小跟成本降低是可以預(yù)期的,而把所有電路濃縮到一顆 芯片使得不同模塊間彼此的連接距離都相當短,所以可以增加執(zhí)行效能以及降低耗電量,可靠度 之所以能提升是因為

9、系統(tǒng)中外部連接點數(shù)目減少的緣故,一般來說盡量將系統(tǒng)的功能整合到單一 芯片中是目前IC設(shè)計的趨勢。II.D SOC 架構(gòu)圖2是目路等等,配合嵌入式軟件(Embedded Software)跟實時操作系統(tǒng)(RTOS)等一起運作,大家或許會覺 得這看起來跟一般微處理機系統(tǒng)好像差不多,不過當系統(tǒng)整合在單一芯片中,有些地方的考慮就 會不一樣,如芯片中的總線結(jié)構(gòu)(即上圖的OCB(On Chip Bus) Architecture),因為連接總線的模 塊以及總線本身都在同一個芯片中,而一般總線連接的裝置就不是如此。II.D SOC設(shè)計上的挑戰(zhàn)由于IC制程的演進,使得將系統(tǒng)單一芯片化成為一項趨勢,而這的確也有

10、它的好處存在, 但是在SOC的設(shè)計上,也有其困難之處,例如系統(tǒng)的復(fù)雜度就是其中之一,一個SOC的設(shè)計可 能包含了處理器、DSP、軟件接口、操作系統(tǒng)、總線結(jié)構(gòu)、數(shù)字或模擬模塊等等,其中的復(fù)雜度 可能不下于一般的處理器系統(tǒng)。另外由于市場競爭的壓力越來越大,產(chǎn)品的成本不斷向下探底, 開發(fā)周期也越來越短,如何滿足客戶不同的需求也是重點之一。II.E IP模塊的可重復(fù)使用性SOC的發(fā)展除了如何有效發(fā)揮IC的功能外,經(jīng)濟性也是非常重要的考慮,如何縮短開發(fā) 時間,如何有效利用現(xiàn)有的資源都是關(guān)鍵之一。而現(xiàn)今IP的設(shè)計大都以模塊化為主,接下來IP 模塊的可重復(fù)使用性便成了一個重要的課題,模塊是否可重復(fù)使用的關(guān)鍵

11、之一就是接口的設(shè)計。 例如Virtual Socket Interface(VSI) Alliance提出的VC Interface便是提供一個模塊跟總線之間以及 模塊之間連接接口的標準規(guī)格,在這個規(guī)格之下,所有的 IP模塊都被視為一個個的Virtual Component(VC),而VC之間的溝通就藉由VCI來完成,如此IP模塊的可重復(fù)使用性便能大幅的提升,自然有助于降低開發(fā)成本以及開發(fā)周期。II.F平臺式設(shè)計面對日趨復(fù)雜的SOC結(jié)構(gòu)以及越來越快的市場周期,另一項設(shè)計趨勢是采用平臺式的設(shè)計 方式(Platform-Based Design),所謂的平臺(Platform),一般來說就是一個完

12、整的總線架構(gòu)以及一 些IP模塊所組合而成,而這個架構(gòu)也必須考慮到新增IP模塊的方便性,而要設(shè)計一個平臺,大 致上需要的步驟有:決定這個平臺主要的應(yīng)用領(lǐng)域在哪里。選擇主要的IP模塊,一般來說就是選擇處理器的IP。決定總線、系統(tǒng)結(jié)構(gòu)以及模塊間的溝通方式。決定內(nèi)存的存取方式。選擇所需的軟硬件IP模塊。有時候選用的模塊無法直接跟系統(tǒng)溝通,這時要考慮設(shè)計網(wǎng)橋的問題。在SOC的設(shè)計上采用一個成熟的平臺通常會有幾點好處:開發(fā)的時間可有效的縮短。在復(fù)雜的設(shè)計中,大量使用已驗證過的模塊,可有效偵測系統(tǒng)遇到的瓶頸或問題。容易建立開發(fā)平臺供軟件開發(fā)之用。II.G SOC設(shè)計流程在圖3中我們將看到采用平臺式的SOC設(shè)

13、計流程。圖 3 SOC 設(shè)計流程 from: “Surviving the SOC Revolution-A Guide to Platform-Based Design”圖3的橫軸代表的是主要的四項開發(fā)工作,從左到右分別是模塊開發(fā)、模塊轉(zhuǎn)移、芯片整 合、軟件開發(fā)。模塊開發(fā)主要的工作是準備需要的IP模塊供整合之用;模塊轉(zhuǎn)移是將個別的模 塊作整合之前的調(diào)整,以利模塊能順利的整合;芯片整合就是將模塊結(jié)合成所需的系統(tǒng);軟件開 發(fā)則包含了操作系統(tǒng)、驅(qū)動程序、應(yīng)用程序等的開發(fā)??v軸代表的是整個設(shè)計流程,從上到下分 別是功能設(shè)計、結(jié)構(gòu)設(shè)計、整合計劃、模塊開發(fā)、制造,最下面的則是支持用的技術(shù)。圖3所描述的整

14、個設(shè)計流程是四項開發(fā)工作并行地從上到下的進行,圖中的各項作業(yè)在此 不詳細說明,其實這張圖只是簡圖,對詳細流程有興趣的可以參考Surviving the SOC Revolution-A Guide to Platform-Based Design,這本書對整個流程有非常詳細的描述。II.H SOC平臺市場概況接下來我們將看一看目前市場上有關(guān)SOC的解決方案,而且我們將鎖定廠商提供的SOC 設(shè)計平臺,數(shù)據(jù)源是Design And Reuse,這是一個提供B2B服務(wù)的機構(gòu),主要收集的資料就是各 廠商在 IP 及 SOC 領(lǐng)域的產(chǎn)品,它的網(wǎng)址如下: HYPERLINK /%ef%bc%8c%e5%9

15、c%a8 /,在 Platform LevelIP的目錄下共有以下各類產(chǎn)品,在此只列出數(shù)量:Processor Core Dependent8051: 1ARC: 1ARM: 24Intel 186:0MIPS: 2PowerPC:1Processor Core IndependentGeneral-Purpose: 3Networking & Communications: 9Multiprocessor / DSPGeneral-Purpose: 9從這里可以很明顯的看到ARM這顆處理器在目前的SOC市場上占有明顯的優(yōu)勢,而應(yīng)用 在網(wǎng)絡(luò)及通訊領(lǐng)域的SOC平臺設(shè)計也比較多。II.I SOC平

16、臺實例ARM除了在IP的處理器市場占有一席之地,在SOC的設(shè)計上也有完整的解決方案,PrimeXsys Wireless Platform 是ARM在無線通信應(yīng)用上提供的SOC平臺,其基本架構(gòu)如圖4所 示:MOVE JARM926CPUStmt M的匚叮 rterfdce sn fSDFAMLtritroll erVeijtrirHdlrtern_fzitLtirtrolLtdcrLCDDMA,AftTCHDOGIIIARMIAHB ARMDAHB LCOAHEFTOlB(DMA2 AHB(E-IPANSONAHBCore APBTIMERSA HE:/ APE:rwDMA APBA HE:/

17、APE:SSP.j.ppJi cationSpecific IPDMA APE:EriengcrisGPIO :-:4RTL:SYSTEMCONTROLUARTSIM Lrd圖 4 ARM PrimeXsys Wireless Platform整個架構(gòu)以ARM926這顆CPU為中心,透過AHB總線跟其它基本模塊如LCD控制器、 SDRAM控制器、SRAM接口連接,特殊需求的IP模塊也是經(jīng)由AHB總線跟系統(tǒng)連接,Core APB 則是提供操作系統(tǒng)運作所需的基本功能,而DMA APB則提供快速的DMA接口,在這個平臺中 除了 ARM自己的處理器外,它采用的系統(tǒng)總線AMBA及其它IP模塊也是ARM的

18、產(chǎn)品,除了 硬件架構(gòu)外,PrimeXsys在操作系統(tǒng)上提供Linux、Windows CE、Symbian OS多種選擇;在其它 方面,ARM也為SOC設(shè)計提供完整的開發(fā)工具,如Integrator硬件開發(fā)平臺,ARM Developer Suite、 ARM Applications Library ARM Firmware Suite等軟件開發(fā)工具。舉這個例子是為了強調(diào)一個完 整的商業(yè)化SOC平臺可以包含哪些東西,從應(yīng)用領(lǐng)域、硬件架構(gòu)、操作系統(tǒng)、程序接口到軟硬 件開發(fā)工具等等,完整的平臺解決方案一方面可以有效開發(fā)功能越來越強大的IC,另一方面也 可以有效縮短開發(fā)的周期。III OPENCO

19、RES與SOC設(shè)計相關(guān)資源當今的IC設(shè)計大部分是以IP設(shè)計為主,而IP主要是以HDL所構(gòu)成,也就是說用HDL寫 成程序代碼是現(xiàn)在數(shù)字電路設(shè)計的主流。說到程序,大家可能就會想到要錢的跟免費的,上一節(jié) 提到的Design And Reuse中就有很多廠商提供的IP程序,不過絕大部分都是要收錢的,那在IP 設(shè)計的領(lǐng)域中,有沒有人在推廣或收集免費的IP程序,接下來要介紹的OPENCORES就是這么 一個機構(gòu),OPENCORES主要希望以O(shè)pen Source的理念推廣IP程序的設(shè)計,它的網(wǎng)址如下: HYPERLINK /%ef%bc%8c /, OPENCORES中可以利用的資源大致可分為四大類,簡述

20、如下。一、News:提供最新消息的地方,這里也可以看到一些項目的最新進度以及新進的技術(shù)文件。二、Articles:目前這里的文章有4篇,不算很多。三、Forums(Mailing Lists): OPENCORES目前有13個討論區(qū),大部分的討論區(qū)其實都是跟某些項目相關(guān)的,條列如下。BluetoothOpenipCdromOpenppcCoresOpenriscEccPciEthMacUsbFpuVideoNnarm四、Projects:項目區(qū)可以說是整個OPENCORES的重心所在,所有的IP設(shè)計在這里都是以一個 個的項目在進行著,到目前為止(2002/09/05),OPENCORES中總共

21、有145個項目,開發(fā)者有四 百多人,其中有45個項目是已經(jīng)完成的;一般來說,一個完整的項目會包含以下的數(shù)據(jù):說明 文件通常以PDF的格式存在,完整的說明文件中會詳細的列出IP模塊中的輸出入接口、緩存器、 記憶地址、行為模式等數(shù)據(jù);IP以及作模擬及測試的程序代碼則主要以VHDL及Verilog HDL 為主。接下來我們將以分類的方式看看OPENCORES中有哪些已完成的項目。Arithmetic core:完成的有一個執(zhí)行CORDIC算法的IP。Communication controller:這里有很多已完成的通訊控制及傳輸接口 IP,如IrDA、USB、Ethernet MAC、HDLC、U

22、ART、I2C、GPIO、TDM、SPI、Serial Uart、Reverse CDMAAccess等,共有11個完成的項目。Coprocessor:有1個FPU的項目已完成。Crypto core:有1個作DES運算的項目已完成。DSP core:有 2 個 Filter core 已完成,分別是 FIR 以及 Biquad IIR。Memory core: 3個完成的項目。Microprocessor:有 11 個處理器的項目完成,分別是 RISC MicrocontrollerT80RISC5X OPENRISC 1000、tiny8、AX8、PPX16、Yellow Star、Min

23、i-Risc、Plasma、nnARM,但 是nnARM這個設(shè)計已經(jīng)不開放下載,詳細情形在Articles中有一篇文章有解釋。Other:這里有1個PS2接口以及1個PWM/Timer/Counter產(chǎn)生器已完成,另外完成的 還有1個OpenRISC開發(fā)及除錯用的接口設(shè)計。Prototype board:除了 1個小型的FPGA測試用機版外,另外1個就是OPENCORES 開發(fā)的IP測試用機版,其中有完整的機版電路圖,之前有提供訂購電路板的服務(wù),不 過目前已取消。SoC:目前完成的2個項目都是WISHBONE總線的控制或橋接接口。System controller:完成的項目有 5 個,分別是

24、 PCI bridge、RS232、IDE ControllerMemory Controller、AC97 Controller。Video controller:有3個項目已完成。III.B OPENCORES中的SOC設(shè)計相關(guān)資源由上面的介紹,可以明顯的看到目前OPENCORES中已經(jīng)有相當多IP模塊的設(shè)計,而且種 類不少,除了上述已完成的項目外,還有很多開發(fā)中的項目在進行著,而且未完成的項目大都有 部分完成的程序代碼可供參考。那到目前為止,它有沒有一個完整的SOC設(shè)計?很遺憾的,目 前還沒有較完整的設(shè)計出現(xiàn),不過有幾個相關(guān)的項目正在進行。講到這里,我們先來看一項重要的東西,那就是總線,

25、總線在系統(tǒng)中扮演著連接不同模塊 的角色,所以對一個系統(tǒng)而言,模塊的設(shè)計采用何種總線的接口便是重要的考慮之一。而SOC 總線的標準目前是出現(xiàn)百家爭鳴的局面,很多SOC開發(fā)相關(guān)領(lǐng)域的廠商都有推出總線的規(guī)格, 如 ARM 的 AMBA、Altera 的 Avalon、IBM 的 CoreConnect、VSIA 的 VSIA On-Chip Bus 等等,不過使用這些總線規(guī)格不是要收費,就是需要取得授權(quán),免費自由使用的很少。在 OPENCORES 中,推薦的 SOC 總線是 WISHBONE,WISHBONE 是由 Silicore Corporation所開發(fā)出來的芯片總線規(guī)格,使用它是完全免費的

26、,也不需要授權(quán),WISHBONE的規(guī)格可參考 下列網(wǎng)址: HYPERLINK /wishbone.htm%ef%bc%8c%e8%80%8c /wishbone.htm,而 OPENCORES 中的項目,若是采用 WISHBONE 作為總線的接口,便會有一個wbc(WISHBONE Compliant Core)的標志,以茲識別。WISHBONE采用MASTER/SLAVE的架構(gòu),數(shù)據(jù)的傳輸都是從MASTER端開始,SLAVE 端接收,但是MASTER端跟SLAVE端的連接方式共有4種:Point-to-point, Data flow, Shared bus, Crossbar switch

27、,我們用圖5來表示。就m二詫IP GOREPoint-to pointAEBOHE 提OREIFHI 置星Data flowIIrXfewlSHBoNl連接 IP模塊的方式I 頑 I I 茹Shared busC從圖5中可以看出,在WI浩噩攜規(guī)麒it羸之間的溝通方式都是采用相同的MASTER/SLAVE結(jié)構(gòu),但是IP跟IP連接的方式就可視需要選擇4種中的任何一種,這種彈性是跟一般的總線規(guī)格比較不同的地方。WISHBONE嘗試以一種簡單,但是有彈性的方式提供一個SOC總線所需要的功能,不過 目前WISHBONE在市場上的可見度并不高,反而在OPENCORES中使用的比例就高很多,這 大概是因為它

28、本身是免費且完全開放使用的緣故。接下來我們會把重點放在處理器的模塊,因為這會與系統(tǒng)結(jié)構(gòu)跟軟件息息相關(guān),在OPENCORES中,較完整而且跟WISHBONE兼容的處理器設(shè)計首推OpenRISC 1000項目,這個 項目包含了完整的軟硬件架構(gòu),在架構(gòu)方面,OpenRISC 1000架構(gòu)預(yù)計提供一個32/64-bit的RISC 處理器設(shè)計,目前整個架構(gòu)的規(guī)格已經(jīng)完成,而OpenRISC 1200是目前第一個采用OpenRISC 1000規(guī)格設(shè)計的32-bit處理器,目前大致上也已經(jīng)完成,它們的關(guān)系如圖6所示。圖6 OpenRISC架構(gòu)在軟件方面,目前在系統(tǒng)移植工具方面,包括GCC,GNU Binutils, Newlib以及GDB等 工具都已完成,而且在Linux上也有OpenRISC 1000的仿真器可以使用。在操作系統(tǒng)方面,目前 已有Linux、RTEMS可以在OpenRISC 10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論