里将主要讨论以Xilinx公司的 FPGA(XC2S600E-6fg456)和ISSI公司的SRAM(IS61LV25616AL)为主要器件来完成大容量数据存储的设计思路。
有限的,当需进行大容量数据存储时这有限的RAM块是远远不能满足系统设计要求的。此时,就需要将FPGA与外部RAM相结合完成大容量数据存储。具体硬件电路如图一所示:


图四 RAM写操作时序
图五 RAM读操作时序
以下是一段用VHDL语言描述的控制RAM的读写操作时序的程序代码:
OE_SRAM<=LOWLEVEL;
CE_SRAM<=LOWLEVEL;
when 0 => addr_SRAM<=temp_addr_SRAM; --WRITE to SRAM
data_SRAM<=data_in;
WE_SRAM<='1';
LB_SRAM<='1';
UB_SRAM<='1';
when 1 => WE_SRAM<='0';
LB_SRAM<='0';
UB_SRAM<='0';
when 2 => WE_SRAM<='1';
LB_SRAM<='1';
UB_SRAM<='1';
when 3 => WE_SRAM<='1'; --READ from SRAM
LB_SRAM<='0';
UB_SRAM<='0';
data_SRAM<=b"ZZ_ZZZZ_ZZZZ_ZZZZ_ZZZZ"; --给数据线上送高阻
addr_SRAM<=temp_addr_SRAM;
when 4 => data_out <=data_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导航接收机的信号处理中。实验证明,此设计可靠稳定地完成了大容量高速异步数据存储,进一步提高了系统的性能。

数字平板电视持续增长,可望2008年在全球的电视市场取得超过50%的份额。平板电视(包括...

如今的电子设备中所包含的软件代码量动辄达到数百万行。用不了几年,设备软件代码量又...

血压是人体重要的生理参数之一,对其进行精确测量,有利于早期发现和鉴别高血压类型,...

黄氏兄弟初到北京时物色下的珠市口的那家两层小店,本是一家国营服装厂的门市部,名叫...

HAND(汉德)系列产品作为国内领先产品,将工业市场现场仪器、仪表产品技术含量提高到...