基于嵌入式處理器軟核Nios II的IP復用技術(shù)及應用
引言:
嵌入式處理器是嵌入式系統的核心,有硬核和軟核之分。其中,嵌入式處理器軟核以其更大的使用靈活性,更低廉的成本,受到了研發(fā)人員和市場(chǎng)的廣泛歡迎。Altera公司最新推出的嵌入式處理器軟核Nios II更是軟核處理器中的先進(jìn)代表,它已經(jīng)快速的滲透到教學(xué)、科研以及生產(chǎn)等各個(gè)方面,積極的推動(dòng)著(zhù)嵌入式技術(shù)、SOPC(可編程片上系統)的發(fā)展。
1 Nios II 簡(jiǎn)介
二十世紀九十年代末,可編程邏輯器件(PLD)的復雜度已經(jīng)能夠在單個(gè)可編程器件內實(shí)現整個(gè)系統,可編程片上系統(SOPC)已成為現實(shí)。Altera將可編程器件的優(yōu)勢拓展到嵌入處理器的開(kāi)發(fā)設計中,推出了成功的產(chǎn)品。
2000年,Altera發(fā)布了Nios處理器,這是Altera Excalibur嵌入處理器計劃中的第一個(gè)產(chǎn)品,是第一款用于可編程邏輯器件的可配置軟核處理器。
2004年6月,Altera公司在第一代Nios取得巨大成功的基礎上,又推出了更加強大的Nios II嵌入式處理器。它采用32位的RISC指令集,32位數據通道,5級流水線(xiàn)技術(shù),可在一個(gè)時(shí)鐘周期內完成一條指令的處理。與Nios相比,Nios II處理器擁有更高的性能和更小的FPGA占用率,并且提供了強大的軟件集成開(kāi)發(fā)環(huán)境Nios II IDE,所有軟件開(kāi)發(fā)任務(wù)包括編輯、編譯、調試程序和下載都可以在該環(huán)境下完成。
Altera公司將Nios II處理器以IP( Intellectual Property知識產(chǎn)權)核的方式提供給設計者,有快速型(Nios II/f)、經(jīng)濟型(Nios II/e)和標準型(Nios II/f)三種處理器內核,每種內核都對應不同的性能范圍和資源成本。設計者可以根據實(shí)際的情況來(lái)選擇和配置處理器內核,輕松的創(chuàng )建一款“完美”的處理器。
2 Nios II系統的開(kāi)發(fā)流程
Nios II系統的開(kāi)發(fā)主要可以分為兩大步:搭建硬件平臺和針對目標平臺編寫(xiě)應用軟件程序。
Altera公司設計的開(kāi)發(fā)工具SOPC Builder,將所有和處理器子系統相關(guān)的底層詳細資料集中到這個(gè)工具中,讓用戶(hù)完全置身于直觀(guān)的圖形界面下添加和配置所需的處理器和功能部件,并自動(dòng)完成包含定義存儲器映射、中斷控制和總線(xiàn)控制在內的系統配置工作,使得開(kāi)發(fā)工作簡(jiǎn)單化,設計者能夠更加著(zhù)眼于系統的功能而無(wú)須拘泥于過(guò)多的細節。
集成于SOPC Builder中的Nios II IDE,采用絕大部分設計者非常熟悉的標準GNU環(huán)境,能夠讓設計者在其中完成所有的軟件開(kāi)發(fā)任務(wù)。
搭建硬件平臺所需的工作如下:
(1)硬件開(kāi)發(fā)的主要工作是構建Nios II系統模塊。在SOPC Builder中選取合適的CPU、存儲器以及外圍器件(如片內存儲器、PIO、UART和片外存儲器接口),并通過(guò)參數的設計定制它們的功能。
部件選擇完成后,使用Quartus II軟件選取具體的Altera可編程器件系列,并對SOPC Builder生成的HDL設計文件進(jìn)行布局布線(xiàn),生成Nios II系統模塊;
(2)將生成的Nios II系統模塊加入到Quartus II工程下的頂層設計文件,為Nios II系統模塊的I/O端口分配管腳或者連接FPGA內部邏輯。I/O管腳分配后,進(jìn)行編譯,系統生成配置文件;
(3)使用Quartus II編程器和Altera下載電纜,下載配置文件到開(kāi)發(fā)板。當硬件設計校驗完成后,可以將配置文件下載到開(kāi)發(fā)板上的非易失存儲器里。
下載完硬件配置文件后,軟件開(kāi)發(fā)者就可以把此開(kāi)發(fā)板作為軟件開(kāi)發(fā)的初期硬件平臺對軟件功能進(jìn)行開(kāi)發(fā)驗證。
軟件開(kāi)發(fā)流程歸納如下:
(1)在用SOPC Builder進(jìn)行硬件設計的同時(shí),就可以開(kāi)始編寫(xiě)獨立于器件的C/C++軟件,比如算法或控制程序,并可以使用現成的軟件庫和開(kāi)放的操作系統內核來(lái)加快開(kāi)發(fā)進(jìn)程。
(2)在NIOS II IDE中建立新的軟件工程,這時(shí),IDE會(huì )針對目標硬件平臺自動(dòng)生成一個(gè)定制HAL系統庫,這個(gè)庫能為程序和底層硬件的通信提供接口驅動(dòng)程序。
(3) 使用NIOS II IDE對軟件工程進(jìn)行編譯、調試,運行。[1]
評論