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

Subversion Repositories i8255

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

Go to most recent revision | 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
                pause<=0;
74
                ncs <= 1;
75
                nrd <= 1;
76
                nwr <= 1;
77
                addr <= 2'b11;
78
                oflag<=0;
79
                newval<=0;
80
                step<=6;
81
                resetret<=0;
82
                writeret<=0;
83
                #10 $finish();
84
 
85
                // Add stimulus here
86
 
87
        end
88
        assign data=(oflag)?newval:8'bz;
89
        assign pa=(pae)?wrtport:8'bz;
90
        assign pch=(pche)?wrtport[7:4]:8'bz;
91
 
92
        always @(posedge clk) begin
93
                if (reset==1) begin
94
                        ncs<=0;
95
                        reset<=0; //#2
96
                        end
97
                else begin
98
                        case (step)
99
                                0: begin
100
                                        newval<=8'b10000000; //#4
101
                                        oflag<=1;
102
                                        step<=33;
103
                                        resetret<=2;
104
                                        writeret<=32;
105
                                        ncs<=0;
106
                                        end
107
                                2: begin
108
                                   newval<=8'h35; //#10
109
                                        oflag<=1;
110
                                        addr<=0;
111
                                        step<=33;
112
                                        resetret<=3;
113
                                        writeret<=32;
114
                                        end
115
                                3: begin
116
                                   newval=8'h0;
117
                                        nrd=1;
118
                                        nwr=1;
119
                                        step=4;
120
                                        end
121
                                4: begin
122
                                        newval=8'b10100000;
123
                                        addr=2;
124
                                        nrd=1;
125
                                        nwr=0;
126
                                        step=5;
127
                                        end
128
                                6: begin
129
                                        newval=8'b10010000; //a-output, c -input //#4
130
                                        addr=3;
131
                                        oflag=1;
132
                                        pae=0;
133
                                        step=33;
134
                                        resetret=7;
135
                                        writeret=32;
136
                                        end
137
                                7: begin
138
                                        wrtport=8'b11010000; //#10
139
                                        pae=1;
140
                                        //pche=1;
141
                                        oflag=0;
142
                                        addr=0;
143
                                        nrd=0;
144
                                        nwr=1;
145
                                        step=32;
146
                                        resetret=8;
147
                                        end
148
                                8: begin
149
                                        newval=8'b10100000;
150
                                        //pae=0;
151
                                        pche=1;
152
                                        oflag=1;
153
                                        addr=0;
154
                                        nrd=1;
155
                                        nwr=0;
156
                                        step=10;
157
                                        end
158
                                9: begin
159
                                        pae=0;
160
                                        addr=0;
161
                                        nrd=0;
162
                                        nwr=1;
163
                                        step=10;
164
                                        end
165
                                32: begin
166
                                        oflag=0;
167
                                        nrd=1;
168
                                        nwr=1;
169
                                        step=resetret;
170
                                        end
171
                                33: begin //write routine
172
                                        nwr=0;
173
                                        nrd=1;
174
                                        step=writeret;
175
                                        end
176
 
177
                        endcase
178
                        end
179
                end
180
 
181
 
182
endmodule
183
 

powered by: WebSVN 2.1.0

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