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 sl811
5
// tests whether transactions going for it are correct
6
 
7
module sl811
8
(
9
        input  wire       rst_n,
10
        input  wire       a0,
11
        input  wire       cs_n,
12
        input  wire       rd_n,
13
        input  wire       wr_n,
14
        input  wire       ms,
28 lvd 15
        output reg        intrq,
16
        inout  wire [7:0] d
16 lvd 17
);
18
 
19
 
20
        reg       access_addr;
21
        reg       access_rnw;
29 lvd 22
        reg [7:0] wr_data;
23
        reg [7:0] rd_data;
16 lvd 24
 
25
        wire rd = ~(cs_n|rd_n);
26
        wire wr = ~(cs_n|wr_n);
27
 
28
 
29
        initial
30
        begin
31
                intrq = 1'b0;
32
        end
33
 
34
 
35
 
36
        always @(negedge rd)
37
        begin
29 lvd 38
                access_addr <= a0;
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 <= a0;
49
                access_rnw  <= 1'b0;
50
                wr_data     <= d;
16 lvd 51
        end
52
 
53
 
54
 
55
 
56
 
57
        task set_intrq
58
        (
59
                input new_intrq
60
        );
61
                intrq = new_intrq;
62
 
63
        endtask
29 lvd 64
 
16 lvd 65
 
66
        function get_rst_n;
67
 
68
                get_rst_n = rst_n;
69
 
70
        endfunction
71
 
72
 
73
        function get_ms;
74
 
75
                get_ms = ms;
76
 
77
        endfunction
78
 
29 lvd 79
 
80
        function get_addr;
81
 
82
                get_addr = access_addr;
83
 
84
        endfunction
85
 
86
 
87
        function get_rnw;
88
 
89
                get_rnw = access_rnw;
90
 
91
        endfunction
92
 
93
 
94
        function [7:0] get_wr_data;
95
 
96
                get_wr_data = wr_data;
97
 
98
        endfunction
99
 
100
 
101
        task set_rd_data( input [7:0] data );
102
 
103
                rd_data = data;
104
 
105
        endtask
106
 
107
 
16 lvd 108
 
109
 
110
endmodule
111