基于FPGA的三端口非透明型SDRAM控制器
[09-12 18:26:14] 来源:http://www.88dzw.com EDA/PLD 阅读:8732次
文章摘要:4 SDRAM 控制器的基本结构及工作原理三端口非透明型 SDRAM 控制器的结构框图如图2 所示。A、B、C 三个端口的内部结 构完全相同,都包含一个双口RAM(作为数据乒乓缓存),一个DMA 控制器。外部设备可以 通过端口读写DPRAM 中的数据,也可以写DMA 控制寄存器。DMA 控制器的功能是根据 DMA 控制寄存器内的设置在DPRAM 和SDRAM 之间交换数据,当DSP 或者其它外部设备 设置了寄存器后,DMA 控制器向仲裁和数据分配器发出访问SDRAM 的请求,然后开始一 次DMA 操作。仲裁和数据分配器的功能是决定当前哪一个端口具有访问SDRAM 的权利。 SDRAM 时序控制
基于FPGA的三端口非透明型SDRAM控制器,标签:eda技术,eda技术实用教程,http://www.88dzw.com4 SDRAM 控制器的基本结构及工作原理
三端口非透明型 SDRAM 控制器的结构框图如图2 所示。A、B、C 三个端口的内部结 构完全相同,都包含一个双口RAM(作为数据乒乓缓存),一个DMA 控制器。外部设备可以 通过端口读写DPRAM 中的数据,也可以写DMA 控制寄存器。DMA 控制器的功能是根据 DMA 控制寄存器内的设置在DPRAM 和SDRAM 之间交换数据,当DSP 或者其它外部设备 设置了寄存器后,DMA 控制器向仲裁和数据分配器发出访问SDRAM 的请求,然后开始一 次DMA 操作。仲裁和数据分配器的功能是决定当前哪一个端口具有访问SDRAM 的权利。 SDRAM 时序控制器则负责产生操作SDRAM 必须的命令码,并且传递数据。
图 2 三端口非透明型SDRAM 控制器的结构
外部设备与 SDRAM 之间通过一个双口RAM(DPRAM)进行隔离。外部设备可以直 接读写DPRAM 的右侧端口,也可以通过设置DMA 寄存器来启动DPRAM 左侧端口与 SDRAM 之间的DMA 操作。SDRAM 控制器的基本工作原理如下:
(1)写操作:当外部设备需要向SDRAM 写数据时,首先将数据存入DPRAM,然后 启动一个从DPRAM 到SDRAM 的DMA。
(2)读操作:当外部设备需要读SDRAM 时,首先启动一个从SDRAM 到DPRAM 的 DMA,等DMA 结束以后再从DPRAM 读取数据。
(3)基于扇区的长度和地址控制:为了简化DMA 控制器以及其它的控制逻辑,DPRAM 和SDRAM 之间的DMA 传输不是任意长度任意地址的DMA 传输,而是以扇区为基本数传 单位。这里定义一个扇区的长度为SDRAM 中的一行(或者叫一个page)。每个DPRAM 则 顺序划分为2 个扇区。每次DMA 操作完成一个完整扇区数据的搬移。
(4)仲裁控制:当两个或是三个DMA 控制器同时请求访问SDRAM 时,由仲裁控制 器根据优先级规则进行控制。设计中采用了轮换优先级的方式,即:刚刚完成了一次DMA 操作的端口具有比较低的优先级,当前具有最高优先级的端口有权占用SDRAM 直至本次 DMA 结束,这样,就可以三个端口分时占用DMA 通道,保证三个端口之间平均的分配 SDRAM 的带宽。
5 仲裁器的设计
仲裁及数据分配器的设计的核心问题是轮换优先级的设计。必须保证三个端口分时占用 DMA 通道,保证平均分配带宽。采用有限状态机作为仲裁器的控制逻辑,这样既可以保证 优先级设计的稳定性,又可以确保仲裁器判决的实时性,有限状态机的设计如图3 所示。
图 3 仲裁器的有限状态机设计
设计中最复杂的情况是:一个通道访问SDRAM 的同时(如A 通道),另外两个通道同时 申请下一次访问SDRAM(如B、C 通道),这样就需要有一个标志位,用它来记录上一次访 问过SDRAM 的通道,在下一次仲裁时把它排除在外,直到再下一次仲裁时才予以考虑。
每次DMA 结束后,都自动返回到IDLE 的状态,通过request 标志位,上次DMA 通道记录 位来判断此次访问SDRAM 的通道。具体设计如下:
设初始状态下,默认A 端口具有最高优先级,然后A、B、C 三个端口具有轮换优先级;
设置一个标志位 old_request,表示上一次响应的端口,“100”A 端口响应,“010”B 端 口响应,“001”C 端口响应;
利用一个标志位 request[2:0]作为状态翻转的标志;
利用标志位 two_request,three_request 作为进入两个或三个端口同时请求状态的标志, two_request = ABC + ABC + ABC,three_request = ABC。
6 结论
本文利用 FPGA 设计并实现了一个相对专用的三端口非透明型SDRAM 控制器。本文 作者创新点在于:通过设计一个带轮换优先级设置的多端口SDRAM 控制器,采用乒乓的 DMA 传输机制,将复杂的SDRAM 访问虚拟成一个简单的三口RAM 的访问,具有访问简 单、控制灵活、传输带宽大等特点。已在某雷达信号存储与预处理系统中成功应用。
《基于FPGA的三端口非透明型SDRAM控制器》相关文章
- › 基于FPGA的单片彩色LCD投影机设计
- › 256级灰度LED点阵屏显示原理及基于FPGA的电路设计
- › 基于FPGA的LCD%26amp;VGA控制器设计
- › 基于FPGA的信道化接收机
- › 基于FPGA和SMT387的SAR数据采集与存储系统
- › 基于FPGA的栈空间管理器的研究和设计
- 在百度中搜索相关文章:基于FPGA的三端口非透明型SDRAM控制器
- 在谷歌中搜索相关文章:基于FPGA的三端口非透明型SDRAM控制器
- 在soso中搜索相关文章:基于FPGA的三端口非透明型SDRAM控制器
- 在搜狗中搜索相关文章:基于FPGA的三端口非透明型SDRAM控制器