色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于Virtex7上DDR3的測試例程詳解

電子工程師 ? 來源:XILINX技術社區 ? 作者:貓叔 ? 2021-05-02 09:05 ? 次閱讀

這篇文章我們講一下Virtex7上DDR3的測試例程,Vivado也提供了一個DDR的example,但卻是純Verilog代碼,比較復雜,這里我們把DDR3的MIG的IP Core掛在Microblaze下,用很簡單的程序就可以進行DDR3的測試。

但這個工程只是一個簡單的測試用例,實際應用中不會這么用的,因此傳輸效率太低。

新建工程,FPGA選型為xc7v690tffg-1761。

1. 創建Block Design,命名為Microblaze_DDR3。

6d8c03fe-a08a-11eb-8b86-12bb97331649.jpg

2. 在bd文件中加入Mircoblaze。

6dae880c-a08a-11eb-8b86-12bb97331649.png

3. 點擊Run Block Automation。

6dcb028e-a08a-11eb-8b86-12bb97331649.png

4. 按照默認配置,確定即可。

6def5e7c-a08a-11eb-8b86-12bb97331649.png

5. 出現下面的界面。

6e117eb2-a08a-11eb-8b86-12bb97331649.png

6. 添加MIG的IP Core。

6e38d52a-a08a-11eb-8b86-12bb97331649.png

7. 開始配置DDR,選擇Create Design.

6e53d6f4-a08a-11eb-8b86-12bb97331649.png

8. 這一步是選擇Pin腳兼容的FPGA,我們不做選擇,直接Next。

6e78cc2a-a08a-11eb-8b86-12bb97331649.png

9. 選擇DDR3。

6ecac43a-a08a-11eb-8b86-12bb97331649.png

10.

①選擇DDR的工作頻率,我們這里讓DDR3的頻率為1600MHz,所以時鐘頻率是800MHz;

②選擇器件,根據實際情況來選擇即可;

③數據位寬,也是根據板卡上的實際位寬進行選擇;

④默認即可。

6f05cb52-a08a-11eb-8b86-12bb97331649.png

11. 選擇AXI總線的位寬,這里我們選擇512。

6f2dadde-a08a-11eb-8b86-12bb97331649.png

12.

①選擇輸入時鐘頻率,雖然DDR的工作時鐘是800MHz(在第10步中選擇),但我們可以輸入一個低頻時鐘,然后MIG的IP Core中會倍頻到所需頻率。

②MIG的IP Core默認會輸出一個200MHz的時鐘,如果還需要其他的時鐘輸出,可以在這里選擇。其他選擇默認即可。

6f75a9cc-a08a-11eb-8b86-12bb97331649.png

13.

①選擇輸入時鐘的方式,這里的輸入時鐘就是我們上一個頁面中的設置的200MHz的輸入時鐘,如果選擇差分或單端,則輸入通過FPGA的管腳輸入200MHz時鐘到MIG的IP Core;如果選擇No Buffer,則可以通過FPGA內部的MMCM輸出一個200MHz時鐘到MIG;這里我選擇了No Buffer;

②選擇參考時鐘的方式,參考時鐘頻率固定是200MHz,如果選擇如果選擇差分或單端,則輸入通過FPGA的管腳輸入200MHz時鐘到MIG的IP Core;如果選擇No Buffer,則可以通過FPGA內部的MMCM輸出一個200MHz時鐘到MIG;如果在前一個頁面中選擇了輸入時鐘頻率是200MHz,則這邊會出現一個Use System Clock的選項,因為此時兩個時鐘頻率是相同的嘛。這里我選擇了Use System Clock;

③設置輸入復位信號的極性,這個要特別注意,盡量選擇高有效,因為無論我們選擇高復位還是低復位,它的端口名都叫sys_rst,會讓人直觀就覺得是高復位。我第一次使用時,就沒注意到這個選項,默認為低,但在MIG的端口上看到sys_rst這個名字我以為是高有效,結果DDR一直不通。

