一、简介
1.1. 在使用FPGA做项目时,常常会因为数据量过大,需要使用到DDR3缓存数据,在紫光同创的pango开发平台中,有专门的IP核,HMIC_S IP是紫光同创推出的一款DDR3 IP,兼容LP DDR、DDR2,可通过公司(Pango design Suite)套件中的IPC(IP compiler)工具完成IP模块的配置和生成。
1.1.1.在Tools这个工具选项中选择IP Compiler,弹出如图所示对话框;
1.1.2.选择DDR3 Interface(1.10),不同的开发平台名称会不一样;
1.1.3.自定义名称,注意要全英文
1.1.4. 生成IP核
1.2 主要特性
HMIC_S IP产品的主要特性如下:
支持DDR3、DDR2、LPDDR;
支持最大数据位宽72bit,(最大支持4片16bitDDR3并联);
用户接口:精简的AXI4总线接口、APB总线接口;
支持可配低功耗模式:Self_Refresh、Power Down;
支持DDR3的最高数据速率达到1066Mbps;
支持DDR2的最高数据速率达到800Mbps;
支持LPDDR的最高数据速率达到400Mbps;
Burst Length8和单Bank;
PHY可以单独使用;
1.3适用器件及封装
1.4 IP框图
HMIC_S IP核系统框图如下图所示,HMIC_S IP提供Controller+PHY和PHY only两种模式
1.4.1Controller+PHY
该模式下,IP包括DDR Controller和DDR PHY功能,用户通过Simplified AXI4接口实现数据的读写,通过APB接口实现低功耗 和MRS的控制
Simplified AXI4接口
该接口包括写地址通道、写数据通道、读地址通道、读数据通道四个部分。用户通过写地址通道和读地址通道发起读写操作;其命令在UI AXI模块解析成Controller内部命令;在DCD(DDR Command Decode)模块分解成DDR对应的命令;在DCP(DDR3 Command Procedure)模块实现基于DDR的时序控制;在DFI Convert模块中转换成DFI接口传递到PHY,并最终传递到DDR Memory接口。
写数据通过写数据通道,经过Wdata Path模块直接传递到DDR PHY ,并最终传递到DDR Memory接口;来自DDR Memory的读数据在经过DDR PHY采样解析后,经过Rdata Path模块同步,通过读数据通道接口返回给用户。
Config接口
该接口为一个APB配置接口,通过该接口,用户可读取DDR SDRAM的状态,实现低功耗和MRS的控制。
二、运行仿真
Modelsim仿真
仿真运行步骤:打开cmd.exe,在命令行中将当前目录切换到IP生成目录下的/sim,运行Vsim,打开Modesim仿真软件,如下图
在ModelSim仿真软件中运行sim.tcl脚本即可进行仿真:打开Modelsim-File-Change Directory-选择sim.tcl的上层文件夹-在Transcript的命令框中输入“ls”,然后在输入“do sim.tcl(对应的tcl文件)”
三、接口描述
2.1 Controller 接口说明
1. Global接口
注:“-”表示无该项参数
2. Slimplified AXI4接口
(1)写地址通道
(2)写数据通道
(3)读地址通道
(4)读数据通道
3. Config接口
4. DIF接口
四、接口时序描述
Simplified AXI4接口包含四个通道,分别是写地址通道、写数据通道、读地址通道和读数据通道,各个通道之间彼此独立。一般来说,需先发送地址,在收发数据。用户可以通过不同的id号判断返回数值是否为请求值。
Simplified AXI4接口地址与Memory地址的对应关系有两种,对应配置界面的“Memory Address Mapping Selection”选择区域。当选择“ROW+BANK+COLUMN”时,Simplified AXI4接口地址与Memory地址的对应关系如图1所示;当选择“Bank+Row+Column”时,Simplified AXI4接口地址与Memory地址的对应关系如图2所示;
图一:
图二:
1. 写地址通道时序:
写地址通道包含的信号:axi_awready、axi_awvalid、axi_awaddr、axi_awuser_ap,axi_awuser_ip、axi_awlen
一次握手完成条件:axi_awready和axi_awvalid同时有效;
包长由axi_awlen控制,包长为axi_awlen的值加1;
握手过程:从axi_awvalid有效的时钟上升沿开始,axi_awaddr、axi_awuser_ap,axi_awuser_id,axi_arlen需保持不变直到握手完成后释放。
2. 读地址通道
读地址通道包含的信号:axi_arready、axi_arvalid、axi_araddr、axi_aruser_ap、axi_aruser_ip、axi_arlen
一次握手完成条件:axi_aready和axi_arvalid同时有效;
包长由axi_arlen控制,包长为axi_arlen的值加1;
握手过程:从axi_arvalid有效的时钟上升沿开始,axi_araddr、axi_aruser_ap,axi_aruser_id,axi_arlen需保持不变直到握手完成后释放。
3. 写数据通道时序
写数据通道包含的信号:axi_wready、axi_wvalid、axi_wusero_id、axi_wusero_last、 axi_wdata、axi_wstrb。
传输有效指示:axi_wready有效
一次传输结束指示:axi_wusero_last有效
传输过程中:axi_wready、axi_wusero_id和axi_wusero_last同步接收,axi_wdata和axi_wstrb同步发送
4. 读数据通道时序
读数据通道包含的信号:axi_rdata,axi_rid、axi_rlast和axi_rvalid
一次传输有效指示:axi_rvalid有效
一次传输结束指示:axi_rlast有效