新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA与外部SRAM的大容量数据存储

基于FPGA与外部SRAM的大容量数据存储

作者: 时间:2012-01-19 来源:网络 收藏

3.3 控制逻辑电路设计

  如图三所示,控制逻辑由来实现。主要包括读地址产生器、写地址产生器、读写时钟信号产生器及读写控制等几部分。下面分别加以讲述。

  

基于FPGA与外部SRAM的大容量数据存储

  (1)写地址产生器:由于设计时采用256K×16的,故有18位地址,写地址产生器用18位计数器实现。靠外部时钟驱动,每进行一次写操作后,读写控制单元产生计数脉冲,使其增1,直到18位计数器计满再循环写入地址为0的空间。

  (2)读地址产生器同上,也采用18位计数器实现,根据系统要求,每隔一定的采样周期将读地址指针偏移一定偏移量,并从该位置读取数据。

  (3)读写地址选择器由于读写地址复用管脚,因此在读写操作时,必须选通相应的地址。这就需要由控制芯片上的等控制信号来对进行读写的操作。

  (4)此外,由于读写之间的切换,数据线上的数据在切换瞬间如不加处理会出现混乱现象。因此,为避免读、写操作发生冲突,数据线呈三种状态,读数据、写数据及高阻态。在从写到读的过程中需给数据线上送高阻态。

  

基于FPGA与外部SRAM的大容量数据存储

  (5)当需要对进行写操作时,由控制产生写地址选通信号,该选通信号为一单脉冲形式,如图四中该脉冲下降沿触发SRAM,告知开始对RAM进行写操作,使FPGA输出写地址,同时给数据线上送数据。在写操作期间,片选信号始终保持低电平,而写地址选通信号上升沿到来时使写地址计数器增1。以此类推,通过写地址选通信号高低电平变化完成对数据依次写入。需要注意的是,地址线和数据线在为高时可同时赋新值,但只有在变低后赋予数据线上的新值才有效。

  

基于FPGA与外部SRAM的大容量数据存储

  对SRAM进行读操作相对较简单,在进行读操作期间,始终为低电平,始终为高电平。每进行一次读操作,地址按系统要求变化一次。同时注意,地址的变化时刻总要先于数据的变化时刻。图五为RAM读操作时序。

  以下是一段用VHDL语言描述的控制RAM的读写操作时序的程序代码:

  

基于FPGA与外部SRAM的大容量数据存储

  程序中,在进行读写操作时,片选使能信号CE_SRAM及输出使能信号OE_SRAM始终为低电平。

  第0时刻到第2时刻在进行写操作:第0时刻地址线addr_SRAM和数据线data_SRAM同时赋新值,控制线WE_SRAM、LB_SRAM、UB_SRAM要经历一个窄脉冲的变化过程,RAM在获取到此控制线下降沿信息后,便知开始进行写操作。需要注意的是,虽然数据在第0时刻已赋到数据线上,但因为写操作是控制线低电平有效,所以数据线上真正发生数据更新是在控制线变为低电平之后,因此,数据线上的实际更新时刻是在第2个时刻。

  第3、4状态是进行读操作:在读写转换时刻,也就是在第3时刻如前所述需给数据线上送高阻态。这样,读取数据的时序关系由系统时钟进行控制,在第3时刻给地址线上送要读取的地址,第4时刻将数据端口上的数据送出。这里需注意的是,读取数据要比读取地址晚一个时刻。从而,完成了对外部RAM的读写操作控制。

  4结论

  该系统已应用在罗兰—c导航接收机的信号处理中。实验证明,此设计可靠稳定地完成了大容量高速异步数据存储,进一步提高了系统的性能。


上一页 1 2 下一页

关键词: FPGA SRAM

评论


相关推荐

技术专区

关闭