基于FPGA的DDR3学习——4.MIG 控制器概述及读写时序介绍

7.MIG 控制器概述及读写时序介绍

如上图所示,FPGA用户逻辑代码通过MIG控制器IP连接到DDR3的物理芯片。MIG提供的UI接口大大简化了DDR在FPGA上的应用。

7.1.MIG内存控制器用户逻辑时序

指令通道:

当用户逻辑app_en信号置位并且app_rdy置位命令被写入FIFO。app_rdy被取消置位时,UI会忽略该命令。用户逻辑需要将app_en保持为高电平以及有效的命令和地址值,直到app_rdy被置位。

写时序:

写入数据的三种场景(如上图的1、2、3):

1:写入命令的同时写入数据

2:写入数据在相应的写入命令之前

3:写入数据在相应的写命令之后,不应超过两个时钟周期的限制。

当app_wdf_wren被置位时且app_wdf_rdy为高时,数据写入FIFO,如果app_wdf_rdy取消置位,则用户逻辑需要保留app_wdf_wren和app_wdf_end以及有效的app_wdf_data值,直到app_wdf_rdy被置位。

读时序:

在app_rd_data_valid被置位时,数据由UI请求的顺序返回(即读信号与appen置位期间请求的地址顺序)。app_rd_data_end信号表示每个读命令脉冲串的结束。

7.2.BL8 突发长度

理解一下概念:

突发传输: 在通信领域中一般指在短时间内进行相对高带宽的数据传输。

Burst(突发): 是指在同一行中相邻的存储单元连续进行数据传输的方式。

BL突发长度: 连续传输的周期数就是突发长度。

在突发传输的模式下,多个数据单元(相当于一个数据块)来传送,从而提高传输效率。

BL8: 突发长度为8,app_addr必须是8对齐的地址,比如数据宽度Data Width为32,每次读写数据的长度为8*32=256bit。

7.3.MIG时钟和DDR3时钟

例如IP核 中配置如下:

1.

即MIG对DDR接口的速率为800M*2=1600M(双沿)。

MIG输出到app接口上的时钟ui_clk为800M/4=200M。

UI时钟频率ui_clk为DDR时钟频率的1/4,也就是一个用户时钟周期(两个边沿)对应8个DDR时钟边沿。burst length可以理解为MIG连续操作DDR地址的个数,故在4:1时钟比例下,一个用户时钟周期正好对8个地址进行了读/写操作,256bit数据分8次(32bit)写入DDR中,即逻辑用户以时钟ui_clk写256bit数据至MIG,MIG控制器将以时钟ddr_clk向DDR写8次(32bit(数据位宽配置为32bit))数据。由此分析,在写数据时让app_wdf_end = app_wdf_wren即可,并且读/写操作时地址递增步长为8。

2.

输入给MIG的时钟为200M。

7.4.掩码_Mask

掩码是一串二进制代码对目标字段进行位与运算,屏蔽当前的输入位。

在MIG的端口中有app_wdf_mask[APP_MASK_WIDTH – 1:0]信号充当掩码,该总线指示app_wdf_data []的哪些字节写入外部存储器以及哪些字节保持其当前状态。 通过将值1设置为app_wdf_mask中的相应位来屏蔽字节。 例如,如果应用程序数据宽度为256,则掩码宽度取值为32. app_wdf_data的最低有效字节[7:0]使用app_wdf_mask的Bit [0]屏蔽,app_wdf_data的最高有效字节[255:248]使用app_wdf_mask的Bit [31]屏蔽。 因此,如果必须屏蔽最后一个DWORD,即app_wdf_data的字节0,1,2和3,则app_wdf_mask应设置为32’h0000_000F

Xilinx FPGA平台DDR3设计保姆式教程(3)是关于使用MIG IP核及DDR读写时序的教程。 首先,MIG(Memory Interface Generator)是Xilinx提供的IP核,用于简化DDR3控制器接口的设计。在使用MIG IP核前,需要根据DDR3芯片的规格参数,使用MIG生成一个适用于特定器件的IP核文件。生成IP核文件后,可以将其添加到设计中。 使用MIG IP核时,需要正确设置IP核的参数,以满足设计需求。这些参数包括时钟频率、数据宽度、时序参数等。为了正确设置这些参数,可以参考DDR3芯片的数据手册和Xilinx提供的MIG IP核使用手册。 在DDR3读写时序中,有多个重要的信号需要注意。首先是时钟信号,它用于同步数据的传输。时钟信号的频率应根据DDR3规格进行设置,通常为DDR3规格中指定的频率(比如900MHz)的一半。然后是地址信号,它用于指定要读写的存储单元的位置。地址信号的宽度应根据DDR3规格进行设置,通常为规定的位数(比如13位)。接下来是控制信号,包括读使能信号和写使能信号,用于控制读写操作的进行。最后是数据信号,用于实际的数据传输。数据信号的宽度应根据DDR3规格和设计需求进行设置。 在设计中,需要根据DDR3芯片的时序要求,来设置合适的读写延迟和时序参数。这些参数可以通过MIG IP核的配置界面进行设置。此外,还需要根据DDR3芯片要求,使用适当的芯片选择信号和刷新操作,以确保DDR3的正常工作。 综上所述,使用Xilinx FPGA平台进行DDR3设计时,可以使用MIG IP核来简化接口设计,并根据DDR3规格和时序要求来设置相关参数。合理设置这些参数,可以保证DDR3的正常读写操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值