Subversion Repositories zxusbnet

Rev

Rev 60 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
16 lvd 1
// ZXiznet project
2
// (c) NedoPC 2012
3
//
4
// test module for w5300
5
// tests whether transactions going for it are correct
6
 
7
module w5300
8
(
9
        input  wire       rst_n,
10
        input  wire [9:0] addr,
11
        input  wire       cs_n,
12
        input  wire       rd_n,
13
        input  wire       wr_n,
28 lvd 14
        output reg        int_n,
15
        inout  wire [7:0] d
16 lvd 16
);
17
 
18
 
19
        reg [9:0] access_addr;
20
        reg       access_rnw;
29 lvd 21
        reg [7:0] rd_data;
22
        reg [7:0] wr_data;
23
 
16 lvd 24
 
25
        wire rd = ~(cs_n|rd_n);
26
        wire wr = ~(cs_n|wr_n);
27
 
28
 
29
        initial
30
        begin
31
                int_n = 1'b1;
32
        end
33
 
34
 
35
 
36
        always @(negedge rd)
37
        begin
29 lvd 38
                access_addr <= addr;
39
                access_rnw  <= 1'b1;
16 lvd 40
        end
41
 
29 lvd 42
        assign d = rd ? rd_data : 8'bZZZZ_ZZZZ;
43
 
44
 
45
 
16 lvd 46
        always @(negedge wr)
47
        begin
29 lvd 48
                access_addr <= addr;
49
                access_rnw  <= 1'b0;
50
                wr_data     <= d;
16 lvd 51
        end
52
 
53
 
54
 
55
 
56
 
57
        task set_int_n
58
        (
59
                input new_int_n
60
        );
61
                int_n = new_int_n;
62
 
63
        endtask
64
 
65
 
66
 
67
        function get_rst_n;
68
 
69
                get_rst_n = rst_n;
70
 
71
        endfunction
72
 
30 lvd 73
 
74
        task init_access;
75
 
76
                access_addr = 'bX;
77
                access_rnw  = 'bX;
78
                wr_data     = 'bX;
79
 
80
        endtask
29 lvd 81
 
82
 
83
        function [9:0] get_addr;
84
 
85
                get_addr = access_addr;
86
 
87
        endfunction
88
 
89
 
90
        function get_rnw;
91
 
92
                get_rnw = access_rnw;
93
 
94
        endfunction
95
 
96
 
97
        function [7:0] get_wr_data;
98
 
99
                get_wr_data = wr_data;
100
 
101
        endfunction
102
 
103
 
104
        task set_rd_data( input [7:0] data );
105
 
106
                rd_data = data;
107
 
108
        endtask
16 lvd 109
 
110
 
111
 
29 lvd 112
 
16 lvd 113
endmodule
114