好网站有没有,建网站公司专业,北京软件外包公司,邢台人才网官网首页文章目录 DDR4介绍实验过程编写XDC使用IP核上板验证TODO 参考 DDR4介绍
开发板PL有一颗16bit的DDR4。 先说明硬件信号#xff08;按该芯片#xff09;#xff1a;
信号名说明DQData input/output#xff0c;双向数据线#xff08;这个芯片是x16的#xff0c;使用DQ[15… 文章目录 DDR4介绍实验过程编写XDC使用IP核上板验证TODO 参考 DDR4介绍
开发板PL有一颗16bit的DDR4。 先说明硬件信号按该芯片
信号名说明DQData input/output双向数据线这个芯片是x16的使用DQ[15:0] 可以看到这里芯片和ZYNQ的定义并不是一对一的把数据线交换了但是不会影响最终的使用DQS_t,DQS_c,UDQS_t,UDQS_c,LDQS_t,LDQS_cData strobe读数据时输出写数据时输入x16时LDQS对应DQ[15:8]UDQS对应DQ[7:0]。差分数据选通信号差分信号对作输入时与写数据同时有效作输出时与读数据同时有效DM_n,UDM_n,LDM_nInput data mask,写数据时的掩码信号也是分别对应DQ的低8位和高8位DMData MaskDBIData Bus Inversion数据总线反转VSSGround地VSSQDQ ground数据线的地VDDPower supply: 1.2V ±0.060V供电VDDQDQ power supply: 1.2V ±0.060V数据线供电VPPDRAM activating power supply: 2.5V –0.125V/0.250V激活电压VREFCAReference voltage for control, command, and address pins参考电压ZQReference ball for ZQ calibration,ZQ校准接一个240欧姆的参考电阻下拉到地A[17:0]Address inputs地址线A17只用到16Gb上面A14、A15、A16还复用其他功能ACT_nCommand inputCS_nChip selectRAS_n/A16,CAS_n/A15,WE_n/A14Command inputs,一些命令设置包含行地址、列地址有效什么的BABank address inputsBGBank group address inputsCK_t,CK_cClock Differential clock inputs差分时钟输入CKEClock enable时钟使能信号PARParity for command and addressALERT_nAlert outputTENConnectivity test modeODTOn-die termination片上终端电阻把电阻做到了芯片内部RESET_nActive LOW asynchronous reset复位信号
芯片信号为为MT40A512M16LY-062E是镁光Micron的。从手册上看这个型号的容量是8Gb1GB命名含义如下
这里面的Meg和Gig都是一个单位512M16表示容量是512Megx16后面的16bit是位宽度。
然后是一些参数DDR4引入了bank group的概念一个bank group包含多个bank。MT40A512M16LY有两个bank group使用1根地址线BG0BG:bank group即可进行寻址每个bank group包含4个bank使用两根地址线BA[1:0]BA:bank address即可进行寻址。除了bank的地址DDR4还用有17根地址线A[16:0]设计时选择分两次使用定位一个地址的方案行列公用这些地址线第一次是行地址第二次是列地址。MT40A512M16LY使用行寻址使用了A[15:0]的16根地址线列寻址使用了A[9:0]的10根地址线。 下面是芯片的内部结构图也要配合前面管脚定义去理解。左下角是地址寄存器包含A[16:0]BABGBA和BG用于控制选择到具体的哪一个bankA[16:0]同时被连接到行地址和列地址选择寄存器是复用因为读取的时候是分两次的一次行地址一次列地址。
实验过程
编写XDC
对着原理图使用图形界面或者代码的方式进行设置即可。要一个管脚一个管家的去设置。 DDR4的管脚。 系统时钟的管脚。
使用IP核
Vivado提供了操作了DDR的IP核主要是创建工程和IP和的添加和使用。
在“IP Catalog”的搜索框搜索“mig”快速找到“Memory Interface Generator”选择DDR4 SDRAM。设置DDR参考时钟、内存类型、位宽主要是硬件决定的一些信息。Component Name 可以修改Controller/PHY Mode 选择“Controller and physical layer”参考时钟选择 200MHz即 5003psMomory Part 选择”MT40A512M16HA-083E”Data Width 选择 16其他设置保持默认点击 OK。
这个IP和相当于一个DDR4的控制器经过设置之后的IP和接口如下。 官方文档的结构描述右边是物理的接口直接连接到DDR左边接口是用户接口即读写ddr需要操作的接口 wdf 是 write data fifo?写数据的时候ip核内部先把数据放到FIFO里
信号描述app_addr[APP_ADDR_WIDTH – 1:0]当前请求的地址app_cmd[2:0]当前请求的命令app_en使能信号地址和命令有效app_autoprechargeset the A10 autoprecharge bit on the DRAMapp_wdf_data[APP_DATA_WIDTH – 1:0]写命令的数据app_wdf_end表示写入数据的结束app_wdf_mask[APP_MASK_WIDTH – 1:0]app_wdf_data的掩码app_wdf_wren写数据有效app_rdy表示用户可口可以接收命令app_rd_data[APP_DATA_WIDTH – 1:0]读命令读取数据app_rd_data_end读出数据的结束app_rd_data_validapp_rd_data有效app_wdf_rdy写数据FIFO准备好接收数据当使能信号和该信号一起有效时数据被接收app_ref_req用户刷新请求app_ref_ack用户刷新请求完成app_zq_reqUser ZQCS command requestapp_zq_ackUser ZQCS command request completedapp_hi_prThis input is reserved and should be tied to 0 保留下拉到0ui_clkThis user interface clock must be one quarter of the DRAM clockinit_calib_completePHY asserts init_calib_complete when calibration is finished校准完成后输出ui_clk_sync_rstThis is the active-High user interface reset复位addn_ui_clkoutAdditional clock outputs provided based on user requirementdbg_clkDebug Clock. Do not connect any signals to dbg_clk and keep the port open during instantiation调试时钟 上板验证
代码的ila没设置成功弹出来一个这个窗口。
TODO
看不下去了等提升下能力后再来看。
读写时序没进行分析。ila为什么没设置成功。再分析下代码。
参考
DDR的型号问题DDR4 SDRAM基础介绍DDR4实战教学一DDR4寻址原理地址\数据总线在走线时互换DDR4读写测试一MIG IP核配置DDR4读写测试二基本读写测试DDR一些引脚说明DR4读写测试实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0