(小白记录实验室调试过程)
导入

过程:数据首先要经过一个“筛选模块”比如选定在vs有效后再开始读,然后进入FIFO缓存,经过基于AXI协议的写控制 模块,然后通过AXI总线进入DDR_CTRL模块,然后读模块由AXI总线通过DDR_CTRL读数据,读完后给FIFO,FIFO给HDMI控制模块,然后输出给显示屏

data“筛选”模块,data_into模块跟AXI写控制进行交互,FIFO只是在其间进行数据缓存,data模块执行判断条件后会给AXI写控制模块发信号,例如‘ready’,‘busy’,AXI写控制模块也会给data模块发送反馈信号,比如‘done’

例如图片640*512,每个像素占地址位8bit,则一幅图数据总量为640*512*8bit(桶里的水)
突发长度1-256任意,假设突发长度256,突发长度单位为B,突发长度数据总量为256*8bit(一次接的水量)
DDR数据位宽(IP里面设置的),假设是32bit(出水口)
则 突发次数即为 (640*512*8bit)/[(256*8bit)*32bit](接几杯水)
moni模块的时序是为了筛选有效数据,hdmi模块的时序是为了从ddr通过axi读取需要的数据
改AXI读写数据位宽的时候在axi interconnect的外接端口上改,比如双击S00_AXI_WR
在data width进行修改,最大是1024,但是ddr最大传输的数据位宽是64,所以axi设置最大64,此处设置32

修改完BD后还需要在代码里进行修改,对设置AXI类型的模块参数进行修改,此处是AXI_write
模块

需要改S_awsize和S_wstrb,S_awsize对应axi读取的数据位宽,此处是32,对应手册的010,S_wstrb是数据掩码,不同的awsize对应着不同的数据掩码,需要查手册修改
还需要改axi里的wire声明AXI_WR_DATA,AXI_RD_DATA

本文记录了使用FPGA(ZYNQ 7020)实现DDR3内存中640*480@60Hz图片数据通过HDMI显示的过程。内容涉及DDR调试框架搭建,包括BD设计、FPGA代码编写,特别是CLK IP、AXI接口设置、DDR到HDMI数据转换等。调试过程中,作者遇到并解决了数据位宽匹配、FIFO配置等问题。
&spm=1001.2101.3001.5002&articleId=123985459&d=1&t=3&u=89e53a507b3a43aeab84c81ca73f76fd)
1906

被折叠的 条评论
为什么被折叠?



