OpenCores
URL https://opencores.org/ocsvn/eco32/eco32/trunk

Subversion Repositories eco32

[/] [eco32/] [trunk/] [fpga/] [experiments/] [memctrl/] [sim/] [memctrl-0/] [memtest.v] - Blame information for rev 312

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 312 hellwig
//
2
// memtest.v -- test bench for memory controller
3
//
4
 
5
 
6
`include "ramtest/ramtest.v"
7
`include "ramctrl/ramctrl.v"
8
 
9
 
10
`timescale 1ns/10ps
11
`default_nettype none
12
 
13
 
14
module memtest;
15
 
16
  reg clk;                      // system clock
17
  reg rst_in;                   // reset, input
18
  reg rst;                      // system reset
19
 
20
  wire inst_stb;
21
  wire [25:0] inst_addr;
22
  wire [63:0] inst_to_cache;
23
  wire inst_ack;
24
  wire inst_timeout;
25
 
26
  wire data_stb;
27
  wire data_we;
28
  wire [25:0] data_addr;
29
  wire [63:0] data_to_mctrl;
30
  wire [63:0] data_to_cache;
31
  wire data_ack;
32
  wire data_timeout;
33
 
34
  wire test_ended;
35
  wire test_error;
36
 
37
  // simulation control
38
  initial begin
39
    #0          $timeformat(-9, 1, " ns", 12);
40
                $dumpfile("dump.vcd");
41
                $dumpvars(0, memtest);
42
                clk = 1;
43
                rst_in = 1;
44
    #23         rst_in = 0;
45
    #252400     $finish;
46
  end
47
 
48
  // clock generator
49
  always begin
50
    #5 clk = ~clk;              // 10 nsec cycle time
51
  end
52
 
53
  // reset synchronizer
54
  always @(posedge clk) begin
55
    rst <= rst_in;
56
  end
57
 
58
  ramctrl ramctrl_1(
59
    .clk(clk),
60
    .rst(rst),
61
    .inst_stb(inst_stb),
62
    .inst_addr(inst_addr[25:0]),
63
    .inst_dout(inst_to_cache[63:0]),
64
    .inst_ack(inst_ack),
65
    .inst_timeout(inst_timeout),
66
    .data_stb(data_stb),
67
    .data_we(data_we),
68
    .data_addr(data_addr[25:0]),
69
    .data_din(data_to_mctrl[63:0]),
70
    .data_dout(data_to_cache[63:0]),
71
    .data_ack(data_ack),
72
    .data_timeout(data_timeout)
73
  );
74
 
75
  ramtest ramtest_1(
76
    .clk(clk),
77
    .rst(rst),
78
    .inst_stb(inst_stb),
79
    .inst_addr(inst_addr[25:0]),
80
    .inst_din(inst_to_cache[63:0]),
81
    .inst_ack(inst_ack | inst_timeout),
82
    .data_stb(data_stb),
83
    .data_we(data_we),
84
    .data_addr(data_addr[25:0]),
85
    .data_dout(data_to_mctrl[63:0]),
86
    .data_din(data_to_cache[63:0]),
87
    .data_ack(data_ack | data_timeout),
88
    .test_ended(test_ended),
89
    .test_error(test_error)
90
  );
91
 
92
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.