代码之家  ›  专栏  ›  技术社区  ›  Mike Vine

Spartan 7 4:1 Mig生成的DDR3接口的写入内存计时

  •  0
  • Mike Vine  · 技术社区  · 8 年前

    我正试图了解7系列fpga使用mig生成的内存控制器的ui(运行时间为4:1)的写内存计时。

    我下面的文档是 ug586 锡林尼的文件我特别想了解图1:77,这里复制了:

    Image 1-77 from ug586_7Series_MIS.pdf

    我的理解是在最初的几个周期里, app_addr app_en app_wdf_data app_wdf_wren app_wdf_end 正确断言并写入数据看蓝线。

    有趣的一点在于 app_rdy 即内存控制器正忙。在这一点上 应用程序地址 在同一地址(2)持有至 应用程序 在(6)处重新声明到目前为止一切都是有道理的。

    我所困惑的是写什么地址 a30 ? 选择是数据(3)或(4)或(5)。这个图和逻辑暗示(3)被写到 A30飞机 (见粉红色虚线)。但我不明白为什么查看文档中的图1-75,您可以提前一个时钟提供写入数据,但与何时相比,(3)处的数据提前两个时钟 应用程序 是在(7)点在时钟的上升沿重新启用的。所以要么(4)要么(5)但在这个演示中,这两个似乎都没有意义。所以写什么 A30飞机 我该怎么解决呢?

    (我也对随后的地址感兴趣,但一旦我明白了 A30飞机 我应该也能理解这些)

    1 回复  |  直到 8 年前
        1
  •  0
  •   Mike Vine    8 年前

    当我找到一个几乎相同的答案时,我会回答我自己的问题 here .

    基本上混淆的是命令队列(由 app_en app_rdy )与写入队列(由 app_wdf_rdy app_wdf_wren )中。

    这意味着您可以在实际要求写入事实之前将要写入的数据排队,您可以一直将写入数据排队,直到 app_wdf_ready 已解除资产评估。

    必须为每个写命令排队一些写数据您可以在write命令之前、与write命令在同一个时钟上或最多在两个时钟之后将写数据排队写数据是一个FIFO队列,因此即使在发出一个写命令之前,您也可以将大量写数据排队!

    (混乱来自于文档中的示例,该示例提前显示了一个时钟的排队数据—但是如果您阅读文本,则会得到:

    1. 写入数据与相应的写入命令一起显示(BL8的后半部分)。
    2. 显示写入数据 在相应的写入命令之前。
    3. 写入数据在相应的写入命令之后显示,但不应超过两个时钟周期的限制

    注意第2点。没有提到允许您在多早的时间内对数据进行排队的限制。

    这意味着-在我的前枫树里-3 写给地址 a30 因为它在写队列中。

    推荐文章