<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > NIosII軟處理器快速入門(mén)

NIosII軟處理器快速入門(mén)

作者: 時(shí)間:2017-06-06 來(lái)源:網(wǎng)絡(luò ) 收藏
Nios簡(jiǎn)單介紹:

Nios II是一個(gè)用戶(hù)可配置的通用RISC嵌入式處理器。在這兒,我引用了Altera公司關(guān)于NiosII的官方介紹:

Altera推出的Nios? II系列嵌入式處理器擴展了目前世界上最流行的軟核嵌入式處理器的性能,
把Nios II嵌入到Altera的所有FPGA中,例如StratixII、Stratix、CycloneII,Cyclone、APEX,ACEX和HardCopy系列器件中,用戶(hù)可以獲得超過(guò)200 DMIPS的性能,用戶(hù)可以從三種處理器以及超過(guò)60個(gè)的IP核中選擇所需要的,Nios II系統為用戶(hù)提供了最基本的多功能性,設計師可以以此來(lái)創(chuàng )建一個(gè)最適合他們需求的嵌入式系統。
Nios II處理器的優(yōu)點(diǎn)和特性

使用Nios II處理器的用戶(hù)可以根據他們的需要來(lái)調整嵌入式系統的特性、性能以及成本,快速使得產(chǎn)品推向市場(chǎng),擴展產(chǎn)品的生命周期,并且避免處理器的更新?lián)Q代。

提高系統性能

* 一系列的處理器核可供選擇,其中包括了超過(guò)200 DMIPS性能的核
* 實(shí)現任何數量的處理器或將不同的處理器核組和在一起
* 增加了已有的處理器,在FPGA中添加一個(gè)或更多的Nios II軟核處理器

更低的系統成本

* 通過(guò)將處理器、外設、存儲器和I/O接口集成到一個(gè)單一的FPGA中,從而降低了系統成本、復雜性和功耗
* 通過(guò)將Nios II處理器嵌入到低成本的FPGA中只需花費35美分或者更低(編者:對大多數用戶(hù)而言,NiosII所占邏輯資源的成本大約是10-20元人民幣,具體取決于所選FPGA的類(lèi)型和NiosII的配置)

應對產(chǎn)品的生命周期

* 提供易用的設計工具從而快速將產(chǎn)品推向市場(chǎng)。
* 提供永久的,免費的許可從而使基于Nios II處理器的產(chǎn)品避免了處理器的更新?lián)Q代而帶來(lái)的損失。

功能強大、易用的開(kāi)發(fā)工具

* 通過(guò)使用Nios II集成開(kāi)發(fā)環(huán)境(IDE),從而加速了軟件的開(kāi)發(fā)
* 利用Altera的強大的SOPC Builder系統開(kāi)發(fā)工具和Quartus II設計軟件可以在幾分鐘內設計一個(gè)系統

使用完全功能的開(kāi)發(fā)包

* 使用易用的Nios II 開(kāi)發(fā)包開(kāi)始一個(gè)設計
* 使用易用的Nios II開(kāi)發(fā)包開(kāi)始設計
* 可以選擇具有低成本特性的Cyclone FPGA開(kāi)發(fā)套件,或高性能的Stratix FPGA開(kāi)發(fā)套件

 

稍微了解一下NiosII后,我們就來(lái)開(kāi)始設計、應用它吧!

下面我們就設計一個(gè)最簡(jiǎn)單的NiosII系統,使用NiosII去控制一個(gè)LED燈,通過(guò)這個(gè)例子我們可以了解整個(gè)介紹NiosII的設計流程

第一節:EDA軟件的安裝。

許多朋友在配置EDA環(huán)境的時(shí)候,就遇到了更多問(wèn)題,我現在總結一下:

1。安裝QuartusII4.2

2。安裝NiosII IDE 用于軟件開(kāi)發(fā)

3。安裝ModelSim6.0。 用于系統仿真

如下是ModelSim下的安裝說(shuō)明:

1.Install, Select Full product instllation. When asked for security key, select no. When you
see License Wizard dialog, select close because license wizard dont know our license's format.
2.Use our keygen to generate license.dat, copy it to c:flexlm directory.
3.set enviroment string: LM_LICENSE_FILE = c:flexlmlicense.dat
4.Start Modelsim and have fun.

仍有許多人表示搞不定,通常是因為第三步有問(wèn)題,可以如下設置:

