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

Subversion Repositories eco32

[/] [eco32/] [trunk/] [fpga/] [experiments/] [memctrl/] [fpga/] [memctrl-1/] [src/] [toplevel/] [memtest.v] - Blame information for rev 318

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 318 hellwig
//
2
// memtest.v -- top-level for memory test
3
//
4
 
5
 
6
`timescale 1ns/10ps
7
`default_nettype none
8
 
9
 
10
module memtest(clk_in,
11
               rst_inout_n,
12
               sdram_clk,
13
               sdram_fb,
14
               sdram_cke,
15
               sdram_cs_n,
16
               sdram_ras_n,
17
               sdram_cas_n,
18
               sdram_we_n,
19
               sdram_ba,
20
               sdram_a,
21
               sdram_udqm,
22
               sdram_ldqm,
23
               sdram_dq,
24
               ssl);
25
 
26
    // clock and reset
27
    input clk_in;
28
    inout rst_inout_n;
29
    // SDRAM
30
    output sdram_clk;
31
    input sdram_fb;
32
    output sdram_cke;
33
    output sdram_cs_n;
34
    output sdram_ras_n;
35
    output sdram_cas_n;
36
    output sdram_we_n;
37
    output [1:0] sdram_ba;
38
    output [12:0] sdram_a;
39
    output sdram_udqm;
40
    output sdram_ldqm;
41
    inout [15:0] sdram_dq;
42
    // 7 segment LED output
43
    output [6:0] ssl;
44
 
45
  // clk_rst
46
  wire clk_ok;
47
  wire clk;
48
  wire rst;
49
  // ramctrl
50
  wire inst_stb;
51
  wire [25:0] inst_addr;
52
  wire [63:0] inst_to_test;
53
  wire inst_ack;
54
  wire inst_timeout;
55
  wire data_stb;
56
  wire data_we;
57
  wire [25:0] data_addr;
58
  wire [63:0] data_to_ram;
59
  wire [63:0] data_to_test;
60
  wire data_ack;
61
  wire data_timeout;
62
  // ramtest
63
  wire test_ended;
64
  wire test_error;
65
  reg [25:0] heartbeat;
66
 
67
  //
68
  // module instances
69
  //
70
 
71
  clk_rst clk_rst_1(
72
    .clk_in(clk_in),
73
    .rst_inout_n(rst_inout_n),
74
    .sdram_clk(sdram_clk),
75
    .sdram_fb(sdram_fb),
76
    .clk_ok(clk_ok),
77
    .clk(clk),
78
    .rst(rst)
79
  );
80
 
81
  ramctrl ramctrl_1(
82
    .clk_ok(clk_ok),
83
    .clk(clk),
84
    .inst_stb(inst_stb),
85
    .inst_addr({ test_ended ^ inst_addr[25], inst_addr[24:0] }),
86
    .inst_dout(inst_to_test[63:0]),
87
    .inst_ack(inst_ack),
88
    .inst_timeout(inst_timeout),
89
    .data_stb(data_stb),
90
    .data_we(data_we),
91
    .data_addr({ test_ended ^ data_addr[25], data_addr[24:0] }),
92
    .data_din(data_to_ram[63:0]),
93
    .data_dout(data_to_test[63:0]),
94
    .data_ack(data_ack),
95
    .data_timeout(data_timeout),
96
    .sdram_cke(sdram_cke),
97
    .sdram_cs_n(sdram_cs_n),
98
    .sdram_ras_n(sdram_ras_n),
99
    .sdram_cas_n(sdram_cas_n),
100
    .sdram_we_n(sdram_we_n),
101
    .sdram_ba(sdram_ba[1:0]),
102
    .sdram_a(sdram_a[12:0]),
103
    .sdram_udqm(sdram_udqm),
104
    .sdram_ldqm(sdram_ldqm),
105
    .sdram_dq(sdram_dq[15:0])
106
  );
107
 
108
  ramtest ramtest_1(
109
    .clk(clk),
110
    .rst(rst),
111
    .inst_stb(inst_stb),
112
    .inst_addr(inst_addr[25:0]),
113
    .inst_din(inst_to_test[63:0]),
114
    .inst_ack(inst_ack | inst_timeout),
115
    .data_stb(data_stb),
116
    .data_we(data_we),
117
    .data_addr(data_addr[25:0]),
118
    .data_dout(data_to_ram[63:0]),
119
    .data_din(data_to_test[63:0]),
120
    .data_ack(data_ack | data_timeout),
121
    .test_ended(test_ended),
122
    .test_error(test_error)
123
  );
124
 
125
  always @(posedge clk) begin
126
    heartbeat <= heartbeat + 1;
127
  end
128
 
129
  assign ssl[0] = heartbeat[25];
130
  assign ssl[1] = clk_ok;
131
  assign ssl[2] = rst;
132
  assign ssl[3] = 0;
133
  assign ssl[4] = test_ended;
134
  assign ssl[5] = test_error;
135
  assign ssl[6] = 0;
136
 
137
endmodule

powered by: WebSVN 2.1.0

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