Qsys+NIOSII+SDRAM+DE2_115樣例具體實現



平臺背景:

操作系統:Windows7 64bit

QuartusII版本:13.0

開發板:Altera DE2-115

 

具體步驟:

1.新建工程:

2新建頂層文件,本例以bdf構建:

3.點擊Qsys(舊版本中的DSPbuilder),新建一個nios芯片:

默認會有一個時鐘,這個是芯片共用的時鐘,可以點擊右鍵rename,爲了查看方便,可以改爲clk_50(輸入頻率50MHz)clk_100(輸入頻率100MHz)。

然後加入nios核,可以直接在左邊元件庫搜索

選擇f型,其他保持默認設置然後點擊finish添加,改名爲cpu

用相同方法添加sdram-controller

配置如下,注意修改寬度32bitbank4,陣列爲13*10

切換到timing,選擇等級3,如下圖

點擊finish,完成添加,然後renamesdram

然後添加串口調試jtag_uart,直接finish,添加後renamejtag_uart

然後添加系統標示符sys_id,自己可以改動數字,亦可以保持不變,點擊finish添加並改名。

添加完成後如下所示:

點擊system下的Run SOPC Builder to Qsys upgrade,完成基本連線

由於Qsys取消了SOPCbuilder的自動連線功能,所以必須手工連線。需要連接的主要是:

1)每個器件的時鐘

2)非存儲器類的數據總線接口

3)存儲類器件的數據總線接口和指令總線接口

4)中斷接口

連接後配置如下:

然後雙擊cpu,修改其中的異常向量地址和復位地址,都選擇爲sdram

點擊system菜單下的assigne base address,分配基地址

最後完成如下圖

點擊標籤頁最右邊的generation,去掉simulation的選項,然後點擊generation生產文件

在彈出的保存中,自己命名並保存。

退出Qsys,進入quartusII的主界面中

Qsys生產的文件手工加入到工程中,(quartusII低版本的可以自動加入,高版本需手動加入)。

在頂層文件的bdf中,單擊右鍵,選擇insert symbol

點擊ok完成添加

以同樣的方法,打開插入符號窗口,點擊左下方MegaWizard Plug-in manager添加pll

選擇第一個,next,然後找到pll如下圖所示:

然後命名,比如命名爲pll,點擊next,此時會出現下圖,將入口頻率調整爲50MHz

一直點擊next,直到outputclock選項頁面

clk c0的乘法系數改爲2其他不變,此時pllc0輸出爲100MHz,可以充當cpu的時鐘:

然後點擊c1,如上圖中2標示的,修改其中的乘法系數爲2,使得頻率也爲100MHz,另一方面,修改相移爲-65(實際值爲-63),這點很重要,此時鐘輸出作爲SDRAM內存的時鐘信號。

點擊finish,完成pll構建。回到symbol窗口,點擊ok,加入此器件。

pllc0輸出連接到cpu的時鐘輸入端口,如下圖所示:

分別右鍵單擊pllcpu兩個模塊,然後點擊generate pins for symbol ports

得到效果如下圖:

按照用戶手冊修改管腳名稱,以便於導入管腳配置,注意爲pllassertcpureset安排兩個開關。注意將c1管腳定位到SDRAM的時鐘端口,修改後如下:

 

然後編譯

編譯後導入管腳分配,可以使用csv文件導入,在DE2_115的光盤中有此配置文件,如果沒有,請使用pin planner手工對照名字添加管腳。

然後啓動NIOS for eclipse,新建工程,選擇Nios II Application and BSP from templare

SOPC信息文件指向剛剛生成的cpu文件,

點擊open,然後選定工程名字,如cc,點擊finish,生成文件得到結果如下:

連接FPGA開發板,切換到quartus,點擊programmer,將sof文件寫入

切換到eclipse,點擊第一個工程,郵件單機項目,然後選擇Run AS,選擇NiosII hardware,請在點擊之前確保與pllassert管教相連的開關處於低電平,與cpu相連的開關處於高電平,否則cpu無法正常工作!

如果彈出錯誤對話框,如下圖:

選擇refresh connection,如有必要請勾選下圖中的23選項:

設置完成後點擊Run,如果一切工作正常,將會在eclipse中現實如下結果:

如有任何相關的問題,請關注我的個人公衆號hearwithlisten,直接留言。

歡迎交流指正。

掃碼可以關注我的微信公衆號:


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章