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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

13、計流程。圖 3 SOC 設計流程 from: “Surviving the SOC Revolution-A Guide to Platform-Based Design”圖3的橫軸代表的是主要的四項開發工作,從左到右分別是模塊開發、模塊轉移、芯片整 合、軟件開發。模塊開發主要的工作是準備需要的IP模塊供整合之用;模塊轉移是將個別的模 塊作整合之前的調整,以利模塊能順利的整合;芯片整合就是將模塊結合成所需的系統;軟件開 發則包含了操作系統、驅動程序、應用程序等的開發。縱軸代表的是整個設計流程,從上到下分 別是功能設計、結構設計、整合計劃、模塊開發、制造,最下面的則是支持用的技術。圖3所描述的整

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

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

16、臺實例ARM除了在IP的處理器市場占有一席之地,在SOC的設計上也有完整的解決方案,PrimeXsys Wireless Platform 是ARM在無線通信應用上提供的SOC平臺,其基本架構如圖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整個架構以ARM926這顆CPU為中心,透過AHB總線跟其它基本模塊如LCD控制器、 SDRAM控制器、SRAM接口連接,特殊需求的IP模塊也是經由AHB總線跟系統連接,Core APB 則是提供操作系統運作所需的基本功能,而DMA APB則提供快速的DMA接口,在這個平臺中 除了 ARM自己的處理器外,它采用的系統總線AMBA及其它IP模塊也是ARM的

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

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

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

21、有145個項目,開發者有四 百多人,其中有45個項目是已經完成的;一般來說,一個完整的項目會包含以下的數據:說明 文件通常以PDF的格式存在,完整的說明文件中會詳細的列出IP模塊中的輸出入接口、緩存器、 記憶地址、行為模式等數據;IP以及作模擬及測試的程序代碼則主要以VHDL及Verilog HDL 為主。接下來我們將以分類的方式看看OPENCORES中有哪些已完成的項目。Arithmetic core:完成的有一個執行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這個設計已經不開放下載,詳細情形在Articles中有一篇文章有解釋。Other:這里有1個PS2接口以及1個PWM/Timer/Counter產生器已完成,另外完成的 還有1個OpenRISC開發及除錯用的接口設計。Prototype board:除了 1個小型的FPGA測試用機版外,另外1個就是OPENCORES 開發的IP測試用機版,其中有完整的機版電路圖,之前有提供訂購電路板的服務,不 過目前已取消。SoC:目前完成的2個項目都是WISHBONE總線的控制或橋接接口。System controller:完成的項目有 5 個,分別是

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

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

26、,也不需要授權,WISHBONE的規格可參考 下列網址: HYPERLINK /wishbone.htm%ef%bc%8c%e8%80%8c /wishbone.htm,而 OPENCORES 中的項目,若是采用 WISHBONE 作為總線的接口,便會有一個wbc(WISHBONE Compliant Core)的標志,以茲識別。WISHBONE采用MASTER/SLAVE的架構,數據的傳輸都是從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浩噩攜規麒it羸之間的溝通方式都是采用相同的MASTER/SLAVE結構,但是IP跟IP連接的方式就可視需要選擇4種中的任何一種,這種彈性是跟一般的總線規格比較不同的地方。WISHBONE嘗試以一種簡單,但是有彈性的方式提供一個SOC總線所需要的功能,不過 目前WISHBONE在市場上的可見度并不高,反而在OPENCORES中使用的比例就高很多,這 大概是因為它

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

溫馨提示

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

評論

0/150

提交評論