1
练习十二 利用 SRAM 设计一个 FIFO
//-------------------------------- 文件名:t.v --------------------
`define FIFO_SIZE 8
`include “sram.v” // 有的仿真工具不需要加这句, 只要 sram.v 模块编译过就可以了
`timescale 1ns/1ns
module t;
reg [7:0] in_data; //FIFO 数据总线
reg fiford,fifowr; //FIFO 控制信号
wire[7:0] out_data;
wire nfull, nempty; //FIFO 状态信号
reg clk,rst;
wire[7:0] sram_data; //SRAM 数据总线
wire[10:0] address; //SRAM 的地址总线
wire rd,wr; //SRAM 读写控制信号
reg [7:0] data_buf[`FIFO_SIZE:0]; //数据缓存,用于结果检查
integer index; //用于读写 data_buf 的指针
//系统时钟
initial clk=0;
always #25 clk=~clk;
//测试激励序列
initial
begin
fiford=1;
fifowr=1;
rst=1;
#40 rst=0;
#42 rst=1;
if (nempty) $display($time,"Error: FIFO be empty, nempty should be low.");
//------------连续写 FIFO -------
index = 0;
repeat(`FIFO_SIZE)
begin