Memory Interface Generator (MIG 7 Series)是 Xilinx 為 7 系列器件提供的 Memory 控制器 IP,使用該 IP 可以很方便地進(jìn)行 DDR3 的讀寫(xiě)操作。本文主要記錄 Xilinx DDR3 MIG IP 的仿真過(guò)程,包括 IP 配置和 DDR3 讀寫(xiě)仿真兩部分內(nèi)容。
目錄
1 MIG IP 配置
2 DDR3 讀寫(xiě)仿真
1 MIG IP 配置
? ? ? ? 在 Vivado 開(kāi)發(fā)平臺(tái) IP Catelog 中,輸入 mig,然后選擇 Memory Interface Generator (MIG 7 Series),打開(kāi) IP 向?qū)А?/p>
????????Component Name 可自行定義,這里填寫(xiě) ddr3_controller。
????????Memory 類型選 DDR3 SDRAM。
????????時(shí)鐘周期根據(jù) FPGA 速度等級(jí),和速率要求進(jìn)行選擇。這里選了 2500 ps,對(duì)應(yīng)頻率為 400MHz。
????????Input Clock 是 MIG 內(nèi)部 PLL 所需要的輸入時(shí)鐘,板卡帶了 100M 外部晶振,因此這里選 10000ps(100MHz).
????????Memory 地址排序選 BANK -> ROW -> COLUMN.
????????System Clock 其實(shí)是前面的 Input Clock,這里用了外部時(shí)鐘信號(hào),所以選 Single-Ended;Reference Clock 是?FPGA PLL 生成的時(shí)鐘(頻率為 200MHz),這里配置為 No Buffer。
????????根據(jù)硬件原理圖,分配 DDR3 管腳。
2 DDR3 讀寫(xiě)仿真
????????IP 配置完成后,右鍵點(diǎn)擊?ddr3_controller IP,選擇 “Open IP Example Design... ”,在彈出的窗口中選擇參考工程路徑,確認(rèn)后等待打開(kāi)參考工程。
????????在仿真之前,需要確認(rèn)仿真器。在 Setting -> Simulation 中,選擇 Target simulator 為想要的仿真器,這里選擇 Modelsim Simulator。
? ? ? ? 確定仿真器之后,點(diǎn)擊左側(cè) Flow Navigator 的 Run Simulation,等待片刻,就會(huì)打開(kāi) Modelsim 并編譯設(shè)計(jì)文件。
????????修改 xsim.tcl 文件,將 traffic_gen 文件替換為用戶設(shè)計(jì)文件,仿真自己編寫(xiě)的模塊。
#Copyright 1991-2017 Mentor Graphics Corporation
#
#All Rights Reserved.
#
#THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS THE PROPERTY OF
#MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Simulation script
onbreak {resume}
# create library
if [file exists work] {
file delete -force work
}
vlib work
vmap work ./work
# Compile MIG IP design files
vlog -incr "./src/ddr3_controller/rtl/clocking/*.v"
vlog -incr "./src/ddr3_controller/rtl/controller/*.v"
vlog -incr "./src/ddr3_controller/rtl/ecc/*.v"
vlog -incr "./src/ddr3_controller/rtl/ip_top/*.v"
vlog -incr "./src/ddr3_controller/rtl/phy/*.v"
vlog -incr "./src/ddr3_controller/rtl/ui/*.v"
vcom "./src/ddr3_controller/rtl/phy/*.vhd"
vcom "./src/ddr3_controller/rtl/ddr3_controller_mig_sim.vhd"
vcom "./src/ddr3_controller/rtl/ddr3_controller.vhd"
vlog -incr "./src/ddr3_controller/ddr3/glbl.v"
vlog -incr "./src/ddr3_controller/ddr3/wiredly.v"
vlog -sv +define+x2Gb +define+sg125 +define+x16 "./src/ddr3_controller/ddr3/ddr3_model.sv"
# Compile user design files
# ...
# Start simulation
vsim -voptargs=+acc +notimingchecks work.ddr_scheduler_tb -L unisims_ver -L secureip -t 1fs glbl
? ? ? ? ddr_scheduler 設(shè)計(jì)了?2 個(gè)寫(xiě)通道和 2 個(gè)讀通道,讀/寫(xiě)通道命令按照優(yōu)先級(jí)分別寫(xiě)入?wr_cmd fifo 和 rd_cmd fifo。
?
????????從 pstate 的狀態(tài)跳轉(zhuǎn)可以看出,寫(xiě)命令優(yōu)先級(jí)高于讀命令。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-701337.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-701337.html
到了這里,關(guān)于【Xilinx FPGA】DDR3 MIG IP 仿真的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!