用户可以通过用户接口模块访问外部DDR2/DDR3存储设备。在Xilinx公司提供的解决方案中,共有两种用户接口格式,一种是与之前版本工具兼容的传统接口信号格式,另一种是基于AXI4的接口信号格式。
1.传统接口信号格式
下面介绍与之前版本工具兼容的接口信号格式,具体如表5.1所示。
表5.1 用户接口信号
1)app_ addr[ADDR_ WIDTH-1:0]
该输入指示当前提交至UI的请求地址。UI聚合了外部SDRAM的所有地址字段,并以扁平化地址空间的形式呈现给用户。
2)app_ cmd[2:0]
该输入指示当前正在提交至UI的请求命令。可用的命令如表5.2所示。
表5.2 app_ cmd[2:0]的命令
3)app_en
该输入指示请求中的选通信号。用户必须为app_addr[]、 app_cmd[2:0]、app_sz和app_hi_ pri赋予所需的值,并通过置位app_en共同完成向UI提交请求。UI 接收到该请求后,会通过置位app_rdy来响应,进而完成一次握手协商。
4)app_hi_pri
该输入指示当前请求具有高优先级。
5)app_ sz
该输入指示突发长度。对于DDR3 SDRAM,若BURST_MODE设置为OTF,则app_ sz值可以动态调整变化。对于BC4,该位应置为0;对于BL8,该位应置为1。
6)app_ wdf_ data[APP_ DATA_ WIDTH- 1:0]
该输入总线指示写入外部存储器的数据信号。
7)app_ wdf_end
该输入指示当前周期app_wdf_data[]总线上的数据是本次请求数据的最后部分。
8)app _wdf_mask[APP_ MASK_ WIDTH - 1:0]
该输入总线指示app_wdf_data[]的数据掩码位。
9)app_ wdf_ wren
该输入指示写数据app_ wdf_ data[]为有效信号。
10)app_ rdy
该输出指示当前正在向UI提交的请求是否被接受。若app_en置为有效后,UI未将该信号置位,则当前请求必须重试。(www.xing528.com)
11)app_ rd_ data[APP_ DATA_ WIDTH- 1:0]
该输出指示从外部存储器读出的数据信号。
12)app_ rd_ data_ end
该输出指示当前周期app_rd_data[]总线上的数据是本次读请求数据的最后部分。
13)app _rd_ data_valid
该输出指示app_rd_ data[]总线上的数据为有效数据。
14)app_wdf_ rdy
该输出指示写数据FIFO 准备接收数据。当app_ wdf_ rdy和app_wdf_ wren 均置为有效时,写数据被接收。
15)rst
该输入指示UI的复位。
16)clk
该输入指示UI的时钟。它的频率必须为外部SDRAM时钟频率的1/2。
17)clk_ mem
该信号是由MMCM提供的全频率时钟,且仅能用作OSERDES的输入。
18)clk_ rd_ base
clk_rd_base是全频率时钟信号的一个拷贝,被路由连接到所有DQS group中独立的捕获时钟网络上。这些独立DQS时钟的相位通过IODELAY在读平衡(Read Leveling)时被调整至读数据眼图的中心。相对于clk_mem的相位(用于驱动前端时钟到存储器),clk_rd_base的相位调整依赖于MMCM细粒度相移特性,通过鉴相器逻辑去适应由于电压和温度变化的影响,而在读捕获路径中持续变化的数据延时。
19)phy_ init_ done
当校准完成后,PHY会将phy_ init _done置为有效。用户应用程序可以直接向存储控制器发送命令,而无须等待phy_ init_ done 完成。
2.AXI4接口信号格式
AXI4 Slave Interface 接口模块将AXI4事务映射至UI接口,并为存储控制器提供一个标准工业总线接口。在设计中,工具提供可选的AXI4SlaveInterface接口。而在EDK提供的存储控制器axi_v6_ddrx中,必须含有AXI4 Slave Interface接口,且在MIG与EDK之间的RTL是一致的。有关AXI4信令协议的详细信息,请参阅ARM的AMBA规范。
整体设计由各个独立处理AXI通道读/写事务的模块组成。UI采用一个简单的循环仲裁器处理并发的读/写命令请求。读/写地址模块负责将AXI4突发请求包分割成突发长度为4或8的请求包,并且转发这些小型的突发包至读/写数据模块以实现与用户接口的交互。
AXI4 Slave Interface接口参数如表5.3所示。
表5.3 AXI4 Slave Interface 接口参数
续表
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。