SoPC即片上可編程系統(tǒng)(SoPC-System on a Programmable Chip),是一種靈�、高效的SoC解決方案。它將處理器、存�(chǔ)器、I/O�、LVDS等系�(tǒng)需要的功能模塊集成到一�(gè)PLD器件�,構(gòu)成一�(gè)可編程的片上系統(tǒng)。它是PLD與SOC技�(shù)融合的結(jié)��
1 基于FPGA嵌入IP硬核的SOPC系統(tǒng)�
該方案是指在FPGA中預(yù)先植入處理器.最 常用的是含有ARM32位知�(shí)�(chǎn)�(quán)處理器核的器�。為了到�(dá)通用�,必須為常�(guī)的嵌入式處理� 集成諸多通用和專用的接口,但增加了成本� 功�.如果將ARM或其它處理器核以硬核方式� 入FPGA�,利用FPGA中的可編程邏輯資�,� 照系�(tǒng)功能需求來添加接口功能模塊,既能�(shí)�(xiàn)目標(biāo)系統(tǒng)功能,又能降低系統(tǒng)的成本和功�. 這樣就能使得FPGA靈活的硬件設(shè)�(jì)與處� 器的�(qiáng)大軟件功能有�(jī)地結(jié)合在一�,高效� �(shí)�(xiàn)SOPC系統(tǒng)�
IP硬核直接植入FPGA存在以下不足: IP硬核多來自第三方公司,FPGA廠商無法控制�(fèi)�,從而導(dǎo)致FPGA器件�(jià)格相�(duì)偏高. IP硬核�(yù)先植�,使用者無法根�(jù)�(shí)際需� 改變處理器結(jié)�(gòu).更不能嵌入硬件加速模� (DSP). 無法根據(jù)�(shí)際設(shè)�(jì)需要在同一FPGA中集成多 �(gè)處理�. 無法根據(jù)�(shí)際設(shè)�(jì)需要裁減處理器硬件資源 以降低FPGA成本. 只能在特定的FPGA中使用硬核嵌入式處理�
2 基于FPGA嵌入IP軟核的SOPC系統(tǒng)�
IP軟核處理器能有效克服上述不足: 目前最有代表性的軟核處理器分別是 Altera公司的Nios II�,以及Xilinx公司 的MicroBlaze�.特別是Nios II�,能很好的解決上述五方面的問題. Altera的Nios II核是用戶可隨意配置核�(gòu) 建的32位嵌入式處理器IP�,采用Avalon� 線結(jié)�(gòu)通信接口;包含由FS2開發(fā)的基� JTAG的片�(nèi)�(shè)備內(nèi)�. 在費(fèi)用方�,由于Nios II是由Alter公司 直接提供而非第三方廠商產(chǎn)�,故用戶通常無需支付知識(shí)�(chǎn)�(quán)�(fèi)�,Nios II的使用費(fèi) 用僅僅是其瞻仰的FPGA邏輯資源的費(fèi)�
3 基于HardCopy技�(shù)的SOPC系統(tǒng)�
HardCopy就是利用原有的FPGA開發(fā)工具, 將成功實(shí)�(xiàn)于FPGA器件上的SOPC系統(tǒng)通過特定的技�(shù)直接向ASIC�(zhuǎn)�,從而克服傳�(tǒng)ASIC�(shè) �(jì)中普遍存在的問題. ASIC(SOC)開發(fā)中難于克服的問題包括:開發(fā)周期�(zhǎng),�(chǎn)品上市慢,一次性成功率�,� 最少投片量要求,�(shè)�(jì)軟件工具繁多且昂�, 開發(fā)流程�(fù)雜等.
利用HardCopy技�(shù)�(shè)�(jì)ASIC,開發(fā)軟件�(fèi) 用少,SOC�(jí)�(guī)模的�(shè)�(jì)周期不超�20�,�(zhuǎn)� 的ASIC與用戶設(shè)�(jì)�(xí)慣的掩模層只有兩�,� 一次性投片的成功率近�100%,即所謂的FPGA 向ASIC的無縫轉(zhuǎn)化用ASIC�(shí)�(xiàn)后的系統(tǒng)性能將必原來� HardCopy FPGA上驗(yàn)證的模型提高�50%,而功 耗則降低40%.
HardCopy技�(shù)是一種全新的SOC�(jí)ASIC�(shè)�(jì) 解決方案,即將專用的硅片設(shè)�(jì)和FPGA� HardCopy自動(dòng)遷移過程�(jié)合在一起的技�(shù),� 先利用Quartus II將系�(tǒng)模型成功�(shí)�(xiàn)� HardCopy FPGA�,然后幫助�(shè)�(jì)者把可編程解 決方案無縫地遷移到低成本的ASIC�.這樣, HardCopy器件就把大容量FPGA的靈活性和ASIC 的市�(chǎng)�(yōu)�(shì)�(jié)合起�,�(shí)�(xiàn)�(duì)于有較大批量� 求并�(duì)成本敏感的電子產(chǎn)品上,從而避開了� 接設(shè)�(jì)ASIC的困�.
SOPC�(jié)合了SOC和PLD、FPGA各自的優(yōu)�(diǎn),一般具備以下基本特征:
至少包含一�(gè)嵌入式處理器�(nèi)��
具有小容量片�(nèi)高速RAM資源�
豐富的IP Core資源可供選擇�
足夠的片上可編程邏輯資源�
處理器調(diào)試接口和FPGA編程接口�
可能包含部分可編程模擬電��
單芯片、低功�、微封裝�
SOPC的開�(fā)流程通常包括2�(gè)方面:基于Quartus II,SOPC Builder的硬件設(shè)�(jì),基于NiosII IDE的軟件設(shè)�(jì).�(duì)于比較簡(jiǎn)單的 NiosII系統(tǒng),一�(gè)人便可執(zhí)行所有設(shè)�(jì).�(duì)于比較復(fù)雜的系統(tǒng),� 件和軟件�(shè)�(jì)可以分開�(jìn)�. SOPC的開�(fā)過程中要使用到Quartus II,SOPC Builder以及Nios II IDE
SOPC Builder: 它是Nios II軟核處理器的� 它是Nios II軟核處理器的� �(fā)�,用于�(shí)�(xiàn)Nios II系統(tǒng) 配置,生成以及與Nios II系統(tǒng)相關(guān)的監(jiān)控和軟件�(diào)試平�(tái)的生�;
Nios IDE: 用于完成基于Nios II系統(tǒng)的軟件開�(fā)和調(diào)�, 并可借助其自帶的Flash 并可借助其自帶的Flash 編程器完成對(duì)Flash以及EPCS的編程操�.
QuartusII: 用于完成Nios II系統(tǒng)的分析綜�,硬件�(yōu)�,適配,配置文件編程下載以及硬件系統(tǒng)�(cè)試等;
硬件開發(fā)
� SOPC Builder � � � NiosII � � � �(nèi) � � NiosII 開發(fā)套件提供的外�(shè)列表� � � � � � CPU , � �(chǔ) � 以及各外圍器�,并定制和 配置它們的功能; 分配外設(shè)地址及中斷號(hào); �(shè)定復(fù)位地址; 生成系統(tǒng). 用戶也可以添加用戶自 身定制指令邏輯到NiosII �(nèi)核以加速CPU性能; 添加用戶自己�(shè)�(jì)的IP模塊. 硬件開發(fā)使用Quartus II和SOPC Builder GUI 處理器庫選擇并配置外�(shè).
近年來PLD 器件密度的提�,芯片規(guī)模的�(kuò)大和性能的提升為SoPC 提供了物�(zhì)基礎(chǔ)。下面以Altera 公司的SoPC 解決方案為例,介紹一下SoPC 技�(shù)的應(yīng)�。Altera 公司起初是生�(chǎn)可編程邏輯器件及其開�(fā)工具,并擁有一些IP 核的公司。隨著技�(shù)的發(fā)展,尤其是通信技�(shù)的發(fā)�,對(duì)帶寬和速度的要求越來越高,Altera 率先推出自己的SoPC 解決方案,將處理器、存�(chǔ)�、I/O 口、LVDS、CDR 等系�(tǒng)�(shè)�(jì)需要的東西集成到一�(gè)PLD 器件�,構(gòu)建成一�(gè)可編程的片上系統(tǒng)�
1.Nios 軟核�2000 �,Altera �(fā)布了Nios 處理�,推出了一�(gè)基于APEX 系列FPGA的嵌入式處理器解決方�,這是Altera Excalibur 嵌入處理器計(jì)劃中的�(gè)�(chǎn)品,它將可編程邏輯器件和處理器的能力�(jié)合到了一�,成為業(yè)界款為可編程邏輯�(yōu)化的可配置處理器。這種Nios 處理器是1 種參�(shù)化的軟核,設(shè)�(jì)人員可以通過編寫一些新的HDL 模塊或改寫已有HDL 模塊中的參數(shù)來對(duì)軟核�(jìn)行優(yōu)化,及增加外圍電路的功能。使用Nios 軟核的SoPC 解決方案具有如下特點(diǎn)�
(1) 可配置為32 位或16 位的CPU,使�(shè)�(jì)人員能夠在速度與占用資源上做出選擇�
(2) 帶有大量的外�(shè)和接口庫,如UART、時(shí)�、DMA、SDRAM、并行I/O �。這些特性使得SoC 的設(shè)�(jì)變得�(jiǎn)單化,提高了�(shè)�(jì)可靠性,降低了設(shè)�(jì)成本。Nios 軟核主要面向?qū)λ俣鹊囊蟛桓叩牡投�?yīng)用,�?yàn)镹ios 軟核只占用芯片內(nèi)部很少的一部分邏輯單元,所以成本較低。同ASIC 相比�,如果將處理器放到ASIC 中,不但需要付給處理器廠商專利�(fèi),而且ASIC 的投資大,風(fēng)�(xiǎn)也大。Nios 則沒有這�(gè)問題,由于它是可配置的,所以還可以�(yīng)用于Altera公司其他的FPGA 芯片上,如Stratix、APEX II �。值得一提的是Stratix
系列帶有DSP 功能�,將Nios 核嵌入其中,可以提供比一般的DSP 更高的性能,加上本身具有的可編程功能,它將提供更高性能的DSP �(yīng)��
2.ARM922T 硬核在速度要求較高的高端應(yīng)�,如通信�(lǐng)�,軟核的處理速度不夠,Altera就推出了基于ARM 硬核的SoPC 解決方案。例如,Excalibur EPXA1 中就使用了嵌入的ARM922T 硬核做為處理�,它具有如下特點(diǎn)�
(1) 芯片�(nèi)嵌入�200MHz (210MIPS)的ARM922T RISC(精簡(jiǎn)指令集計(jì)算機(jī)) CPU,并帶有容量各為8K 字節(jié)的指令和�(shù)�(jù)緩沖區(qū)�
(2) 芯片�(nèi)包含存儲(chǔ)器管理單�(MMU),可以給RTOS (�(shí)�(shí)操作系統(tǒng))提供多線程的支持�
(3) 片上集成了存�(chǔ)器和多種外部�(shè)備接口,包括:SRAM/DPRAM、UART�32 位時(shí)鐘、存�(chǔ)器控制器�。Excalibur 系列將ARM 處理器的高速計(jì)算能力和可編程功能結(jié)合到一起, 使設(shè)�(jì)人員從繁重的處理器設(shè)�(jì)工作中解脫出�,從而將大部分精力用在系�(tǒng)功能的實(shí)�(xiàn)上。當(dāng)�(yīng)用要求更高的性能�(shí),Altera 還推出了更高速的硬核和更先�(jìn)的PLD�(jié)�(gòu),提供給客戶一�(gè)更快速的解決方案�
3.EDA 開發(fā)工具為了支持SoPC 的開�(fā),Altera 公司還推出了一系列EDA �(shè)�(jì)工具,如Quartus II,以及SoPC Builder。Quartus II 是一�(gè)集成開發(fā)�(huán)�,設(shè)�(jì)人員可在里面完成SoPC 的全部設(shè)�(jì),包括系�(tǒng)的生�、編譯、仿�,并可以下載到開�(fā)器件中,�(jìn)行實(shí)�(shí)�(píng)估和�(yàn)�。尤�,該軟件還可以集成SoPC Builder 開發(fā)工具,令SoPC 的開�(fā)更為便捷。SoPC Builder 是一�(gè)自動(dòng)化的系統(tǒng)開發(fā)工具,可以簡(jiǎn)化SoPC 的設(shè)�(jì)工作。它提供了一�(gè)�(qiáng)大的�(shè)�(jì)平臺(tái)以搭建基于總線的系統(tǒng),其�(nèi)部包含了一系列的模�,如處理�、存�(chǔ)�、總線、DSP 等IP �。使用SoPC Buider,設(shè)�(jì)人員能夠快速地�(diào)用和集成�(nèi)建的IP 核庫,定義一�(gè)從硬件到軟件的完整系�(tǒng)