參考資料
《pg150-ultrascale-memory-ip》
1.IP核結構
根據官方提供的資料,IP核主要劃分為三個部分,分別是用戶接口,內存控制器以及物理層接口。對于用戶來說,我們需要研究清楚的是用戶接口部分內容,其余兩部分只需了解即可,這里就不展開論述。
讀寫效率
X8是表示,該內存顆粒的數據總線為8bit。常見的還有x4/x16。
整個DDR的IP核應用,主要都是圍繞這以下幾個路徑進行,開發者直接打交道的是IP_core的userinterface。其他物理底層的內容,由IP自行完成。主要指令路徑包括:Command Path、write_Path、read_Path以及維護指令(Maintenance Commands)。
Command Path
顧名思義,就是讀寫操作指令寫入的路徑。當app_rdy與app_en都有效的時候,新的指令才能寫入命令FIFO里,并被執行。
Write Path
數據內容寫入IP核的路徑。
從上述的時序圖看來,與寫入路徑相關的信號有app_adf_data、app_wdf_wren以及app_wdf_end。雖然說,寫入的數據路徑與指令路徑可以不對齊,但實際應用過程中,建議還是對齊操作,要不然容易出問題(后續調試測試的內容有提到)。
pp_wdf_end為高,表示該數據這次寫入請求的最后一個數。以上圖為例,4:1mode是指用戶接口時鐘與物理層驅動DDR的時鐘之比為1:4。比如用戶接口的數據總線為64bit,物理層驅動DDR芯片位寬為8bit ,BL=8, 在4:1mode下,那么正好一個用戶clk可以執行完一次突發傳輸(DDR是在時鐘上升沿和下降沿都傳輸數據)。所以在執行傳輸的過程中,app_wdf_end為高。
Read Path
數據從IP核中讀出來的路徑。
Maintenance Commands(維護指令)
這里可以解析為什么讀寫效率不能夠達到百分百,由于ddr需要刷新等導致。其中啟動刷新有兩種模式,一種是自動刷新,即IP核自己產生滿足時序的刷新請求,另外一種是通過選中“啟用用戶刷新和ZQCS輸入”選項來啟用用戶模式。在此模式下,當init_calib_complete有效之后,由用戶負責發出Refresh和ZQCS命令以滿足DRAM組件規范所要求的速率。ZQCS是用于ZQ 校準,這個與ODT相關。
擴展一下:
ODT(On-Die Termination),是從DDR2 SDRAM時代開始新增的功能。其允許用戶通過讀寫MR1寄存器,來控制DDR3 SDRAM中內部的終端電阻的連接或者斷開。
為什么要用ODT?一個DDR通道,通常會掛接多個Rank,這些Rank的數據線、地址線等等都是共用;數據信號也就依次傳遞到每個Rank,到達線路末端的時候,波形會有反射,從而影響到原始信號;因此需要加上終端電阻,吸收余波。之前的DDR,終端電阻做在板子上,但是因為種種原因,效果不是太好,到了DDR2,把終端電阻做到了DDR顆粒內部,也就稱為On Die Termination,Die上的終端電阻,Die是硅片的意思,這里也就是DDR顆粒。
所以,使用ODT的目的很簡單,是為了讓DQS、RDQS、DQ和DM信號在終結電阻處消耗完,防止這些信號在電路上形成反射,進而增強信號完整性。
3.對IP核進行二次封裝
建議對IP核的User_interface再封裝一層,對外只需預留例如wr_en/wr_data以及rd_en/rd_data等信號,類似于讀寫FIFO的端口,提高模塊的后期復用。
4.調試與測試記錄
手冊梳理得差不多了,寫個簡單的程序仿真測試。期間碰到了些問題,分享出來記錄一下。
cmd_path與write_path沒對齊。
圖中所示,app_rdy為低,但是wdf_wren仍然為高,短期的話應該沒有什么問題,但是如果持續一段時間,必然會導致IP核中fifo被寫滿,導致異常。
解決辦法:
令指令與數據路徑命令對齊。在寫入的時候,當app_rdy與app_wdf_rdy都有效的時候,才觸發相應的動作。
數據沒有寫入,導致回讀出來的數據不對。
從時序上來看,寫入沒有問題。但是我當初忽略了app_wdf_mask,這個沒有賦值(正常應該賦0),導致仿真的時候,該信號一致顯示高阻態。然后發現ddr4_dm_dbi_n(雙向信號)信號異常。
讀出來的數據一直是0.
修改過來后,問題解決。
讀寫效率測試
Wr:
Rd:
MEM_ADDR_ORDER = "ROW_COLUMN_BANK";
Wr:
Rd:
仔細的話,可以觀察clk與app_rdy之間的關系,不難發現為什么兩者的讀寫效率會相差這么大。不同的地址排列,在每次讀寫過程中,IP的效率有很大的關系,這個與DDR的實現機制有關。詳細情況在PG150里有相關說明。
編輯:jq
-
控制器
+關注
關注
114文章
16972瀏覽量
182923 -
DDR3
+關注
關注
2文章
283瀏覽量
42939
原文標題:DDR3/4_IP核應用--vivado
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
TPS51116 完整的DDR、DDR2、DDR3、DDR3L、LPDDR3 和 DDR4 電源解決方案同步降壓控制器數據手冊

TPS59116 完整的 DDR、DDR2 和 DDR3 存儲器電源解決方案,用于嵌入式計算的同步降壓控制器數據手冊

TPS51916 DDR2/3/3L/4 內存電源解決方案同步降壓控制器數據手冊

TPS51716 完整的 DDR2/3/3L/4 存儲器電源解決方案同步降壓控制器數據手冊

TPS51216-EP 增強型產品 完整的 DDR2、DDR3 和 DDR3L 內存電源解決方案 同步降壓控制器數據手冊

DDR3 SDRAM配置教程

評論