1. 程式人生 > >將FPGA(Nios軟體部分)程式放在SDRAM裡面跑

將FPGA(Nios軟體部分)程式放在SDRAM裡面跑

加了Nios並在上面跑uCOS的時候,nios裡面的onchip memory已經無法滿足程式的規模了。即使是EP4CE6的,單跑一個帶uCOS的nios cpu也不夠放。所以必須放到板上的SDRAM(記憶體)裡面去跑。

1. 先建立一個Nios核。

注意new_sdram_controller的最後一個Conduit的s需要雙擊輸出埠。

2. 在設定sdram_controller的時候注意要與開發板上的sdram型號對應

我的是hy57v641620,配置如圖:


3. 當然CPU(NIos Processor)裡面的Reset Vector 和 Exception Vector不能再是Onchip Memory而應該是new_sdram_controller。




4. 其他什麼自動分配基地址,中斷等等都一樣。然後生成。

5. 回到硬核新增Nios



這裡注意:

(1)sdram_controller的s引出的管腳必須嚴格對應開發板sdram型號的分配

(2)SDRAM_controller的時鐘雖然在nios內部設定的時候從clk連線到了controller上面,但是sdram本身的時鐘必須與Nios系統的時鐘分開。

具體操作是:在硬核中加一個PLL,input是板上的晶振,output用兩個c0,c1。c0不倍頻接給Nios,c1需要向右邊移動63相位。

c1配置如圖:



硬體連線如圖:


6. 軟核部分

(1)開啟eclipse建立帶bsp的工程blahblah。。。

建立hello microOS模板工程

(2)edit bsp

common裡面有這幾個地方修改:



Advanced裡面設定成這樣:



(3)build and run

如果build過了,run到一半出現無法下載elf的錯誤,多半是管腳sdram_controller的s甩出來的那一堆管腳沒有分配正確導致;另外就是SDRAM本身沒有分配單獨的一個時鐘訊號。