博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lattice DDR3 ip核仿真过程中的一些问题总结
阅读量:5788 次
发布时间:2019-06-18

本文共 1451 字,大约阅读时间需要 4 分钟。

在官网下载DDR3 Demo后regenerate IP核,使用Active HDL对demo进行仿真,观察波形,发现cmd_burst_cnt设置为0(突发长度32)时,每个写命令会写64个write_data,对此产生了疑问,印象中使用ISE 编写XILINX SP6 DDR3的用户逻辑时,突发长度为32会写32个用户数据进DDR。为了弄明白Lattice DDR3的这个问题,反复设置了几次IP。

实验一

1.当bl=8,DQ位宽设置为16,cmd_burst_cnt=0时;write_data位宽为64。

  观察仿真波形可以看出,每发1次WRITE_CMD命令,write_data发送了64个64位的数据,发送的数据量为64*64bit。

                        em_ddr_addr增加了32*8=256(个)。

    (64*64=  16 * 256.)

2.当bl=8,DQ位宽设置为32,cmd_burst_cnt=0时;write_data位宽为128。

  观察仿真波形可以看出,每发1次WRITE_CMD命令,write_data发送了64个128位的数据,发送的数据量为64*128bit。

                        em_ddr_addr增加了32*8=256(个)。

    (64*128= 32 * 256.)

3.当bl=8,DQ位宽设置为8,cmd_burst_cnt=0时;write_data位宽为32。

  观察仿真波形可以看出,每发1次WRITE_CMD命令,write_data发送了64个32位的数据,发送的数据量为64*32bit。

                        em_ddr_addr增加了32*8=256(个)。

    (64*32= 8 * 256.)

通过以上实验总结出:DQ位宽为8时,em_ddr_addr增加1,存入8bit数据;

          DQ位宽为16时,em_ddr_addr增加1,存入16bit数据;

          DQ位宽为32时,em_ddr_addr增加1,存入32bit数据;

        也就是DQ位宽是多少,Lattice DDR3的每个物理地址存入的数据就是多少bit。

  以上实验弄明白了,Lattice DDR3的每个物理地址存多少bit数据的问题,以及cmd_burst_cnt=32时,为什么每发一次WRITE_CMD就要发送64个数据(发64个数据才能将此次增加的DDR3的物理地址刚好写满)。 

接下来还有一个问题,就是设置IP核的时候有一个BL选项,可以设置为BL=8和BL=4.想弄明白不同的BL值有什么影响,于是继续做实验。 

实验二

1.设置BL=4,cmd_burst_cnt=0,DQ位宽=16.

  观察仿真波形看到,每发一次WRITR_CMD,em_ddr_addr增加32*4=128个。说明BL=4时一个突发长度地址增加4,BL=8时一个突发长度地址增加8.

  从仿真波形也可以看到,datain_rdy是交替置1的,虽然write_data发送了64个64位的数据,但写入DDR的只有32个。

  写入DDR的数据量=32*64bit  =   16*128,这与实验一的结论是吻合的。

转载于:https://www.cnblogs.com/zzjt/p/10614087.html

你可能感兴趣的文章
数据库 设计中的英文术语
查看>>
Android Browser学习七 书签历史模块: 书签UI的实现
查看>>
Android如何在测试程序中删除被测应用私有的原始数据
查看>>
php数组去重复数据的小例子
查看>>
【LeetCode】461. Hamming Distance (java实现)
查看>>
删除某个目录及目录下的所有子目录和文件
查看>>
ubuntu 11.10 下network proxy 的设置问题
查看>>
关于新版chrome设置编码格式(55以上)
查看>>
常用正则表达式
查看>>
linux分布式安装hadoop1.2
查看>>
va_start和va_end的使用及原理
查看>>
使用Dockerfile构建自己的etcd镜像
查看>>
第一次面试记录
查看>>
Android Studio使用Android Annotations注解框架笔记
查看>>
CR(code review)常见问题
查看>>
MapReduce的模式、算法和用例
查看>>
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解
查看>>
JVM类加载机制详解
查看>>
[转]Windows 性能监视器工具-perfmon
查看>>
Maven中如何配置WAR依赖WAR和JAR的多模块项目结构
查看>>