首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

SDRAM文件结构存储控制的FPGA实现(1)

SDRAM文件结构存储控制的FPGA实现(1)

O 引言
面对不同的应用场景,原始采样数据可能包含多种不同样式的信号,这给传统基于连续存储方式的数据缓存系统带来了挑战。除此之外,由于对不同信号的处理往往需要不同的数据帧结构,缓存系统的设计需要保存原始采样数据并能够实现数据的重组帧,以满足不同处理需求。针对以上问题,本文提出了一种基于文件结构存储方式的数据缓存系统,该系统利用FPGA设计结构化状态机实现对SDRAM的控制,完成了对数据的缓存与重组帧,具有速度快、可靠性高、灵活性强和功能可扩展等优点。
1 系统总体设计
在系统设计上,采样的数据都会采用数据帧结构,一般的设计大多是基于帧头加数据的格式。在帧头中包含一些数据的特征信息,其中最常见的有数据到达时间和数据结束时间。
传统缓存系统的设计一般是采用帧头加数据,帧头加数据的连续存储方式,系统发读命令将帧头和数据连续读出送往后端,后端处理系统通过识别帧头信息判断该数据帧的长度,然后把该长度的数据做进一步处理。这种设计在单一的信号环境下具有结构简单,控制容易的优点,但是它仅适应于单一处理模式的系统,扩展性和移植性较差。
面对不同的应用场景,传统设计已经不能满足不同的处理需求,因为单次采样的原始数据可能包含多种不同信号样式的信号,对不同信号的处理往往也需要不同的数据帧结构,如不同的抽取,不同的数据帧长等。而连续存储结构很难在缓存系统中实现对数据的灵活操作及数据的重组帧,只能把重组帧任务放在后端系统来处理,加重了后端系统的负担。基于此,本文提出了一种基于文件结构的存储方式,并且在缓存系统中实现了数据重组帧的任务,减轻了后端的负担。
整个系统的设计以FPGA为核心控制器来组织工作,它由系统总控System Master与SDRAM驱动控制器SDRAM Controller组成。System Mas-ter接收高层控制指令,向SDRAM Controller发出命令,SDRAM Controller将命令翻译为底层SDRAM芯片的读写指令字精确控制其完成读写操作。系统主要解决的问题是基于文件结构的数据存储,数据重组帧和数据事后读取。系统整体框图如图1所示。

2 系统工作原理
2.1 文件结构的存储方式
所谓文件结构指的是,将帧头与其所对应的数据分区存储,在存储时将存储数据的首地址添加到帧头信息中,在读出时,先读取帧头找到数据的首地址,然后加上系统给定的偏移地址算出读取的起始地址,从该地址开始顺序读取要求长度(小于等于帧长)的数据,在送往后端系统时更新帧头信息,后端系统收到数据无需做预处理直接进行计算即可。图2是2种存储结构的比较。

基于文件结构的存储方式便于对数据进行管理与操作,功能扩展容易。例如有些处理只对数据的帧头信息进行相关操作,基于文件结构的存储模式可以很方便地支持这种工作模式,只需对缓存介质的帧头区进行操作,而传统的设计则很难满足这种需求,因此新的设计极大地提高了系统的灵活性。
2.2 数据重组帧的实现
在设计上,用SDRAM的BANK0(BANK地址“00")和BANKl(BANK地址“01”)存储原始数据,BANK2(BANK地址“10”)存储要送往后端计算的数据,BANK3(BANK地址“11”)存储数据的帧头信息。系统在接收到数据重组帧命令后,按照要求抽取,帧数,帧长和帧间隔从低 BANK区读取原始数据送入数据重组帧模块形成新的数据帧结构,然后将新的数据帧结构按照文件结构存储到高BANK区中。其实现框图如图3所示。

3 控制模块的结构化状态机设计
在系统架构上采用了结构化状态机的设计方法,通过分层有限状态机实现了主控状态机与具体操作控制状态机的分离,使设计结构清晰,划分合理。降低了设计的复杂性,同时使系统更具有通用性。
3.1 高层工作模式主控状态机设计
该缓存系统有3种工作模式:写模式,读模式和数据重组帧模式。其状态转移图如图4所示。

系统在空闲状态等待SDRAM初始化完成,当SDRAM完成初始化以后进入准备状态,表示系统可以接收命令,在收到写命令后进入写工作模式,低层写辅助控制模块激活,当完成写操作命令后产生一写完成标志信号,反馈回主控系统促使主控系统完成状态跳转回到准备状态等待下一次命令,收到读取命令后系统进入读工作模式,低层读辅助控制模块开始工作当完成读取操作后产生一读完成标志信号,反馈回主控系统使其回到准备状态等待命令,同样系统收到数据重组帧命令后进人数据重组帧模式,低层重组帧辅助控制模块开始工作完成重组帧任务后产生标志信号控制主控状态机再次回到准备状态,等待下一次命令。
这种结构化状态机的设计,层次划分合理清晰,工作模式的切换只在主控状态机中实现,各低层辅助控制模块仅仅实现其特定的功能,完全没有交互。因此这种设计可以很方便地进行功能扩展,以后系统要增加新的工作模式,只需再加入一个状态,并单独设计其辅助控制模块即可,无需对原有工作模式进行改动。同时,这种分层设计符合模块化设计的思想,降低了设计的复杂性,易于调试。
3.2 低层写辅助控制模块的设计
写辅助控制模块用来实现对原始数据和第1次计算数据基于文件结构的存储。为了提高系统效率,第1次计算所需的数据和原始数据同时存储。其总体设计框图如图5所示。

返回列表