《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > 在Zynq上用MIG擴(kuò)展內(nèi)存(2)-Vivado篇

在Zynq上用MIG擴(kuò)展內(nèi)存(2)-Vivado篇

2013-09-02
關(guān)鍵詞: FPGA Zynq

硬件平臺(tái):ZC706開(kāi)發(fā)板

軟件工具:Vivado 2013.2

 

Step 1: 創(chuàng)建工程

    啟動(dòng)Vivado 2013.2,創(chuàng)建一個(gè)新的工程zc706_mig。選中Create project subdirectory。

    選擇RTL Project

    一路Next,在Default Part頁(yè)面選擇ZC706開(kāi)發(fā)板。

Step 2: 配置Zynq

    在左面的Flow Navigator窗口,單擊Create Block Design,Design Name填寫(xiě)zynq

    在Diagram Tab頁(yè)里面添加IP ‘ZYNQ7 Processing System’。

    雙擊processing_system7_1,打開(kāi)配置界面。取消所有外設(shè),僅僅保留UART。UART1使用MIO 48..49。關(guān)閉FCLK_CLK0的輸出。

Step 3: 配置MIG

    在Diagram Tab頁(yè)里面添加IP ‘MIG 7 Series’。雙擊mig_7series_1,打開(kāi)配置界面。

    在Memory Selection頁(yè),選擇DDR3

    在Controller Options也,配置Clock Period為1250ps,配置Memory Type=SODIMMS; Memory Part=MT8JTF12864HZ-1G6。

    在AXI Parameter頁(yè),配置Data Width=32, ID width=12。

    在Memory Options頁(yè),配置Input Clock Period=5000ps(200MHz).

    在FPGA Options頁(yè),配置System Clock=Differential,Reference Clock=Use System Clock,System Reset Polarity=ACTIVE HIGH。

    在Extended FPGA Options頁(yè),選中DCI Cascade。

    在IO Planning Options頁(yè),選擇Fixed Pin Out,然后導(dǎo)入labfiles\zc706_mig_pinout.ucf,單擊Validate,忽略warnings,單擊Next。

    在System Signals Selection頁(yè),單擊Next。

    在Summary頁(yè),單擊Next。

    在Simulation Options頁(yè),選擇Accept,單擊Next。

    在PCB Information頁(yè),單擊Next。

    在Design Notes頁(yè),單擊Generate。

Step 4: 建立IP之間的連接

    在Diagram Tab頁(yè), 單擊窗口上部的Run Connection Automation,選擇/mig_7series_1/S_AXI,系統(tǒng)將自動(dòng)添加IP并建立部分連接。

    單擊窗口上部的Run Connection Automation,選擇/mig_7series_1/sys_rst。

    連接/mig_7series_1/ui_clk到processing_system7_1/M_AXI_GP0_ACLK

    連接/mig_7series_1/aresetn到/proc_sys_rest/peripheral_aresetn[0:0]

    單擊窗口上部的Run Block Automation,選擇processing_system7_1

    單擊/mig_7series_1/SYS_CLK前面的加號(hào),展開(kāi)這個(gè)接口。

    選中/mig_7series_1/sys_clk_p,單擊右鍵,選擇Create Port。在彈出的窗口里面更改Type為Clock,填寫(xiě)Frequency(MHz)為200。

    對(duì)/mig_7series_1/sys_clk_n執(zhí)行同樣的操作。

    選中/mig_7series_1/DDR3接口,單擊右鍵,選擇Make External

    單擊Diagram Tab頁(yè)左邊最下面的Regenerate Layout按鈕,由工具自動(dòng)重新排布。生成的結(jié)果如下。是不是感覺(jué)非常漂亮?

system diagram

Step 5: 創(chuàng)建約束

    命名為system,將以下內(nèi)容拷貝到約束文件中:

        set_property LOC G9 [ get_ports sys_clk_n]

        set_property IOSTANDARD DIFF_SSTL15 [ get_ports sys_clk_n]

        set_property LOC H9 [ get_ports sys_clk_p]

        set_property IOSTANDARD DIFF_SSTL15 [ get_ports sys_clk_p]

        set_property LOC A8 [ get_ports reset]

        set_property IOSTANDARD LVCMOS15 [ get_ports reset]

        # additional constraints

        #

        create_clock -name sys_clk_pin -period "5.0" [get_ports "sys_clk_p"]

 

Step 7:設(shè)計(jì)驗(yàn)證

       在Block Design窗口里面,在zynq.bd上面單擊右鍵,選擇Generate Output Products,然后再單擊右鍵,選擇Create HDL Wrapper。

     在左面的Flow Navigator窗口,單擊Generate Bitstream。

     在我的計(jì)算機(jī)上,大約20分鐘后,bit文件生成。

     然后在Vivado中,單擊File->Export->Export Hardware for SDK,選中Launch SDK。

     在SDK里面,可以用模板“Memory Tests”創(chuàng)建一個(gè)工程,測(cè)試確認(rèn)MIG工作正常。

 

以此為基礎(chǔ),開(kāi)發(fā)者可以靈活的調(diào)整MIG的AXI端口和Memory端口的工作頻率,完成貼合自己應(yīng)用的嵌入式設(shè)計(jì)。

 

 

 

 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。