Memory SP605斯巴达6 DDR3寻址
下面的帖子很长,但由于一个多月来我一直无法使SP605板正确地与DDR3交互,希望这对我所处的情况相同的其他人有用。我很确定这是一个简单的配置或概念错误,但我非常乐意很快解决这个问题 ==情景=== 我已经创建了一个USB-UART接口来与FPGA通信并控制DDR3。使用ISE中的IP生成器,我生成了一个MIG包装,然后设计了内存接口控制器。然而,我参考了手册ug388和ug416,但我无法使DDR3按预期运行 ==问题陈述=== 利用写和读命令的突发长度,我能够从DDR3获取数据,但寻址方案似乎不正确,因为数据在地址0和1、2和3、4和5中重复,以此类推。此外,每当我写入地址0时,例如,没有任何更改。然后,当我写入地址1时,地址0和1都用我刚才发送的数据值更新。由于这种耦合效应,我似乎正在“丢失”一半的内存空间 ==DDR3 IP配置=== 考虑到SP605板方案,使用IP生成器的DDR3设置如下所示。总之,我激活了DDR3 Bank 3并将端口0配置为32位双向 内存选择:Memory SP605斯巴达6 DDR3寻址,memory,interface,verilog,xilinx,spartan,Memory,Interface,Verilog,Xilinx,Spartan,下面的帖子很长,但由于一个多月来我一直无法使SP605板正确地与DDR3交互,希望这对我所处的情况相同的其他人有用。我很确定这是一个简单的配置或概念错误,但我非常乐意很快解决这个问题 ==情景=== 我已经创建了一个USB-UART接口来与FPGA通信并控制DDR3。使用ISE中的IP生成器,我生成了一个MIG包装,然后设计了内存接口控制器。然而,我参考了手册ug388和ug416,但我无法使DDR3按预期运行 ==问题陈述=== 利用写和读命令的突发长度,我能够从DDR3获取数据,但寻址方案似
- 启用AXI接口:未选中
- 使用扩展MCB性能范围:未选中
- 气缸组3的内存类型:DDR3 SDRAM
- 气缸组1的内存类型:无
- 频率:400兆赫
- 存储器部分:MTJ41J64M16XX-187E
- 输出驱动器阻抗控制:RZQ/6
- RTT(标称)-ODT:RZQ/4
- 自动自刷新:已启用
- 两个32位双向端口和四个32位单向端口
- 端口0:已选中
- 端口1:未选中
- 端口2:未选中
- 端口3:未选中
- 端口4:未选中
- 端口5:未选中
- 内存地址映射选择:行-列
- 内存接口引脚端接:校准输入端接
- 选择RZQ引脚位置:R7
- 选择ZIO引脚位置:W4
- 内存控制器的调试信号:禁用
- 系统时钟:差分
wire [00:00] cmd_instruction = usb_data[63:63]; // ‘0’ = write; ‘1’ = read
wire [27:00] cmd_address = usb_data[62:37]; // 26-bit address
wire [31:00] cmd_data = usb_data[31:00]; // 32-bit data
在ug388中,可以提取以下内容:
第20页:地址是26位宽
C_MEM_ADDR_WIDTH = 13
C_MEM_BANKADDR_WIDTH = 3
C_MEM_NUM_COL_BITS = 10
C_P0_DATA_PORT_SIZE = 32 // 32-bit data ports
C_P0_MASK_SIZE = 4 // 4 bytes = 32 bits (1 mask bit = 1 entire data byte)
第26-27页:命令数据结构
- pX_cmd_addr[29:0]:30位地址,但最后两位应为=“00”,因为每个字(32位)由4个字节组成
- pX_cmd_bl[5:0]:通过将该信号设置为0,可获得1的突发长度
- pX_cmd_instr[2:0]:使用的唯一命令指令是write=“000”和read=“001”
- pX_wr_mask[pX_MASKSIZE-1:0]:4位掩码设置为“0000”,以便所有4个字节始终写入内存
assign p0_mcb_cmd_instr = {2'b00, cmd_instruction};
assign p0_mcb_cmd_addr = {2’d0, cmd_address, 2'd0};
assign p0_mcb_cmd_bl = 6'd0;
assign p0_mcb_wr_data = cmd_data;
assign p0_mcb_wr_mask = 4'd0;
localparam C3_MEM_BURST_LEN = 8;
==结论===
根据配置,有人知道我的控制器的预期行为应该是什么吗?
如果有任何其他信息需要澄清,请让我知道
非常感谢,
布鲁诺