`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 19:03:00 09/16/2010 // Design Name: // Module Name: mem_tb // Project Name: // Target Devices: // Tool versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module mem_tb( ); wire [7:0] data_out; reg write; reg [3:0] addr; reg [7:0] memory_buffer [0:15]; // 16 entries 8 bit #'s reg [7:0] data_in; integer i; integer file; mem I0 (data_out, data_in, addr, write); initial begin $readmemh("memory_hex_in.txt", memory_buffer); //init memory_buff from file file = $fopen("memory_hex_out.txt"); //open a file for writing results #5 write = 0; addr =0; for (i=0; i<16; i = i+1) begin //write to mem #5 write = 0; data_in = memory_buffer[i]; addr= i; #5 write = 1; end #10 write = 0; for (i=0; i<16; i = i+1) begin //reading and writing to file #5 addr =i; $fstrobe(file,"%2H",data_out); end $fclose(file); end endmodule