基于FPGA的片上可編程系統(tǒng)(SOPC)設(shè)計(jì)之:Altera公司的NIOS II解決方案
8.2Altera公司的NIOSII解決方案
8.2.1NIOS的主要特點(diǎn)
NIOSII是一個(gè)用戶可配置的通用RISC嵌入式處理器。Altera推出的NIOSII系列嵌入式處理器擴(kuò)展了目前世界上最流行的軟核嵌入式處理器的性能。
本文引用地址:http://www.ex-cimer.com/article/201706/348815.htm把NIOSII嵌入到Altera的FPGA,如StratixII、Stratix、CycloneII、Cyclone、APEX、ACEX和HardCopy系列器件中,用戶可以獲得超過(guò)200DMIPS的性能,可以從3種處理器以及超過(guò)60個(gè)的IP核中選擇所需要的功能。
使用NIOSII處理器的用戶可以根據(jù)他們的需要來(lái)調(diào)整嵌入式系統(tǒng)的特性、性能以及成本,快速使得產(chǎn)品推向市場(chǎng),擴(kuò)展產(chǎn)品的生命周期,并且避免處理器的更新?lián)Q代。
下面是NIOSII處理器的優(yōu)點(diǎn)和特性。
(1)提高系統(tǒng)性能。
·一系列的處理器核可供選擇,其中包括了超過(guò)200DMIPS性能的核。
·實(shí)現(xiàn)任何數(shù)量的處理器或?qū)⒉煌奶幚砥骱私M合在一起。
·增加了已有的處理器,在FPGA中添加一個(gè)或更多的NIOSII軟核處理器。
(2)更低的系統(tǒng)成本。
·通過(guò)將處理器、外設(shè)、存儲(chǔ)器和I/O接口集成到一個(gè)單一的FPGA中,從而降低了系統(tǒng)成本、復(fù)雜性和功耗。
·通過(guò)將NIOSII處理器嵌入到低成本的FPGA中只需花費(fèi)35美分或者更低(對(duì)大多數(shù)用戶而言,NIOSII所占邏輯資源的成本大約是10~20元人民幣,具體取決于所選FPGA的類型和NIOSII的配置)。
(3)應(yīng)對(duì)產(chǎn)品的生命周期。
·提供易用的設(shè)計(jì)工具從而快速將產(chǎn)品推向市場(chǎng)。
·提供永久、免費(fèi)的許可,從而使基于NIOSII處理器的產(chǎn)品避免了處理器的更新?lián)Q代而帶來(lái)的損失。
(4)功能強(qiáng)大、易用的開(kāi)發(fā)工具。
·通過(guò)使用NIOSII集成開(kāi)發(fā)環(huán)境(IDE),從而加速了軟件的開(kāi)發(fā)。
·利用Altera的強(qiáng)大的SOPCBuilder系統(tǒng)開(kāi)發(fā)工具和QuartusII設(shè)計(jì)軟件可以在幾分鐘內(nèi)設(shè)計(jì)一個(gè)系統(tǒng)。
(5)使用完全功能的開(kāi)發(fā)包。
·使用易用的NIOSII開(kāi)發(fā)包開(kāi)始一個(gè)設(shè)計(jì)。
·使用易用的NIOSII開(kāi)發(fā)包開(kāi)始設(shè)計(jì)。
·可以選擇具有低成本特性的CycloneFPGA開(kāi)發(fā)套件,或高性能的StratixIIFPGA開(kāi)發(fā)套件。
在很多對(duì)速度的要求不是很高的低端應(yīng)用中,Altera將一個(gè)軟核放入PLD,這個(gè)軟核就是NIOS。它只占芯片內(nèi)部很少的一部分邏輯單元,成本很低。同ASIC相比較,如果將處理器放到ASIC中,生產(chǎn)的每片芯片都要付給處理器廠商專利費(fèi)。況且ASIC的NRE(一次性投資)大,風(fēng)險(xiǎn)也大,NIOS則沒(méi)有這個(gè)問(wèn)題。NIOS的開(kāi)發(fā)工具包價(jià)格很低。
在速度要求高的高端應(yīng)用,如通信領(lǐng)域,軟核的處理速度不夠。Altera就將硬核(ARM9)集成到APEX器件中,還集成入RAM和RAM控制器。同時(shí)Altera本身在PLD的結(jié)構(gòu)方面也不斷發(fā)展和創(chuàng)新,推出的HardCopyStratixIII器件系列,是一個(gè)針對(duì)大容量設(shè)計(jì)的,從原型設(shè)計(jì)到批量生產(chǎn)的完整解決方案,試圖成為ASIC的全面替代方案。
8.2.2NIOS技術(shù)實(shí)現(xiàn)方式
1.設(shè)計(jì)工具
Altera的Max+PlusII曾是應(yīng)用廣泛、非常受歡迎的PLD(可編程邏輯器件)設(shè)計(jì)軟件。它對(duì)于FPGA和CPLD這些PLD器件的應(yīng)用推廣、電路部件和嵌入式系統(tǒng)的設(shè)計(jì),以及高校有關(guān)專業(yè)的教學(xué)實(shí)習(xí),做出了非常重要的貢獻(xiàn)。
近年來(lái),為適應(yīng)微電子技術(shù)及其應(yīng)用的飛速發(fā)展,尤其是SoC(片上系統(tǒng))技術(shù)發(fā)展的需要,Altera推出了新版本的PLD設(shè)計(jì)軟件QuartusII。它繼承了Max+PlusII的所有優(yōu)點(diǎn),是更加完善的PLD設(shè)計(jì)工具。
PLD的設(shè)計(jì)工具主要包括:不同的設(shè)計(jì)輸入(包括原理圖,VHDL或Verilog-HDL)工具、綜合仿真工具、時(shí)限分析工具、功率評(píng)估工具、PLD布局布線工具和產(chǎn)品驗(yàn)證工具等。
Altera的SOPC開(kāi)發(fā)工具SOPCBuilder,將軟硬件的設(shè)計(jì)結(jié)合起來(lái),提供給客戶一個(gè)很好的開(kāi)發(fā)環(huán)境,開(kāi)創(chuàng)了嵌入式系統(tǒng)設(shè)計(jì)的新理念。
2.SOPCBuilder
SOPCBuilder是一個(gè)軟件工具,它屬于一種基于IP或者平臺(tái)的設(shè)計(jì)方法。利用SOPCBuilder,用戶可以很方便地將處理器、存儲(chǔ)器和其他外設(shè)模塊連接起來(lái),形成一個(gè)完整的系統(tǒng)。
SOPCBuilder中已包含了NIOS處理器以及其他一些常用的外設(shè)IP模塊。用戶也可以設(shè)計(jì)自己的外設(shè)IP。從用戶的角度來(lái)看,SOPCBuilder是一個(gè)能夠生成復(fù)雜硬件系統(tǒng)的工具。但從內(nèi)部來(lái)看,SOPCBuilder包含兩個(gè)主要部分:一個(gè)圖形用戶界面(GUI)以及一個(gè)系統(tǒng)生成程序。
(1)SOPCBuilder圖形用戶界面。
SOPCBuilder圖形用戶界面提供管理IP模塊、配置系統(tǒng)和報(bào)告錯(cuò)誤等功能。用戶通過(guò)圖形用戶界面設(shè)計(jì)系統(tǒng)。完成設(shè)計(jì)之后,單擊“Generate”按鈕,則啟動(dòng)系統(tǒng)生成程序。系統(tǒng)生成程序通常從圖形用戶界面中啟動(dòng)。
(2)系統(tǒng)生成程序。
系統(tǒng)生成程序執(zhí)行大量的功能,創(chuàng)建幾乎所有的SOPCBuilder輸出文件(HDL邏輯文件,C程序的頭文件和庫(kù)文件,模擬文件等)。所以,SOPCBuilder可看作是一個(gè)以IP模塊為輸入,集成的系統(tǒng)為輸出的工具。
SOPCBuilder會(huì)提示用戶設(shè)置參數(shù),并提示使用哪些可選的端口和外設(shè)。一旦向?qū)闪薔IOS系統(tǒng)模塊,則可以在設(shè)計(jì)文件中生成實(shí)例。一些常規(guī)硬軟件接口、中斷子程序等,都可被SOPCBuilder完成,節(jié)約用戶很多時(shí)間,而且更可靠。
3.NIOSII指令結(jié)構(gòu)
NIOSIICPU是一種采用流水線技術(shù)、單指令流的RISC處理器,其大部分指令可以在一個(gè)時(shí)鐘周期內(nèi)完成。NIOSII處理器又是一種軟核CPU,專門針對(duì)Altera的可編程邏輯器件以及片上可編程系統(tǒng)的設(shè)計(jì)思想,做了相應(yīng)優(yōu)化。
作為一種可配置的通用RISC處理器,它可以與用戶自定義邏輯(userlogic)結(jié)合構(gòu)成SoC系統(tǒng),并下載到Altera的可編程器件中去。32位NIOS軟核,結(jié)合外部閃存以及大容量存儲(chǔ)器,可構(gòu)成一個(gè)功能強(qiáng)大的32位嵌入式處理器系統(tǒng)
在Altera的NIOSII嵌入式處理器中,用戶可以在NIOSII指令系統(tǒng)中增加用戶自定義指令,以增強(qiáng)其對(duì)強(qiáng)實(shí)時(shí)軟件算法的處理能力。用戶自定義指令可以通過(guò)單周期或多周期操作來(lái)完成復(fù)雜的處理任務(wù)。
另外,增加的用戶自定義指令同樣可以訪問(wèn)存儲(chǔ)器或NIOS系統(tǒng)外的邏輯。采用用戶自定義指令,用戶可以把一個(gè)復(fù)雜的標(biāo)準(zhǔn)指令序列,簡(jiǎn)化為一條用硬件實(shí)現(xiàn)的單個(gè)指令。這一特性可以用于多種情況,例如對(duì)數(shù)字信號(hào)處理(DSP)、數(shù)據(jù)包處理以及計(jì)算密集型軟件進(jìn)行優(yōu)化。
4.Avalon總線
Avalon總線是一種將片上處理器和外設(shè)連接成片上可編程系統(tǒng)(SOPC)的一種簡(jiǎn)單總線結(jié)構(gòu)。它描述了主從構(gòu)件間的端口連接關(guān)系,以及構(gòu)件間通信的時(shí)序關(guān)系。Avalon總線規(guī)范提供了各種選項(xiàng),來(lái)剪裁總線信號(hào)和時(shí)序,以滿足不同類型外設(shè)的需要。
SOPCBuilder能夠自動(dòng)產(chǎn)生Avalon總線。Avalon總線也包括許多特性和約定,用以支持SOPCBuilder軟件自動(dòng)生成系統(tǒng)、總線和外設(shè)。片上可編程系統(tǒng)(SOPC)的設(shè)計(jì)人員在嵌入式系統(tǒng)開(kāi)發(fā)和調(diào)試時(shí),還有其他輔助工具,例如:ModelSim模擬器,以及其他監(jiān)控、調(diào)試工具等。
評(píng)論