Spartan6 LX45 DDR3除錯與分析

2021-08-14 06:01:14 字數 2490 閱讀 5607

新的一年,新的開始。本文對最近的學習做個總結吧。最近在做spartan6的ddr3開發,fpga採用的是spartan6的xc6lx45t,平台工具為ise14.6,mig的版本為3.92。採用的ddr3晶元為mt41j128m16xx-187e,並使用chipscope完成**除錯(主要是例項的**學習)。

根據黑金spartan6開發板的教程可以很快生成ddr3的mig例項。首先了解下ip生成細節:

第一步選擇 bank3 連線 ddr3 sdram,因為開發板上 ddr3 是連線到 fpga 的bank3 上的。設定

ddr3 

的時鐘頻率為

312.5mhz, 

這個頻率最高可設定為

333.33mhz

,我們這裡稍微留一點餘量。另外

ddr3

的型號設定為跟開發板上一致的型號

mt41j64m16xx-187e, 

如果是ax545

的開發板,需選擇的

ddr3

型號為mt41j128m16xx-187e;

第二步根據需要可以選擇不同的使用者端介面方式,可以選擇多個

port, 

也可以組合成乙個

port, 

我們這裡選擇

one 128-bitbidirectional port;

第三步選擇

rzq和

zio

的引腳分配,這跟硬體電路設計有關,在

ax516

和ax545

的開發板上

c2 腳作為

rzq,l6

腳作為zio

。另外選擇

debug signals for memory controller

項設定為

enable

,因為要用

chipscope

來測試ddr3

。system  clock

設定為single-ended

之後進行引數修改設定:

(1)vccaux 的電壓修改為 3.3v。

(2)把 39 行的 net 「c?_pll_lock」 tig 遮蔽掉。

(3)修改系統時鐘輸入的週期為 20ns,  這需要跟開發板上的晶振頻率一樣。

(4)修改狀態訊號為四個,分別定義到開發板上的四個 led 燈,用 led 燈的狀態來顯示程式工作狀態。

(5)修改 c3_sys_clk 的電壓為 lvcmos33,因為開發板上晶振的輸入腳所在的 fpga bank的 io 電壓為 3.3v。

(6) 修改 c3_sys_clk 和 c3_sys_rst_i 的管腳約束,  配置成跟開發板的上時鐘輸入和復位一致。

(7)時鐘頻率修改。由於開發板上的時鐘輸入為 50mhz,  因為 ddr3 是上下沿取樣,這樣 fpga 內部的 ddr3控制器的時鐘需要625mhz ,所以這裡需要倍頻25,再分頻2,得到625mhz的clkout0和 clkout1,再分頻 8 分別得到 user inte***ce 的時鐘和 calibration 的時鐘 78.125mhz。

完成上述修改後,進行chipscope**環節。這裡直接選擇例程中的\ddr3_test\mig_39_2\example_design\chipscope 目錄下的 ax516.cpj。如圖所示:

寫時序一般問題不大,這裡重點研究讀取資料的時序,首先置讀取命令c3_p0_cmd_instr <= 3'b001;這裡置fifo資料深度為c3_p0_cmd_bl <= 6'd2;

使能引入為高電平c3_p0_cmd_en <= 1;測試位址為c3_p0_cmd_byte_addr <= 30'h00000400。在之後進行讀取訊號設定:讀使能拉高c3_p0_rd_en <= 1;維持三個週期,依次讀出c3_p0_rd_data <= 32'h00000400,

32'h00000410,

32'h00000420這三個資料,同時可觀察到在拉高讀使能訊號時,c3_p0_rd_empty<=1'b0;讀使能拉低後,c3_p0_rd_empty<=1'b1;至此驗證基本完畢。

墨大Spartan常用命令總結

近期在做自己畢業設計的過程中需要用學校的spartan平台進行資料處理,這裡對學校spartan常用的一些命令進行總結。ssh spartan hpc.unimelb.edu.auscp source destination scp spartan hpc.unimelb.edu.au data p...

CentOS 6 IPv6 關閉方法

方法一 centos 6 預設安裝後,ipv6是自動開啟的,但是現在ipv6還沒有普及基本用不到這個功能,建議關閉ipv6模組。下面介紹一下關閉方法。說明 藍色 命令名稱 淺綠 命令引數淺藍 選項 紫色 目錄 系統環境 centos 6.2 i686 1 檢視系統是否開啟ipv6 a 通過網絡卡屬性...

es6 最佳入門實踐 6

symbol是es6中一種新增加的資料型別,它表示獨一無二的值。es5中我們把資料型別分為基本資料型別 字串 數字 布林 undefined null 和引用資料型別 object 在es6中新增的symbol資料型別劃分到基本資料型別 為什麼會有這樣一種資料型別呢?別人給了你乙個定義好的物件 va...