【Xilinx FPGA】DDR3 MIG IP 仿真

本文详细介绍了如何使用Xilinx的MemoryInterfaceGenerator(MIG7Series)对DDR3SDRAM进行IP配置和读写仿真。配置步骤包括选择IP、设定时钟周期、分配管脚等,而仿真部分则涉及设置仿真器、编译设计文件和调整仿真脚本以适应自定义设计。
摘要由CSDN通过智能技术生成

Memory Interface Generator (MIG 7 Series)是 Xilinx 为 7 系列器件提供的 Memory 控制器 IP,使用该 IP 可以很方便地进行 DDR3 的读写操作。本文主要记录 Xilinx DDR3 MIG IP 的仿真过程,包括 IP 配置和 DDR3 读写仿真两部分内容。

目录

1 MIG IP 配置

2 DDR3 读写仿真


1 MIG IP 配置

        在 Vivado 开发平台 IP Catelog 中,输入 mig,然后选择 Memory Interface Generator (MIG 7 Series),打开 IP 向导。

        Component Name 可自行定义,这里填写 ddr3_controller。

        Memory 类型选 DDR3 SDRAM。

        时钟周期根据 FPGA 速度等级,和速率要求进行选择。这里选了 2500 ps,对应频率为 400MHz。

        Input Clock 是 MIG 内部 PLL 所需要的输入时钟,板卡带了 100M 外部晶振,因此这里选 10000ps(100MHz).

        Memory 地址排序选 BANK -> ROW -> COLUMN.

        System Clock 其实是前面的 Input Clock,这里用了外部时钟信号,所以选 Single-Ended;Reference Clock 是 FPGA PLL 生成的时钟(频率为 200MHz),这里配置为 No Buffer。

        根据硬件原理图,分配 DDR3 管脚。

2 DDR3 读写仿真

        IP 配置完成后,右键点击 ddr3_controller IP,选择 “Open IP Example Design... ”,在弹出的窗口中选择参考工程路径,确认后等待打开参考工程。

        在仿真之前,需要确认仿真器。在 Setting -> Simulation 中,选择 Target simulator 为想要的仿真器,这里选择 Modelsim Simulator。

        确定仿真器之后,点击左侧 Flow Navigator 的 Run Simulation,等待片刻,就会打开 Modelsim 并编译设计文件。

        修改 xsim.tcl 文件,将 traffic_gen 文件替换为用户设计文件,仿真自己编写的模块。

#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 设计了 2 个写通道和 2 个读通道,读/写通道命令按照优先级分别写入 wr_cmd fifo 和 rd_cmd fifo。

 

        从 pstate 的状态跳转可以看出,写命令优先级高于读命令。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DDR3(Double Data Rate 3)是一种常用的计算机内存技术,对于其读写测试及仿真实验的重要性不可忽视。 读写测试是指通过对DDR3内存进行读写操作,验证其在实际使用中的可靠性和性能。测试包括对内存的读取速度、写入速度、延迟等进行全面的评估。通过读写测试,可以确定DDR3内存的工作状态是否正常,以及是否满足系统需求。读写测试还能帮助发现潜在的问题或故障,并对内存进行调整和优化。 仿真实验是通过使用特定的软件或工具,在计算机上模拟DDR3内存的工作情况。仿真实验可以更精确地模拟出DDR3内存在不同工作负载下的性能,并通过实验数据分析与验证设计的正确性和可靠性。仿真实验还可以用来评估不同的DDR3内存控制器和芯片组设计方案,以及验证新技术在DDR3内存上的应用效果。 在进行DDR3读写测试及仿真实验时,我们需要充分了解DDR3内存的架构和功能特点,选择合适的测试工具和仿真软件,并根据实际需求设计测试方案和仿真模型。在实验过程中,需要进行多组不同负载、频率和时序的测试,以全面评估DDR3内存的性能和可靠性。同时,还要注意数据的准确性和可重复性,并根据实验结果进行数据分析和优化。 通过DDR3读写测试及仿真实验,我们可以更好地了解和评估DDR3内存的性能,并对其进行合理的调整和优化。这对于确保计算机系统的稳定性和性能提升起到至关重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋洋Young

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值