本文經過Avalon-MM Master Templates實現讀取ddr2中的圖像數據(800*480*16bit),而後經過TFT 5.0寸LCD顯示出來。本文旨在闡述清楚思路以及記錄本身在實現過程當中的一些經驗。數組
須要知識:NIOS + Verilog + 工具[Qsys]。緩存
一.效果展現:工具
二.結構說明:ui
經過master_read 鏈接到ddr2,直接讀取ddr2的數據。NIOS中負責寫數據到DDR2,NIOS和MASTER_READ共享內存,關於mater_read的配置請參考以前的調試記錄。咱們的思路是在NIOS中用C直接操做內存,而後經過master_read讀取數據送給TFT(此部分verilog實現),屏幕刷新率60hz。spa
三.圖像轉換說明調試
因爲在NIOS是經過直接操做內存顯示圖片的,所以須要將圖片轉化爲數組,具體以下:blog
1.打開uc_gui自帶的工具,打開圖片,(注意圖像的分辨率,要提早改好)圖片
2.保存圖片內存
3.點擊保存後出現以下框,存儲的應該注意的地方狀況紅色框,交換紅色和藍色,(注:我用的是屏幕參數是RGB565,800*480 LCD,根據本身屏幕修改便可)。開發
四.部分調試波形記錄
我在調試過中發現一個很奇怪的問題:以下
如上圖的紫色框,筆者發現:使第一個數據輸出0x1234,可是實際抓到的0x1234總共持續了4個clk,前面三個clk的數據應該是丟棄的,所以,筆者使用計數器在每次讀數據前先讀三次(修bug),而後圖像就能夠正常顯示了。
五.總結
本文展現了一個經過NIOS實現數據流處理的例子,須要的能夠參考。這樣的好處,成功繞過操做DDR2/3等緩存器件,減少開發難度,減少開發週期,缺點是犧牲了一點點的速度優點,畢竟verilog是純硬件再跑。。。歡迎你們一塊兒交流,Q羣:912014800。