DDR2-DDR3-IP-CARE ---use


分為兩種IP core : UNIPHY 和ALTMEMPHY

比較 UNIPHY 性能更好一點不支持cyclone系列芯片,,ALTEMPHY 支持所有altera支持DDR2的芯片

其實兩種IP 使用方法相同

http://www.altera.com.cn/literature/hb/external-memory/emi_rldram_ii_ug.pdf

uniphy:IP核設置步驟:

 Memory clock frequency:給DDR的時鍾頻率

1、對FPGA PHY設置

 PLL reference clock frequency:FPGA時鍾引腳輸入的時鍾,供DDR的PLL使用時鍾頻率(關鍵設置)

Full or half rate on Avalon-MM interface: FULL---verilog邏輯部分數據位寬X2,速度/2,,達到了降頻的目的(關鍵設置)

Additional address/command clock phase:是否允許地址、控制信號有相位的移動(一般要設置,否則時鍾采樣有問題)

PLL sharing mode:指是否與IP核外部的PLL共用,如果共用的話會有相應的引腳從IP核引出----一般選擇NO SHARE 不共用,使用單獨的

PLL sharing mode:同上

OCT sharing mode:同上

2、對DDR 設置

memory vendor:廠家

memory format:discrete 分立器件(設計為單片DDDR) DIMM 內存條()

memory device speed grade :DDR2:速度等級,根據DDR 手冊

total interface with:數據位寬度(根據設計填寫)

DQ/DQS groups:一般8

number of chip selects  CS: 片選的個數 一般為1個

ROW address width:行地址個數 13 (根據DDR 手冊)

column address width:列地址個數(根據DDR 手冊)

bank-address width:bank個數(根據DDR 手冊)

 

 ddr寄存器設置

 mode register 0

burst length:突發長度

read bust type:突發類型--sequence順序的--interle斷續的 一般為sequence

CAS latency :CAS延時參數設置

 

mode register 1

output drive strength :輸出電流強度(對信號的阻抗匹配有幫助)

memory ODT:設置DDR2的片上電阻值

 

到此-----------------------------------------------------------------

自己定制的DDR2/DDR3控制器就完成了-----------可以進行編譯了-------------其中紅色為關鍵設置

注意:隨着IP核會產生很多tcl文件--------------必須運行引腳分配約束的TCL 否則無法編譯通過

 ------------------

 

最后經過調試:心得

  DDR2的IP使用調試非常簡單,也非常穩定---------注意參考IP核的LOCAL信號的時序要求

DDR2

(

// inputs:
 .pll_ref_clk(CLOCK_50),//input 輸入給DDR2pll的時鍾
 .global_reset_n(rst_n),//input復位
 // inputs:
 .local_ready(local_ready),//output                為高時可以進行寫--為低時DDR2忙
 .local_burstbegin(local_burstbegin),//input    突發寫開始--一個時鍾周期
 .local_address(local_address),//input [22:0]  讀寫的地址---包括行列bank地址的排列位數和
 // read
 .local_read_req(local_read_req),//input          讀請求
 .local_rdata(local_read_data),//output  [63:0] 數據輸出
 .local_rdata_valid(local_rdata_valid),//output   輸出數據的有效信號
 // write
 .local_write_req(data_en),//input  data_en1,local_write_req 寫請求
 .local_wdata(local_wdata),//input [63:0]                             寫數據
 //
 .local_be(8'hff),///input [7:0]                       是否屏蔽字節,8位 一位為一個字節
 .local_size(4),//input [2:0]                           突發長度1---7
 .soft_reset_n(rst_n),//input        
 //output  
 .local_refresh_ack(),//output  
 .local_init_done(),//output  
 .reset_phy_clk_n(),//output 
 
 .aux_full_rate_clk(),//output  
 .aux_half_rate_clk(),//output 
 .phy_clk(phy_clk),//output                               外部邏輯使用時鍾
 .reset_request_n(),//output 
 //outputs:
 .mem_addr(mem_addr),
 .mem_ba(mem_ba),
 .mem_cas_n(mem_cas_n),
 .mem_cke(mem_cke),
 .mem_clk(mem_clk),
 .mem_clk_n(mem_clk_n),
 .mem_cs_n(mem_cs_n),
 .mem_dm(mem_dm),
 .mem_dq(mem_dq),
 .mem_dqs(mem_dqs),
 .mem_odt(mem_odt),
 .mem_ras_n(mem_ras_n),
 .mem_we_n(mem_we_n)
   );

 

 

時序-----------------

 

寫:突發為4--8個時鍾周期延時較好

    時鍾:    1            2                  3                       4                        5                   6                 7

 

        給地址    寫請求=1    寫請求=1     寫請求=1          寫請求=1      寫請求=0         地址加4

          突發請求=1  突發請求=0   突發請求=0      突發請求=0      突發請求=0

          數據1     數據2      數據3      數據4      

寫:突發為4--8個時鍾周期延時較好

    時鍾:    1            2                 3                     4                       

 

        給地址    讀請求=1    讀請求=0        地址加4                 

          突發請求=1  突發請求=0  

                  

 

                 同有效信號一起出來4個64位數據                 

 數據1     數據2      數據3      數據4 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM