一种基于异步先进先出的SDRAM缓存器的制作方法

文档序号:12801466阅读:255来源:国知局
一种基于异步先进先出的SDRAM缓存器的制作方法与工艺

本发明涉及测控技术领域,尤其涉及一种基于异步先进先出的sdram缓存器。



背景技术:

大容量数据采集与存储系统在工业自动化生产、国防和军事监控及环境监测等方面被广泛应用。为了能够完整、准确地捕获到各种信号或者故障发生时的特征信号,需要对其进行状态监测,并且要求监测系统具备长时间连续采集和存储的功能。但是为了支持系统中大量高速数据的暂时存储,这就需要很大的中间缓存。

在工业测控的实际应用中,数据采集模块需要将现场采集到的信号及时传送到上位机。上位机处理数据的速率关键在于数据传输到上位机的速率,此时需要将采集到得数据进行缓存以及dma(directmemoryaccess,直接内存存取)传输。然而由于数据量太大,普通fifo容量有限,不能实现大批量数据的缓存。,而专用的高速fifo芯片价格昂贵且容量受限,大大增加了商业成本。而ddrii存储芯片容量大,存储速率高,但是工业级存储颗粒价格昂贵,并且需要stratix系列fpga芯片,使得存储芯片和逻辑控制芯片价格比较高。

因此在实际应用中寻找可靠的、低成本的高速数据缓存器是很有必要的。



技术实现要素:

本发明所要解决的技术问题在于提供一种基于异步先进先出的sdram(synchronousdynamicrandomaccessmemory,同步动态随机存储器)缓存器,用以解决现有技术中大批量数据的缓存问题。

依据本发明的一方面,提供一种基于异步先进先出的sdram缓存器,其特征在于,包括写入fifo、存储管理控制器、读出fifo以及两个sdram:其中,

所述写入fifo,用于缓存数据采集系统采集到的数据;

所述存储管理控制器,用于将所述写入fifo的数据读出后,写入到所述两个sdram中:当所述写入fifo的数据为32位时,将数据的高比特位缓存至一sdram中,低比特位缓存至另一sdram中;当所述写入fifo的数据为16位时,将数据缓存至一sdram后,再将数据缓存至另一sdram中;以及,用于从所述两个sdram中读出数据,并将读出的数据写入到所述读出fifo;

所述读出fifo,用于缓存所述存储管理控制器写入的数据,并将数据传输至上位机。

优选地,所述存储管理控制器的输出接口包括写时钟、写入数据、写满、写入数据量、读时钟、读空以及读数据存量。

优选地,所述存储管理控制器包括主控制状态机模块、译码模块、数据通路模块;其中,

所述主状态机模块用于控制对两个sdram的操作状态,实现大量数据的写入与读出;所述译码模块用于对所述主状态机模块的状态进行译码,为两个sdram配置输入命令以及操作地址;所述数据通路模块用于在所述主状态机模块的写命令下,从所述写入fif0读出的数据,并将读出的数据赋值给两个sdram;在所述主状态机模块的读命令下,从两个sdram读取数据,然后输出到所述读出fif0中。

优选地,所述两个sdram采用的芯片型号为mt48lc32m16a2。

本发明具有以下技术效果:

本发明所提供的基于异步先进先出的sdram缓存器,数据采集系统采集到数据后将数据写入到写入fifo中,存储管理控制器将写入fifo的数据缓存至两个sdram后,并通过读出fifo缓存两个sdram读出的数据,将数据传 输到上位机。本发明具有价格便宜、使用方便、电路设计简单的特点,通过本发明可以有效解决在实际应用中,大量数据的缓存问题。此外,本发明的sdram缓存器的对外接口与普通fifo接口相同,对于用户使用简单易懂,容易上手。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中sdram缓存器的应用系统整体结构图;

图2为本发明实施例中sdram缓存器的原理图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,本发明所提供的一种基于异步先进先出的sdram控制器,包括存储管理控制器、写fifo、读fifo以及两片sdram。其中,写入fifo,用于写入数据采集模块采集到的数据;存储管理控制器,用于将写入fifo的数据读出后,写入到两个sdram中,并将两个sdram数据读出后写入到读出fifo中;读出fifo,用于将存储管理控制器写入的数据传输至上位机。

进一步地,当数据采集模块采集到的数据源为32位,则缓存器的深度大小 为deepth[24:0](0-1ffffff),deepth[49:25]配置sdram-1的地址接口,deepth[24:0]分别配置sdram-0的地址接口。存储管理控制器将源数据的高16位缓存在sdram-1中,低16位缓存在sdram-0中。而当数据采集系统采集的数据源为16位,则缓存器的深度大小为deepth[49:0](0-3ffffffffffff),deepth[49:25]配置给sdram-1地址接口,deepth[24:0]配置给sdram-0地址接口。源数据首先写入sdram-0中,然后写入sdram-1中,这样缓存器的存储深度增加一倍。

具体地,存储管理控制器用于数据流控制与sdram操作的状态机控制。存储管理控制器的输出接口包含写时钟(wr_clk)、写入数据(data[31:0]),写满(wr_full0,wr_full1)、写入数据量(wr_usedw[25:0])、读时钟(rd_clk)、读空(rd_empty0,rd_empty1)、读数据存量(rd_usedw[25:0])。经过此设计后的存储管理控制器方便易懂,操作简单。

进一步地,存储管理控制器包括主控制状态机模块、译码模块、数据通路模块。其中,主状态机模块用于控制对sdram的操作状态,实现大量数据的写入与读出;译码模块用于将主状态机模块的状态命令进行译码后,向两个sdram配置操作命令以及操作地址;数据通路模块用于完成读写数据的传送,在写命令下,将从写入fifo读出的数据赋值给两个sdram;在读命令下,将从两个sdram读取数据,然后输出到读出fifo中。

主控制状态机模块针对两个sdram的操作包括两部分:两个sdram上电后初始化和sdram的读写操作。其中,sdram上电后初始化包括:

1)i_idle:空闲状态,上电后等待至少100s后进入预充电状态i一precharge;

2)i_precharge:预充电完成后进入等待状态i_trp,等待后,状态机跳入刷新状态i_autorefresh,之后进入等待状态i_trfc,等待后,跳转到配置模式寄存器状态i_lmrs,此状态完成突发类型,突发大小等配置信息;之后状态机跳入i_tmrd等待后,初始化完成,进入读写操作。

进一步地,sdram的读写操作的过程包括如下:

1)s_idle:空闲状态,状态机在该状态首先检测自动刷新信号是否有效,刷新信号有效,状态机跳转到s_refresh;刷新信号无效状态机跳转到s—active;

2)s_refresh:该状态对sdram进行刷新,然后状态机自动跳回到空闲状态s_idle;

3)s_active:该状态完成激活指定bank的指定行,状态机自动跳转到s_trcd;

4)s_trcd:进入该状态后等待后,判断读写使能信号,当写入使能信号有效时,状态机跳入s_write;当读出使能信号有效时,状态机跳入s_read;

5)s_wrlte:进行写sdram操作,该状态自动跳转到s_wr_cnt;

6)s_wr_cnt:该状态针对一次写入的数据量计数,该设计中bl=8,因此计数器等于7的时候跳转到s_precharge;

7)s_read:进行读sdram操作,状态机自动跳转到s_cl;

8)s_cl:该状态等待cl个时钟周期后,状态机s_rd_cnt;

9)s_rd_cnt:该状态针对一次读出的数据量计数,该设计中bl=8,因此计数器等于7的时候跳转到s_precharge;

10)s_precharge:对sdram进行预充电,预充电结束后自动跳转到s_trp;

11)s_trp:等待后自动跳转到s_idle。开始下一次刷新或者读写操作。

本发明中sdram优选采用镁光公司16bits分辨率双颗粒512mb的sdram,单个sdram颗粒可以实现每个通道32m×16bits的数据缓存,双颗粒可以实现每通道64m×16bits的数据缓存。具体地,优选选择镁光公司芯片型号为:mt48lc32m16a2,8m×16bits×4bank,时钟为100mhz。每个bank存储单元按照行和列寻址实现存储,读写方式均是按照突发方式,针对sdram的操作通过命令实现,支持的有效命令主要包括:禁止指令(command inhibit)、空指令(nop)、配置模式寄存器(lmr)、行激活指令(active)、读指令(read)、写指令(write)、预充电指令(precharge)、突发终止指令(burstterminate)、自动刷新指令(autorefresh)、自刷新指令(selfrefresh)。针对sdram的控制逻辑通过存储管理控制器中的状态机控制发出指令完成存储功能。

综上所述,本发明所提供的基于异步先进先出的sdram缓存器,数据采集模块采集到数据后将数据写入到写入fifo,存储管理控制器将写入写入fifo的数据缓存至两个sdram后,并通过读出fifo从两个sdram读出数据,而后通过dma控制器将数据传输到上位机。本发明具有价格便宜、使用方便、电路设计简单的优点,通过本发明可以有效解决在实际应用中,大量数据的缓存问题。另外,本发明中的sdram缓存器的对外接口与普通fifo接口相同,对于用户使用简单易懂,容易上手。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。

虽然通过实施例描述了本申请,本领域的技术人员知道,本申请有许多变形和变化而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1