8.1??基于FPGA的SOPC系統(tǒng)組成原理和典型方案
8.1.1??SoC及SOPC簡(jiǎn)介
1.SoC
SoC即System?On?Chip,是片上系統(tǒng)簡(jiǎn)稱。它是IC設(shè)計(jì)與工藝技術(shù)水平不斷提高的結(jié)果。SoC從整個(gè)系統(tǒng)的角度出發(fā),把處理機(jī)制、模型算法、芯片結(jié)構(gòu)、各層次電路直至器件的設(shè)計(jì)緊密結(jié)合起來(lái),在單個(gè)(或少數(shù)幾個(gè))芯片上完成整個(gè)系統(tǒng)的功能。所謂完整的系統(tǒng)一般包括中央處理器、存儲(chǔ)器以及外圍電路等。
SoC通常應(yīng)用于小型的、日益復(fù)雜的客戶電子設(shè)備。例如,聲音檢測(cè)設(shè)備的系統(tǒng)芯片是在。單個(gè)芯片上為所有用戶提供包括音頻接收端、模數(shù)轉(zhuǎn)換器(ADC)、微處理器、必要的存儲(chǔ)器以及輸入/輸出邏輯控制等設(shè)備。
SoC的設(shè)計(jì)以IP核為基礎(chǔ),以分層次的硬件描述語(yǔ)言為系統(tǒng)功能和結(jié)構(gòu)的主要描述手段,借助于以計(jì)算機(jī)為平臺(tái)的EDA工具進(jìn)行。
研究表明,與IC組成的系統(tǒng)相比,由于SoC設(shè)計(jì)能夠綜合并全盤考慮整個(gè)系統(tǒng)的各種情況,因而可以在同樣的工藝技術(shù)條件下,實(shí)現(xiàn)更高性能的系統(tǒng)指標(biāo)。SoC技術(shù)也大大促進(jìn)了軟硬件協(xié)同設(shè)計(jì)以及計(jì)算機(jī)系統(tǒng)設(shè)計(jì)自動(dòng)化的發(fā)展。
目前,在軟硬件協(xié)同設(shè)計(jì)中最為活躍的研究工作包括系統(tǒng)描述、軟硬件劃分、軟硬件協(xié)同綜合以及軟硬件協(xié)同模擬與驗(yàn)證等。如圖8.1所示為一個(gè)較為普遍的面向SoC軟硬件協(xié)同設(shè)計(jì)流程。
SoC系統(tǒng)級(jí)設(shè)計(jì)方法基本采用層次化的設(shè)計(jì)思想和正交性的設(shè)計(jì)原則來(lái)完成系統(tǒng)級(jí)設(shè)計(jì)。目前,在學(xué)術(shù)界和工業(yè)界比較認(rèn)可的SoC系統(tǒng)級(jí)設(shè)計(jì)方法學(xué),從性質(zhì)上基本可分為3大陣營(yíng):自頂向下,自底向上,上下結(jié)合和中間相遇。
圖8.1??軟硬件協(xié)同設(shè)計(jì)流程
2.SOPC
SOPC(System?On?a?Programmable?Chip:可編程芯片系統(tǒng))是Altera公司提出來(lái)的一種靈活、高效的SoC解決方案。它將處理器、存儲(chǔ)器、I/O端口、LVDS、CDR等系統(tǒng)設(shè)計(jì)需要的部件,集成到一個(gè)PLD器件上,構(gòu)建成一個(gè)可編程的片上系統(tǒng)。
它是可編程系統(tǒng),具有靈活的設(shè)計(jì)方式,可裁減、可擴(kuò)充、可升級(jí),并具備軟硬件在系統(tǒng)可編程的功能??删幊唐骷?nèi),還具有小容量高速RAM資源。由于市場(chǎng)上有豐富的IP?Core資源可供靈活選擇,用戶可以構(gòu)成各種不同的系統(tǒng),如單處理器、多處理器系統(tǒng)。
有些可編程器件內(nèi)還可以包含部分可編程模擬電路。除了系統(tǒng)使用的資源外,可編程器件內(nèi)還具有足夠的可編程邏輯資源,用于實(shí)現(xiàn)其他的附加邏輯。
SOPC是PLD和ASIC技術(shù)融合的結(jié)果。集成了硬核或軟核CPU、DSP、存儲(chǔ)器、外圍I/O及可編程邏輯的SOPC芯片在應(yīng)用的靈活性和價(jià)格上有極大的優(yōu)勢(shì)。所以,SOPC代表了半導(dǎo)體產(chǎn)業(yè)未來(lái)發(fā)展的方向。
下面介紹一下Xilinx及Altera兩家公司的SOPC的解決方案,其中將重點(diǎn)介紹Altera的解決定案。
8.1.2??Xilinx的SOPC解決方案
Xilinx公司不僅提供高端32位MicroBlaze?CPU軟嵌入式處理器芯核,也提供免費(fèi)的低端8位PicoBlaze?CPU軟嵌入式處理器芯核。
一般的C交叉匯編程序和用戶定制的VHDL?/Verilog?HDL源代碼,還有大量的應(yīng)用說(shuō)明和參考設(shè)計(jì),均可從Xilinx公司網(wǎng)站下載獲得,它們均適用于CoolRunner-II?CPLD以及各種Spartan和Virtex?FPGA系列。
Xilinx公司聲稱,該CoolRunner-II版本只占用107個(gè)宏單元,而適用于Spartan-IIE的PicoBlaze則需占用76個(gè)邏輯片。適用于Virtex-II系列FPGA器件的PicoBlaze,其性能可達(dá)55MIPS。
<利用MicroBlaze軟處理器解決方案,Xilinx充分發(fā)揮出了嵌入式FPGA設(shè)計(jì)的全部潛能。MicroBlaze核是一個(gè)32位哈佛RISC架構(gòu),具有豐富的針對(duì)嵌入式應(yīng)用而優(yōu)化的指令集。處理器是軟核,意味著它是通過(guò)使用通用邏輯基元而非FPGA中的硬專用模塊來(lái)實(shí)現(xiàn)的。?
Xilinx的Spartan和Virtex系列FPGA產(chǎn)品支持MicroBlaze軟處理器。MicroBlaze解決方案被設(shè)計(jì)得很靈活,能讓用戶控制很多特性,如緩存大小、接口和執(zhí)行單元。為了以盡可能低的成本點(diǎn)達(dá)到面向目標(biāo)應(yīng)用的必要性能,可配置性允許用戶對(duì)大小進(jìn)行折衷來(lái)?yè)Q取性能。?
MicroBlaze軟核被授權(quán)成為Xilinx嵌入式開(kāi)發(fā)套件(EDK)的一部分。EDK是包括外圍IP核庫(kù)、曾榮獲大獎(jiǎng)的Xilinx?Platform?Studio工具套裝(可用于生成直觀的硬件系統(tǒng))、基于Eclipse的軟件開(kāi)發(fā)環(huán)境、GNU編譯器、調(diào)試器以及更多工具在內(nèi)的完整的嵌入式開(kāi)發(fā)解決方案。MicroBlaze處理器也為第三方開(kāi)發(fā)工具和實(shí)時(shí)操作系統(tǒng)(RTOS)所支持。
對(duì)于更高的性能要求,Xilinx在Virtex-II系列平臺(tái)FPGA中植入了32位PowerPC內(nèi)核來(lái)提供DMIPS性能。配合Virtex-II?Pro?FPGA在450?MHz時(shí)鐘頻率下的32位PowerPC內(nèi)核可提供超過(guò)680?DMIPS的性能。由于處理器簡(jiǎn)化了設(shè)計(jì),所用的芯片面積也非常小。例如,一個(gè)高效的設(shè)計(jì)僅使用了Xilinx?2VP50器件中不到2%的片芯面積。