(備注:對于絕大多數的Xilinx的IP,如果是低有效的復位,端口名字中肯定是有N這個標志的)

6f9d6746-a08a-11eb-8b86-12bb97331649.png

14. 這個頁面不需要操作。

6fd57500-a08a-11eb-8b86-12bb97331649.png

15. 下面開始分配管腳,我比較習慣于選第二個,無論是第一次分配還是后面再重新分配。

7006581e-a08a-11eb-8b86-12bb97331649.png

16. 在這一頁,可以根據原理圖一一分配管腳;如果有現成的xdc/ucf文件,可以直接通過Read XDC/UCF讀入,然后再選擇Validate驗證管腳分配是否正確。

7020085e-a08a-11eb-8b86-12bb97331649.png

如果Validate成功,則會提示下面的界面。

702e699e-a08a-11eb-8b86-12bb97331649.png

17. 如果在第13步中,選擇了差分或單端輸入,則這里會出現下面第一個圖;如果選擇了No buffer,則這里會出現第二個圖。很容易理解,如果選擇了通過外部管腳輸入時鐘,那這里就是讓選擇具體的管腳。并不是所有的MRCC或者SRCC管腳都可以選的,只能選擇跟DDR管腳同一片區域的(比如DDR放在了Bank31 32 33,那么這里的時鐘輸入管腳就不能選擇Bank15)。

704795fe-a08a-11eb-8b86-12bb97331649.png

如果不選擇復位信號管腳,就可以通過FPGA內部邏輯來輸入復位。

706c407a-a08a-11eb-8b86-12bb97331649.png

后面一路Next就完成了MIG IP Core的配置了。

18. 在bd文件中,加入AXI Interconnect、UARTLite和Interrupt(如果不加中斷模塊,Microblaze的程序跑不起來),串口用來打印信息。然后再添加各輸入輸出端口,把內部的線連接起來,如下圖所示。

70931d94-a08a-11eb-8b86-12bb97331649.jpg

但這個圖里的線太多,看著不直觀,我們把Microblaze模塊、mdm_1、rst_clk_wiz和local_memory模塊(上圖中紅框中的4個模塊)放到一個子模塊中,取名mb_min_sys,如下圖。

70c309a0-a08a-11eb-8b86-12bb97331649.jpg

19. 創建頂層的top文件,并在top文件中例化bd文件。可以把init_calib_complete和mmcm_locked這兩個信號抓出來,在下載程序后,這兩個信號必須都是高,不然DDR就工作不正常,肯定是中間某個環節配置有問題。具體top.v文件內容見附錄。

20. 將工程綜合、實現、生成bit文件,并導出Hardware。

70e8feb2-a08a-11eb-8b86-12bb97331649.png

21. 打開sdk,新建Application Project,并按下面的步驟依次操作。

7129f552-a08a-11eb-8b86-12bb97331649.png

715055d0-a08a-11eb-8b86-12bb97331649.png

再選擇模板為HelloWorld,最后Finish。

716cc602-a08a-11eb-8b86-12bb97331649.png

22. 修改helloworld.c,見附錄,重新編譯,如果提示overflowed則把lscript.ld文件中的size改大。

718dc230-a08a-11eb-8b86-12bb97331649.png

運行程序后,可以看到串口打印信息如下:

71b67716-a08a-11eb-8b86-12bb97331649.png

說明DDR3可以正常工作。

附錄

top.v

