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

Subversion Repositories i8255

[/] [i8255/] [tsti8255.v] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 Malasar
`timescale 1ns / 1ps
2
 
3
////////////////////////////////////////////////////////////////////////////////
4
// Company: 
5
// Engineer:
6
//
7
// Create Date:   00:16:54 11/16/2009
8
// Design Name:   i8255
9
// Module Name:   /home/malasar/projects/fpga/i8080/tsti8255.v
10
// Project Name:  i8080
11
// Target Device:  
12
// Tool versions:  
13
// Description: 
14
//
15
// Verilog Test Fixture created by ISE for module: i8255
16
//
17
// Dependencies:
18
// 
19
// Revision:
20
// Revision 0.01 - File Created
21
// Additional Comments:
22
// 
23
////////////////////////////////////////////////////////////////////////////////
24
 
25
 
26
module tsti8255;
27
 
28
        // Inputs
29
        reg reset;
30
        reg ncs;
31
        reg nrd;
32
        reg nwr;
33
        reg [1:0] addr;
34
        // Bidirs
35
        wire [7:0] data;
36
        wire [7:0] pa;
37
        reg pae;
38
        wire [7:0] pb;
39
        reg pbe;
40
        wire [3:0] pch;
41
        reg pche;
42
        wire [3:0] pcl;
43
        reg pcle;
44
        wire clk;
45
        reg oflag;
46
        reg pause;
47
        reg [7:0] newval;
48
        reg [7:0] step;
49
        reg [7:0] wrtport;
50
        reg [7:0] resetret;
51
        reg [7:0] writeret;
52
   clck clk1(clk);
53
        // Instantiate the Unit Under Test (UUT)
54
        i8255 uut (
55
                .data(data),
56
                .reset(reset),
57
                .ncs(ncs),
58
                .nrd(nrd),
59
                .nwr(nwr),
60
                .addr(addr),
61
                .pa(pa),
62
                .pb(pb),
63
                .pch(pch),
64
                .pcl(pcl)
65
        );
66
 
67
        initial begin
68
                // Initialize Inputs
69
                reset <= 1;
70
                pae<=0;
71
                pche<=0;
72
                wrtport<=0;
73
                ncs <= 1;
74
                nrd <= 1;
75
                nwr <= 1;
76
                addr <= 2'b11;
77
                oflag<=0;
78
                newval<=0;
79
                step<=6;
80
                resetret<=0;
81
                writeret<=0;
82
                #10 $finish();
83
 
84
                // Add stimulus here
85
 
86
        end
87
        assign data=(oflag)?newval:8'bz;
88
        assign pa=(pae)?wrtport:8'bz;
89
        assign pch=(pche)?wrtport[7:4]:8'bz;
90
 
91
        always @(posedge clk) begin
92
                if (reset==1) begin
93
                        ncs<=0;
94
                        reset<=0; //#2
95
                        end
96
                else begin
97
                        case (step)
98
                                0: begin
99
                                        newval<=8'b10000000; //#4
100
                                        oflag<=1;
101
                                        step<=33;
102
                                        resetret<=2;
103
                                        writeret<=32;
104
                                        ncs<=0;
105
                                        end
106
                                2: begin
107
                                   newval<=8'h35; //#10
108
                                        oflag<=1;
109
                                        addr<=0;
110
                                        step<=33;
111
                                        resetret<=3;
112
                                        writeret<=32;
113
                                        end
114
                                3: begin
115 3 Malasar
                                   newval<=8'h0;
116
                                        nrd<=1;
117
                                        nwr<=1;
118
                                        step<=4;
119 2 Malasar
                                        end
120
                                4: begin
121 3 Malasar
                                        newval<=8'b10100000;
122
                                        addr<=2;
123
                                        nrd<=1;
124
                                        nwr<=0;
125
                                        step<=5;
126 2 Malasar
                                        end
127
                                6: begin
128 3 Malasar
                                        newval<=8'b10010000; //a-output, c -input //#4
129
                                        addr<=3;
130
                                        oflag<=1;
131
                                        pae<=0;
132
                                        step<=33;
133
                                        resetret<=7;
134
                                        writeret<=32;
135 2 Malasar
                                        end
136
                                7: begin
137 3 Malasar
                                        wrtport<=8'b11010000; //#10
138
                                        pae<=1;
139 2 Malasar
                                        //pche=1;
140 3 Malasar
                                        oflag<=0;
141
                                        addr<=0;
142
                                        nrd<=0;
143
                                        nwr<=1;
144
                                        step<=32;
145
                                        resetret<=8;
146 2 Malasar
                                        end
147
                                8: begin
148 3 Malasar
                                        newval<=8'b10100000;
149 2 Malasar
                                        //pae=0;
150 3 Malasar
                                        pche<=1;
151
                                        oflag<=1;
152
                                        addr<=0;
153
                                        nrd<=1;
154
                                        nwr<=0;
155
                                        step<=10;
156 2 Malasar
                                        end
157
                                9: begin
158 3 Malasar
                                        pae<=0;
159
                                        addr<=0;
160
                                        nrd<=0;
161
                                        nwr<=1;
162
                                        step<=10;
163 2 Malasar
                                        end
164 3 Malasar
                                32: begin //reset step
165
                                        oflag<=0;
166
                                        nrd<=1;
167
                                        nwr<=1;
168
                                        step<=resetret;
169 2 Malasar
                                        end
170
                                33: begin //write routine
171 3 Malasar
                                        nwr<=0;
172
                                        nrd<=1;
173
                                        step<=writeret;
174 2 Malasar
                                        end
175
 
176
                        endcase
177
                        end
178
                end
179
 
180
 
181
endmodule
182
 

powered by: WebSVN 2.1.0

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