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