OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 428|回复: 2

[国产FPGA] 正点原子DDR读写控制问题求助

[复制链接]

2

主题

4

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2024-5-30
在线时间
2 小时
发表于 2024-5-30 09:25:36 | 显示全部楼层 |阅读模式
1金钱
在正点原子开发板中DDR的例子中,其中:
.wr_adrs ({wd_addr,3'd0}),
.wr_len ({wd_len,3'd0} ),
.rd_adrs ({rd_addr,3'd0}),
.rd_len ({rd_len,3'd0} ),


读写地址和BR后面都加入了三个零,请问一下为什么要加入三个零?4G的DDR加入三位后地址线就少了三位,容量是不是只有8分之一了?
现在修改例子保存多帧图像,每帧图像例如为1024*768=28'd786432,第一帧起始位置为0-786431,第二帧应该为786432-1572863,现在按理论地址写入第二帧发现DDR地址是不对的,请问下哪里需要修改?


代码如下:
// axi 控制模块
aq_axi_master u_aq_axi_master
        (
        .rst_n                  (rst_n  && ddr3_init_done),
        .clk                    (ui_clk        ),
    // Write address channel
        .m_axi_awid             (axi_awid      ),                             
        .m_axi_awaddr           (axi_awaddr    ),                             
        .m_axi_awlen            (axi_awlen     ),                                                         
        .m_axi_awvalid          (axi_awvalid   ),                             
        .m_axi_awready          (axi_awready   ),
    // Write data channel
        .m_axi_wdata            (axi_wdata     ),//O                             
        .m_axi_wstrb            (axi_wstrb     ),                             
        .m_axi_wlast            (axi_wlast     ),                                                         
        .m_axi_wready           (axi_wready    ),
    // Read address channel
        .m_axi_arid             (axi_arid      ),                             
        .m_axi_araddr           (axi_araddr    ),                             
        .m_axi_arlen            (axi_arlen     ),                                                     
        .m_axi_arvalid          (axi_arvalid   ),                             
        .m_axi_arready          (axi_arready   ),
    // Read data channel
        .m_axi_rdata            (axi_rdata     ), //I                                                        
        .m_axi_rlast            (axi_rlast     ),                                                         
        .m_axi_rvalid           (axi_rvalid    ),
    // User control interface
        .wr_start               (wd_req        ),      
        .wr_adrs                ({wd_addr,3'd0}),         
        .wr_len                 ({wd_len,3'd0} ),         
        .wr_ready               ( ),         
        .wr_fifo_re             (wfifo_ren     ),         
        .wr_fifo_empty          (1'b0          ),         
        .wr_fifo_aempty         (1'b0          ),
        .wr_fifo_data           (wfifo_rdata   ),//I
        .wr_done                (wd_finish     ),
        .rd_start               (rd_req        ),          
        .rd_adrs                ({rd_addr,3'd0}),
        .rd_len                 ({rd_len,3'd0} ),
        .rd_ready               ( ),
        .rd_fifo_we             (rfifo_wen     ),
        .rd_fifo_full           (1'b0          ),
        .rd_fifo_afull          (1'b0          ),
        .rd_fifo_data           (rfifo_wdata   ),//O
        .rd_done                (rd_finish     )
);

最佳答案

查看完整内容[请看2#楼]

因为中间转AXI了所以要乘以8,他们地址代表的不一样,一个是128位为一个地址,一个是16位为一个地址,容量没有减少,你可以看下读写控制模块的第100到110行,你会发现传输的那个地址是跟最大地址的八分之一比较的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2023-6-30
在线时间
14 小时
发表于 2024-5-30 09:25:37 | 显示全部楼层
因为中间转AXI了所以要乘以8,他们地址代表的不一样,一个是128位为一个地址,一个是16位为一个地址,容量没有减少,你可以看下读写控制模块的第100到110行,你会发现传输的那个地址是跟最大地址的八分之一比较的
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2024-5-30
在线时间
2 小时
 楼主| 发表于 2024-6-2 21:27:19 | 显示全部楼层
谢谢,明白了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 12:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表