硬件平臺(tái):ZC706開發(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頁面選擇ZC706開發(fā)板,。
Step 2: 配置Zynq
在左面的Flow Navigator窗口,,單擊Create Block Design,,Design Name填寫zynq,。
在Diagram Tab頁里面添加IP ‘ZYNQ7 Processing System’,。
雙擊processing_system7_1,,打開配置界面,。取消所有外設(shè),僅僅保留UART,。UART
Step 3: 配置MIG
在Diagram Tab頁里面添加IP ‘MIG 7 Series’,。雙擊mig_7series_1,,打開配置界面。
在Memory Selection頁,,選擇DDR3
在Controller Options也,,配置Clock Period為1250ps,配置Memory Type=SODIMMS; Memory Part=MT8JTF12864HZ-1G6,。
在AXI Parameter頁,,配置Data Width=32, ID width=12,。
在Memory Options頁,,配置Input Clock Period=5000ps(200MHz).
在FPGA Options頁,配置System Clock=Differential,,Reference Clock=Use System Clock,,System Reset Polarity=ACTIVE HIGH。
在Extended FPGA Options頁,,選中DCI Cascade,。
在IO Planning Options頁,,選擇Fixed Pin Out,然后導(dǎo)入labfiles\zc706_mig_pinout.ucf,,單擊Validate,,忽
在System Signals Selection頁,,單擊Next。
在Summary頁,,單擊Next,。
在Simulation Options頁,選擇Accept,,單擊Next,。
在PCB Information頁,單擊Next,。
在Design Notes頁,,單擊Generate。
Step 4: 建立IP之間的連接
在Diagram Tab頁, 單擊窗口上部的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
連接/mig_7series_1/aresetn到/proc_sys_rest/peripheral
單擊窗口上部的Run Block Automation,選擇processing_system7_1
單擊/mig_7series_1/SYS_CLK前面的加號(hào),,展開這個(gè)接口,。
選中/mig_7series_1/sys_clk_p,單擊右鍵,,選擇Create Port,。在彈出的窗口里面更改Type為Clock,填寫Frequency(MHz)為200,。
對(duì)/mig_7series_1/sys_clk_n執(zhí)行同樣的操作,。
選中/mig_7series_1/DDR3接口,單擊右鍵,,選擇Make External
單擊Diagram Tab頁左邊最下面的Regenerate Layout按鈕,,由工具自動(dòng)重新排布。生成的結(jié)果如下,。是不是感覺非常漂亮,?
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è)工程,測試確認(rèn)MIG工作正常,。
以此為基礎(chǔ),,開發(fā)者可以靈活的調(diào)整MIG的AXI端口和Memory端口的工作頻率,完成貼合自己應(yīng)用的嵌