硬件平台:黑金AX301開發板。
操作系統:Win7 64bit。
軟件平台:Quartus II 64-Bit Version 12.0 Build 263和Nios II 12.0sp2 Software Build Tools for Eclipse。
參考資料:Nios那些事兒,愛上FPGA開發——特權和你一起學NIOS2
一、硬件開發
首先打開Quartus,新建一個工程,器件選擇EP4CE6F17C8,如下圖所示。

接着,進入Qsys 中進行軟核的設計。點擊 Tools->Qsys,進入Qsys。
File—>Save保存,命名為nioscpu(命名隨意)。
返回Qsys主界面后點擊"Clock Settings"標簽欄修改時鍾,雙擊時鍾名clk_0修改為clk,時鍾頻率由初始的50MHz修改為100MHz,如下圖所示:

修改完后回到"System Contents"標簽欄。
添加Nios II核
從界面左上角Component Library查找窗口輸入nios,如圖:
雙擊Nios II Processor選擇Nios II/f,其他保持默認,再點擊Caches and Memory Interfaces,將Data cache改為None,如圖:

然后點擊右下角Finish,Nios II核就加入到Qsys中了。在“Name”列中將nios2_qsys_0改名為mcu(在nios2_qsys_0上右擊選擇Rename)。
添加SDRAM核
從界面左上角Component Library查找窗口輸入sdram找到“SDRAM Controller”后雙擊。
如下圖所示設置,Finish。

將sdram_0改名為sdram,完成后如下圖所示:

添加System ID Peripheral核
從界面左上角Component Library查找窗口輸入sys找到“System ID Peripheral”后雙擊。保持默認選項,Finish。將sysid_qsys_0改名為sysid,完成后如下圖所示:

添加EPCS
從界面左上角Component Library查找窗口輸入epcs找到“EPCS Serial Flash Controller”后雙擊,默認點擊Finish即可。添加完成后改名為epcs。
添加JTAG UART核
從界面左上角Component Library查找窗口輸入jtag找到“JTAG UART”后雙擊。保持默認選項,Finish。將jtag_uart_0改名為jtag,完成后如下圖所示:

添加PIO核
從界面左上角Component Library查找窗口輸入pio找到“PIO”后雙擊。在Basic Settings的Width選項中輸入4(因為AX301開發板有4個LED),其他保持默認,Finish。將pio_0改名為led,然后點擊led的external_connection行中的Export列(列中有灰色的Click to export),命名為led,完成后如下圖所示:

連接時鍾信號
將所有的clk連接起來,如下圖所示:
連接數據和指令端口
規則:存儲器一類的IP核需要將其Slave端口同Nios 2的data_master和instruction_master相連,其他非存儲器IP核則只需連接到Nios 2的data_maste。連接完成后如下圖所示:
時鍾、數據和指令端口的連接可以直接在創建IP后進行。
指定Nios 2的復位和異常地址
雙擊mcu,配置Reset Vector為"epcs.epcs_control_port",Exception Vector為"sdram.s1",Finish,如下圖所示:
連接復位信號
點擊Qsys主界面菜單中的“System”下的“Create Global Reset Network”,完成后如下圖所示:
分配基地址
點擊Qsys主界面菜單中的“System”下的“Assign Base Addresses”,完成后如下圖所示,可以看到現在有4個Warning,兩個是中斷沒有分配,兩個是輸出沒有引出來,我們先來分配中斷號。
分配中斷號
在“IRQ”標簽欄下點選“Avalon_jtag_slave”和IRQ的連接點就會為“jtag”核添加一個值為0的中斷號,如下圖所示,同樣地,給epcs分配中斷1。
設置SDRAM和EPCS輸出
如圖,在Export標簽欄下點選sdram的wire行和epcs的external行,分別重命名為sdram和epcs。
生成Qsys系統
Save,點擊“Generation”標簽欄中Generate按鈕生成Qsys系統。至此Nios 2軟核構建完畢。點擊“HDL Example”標簽欄,在HDL Language選擇Veriolg,點擊Copy留待后面使用,如下圖所示:
最后關閉Qsys。