`timescale 1ns / 1ps

module top ( input clk_n, input clk_p, input UART_rxd, output UART_txd, output [15:0]ddr3_addr, output [2:0]ddr3_ba, output ddr3_cas_n, output [0:0]ddr3_ck_n, output [0:0]ddr3_ck_p, output [0:0]ddr3_cke, output [0:0]ddr3_cs_n, output [7:0]ddr3_dm, inout [63:0]ddr3_dq, inout [7:0]ddr3_dqs_n, inout [7:0]ddr3_dqs_p, output [0:0]ddr3_odt, output ddr3_ras_n, output ddr3_reset_n, output ddr3_we_n ); wire axi4_clk; wire axil_clk; reg axi4_rstn; wire axil_rstn; wire init_calib_complete; wire mmcm_locked;

wire ddr_rst;

always @ ( posedge axi4_clk ) begin axi4_rstn 《= axil_rstn; end

reg [8:0] cnt;

always @ ( posedge axil_clk ) begin if(~axil_rstn) cnt 《= ‘d0; else if(cnt==’d256) cnt 《= cnt ; else cnt 《= cnt + 1‘b1; end assign ddr_rst = (cnt==’d256)?1‘b0:1’b1; MicroBlaze_DDR3 MicroBlaze_DDR3_i

(.UART_rxd (UART_rxd ), .UART_txd (UART_txd ), .axil_clk (axil_clk ), .axi4_clk (axi4_clk ), .axi4_rstn (axi4_rstn ), .clk_in_clk_n (clk_n ), .clk_in_clk_p (clk_p ), .ddr3_addr (ddr3_addr ), .ddr3_ba (ddr3_ba ), .ddr3_cas_n (ddr3_cas_n ), .ddr3_ck_n (ddr3_ck_n ), .ddr3_ck_p (ddr3_ck_p ), .ddr3_cke (ddr3_cke ), .ddr3_cs_n (ddr3_cs_n ), .ddr3_dm (ddr3_dm ), .ddr3_dq (ddr3_dq ), .ddr3_dqs_n (ddr3_dqs_n ), .ddr3_dqs_p (ddr3_dqs_p ), .ddr3_odt (ddr3_odt ), .ddr3_ras_n (ddr3_ras_n ), .ddr3_reset_n (ddr3_reset_n ), .ddr3_we_n (ddr3_we_n ), .ddr_rst (ddr_rst ), .init_calib_complete (init_calib_complete ), .mmcm_locked (mmcm_locked ), .reset (1‘b0 ), .axil_rstn (axil_rstn ) );

endmodule

helloworld.c

#include《stdio.h》#include“platform.h”#include“xil_printf.h”

int main(){ init_platform(); print(“-------ddr3test----------------------

”); unsignedint*DDR_MEM = (unsignedint*)XPAR_MIG_7SERIES_0_BASEADDR; //write data to ddr3 *DDR_MEM =0x12345678; //read back unsignedint value =*(unsignedint *)XPAR_MIG_7SERIES_0_BASEADDR; xil_printf(“value= 0x%x

”, value);

cleanup_platform(); return 0;}
編輯:lyn

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21729

    瀏覽量

    603010
  • DDR3
    +關注

    關注

    2

    文章

    276

    瀏覽量

    42243
  • Virtex-7
    +關注

    關注

    0

    文章

    31

    瀏覽量

    17151

原文標題:Virtex7 Microblaze下DDR3測試

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DDR3DDR4、DDR5的性能對比

    DDR3DDR4、DDR5是計算機內存類型的不同階段,分別代表第三代、第四代和第五代雙倍數據速率同步動態隨機存取存儲器(SDRAM)。以下是它們之間的性能對比: 一、速度與帶寬 DDR3
    的頭像 發表于 11-29 15:08 ?1092次閱讀

    如何選擇DDR內存條 DDR3DDR4內存區別

    隨著技術的不斷進步,計算機內存技術也在不斷發展。DDR(Double Data Rate)內存條作為計算機的重要組成部分,其性能直接影響到電腦的運行速度和穩定性。DDR3DDR4是目前市場上最常
    的頭像 發表于 11-20 14:24 ?926次閱讀

    DDR3寄存器和PLL數據表

    電子發燒友網站提供《DDR3寄存器和PLL數據表.pdf》資料免費下載
    發表于 08-23 11:06 ?2次下載
    <b class='flag-5'>DDR3</b>寄存器和PLL數據表

    基于FPGA的DDR3多端口讀寫存儲管理設計

    的Kintex7系列XC7K410T FPGA芯片和兩片Micron公司的MT41J128M16 DDR3 SDRAM芯片為硬件平臺,設計并實現了基于FPGA的視頻圖形顯示系統的DDR3
    發表于 06-26 18:13

    三星和SK海力士下半年停產DDR3內存

    近日,三星和SK海力士宣布,將于下半年停止生產并供應DDR3內存,轉向利潤更高的DDR5內存和HBM系列高帶寬內存。此舉標志著內存行業的一次重要轉型。
    的頭像 發表于 05-17 10:12 ?659次閱讀

    華邦傾力挺進DDR3市場,抓住轉單商機

    華邦自DDR2時期就深入物聯網、汽車、工業、電信等高附加值領域,而隨著制程升級至DDR3階段,該公司開始加大對DDR3產能建設的投資力度。高雄工廠今年引入了20納米設備,產能逐漸釋放,未來將成為華邦新制程DRAM產品的主要生產基
    的頭像 發表于 05-13 10:03 ?501次閱讀

    XC7K410T-FFG900外設之DDR3硬件設計方案分享

    在數據速率帶寬約束方面,DDR3運行速度受限于其與K7-410T FPGA互聯的I/O Bank 管腳以及FPGA器件的速度等級。
    的頭像 發表于 04-12 10:03 ?2620次閱讀
    XC<b class='flag-5'>7</b>K410T-FFG900外設之<b class='flag-5'>DDR3</b>硬件設計方案分享

    全套DDRDDR2、DDR3DDR3L、LPDDR3DDR4 電源解決方案同步降壓控制器數據表

    電子發燒友網站提供《全套DDRDDR2、DDR3DDR3L、LPDDR3DDR4 電源
    發表于 04-09 09:51 ?7次下載
    全套<b class='flag-5'>DDR</b>、<b class='flag-5'>DDR</b>2、<b class='flag-5'>DDR3</b>、<b class='flag-5'>DDR3</b>L、LPDDR<b class='flag-5'>3</b> 和 <b class='flag-5'>DDR</b>4 電源解決方案同步降壓控制器數據表

    完整DDRDDR2,DDR3 和LPDDR3 存儲器電源解決方案同步降壓控制器數據表

    電子發燒友網站提供《完整DDRDDR2,DDR3 和LPDDR3 存儲器電源解決方案同步降壓控制器數據表.pdf》資料免費下載
    發表于 04-09 09:49 ?0次下載
    完整<b class='flag-5'>DDR</b>,<b class='flag-5'>DDR</b>2,<b class='flag-5'>DDR3</b> 和LPDDR<b class='flag-5'>3</b> 存儲器電源解決方案同步降壓控制器數據表

    完整的DDR2、DDR3DDR3L內存電源解決方案同步降壓控制器TPS51216數據表

    電子發燒友網站提供《完整的DDR2、DDR3DDR3L內存電源解決方案同步降壓控制器TPS51216數據表.pdf》資料免費下載
    發表于 03-13 13:58 ?0次下載
    完整的<b class='flag-5'>DDR</b>2、<b class='flag-5'>DDR3</b>和<b class='flag-5'>DDR3</b>L內存電源解決方案同步降壓控制器TPS51216數據表

    適用于DDR2、DDR3DDR3L和DDR4且具有VTTREF緩沖基準的TPS51206 2A峰值灌電流/拉電流DDR終端穩壓器數據表

    電子發燒友網站提供《適用于DDR2、DDR3DDR3L和DDR4且具有VTTREF緩沖基準的TPS51206 2A峰值灌電流/拉電流DDR
    發表于 03-13 13:53 ?1次下載
    適用于<b class='flag-5'>DDR</b>2、<b class='flag-5'>DDR3</b>、<b class='flag-5'>DDR3</b>L和<b class='flag-5'>DDR</b>4且具有VTTREF緩沖基準的TPS51206 2A峰值灌電流/拉電流<b class='flag-5'>DDR</b>終端穩壓器數據表

    具有同步降壓控制器、2A LDO和緩沖基準的TPS51916完整DDR2、DDR3DDR3L和DDR4存儲器電源解決方案數據表

    電子發燒友網站提供《具有同步降壓控制器、2A LDO和緩沖基準的TPS51916完整DDR2、DDR3DDR3L和DDR4存儲器電源解決方案數據表.pdf》資料免費下載
    發表于 03-13 11:24 ?0次下載
    具有同步降壓控制器、2A LDO和緩沖基準的TPS51916完整<b class='flag-5'>DDR</b>2、<b class='flag-5'>DDR3</b>、<b class='flag-5'>DDR3</b>L和<b class='flag-5'>DDR</b>4存儲器電源解決方案數據表

    具有同步降壓控制器、2A LDO和緩沖基準的TPS51716完整DDR2、DDR3DDR3L、LPDDR3DDR4內存電源解決方案數據表

    電子發燒友網站提供《具有同步降壓控制器、2A LDO和緩沖基準的TPS51716完整DDR2、DDR3DDR3L、LPDDR3DDR4內
    發表于 03-13 11:13 ?0次下載
    具有同步降壓控制器、2A LDO和緩沖基準的TPS51716完整<b class='flag-5'>DDR</b>2、<b class='flag-5'>DDR3</b>、<b class='flag-5'>DDR3</b>L、LPDDR<b class='flag-5'>3</b>和<b class='flag-5'>DDR</b>4內存電源解決方案數據表

    完整的DDRDDR2和DDR3內存電源解決方案同步降壓控制器數據表

    電子發燒友網站提供《完整的DDRDDR2和DDR3內存電源解決方案同步降壓控制器數據表.pdf》資料免費下載
    發表于 03-13 10:16 ?1次下載
    完整的<b class='flag-5'>DDR</b>、<b class='flag-5'>DDR</b>2和<b class='flag-5'>DDR3</b>內存電源解決方案同步降壓控制器數據表

    DDR1/2/3數據預取技術原理詳解

    時鐘頻率:可通過倍頻技術升級的核心頻率。時鐘頻率可以理解為IO Buffer的實際工作頻率,DDR2中時鐘頻率為核心頻率的2倍,DDR3 DDR4中時鐘頻率為核心頻率的4倍。
    的頭像 發表于 12-25 18:18 ?4651次閱讀
    <b class='flag-5'>DDR</b>1/2/<b class='flag-5'>3</b>數據預取技術原理<b class='flag-5'>詳解</b>
    主站蜘蛛池模板: 俄罗斯极品hd| 久久这里只有精品2| 嗯啊…跟校草在教室里做h| 亚洲国产精品99久久久久久| 草久热的视频在线观看| 久久夜色撩人精品国产| 1000部做羞羞事禁片免费视频网站| 俄罗斯9一14 young处| 男女无遮挡吃奶gift动态图| 亚洲精品乱码久久久久久中文字幕| 大香交伊人| 男女做爽爽爽视频免费软件 | 黄网13区| 巨胸美女狂喷奶水www网麻豆| 无人在线观看免费高清视频播放| caoporn超碰在线| 久久亚洲伊人中字综合精品| 亚洲精品一线二线三线无人区 | 国产色婷亚洲99精品AV在线| 日本在线免费播放| 99精品电影一区二区免费看| 久久久中日AB精品综合| 亚洲精品高清在线| 国产精品成人影院在线观看| 人妻仑乱少妇88MAV| 99久久免费国内精品| 伊人久久综在合线亚洲| 国产精品一区二区20P| 久久精品国产免费中文| 亚洲国产日韩欧美在线a乱码 | 真人女人无遮挡内谢免费视频%| 国产在线亚洲精品观看不卡| 欧美14videosex性欧美成人| 中文字幕在线观看网址| 久久久精品成人免费看| 野花影院手机在线观看| 黄色一级毛片免费| 一个人免费完整在线观看影院 | 色拍拍噜噜噜久久蜜桃| 虫族bl文全肉高h| 日韩黄色软件|