基于FPGA SDRAM的AXIS_SDRAM接口设计与实现 作者:李浩 申伟来源:《科技创新导报》2020年第11期 刘爱勤
周汉坤
人因工程 摘 要:由于FPGA片内存储资源有限,扩展外部存储空间是必要的,然而众多存储芯片总线结构复杂,控制繁琐。为此,本文以赛灵思的FPGA为平台,设计一种以常用而快捷的axi_stream的形式访问SDRAM的接口。
关键词:FPGA SDRAM AXIS FIFO BRAMgbom
随着芯片的不断更新换代,集成ARM核的FPGA芯片得到了广泛的应用[1]。axi的总线协议在FPGA里面应用也越来越广。axi_stream协议为axi的一种总线标准。本文将采用axi_stream的时序以fifo与bram的形式访问SDRAM的设计与实现方法。
1 axis_sdram接口谋杀章鱼保罗
科技创新导报
本文將axis_sdram接口分为两种,不带地址的axis_fifo_sdram(下文简称axis_fifo)和带地址的axis_bram_sdram(下文简称axis_bram)接口。两种接口均采用axis_stream的时序。axis_bram接口为一个地址对应一帧数据,可重复读取数据。与axis_fifo的区别在于axis_bram写指定存储空间,当用户需要读写数据时,需要同时给出读写地址总线地址数据。
axis_fifo和bram接口的读写数据共同点在于,当ready与valid两根信号线同时有效(高电平)时,数据总线上的数据才有效。此外,axis_bram中,当用户写完一帧数据后,等待监测m_axis_tlast3信号线拉高,可以开始写第二帧数据,具体时序见图 1。读用户监测到m_axis_tlast3信号拉高时,说明底层sdram已经存储好写用户的一帧数据,此时读用户将读地址使能信号拉高一段时间,同时给出读地址总线数据,后读地址使能信号拉低,至此,用户监测到读数据侧的axis_last拉高,完成一帧数据读写。