0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Xilinx FPGA平台DDR3设计保姆式教程(五)

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-26 17:30 次阅读

实验目的:

了解ddr仿真模型建立。

一、Example Design
每当我们例化了一个IP而不知道怎么使用时,优先打开官方示例example design

选中IP核,右键“OPEN IP in Example Design”,我这里是灰色的,那是因为我已经打开过了。

Xilinx FPGA平台DDR3设计保姆式教程(五)

Example design就不讲了,主要有个数据产生模块,反正我们也用不上,我们只需要用里面的仿真模型。

不打开example design也行,直接打开example的仿真文件sim_tb_top:

代码太多了太长了我们直接往下翻到1011行:Memory Models instantiations

将ddr3_model例化部分复制到我们的tb文件里,参数找到对应的数字给替换掉:

Xilinx FPGA平台DDR3设计保姆式教程(五)

二、添加仿真文件
两个仿真文件添加到工程:

目录 : ..\sources_1\ip\mig_7series_0\mig_7series_0\example_design\sim

文件1 : ddr3_model.sv

文件2 : ddr3_model_parameters.vh

然后添加为我们的工程仿真文件。

Xilinx FPGA平台DDR3设计保姆式教程(五)

三、Testbench的编写
添加激励,例化我们的设计ddr_test模块,例化第一节所说的ddr_model。
module tb_ddr_test();
reg sys_clk ;
reg sys_rst ;
reg [127:0] data_in ;
reg vld_in ;
reg sof_in ;
reg eof_in ;
reg [5:0] cnt ;
wire [127:0] data_out ;
wire vld_out ;
wire [14:0] ddr3_addr ;
wire [2:0] ddr3_ba ;
wire ddr3_cas_n ;
wire [0:0] ddr3_ck_n ;
wire [0:0] ddr3_ck_p ;
wire [0:0] ddr3_cke ;
wire ddr3_ras_n ;
wire ddr3_reset_n ;
wire ddr3_we_n ;
wire [15:0] ddr3_dq ;
wire [1:0] ddr3_dqs_n ;
wire [1:0] ddr3_dqs_p ;
wire init_calib_complete ;
wire [0:0] ddr3_cs_n ;
wire [1:0] ddr3_dm ;
wire [0:0] ddr3_odt ;

