对于 DDR3 SDRAM 控制器 IP 核,app 端的命令总线是读写复用的,因此可能会存在读写冲突的时刻,为了解决掉这种问题,我们将会控制 app 命令端分时的给读,或者写使用,也就是我们所说的仲裁,具体是完成读还是完成写,我们交由仲裁来决定。
读、写仲裁控制模块实现
在我们实现了 DDR3 控制器 IP 核的读、写之后会发现读和写是共用一组命令线的,因此读、写需要分时的使用 IP 核中的命令总线,具体的解决方法如图 6 所示。
如上图 6 所示,我们可以对分时的将 A7_wr_ctrl 和 A7_rd_ctrl 模块的 app_cmd 信号传输给 IP 核的 app_cmd 信号。对于 A7_wr_ctrl 和 A7_rd_ctrl 模块的 app_addr 信号,我们可以在不使用时将其置为 0,这样我们将 A7_wr_ctrl 和 A7_rd_ctrl 模块的 app_addr 进行按位或,结果即为 IP 核的 app_addr。同理,IP 核的 app_en 也 可以通过 A7_wr_ctrl 和 A7_rd_ctrl 模块的 app_en 按位或得到。具体的示例代码如下所示。
如上所述ÿ