在W2K下,在開(kāi)始 -〉系統 -〉設置 -〉 系統 -〉 高級 -〉 環(huán)境變量 -〉系統變量中設置
變量名為 LM_LICENSE_FILE ,值為 你的存放license.dat的路徑 + 文件名,比如 c:flexlmlicense.dat,
(在unix/linux下,在.bashrc中export LM_LICENSE_FILE=/thePathOfLicenseFile/yourLicenseFileName就可以了?。?

 

第二節:建立niosII系統。

1:建立項目。

建立一個(gè)目錄,比如H:DB2005projectniosDKExampleNiosSmall

啟動(dòng)QuartusII4.2軟件。

選擇File -> New Project Wizard

在Diectory,Name,Top-Level Entity中如下填寫(xiě),在你自己的項目中,你可以類(lèi)比著(zhù)填寫(xiě):

 


 

 

在A(yíng)dd Files中如下填寫(xiě),在你自己的項目中,你可以類(lèi)比著(zhù)填寫(xiě):



 

 

在EDA Tools Setting中如下填寫(xiě),在你自己的項目中,你可以類(lèi)比著(zhù)填寫(xiě):



 

 

最后,選擇Finish,就OK了!



 

 

在H:DB2005projectniosDKExampleNiosSmall下建立一個(gè)name為Setup.tcl的file,其內容如下:

#Setup.tcl
# Setup pin setting
set_global_assignment -name RESERVE_ALL_UNUSED_PINS AS OUTPUT DRIVING GROUND
set_global_assignment -name ENABLE_INIT_DONE_OUTPUT OFF
set_location_assignment PIN_16 -to clk
set_location_assignment PIN_37 -to led[0]
set_location_assignment PIN_39 -to led[1]
set_location_assignment PIN_1 -to led[2]
set_location_assignment PIN_41 -to led[3]
set_location_assignment PIN_42 -to led[4]
set_location_assignment PIN_49 -to led[5]
set_location_assignment PIN_50 -to led[6]
set_location_assignment PIN_51 -to led[7]

 

很淺顯的Script,你可以根據需要修改。

然后打開(kāi)Tools -> Tcl Scripts,選中剛才編輯的Script文件:Setup,并點(diǎn)擊Run



2:生成一個(gè)可調試的nios 最小系統

 

選擇 Tools -> SopcBuilder,啟動(dòng)Altera SOPC Builder

啟動(dòng)Altera SOPC Builder后,SOPC Builder會(huì )立刻彈出對話(huà)框

填入System Name,比如niosII_e;HDL Language ,比如選擇verilog,如下圖:



 

 

選擇Board Target ,比如,我選擇Unspecified Board;

選擇Target Device Family,比如,我選擇Cyclone;

填入Clock,比如,我 填入22.1184

如下圖:



 

 

添加Nios II到項目中:

雙擊 Nios II Processor -Altera Corporation,會(huì )彈出Altera niosII 對話(huà)框,

 

在NiosII core配置選項中,點(diǎn)擊Nios II/e區域,選擇Nios II/e,如下圖。然后Next,進(jìn)入下一步。



 

 

在JTAG Debug Module配置選項中,選擇Level 1,如下圖。然后Next,進(jìn)入下一步。



 

 

在Custom Instructions配置選項中,我由于無(wú)需增加任何定制指令,所以為空,如下圖:

 



 

 

最后選擇Finish,你的項目中會(huì )增加一個(gè)niosII 處理器,名字為cpu_0,為了簡(jiǎn)便起見(jiàn),我沒(méi)有將它改名。你可以依照你自己的喜好,為該處理器取個(gè)名字。如下圖:

 



 

 



然后雙擊On-Chip Memory(RAM or ROM),(在A(yíng)valon Modules -> Memory -> 下),為系統添加RAM.

Memory Type選擇RAM;Data Width選擇32bits,Total Memory Size 可以選擇2K bytes,然后選擇Finish確認。

 



 

 

如下圖,系統中會(huì )添加name 為onchip_memory_0的ram,為了簡(jiǎn)便起見(jiàn),我沒(méi)有將它改名。你可以依照你自己的喜好,為其取個(gè)名字。

 



 

 



之后,雙擊PIO(在Parallel I/O)(在A(yíng)valon Modules -> Other 下),為系統添加輸出接口。

Width 選擇8 bits,然后點(diǎn)擊 Finish

如下圖

 



 

 

如下圖,系統中會(huì )添加name 為pio_0的PIO,為了簡(jiǎn)便起見(jiàn),我沒(méi)有將它改名。你可以依照你自己的喜好,為其取個(gè)名字。

 



 

 

然后,選擇System ->Auto-Assign Base Addresses,讓系統自動(dòng)分配基地址。如下圖:

 



 

 

然后,選擇Sysetm->Auto-Assign IRQs,讓系統自動(dòng)分配中斷。如下圖:

 



 

 



點(diǎn)擊Nios II More cpu_0 settings選項卡,進(jìn)行處理器設定。

在該例中,無(wú)需做任何更改;Reset Address、Exceptiong Address、Break Location默認值如下圖所示。

 



 



點(diǎn)擊System Generation選項卡,進(jìn)行最后的設定并生成系統。

選中HDL.Generate system module logic in Verilog,

如果需要仿真,也請選中Simulation.Create ModelSim(tm) project files

然后點(diǎn)擊Generate,進(jìn)行系統生成的任務(wù)。如下圖:

 



 

 



然后,就是漫長(cháng)的等待,你可以悠閑得喝一杯咖啡(因為等待的時(shí)間還是蠻長(cháng)的,比如我,要等近10分鐘)。一般沒(méi)有問(wèn)題的話(huà),可以看到系統提示:SUCCESS: SYSTEM GENERATION COMPLETED.如果看到此信息,恭喜恭喜,系統被正確生成了。如果失敗,請返回并檢查、修改!

如下圖:

 



3:在QuartusII中使用上述niosII系統

 

在 SOPC Builder正確運行完畢后,可以在QuartusII中,打開(kāi)SOPC Builder生成的niosII_e.bsf,檢查一下引腳,看看跟你的設想是否有誤,如下圖,niosII_e有兩個(gè)input:clk,reset_n,一組output:out_port_from_the_piop[7:0]

如下圖:

 



 

 

你可以使用上述的niosII_e,來(lái)構造你自己的系統。如下圖,我簡(jiǎn)單得創(chuàng )建了nisoSmall.bdf,來(lái)使用該niosII_e。

nios clk to clk

niso reset_n to VCC

out_port_from_the_pio_0[7:0] to LED[7:0]

 



 

 

第三節:編寫(xiě)程序。

在A(yíng)lter SOPC Builder中,點(diǎn)擊Run Nios II IDE,啟動(dòng)Nios II IDE,如下圖:

 



 

 

在Nios II IDE中,選擇File -> New -> Project,開(kāi)啟New Project 對話(huà)框

選擇 C/C++ Application,如下圖。然后選擇Next,進(jìn)入下一步。

 



 

 

填寫(xiě)你自己的Project Name,比如我填寫(xiě)hello_led_1;在Select Project Template中,我選擇Hello LED(因為存放程序的sram只有2kbytes,所以許多Template不可用),如下圖。然后選擇Next,進(jìn)入下一步。

 



 

選擇Create a new system library named:,最后點(diǎn)擊Finish,創(chuàng )建項目。如下圖:

 



 

 

打開(kāi)項目中的文件:hello_led.c,進(jìn)行適當的修改。

比如,我將PIO的基地址修改為PIO_0_BASE;while(i200000)修改為while(i20000).你可以依照你的需求修改!

 

 



 

 

然后選擇Project->Build All(Ctrl+B),編譯整個(gè)項目。

如果無(wú)誤,可以看到以下信息:Build completed.如果看到了該條提示,恭喜恭喜,距離成功只有一步之遙了!

 



 

 

第四節:編譯整個(gè)項目。

然后,在QuartusII中,選擇Processing -> Star Compilation,開(kāi)始編譯整個(gè)項目。

你又可以坐下來(lái)喝杯咖啡了,反正我是等了又十來(lái)分鐘。

成功后,可以看到如下信息:如果到了這一步,赫赫,基本上大功告成了!

 



 

 

第五節:下載與測試。

最后,選擇Tools ->Programmer,下載整個(gè)配置到FPGA中,如下圖。

 



 

下載成功后,可以看到LED的有規律的變化。(物理硬件中,我只用了一個(gè)LED,觀(guān)察到LED是常亮,有規律得熄滅,因為我的LED是低電平才發(fā)光,與設計完全吻合?。?

OK,做到這一步,就大功告成了!




關(guān)鍵詞: FPGANIosII

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>