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

    文章

    287

    浏览量

    43925
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HummingBird EV Kit - DDR3 引脚不匹配是怎么回事?

    下面是HummingBird EV Kit给的版图,其中DDR3_D0对应的应该是板子上的FPGA的C2引脚: 不过我在配置MIG的时候,通过读入ucf文件的方式配置DDR3 SDRAM的引脚
    发表于 11-06 07:57

    DDR3 SDRAM参考设计手册

    电子发烧友网站提供《DDR3 SDRAM参考设计手册.pdf》资料免费下载
    发表于 11-05 17:04 1次下载

    基于FPGADDR控制器设计

    DDR控制协议 DDR3读写控制器主要用于生成片外存储器DDR3 SDRAM进行读写操作所需要的时序,继而实现对片外存储器的读写访问。由摄像头采集得到的图像数据通常数据量较大,使用片内存储资源
    发表于 10-21 14:30

    基于DDR200T开发板的e203进行DDR3扩展

    由于e203内部DTCM空间较小,所以本队针对DDR200T开发板进行针对e203的DDR3存储器扩展。 论坛中所给出的e203扩展DDR的方法大致分为两种,一种是直接将DDR存储器的
    发表于 10-21 12:43

    DDR200T中的DDR3的使用配置

    蜂鸟DDR200T中DDR3的ip配置案列,提供DDR3引脚配置。具体参数可更具项目实际更改。 这里选用的axi接口 在赛灵思的IP配置中没有MT41K28M6JT-125K内存的信息,因此选用
    发表于 10-21 11:19

    FPGA搭建DDR控制模块

    DDR SDRAM的最大特点是双边沿触发,即在时钟的上升沿和下降沿都能进行数据采集的发送,同样的工作时钟,DDR SDRAM的读写速度可以比传统的SDRAM快一倍。 DDR3读写控制器可以在
    发表于 10-21 10:40

    FPGA实现DDR控制模块介绍

    DDR3读写控制器主要用于生成片外存储器DDR3 SDRAM进行读写操作所需要的时序,继而实现对片外存储器的读写访问。由摄像头采集得到的图像数据通常数据量较大,使用片内存储资源难以实现大量图像数据
    发表于 10-21 08:43

    AD设计DDR3时等长设计技巧

    本文紧接着前一个文档《AD设计DDR3时等长设计技巧-数据线等长 》。本文着重讲解DDR地址线、控制信号线等长设计,因为地址线、控制信号线有分支,SOC有可能带有2片DDR或者更多,我们叫做T型分支
    发表于 07-29 16:14 2次下载

    AD设计DDR3时等长设计技巧

    的讲解数据线等长设计。      在另一个文件《AD设计DDR3时等长设计技巧-地址线T型等长》中着重讲解使用AD设计DDR地址线走线T型走线等长处理的方法和技巧。
    发表于 07-28 16:33 4次下载

    【RK3568+PG2L50H开发板实验例程】FPGA部分 | DDR3 读写实验例程

    ​ 本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com) 1.实验简介 实验目的: 完成 DDR3 的读写测试。 实验环境
    发表于 07-10 10:46

    在Vivado调用MIG产生DDR3的问题解析

    下面是调用的DDR3模块的,模块的倒数第二行是,模块的时钟输入,时钟源来自PLL产生的系统时钟的倍频。
    的头像 发表于 05-03 10:21 1215次阅读
    在Vivado调用MIG产生<b class='flag-5'>DDR3</b>的问题解析

    TPS51116 完整的DDRDDR2、DDR3DDR3L、LPDDR3DDR4 电源解决方案同步降压控制器数据手册

    TPS51116为 DDR/SSTL-2、DDR2/SSTL-18、DDR3/SSTL-15、DDR3L、LPDDR3
    的头像 发表于 04-29 16:38 908次阅读
    TPS51116 完整的<b class='flag-5'>DDR</b>、<b class='flag-5'>DDR</b>2、<b class='flag-5'>DDR3</b>、<b class='flag-5'>DDR3</b>L、LPDDR<b class='flag-5'>3</b> 和 <b class='flag-5'>DDR</b>4 电源解决方案同步降压控制器数据手册

    DDR3 SDRAM配置教程

    DDR3 SDRAM(Double-Data-Rate ThreeSynchronous Dynamic Random Access Memory)是DDR SDRAM的第三代产品,相较于DDR2,
    的头像 发表于 04-10 09:42 3761次阅读
    <b class='flag-5'>DDR3</b> SDRAM配置教程

    灿芯半导体推出DDR3/4和LPDDR3/4 Combo IP

    灿芯半导体(上海)股份有限公司(灿芯股份,688691)宣布推出基于28HKD 0.9V/2.5V 平台DDR3/4, LPDDR3/4 Combo IP。该IP具备广泛的协议兼容性,支持D
    的头像 发表于 03-21 16:20 900次阅读

    三大内存原厂或将于2025年停产DDR3/DDR4

    据报道,业内人士透露,全球三大DRAM内存制造商——三星电子、SK海力士和美光,有望在2025年内正式停产已有多年历史的DDR3DDR4两代内存。 随着技术的不断进步和消费级平台的更新换代
    的头像 发表于 02-19 11:11 3189次阅读