initial
begin
sys_clk = 0;
sys_rst = 1;
#100
sys_rst = 0;
end
always #2.5 sys_clk = ~sys_clk; //200Mhz
//用计数器来产生data_in
always @(posedge sys_clk or negedge init_calib_complete)begin
if(init_calib_complete == 1'b0)
cnt else if(&cnt)
cnt else
cnt end
always @(posedge sys_clk or negedge init_calib_complete)begin
if(init_calib_complete == 1'b0)begin
data_in sof_in eof_in vld_in end
else begin
data_in sof_in eof_in vld_in if(cnt > 'd10 && cnt data_in vld_in end
if(cnt == 'd11)
sof_in if(cnt == 'd60)
eof_in end
end

ddr_test u_ddr_test(
.sys_clk (sys_clk ),
.sys_rst (sys_rst ),
.data_in (data_in ),
.vld_in (vld_in ),
.sof_in (sof_in ),
.eof_in (eof_in ),
.data_out (data_out ),
.vld_out (vld_out ),
.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_ras_n (ddr3_ras_n ),
.ddr3_reset_n (ddr3_reset_n ),
.ddr3_we_n (ddr3_we_n ),
.ddr3_dq (ddr3_dq ),
.ddr3_dqs_n (ddr3_dqs_n ),
.ddr3_dqs_p (ddr3_dqs_p ),
.init_calib_complete (init_calib_complete),
.ddr3_cs_n (ddr3_cs_n ),
.ddr3_dm (ddr3_dm ),
.ddr3_odt (ddr3_odt )
);

ddr3_model u_comp_ddr3(
.rst_n (ddr3_reset_n ),
.ck (ddr3_ck_p ),
.ck_n (ddr3_ck_n ),
.cke (ddr3_cke ),
.cs_n (ddr3_cs_n ),
.ras_n (ddr3_ras_n ),
.cas_n (ddr3_cas_n ),
.we_n (ddr3_we_n ),
.dm_tdqs (ddr3_dm ),
.ba (ddr3_ba ),
.addr (ddr3_addr ),
.dq (ddr3_dq ),
.dqs (ddr3_dqs_p ),
.dqs_n (ddr3_dqs_n ),
.tdqs_n (),
.odt (ddr3_odt )
);

endmodule

OK,干净清爽!

开始仿真!

DDR仿真建议用modelsim哦,因为速度快!

想要知道怎么用脚本进行仿真?安排!

FPGA】老鸟的姿势学起来,用脚本进行modelsim仿真
审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DDR3
    +关注

    关注

    2

    文章

    237

    浏览量

    41285
收藏 人收藏

    评论

    相关推荐

    xilinx平台DDR3设计教程

    DDR3的仿真
    发表于 09-18 14:33

    FPGA外接DDR3,带宽怎么计算?

    DDR3的理论带宽怎么计算?用xilinx的控制器输入时钟200M。fpgaDDR的接口如下:
    发表于 02-17 18:17

    Xilinx DDR3 资料

    DDR3 Data Rates in Virtex-7 and Kintex-7 FPGAs。Xilinx官方DDR3资料。
    发表于 05-27 16:39

    xilinx平台DDR3设计教程之仿真篇

    xilinx平台DDR3设计教程之仿真篇
    发表于 03-12 08:54

    xilinx平台DDR3设计教程之设计篇_中文版教程3

    xilinx平台DDR3设计教程之设计篇_中文版教程
    发表于 08-05 18:39

    Xilinx DDR3最新VHDL代码(通过调试)

    Xilinx FPGA工程例子源码:Xilinx DDR3最新VHDL代码(通过调试)
    发表于 06-07 14:54 76次下载

    基于FPGADDR3多端口读写存储管理系统设计

    FPGA芯片和两片MT41J128M16 DDR3 SDRAM芯片为硬件平台,设计并实现了基于FPGA的视频图形显示系统的DDR3多端口存储管理。##每片
    发表于 04-07 15:52 1.2w次阅读
    基于<b>FPGA</b>的<b>DDR3</b>多端口读写存储管理系统设计

    基于Arty Artix-35T FPGA开发板的DDR3和mig介绍

    xilinx FPGA 使用mig IP对DDR3的读写控制,旨在让大家更快的学习和应用DDR3。 本实验和工程基于Digilent的Arty Artix-35T FPGA开发板完成。 软件
    的头像 发表于 01-01 10:09 3383次阅读
    基于Arty Artix-35T <b>FPGA</b>开发板的<b>DDR3</b>和mig介绍

    Xilinx FPGA平台DDR3设计保姆教程(六)

    DDR读写,我们对DDR再次封装成可复用的读写模块。
    的头像 发表于 02-26 17:34 1090次阅读
    <b>Xilinx</b> <b>FPGA</b><b>平台</b><b>DDR3</b>设计<b>保姆</b><b>式</b>教程(六)

    Xilinx FPGA平台DDR3设计保姆教程(四)

    ddr,然后读出,验证输入输出数据是否相等。
    的头像 发表于 02-21 18:35 1270次阅读
    <b>Xilinx</b> <b>FPGA</b><b>平台</b><b>DDR3</b>设计<b>保姆</b><b>式</b>教程(四)

    Xilinx FPGA平台DDR3设计保姆教程(三)

    DDR搬砖,只需要会用IP就好,Xilinx官方YYDS!
    的头像 发表于 02-21 18:15 5308次阅读
    <b>Xilinx</b> <b>FPGA</b><b>平台</b><b>DDR3</b>设计<b>保姆</b><b>式</b>教程(三)

    Xilinx FPGA平台DDR3设计保姆教程(二)

    FPGA而言,时钟就是脉搏,必须理解透彻!
    的头像 发表于 02-21 18:05 2577次阅读
    <b>Xilinx</b> <b>FPGA</b><b>平台</b><b>DDR3</b>设计<b>保姆</b><b>式</b>教程(二)

    Xilinx FPGA平台DDR3设计保姆教程(一)

    DDR3全称double-data-rate 3 synchronous dynamic RAM,即第三代双倍速率同步动态随机存储器。所谓同步,是指DDR3数据的读取写入是按时钟同步的;所谓动态
    的头像 发表于 02-21 17:51 2634次阅读
    <b>Xilinx</b> <b>FPGA</b><b>平台</b><b>DDR3</b>设计<b>保姆</b><b>式</b>教程(一)

    FPGA学习-DDR3

    DDR3简介         DDR3全称double-data-rate 3 synchronous dynamic RAM,即第三代双倍速率同步动态随机存储器。所谓同步,是指DDR3数据
    的头像 发表于 12-21 18:30 1184次阅读

    基于FPGADDR3读写测试

    FPGA开源项目:DDR3读写。该工程基于MIG控制器IP核对FPGA DDR3实现读写操作。
    的头像 发表于 09-01 16:23 170次阅读
    基于<b>FPGA</b>的<b>DDR3</b>读写测试