Lattice DDR3 ip核仿真过程中的一些问题总结

本文探讨了在使用Lattice DDR3 IP核时,不同设置下突发长度与数据宽度的关系。通过对仿真波形的观察,明确了突发长度为32时每次写命令的数据量,并进一步探究了BL选项对地址增量的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在官网下载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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值