XIlinx MIG 控制DDR3 SO-DIMM内存条(三):MIG IP核仿真与调试过程

MIGIP核接口详解:AXI4, UI, Native与内存控制器交互
本文详细介绍了MIGIP核的多种接口,包括AXI4slave、UserInterface、Native interface及其工作原理,以及物理层接口。讨论了 Upsizing、内存映射和不同接口的时序协议。还涉及了如何配置和仿真内存控制器接口,如mig_7series_v4_2_traffic_gen_top模块。

之前写这个系列的时候忘记上传了,刚好五一补一下。

1 MIG IP核的接口

想应用IP核,首先学习IP核的接口。

在这里插入图片描述

内存控制器可以使用AXI4 slave、UI、或者直接使用native接口进行连接。

  • AXI4从接口提供了一个符合AXI4内存映射的从接口,用于连接到处理器子系统。AXI4从接口将其事务转换为在UI上传递它们。
  • UI类似于一个简单的FIFO接口,并且总是按顺序返回数据。
  • native接口在某些情况下提供了更高的性能,但使用起来更难。

native接口不包含缓冲区并尽快返回数据,但返回的数据可能顺序错误。如果使用native接口并启用了重新排序,应用程序必须在内部重新排序接收到的数据。下面的章节描述了每个接口的时序协议以及应该如何控制它们。

1.1 AXI4 slave 接口

来自AXI master的AXI地址是一个byte address。AXI shim根据AXI SIZE和存储器数据宽度将地址从AXI master地址转换到存储器地址。根据存储器阵列的数据宽度,AXI byte address的LSB被屏蔽为0。如果存储器阵列是64bit位宽(8字节),则AXI address[2:0]=0。如果存储器阵列是16bit位宽(2字节),则AXI address[0]=0。

DDR3 DRAM以8个DRAM word的块访问,burst长度为8。UI数据端口宽为8个DRAM word,PHY到内存控制器(MC)时钟比例为4:1,PHY到MC时钟比例为2:1。

在这里插入图片描述

1.2 Upsizing

当User Interface侧的数据宽度大于AXI Interface侧的数据宽度时,在AXI Shim接口中进行放大。对INCR和
WRAP burst执行数据打包。

在最终向User Interface端发出的事务中,因为数据位宽更大,所以数据拍数相应减少:

  • 对于写,发生数据合并。
  • 对于读,发生数据串行化。

这里是理解错了还是手册写反了,User Interface端更大的位宽,不应该进行数据串行化后发给AXI Interface吗?

1.3 User Interface

User Interface 与物理存储器row、bank、column地址的映射关系是可以配置的,两种映射方式:

  1. Bank- Row-Column
    在这里插入图片描述

  2. Row-Bank-Column
    在这里插入图片描述

1.3.1 Command Path

当用户逻辑的app_en信号被断言 且 UI的app_rdy信号被断言时,UI接受一个命令并写入到FIFO。

在这里插入图片描述

发出一个非back-to-back的写命令,下图描述了app_wdf_data、app_wdf_wren和app_wdf_end信号的三种场景,如下所示:

  1. 写数据与相应的写命令一起出现。
  2. 写数据出现在相应的写命令之前。
  3. 写数据出现在相应的写命令之后。但不应超过两个时钟周期的限制。

在这里插入图片描述

对于写命令寄存后输出的写数据,情景3,最大延迟为两个时钟周期。

*什么是back-to-back?
背靠背是两个不同的事务连续执行,中间不经历总线的idle态。突发是一个事务中地址连续的数据的连续传输。

1.3.2 Write Path

当断言app_wdf_wren且app_wdf_rdy为High时,写入数据寄存在写入FIFO中。如果app_wdf_rdy被解除断言,用户逻辑需要保持app_wdf_wren和app_wdf_end High以及有效的app_wdf_data值,直到app_wdf_rdy被断言。app_wdf_data数据可以在app_cmd“写命令”之前被断言。唯一的条件是,对于每个app_cmd“写命令”,关联的app_wdf_data“写数据”必须存在。app_wdf_mask信号可用于屏蔽要写入外部内存的字节。

在写数据和相关的写命令之间的单个写的最大延迟是两个时钟周期。

app_wdf_end信号必须用于指示内存写入突发的结束。对于2:1模式下的8内存突发类型,app_wdf_end信号必须在第二个写入数据字上断言。

1.3.3 Read Path

读取的数据由UI以请求的顺序返回,并且在断言app_rd_data_valid时有效。app_rd_data_end信号表示每个读命令突发的结束,在用户逻辑中不需要这个信号。

返回的读数据总是与地址/控制总线上发出的请求顺序相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipWeaver

觉得有用的话点个赞吧 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值