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

Subversion Repositories spacewire

[/] [spacewire/] [trunk/] [tb/] [tb_Transmitter.tf] - Blame information for rev 27

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 btltz
// F:\XILINX\MY-PROJECTS\SPACEWIRE_1355
2
// Verilog Test fixture created by
3
// HDL Bencher 6.1i
4
// Mon Apr 04 15:29:02 2005
5
//
6
// Notes:
7
//  1) This test fixture has been automatically generated from
8
//   your Test Bench Waveform
9
//  2) Modified by btltz
10
//
11
 
12
`timescale 1ns/1ns
13
 
14
module tb_transmitter;
15
        wire Do;
16
        wire So;
17
        wire err_crd_o;
18
        wire C_SEND_FCT_o;
19
        wire [6:0] STATE_O;
20
        wire [5:0] CRD_CNT_O;
21
        wire rdbuf_o;
22
 
23
        reg EnTx;
24
        reg gotFCT_i;
25
        reg empty_i;
26
        reg type_i;
27
        reg nedsFCT_i;
28
        reg [7:0] TxData_i;
29
        reg TICK_IN;
30
        reg [1:0] CtrlFlg_i;
31
        reg [5:0] TIMEin;
32
        reg [5:0] state_i;
33
        reg reset;
34
        reg gclk;
35
        reg GSR;        //Global signal, this was added automatically
36
 
37
        assign glbl.GSR = GSR;
38
         /*
39
        defparam UUT.PaseW = 14;
40
        defparam UUT.True = 1;
41
        defparam UUT.False = 0;
42
        defparam UUT.FCT = 1;
43
        defparam UUT.ESC = 7;
44
        defparam UUT.EOP = 5;
45
        defparam UUT.EEP = 3;
46
        defparam UUT.NULL = 23;
47
        defparam UUT.TIME_PATTERN = 15;
48
        defparam UUT.StateNum = 7;
49
        defparam UUT.RESET = 1;
50
        defparam UUT.SEND_NULL = 2;
51
        defparam UUT.SEND_FCT = 4;
52
        defparam UUT.SEND_DATA = 8;
53
        defparam UUT.SEND_EOP = 16;
54
        defparam UUT.SEND_EEP = 32;
55
        defparam UUT.SEND_TIME = 64;
56
        defparam UUT.DEFLT = 0;
57
        defparam UUT.CntW = 10;
58
        defparam UUT.gFreq = 80;
59
        defparam UUT.RQ = 10;
60
        defparam UUT.divNum = 7;         */
61
 
62
        Transmitter UUTinternal (
63
                .Do(Do),
64
                .So(So),
65
                .err_crd_o(err_crd_o),
66
                .gotFCT_i(gotFCT_i),
67
                .C_SEND_FCT_o(C_SEND_FCT_o),
68
                .EnTx(EnTx),
69
                .rdbuf_o(rdbuf_o),
70
                .empty_i(empty_i),
71
                .type_i(type_i),
72
                .TxData_i(TxData_i),
73
                .TICK_IN(TICK_IN),
74
                .CtrlFlg_i(CtrlFlg_i),
75
                .nedsFCT_i(nedsFCT_i),
76
                .TIMEin(TIMEin),
77
                .STATE_O(STATE_O),
78
           .CRD_CNT_O(CRD_CNT_O),
79
                .state_i(state_i),
80
                .reset(reset),
81
                .gclk(gclk)
82
        );
83
 
84
        integer TX_FILE;
85
        integer TX_ERROR;
86
 
87
always
88
begin                   //clock process
89
        gclk = 1'b0;
90
        #4
91
        gclk = 1'b1;
92
        #20
93
        #30
94
        gclk = 1'b0;
95
        #46
96
        gclk = 1'b0;
97
end
98
 
99
initial
100
begin
101
        GSR = 1;
102
        #100 GSR = 0;
103
end
104
 
105
initial
106
begin
107
        TX_ERROR=0;
108
        TX_FILE=$fopen("results.txt");
109
 
110
        // --------------------
111
        gotFCT_i = 1'b0;
112
        EnTx = 1'b0;
113
        empty_i = 1'b0;
114
        type_i = 1'b0;
115
        TxData_i = 8'b00000000; //0
116
        TICK_IN = 1'b0;
117
        CtrlFlg_i = 2'b00; //0
118
        TIMEin = 6'b000000; //0
119
        state_i = 6'b000000; //0
120
        reset = 1'b1;
121
        // --------------------
122
        #100 // Time=100 ns
123
        state_i = 6'b000001; //1
124
        // --------------------
125
        #200 // Time=300 ns
126
        EnTx = 1'b1;
127
        TIMEin = 6'b000000; //0
128
        // --------------------
129
        #600 // Time=900 ns
130
        TIMEin = 6'b000001; //1
131
        // --------------------
132
        #200 // Time=1100 ns
133
        state_i = 6'b000010; //2
134
        // --------------------
135
        #400 // Time=1500 ns
136
        TIMEin = 6'b000010; //2
137
        //////////////////////////// State == Ready ////////////////////
138
        #600 // Time=2100 ns
139
        TIMEin = 6'b000011; //3
140
        reset = 1'b0;
141
        state_i = 6'b000100; //4
142
        nedsFCT_i = 1;
143
        // --------------------
144
        #600 // Time=2700 ns
145
        TIMEin = 6'b000100; //4
146
        // --------------------
147
        ////////////////////////// state==Started & send NULLs///////////////////////
148
        #400 // Time=3100 ns
149
        state_i = 6'b001000; //8
150
        // --------------------
151
        #20000 // Time=3300 ns
152
        TIMEin = 6'b000101; //5
153
        // --------------------
154
        #20000 // Time=3900 ns
155
        TIMEin = 6'b000110; //6
156
        // --------------------
157
        ////////////////////////// state==Connecting & waiting for a FCT /////////////
158
        #4000 // Time=4100 ns
159
        state_i = 6'b010000; //10
160
        // --------------------
161
        #30000 // Time=4500 ns
162
        TIMEin = 6'b000111; //7
163
        nedsFCT_i = 1'b0;
164
        // --------------------
165
        #20000
166
        TIMEin = 6'b001001; //9
167
        // --------------------
168
        #2000 // Time=5900 ns
169
        gotFCT_i = 1'b1;
170
        // --------------------
171
        #100 // Time=6000 ns
172
        gotFCT_i = 1'b0;
173
        /////////////////////////////State = Run //////////////////////////////
174
        TxData_i = 8'b01010110; //56
175
        state_i = 6'b100000;
176
        // --------------------
177
        #4000
178
        TIMEin = 6'b001010; //A
179
        // --------------------
180
        #6000 // Time=6900 ns
181
        TIMEin = 6'b001011; //B
182
        // --------------------
183
        #2000 // Time=7100 ns
184
        TxData_i = 8'b01010111; //57
185
        // --------------------
186
        #4000 // Time=7500 ns
187
        TIMEin = 6'b001100; //C
188
        // --------------------
189
        #60000 // Time=8100 ns
190
        empty_i = 1'b0;
191
        TxData_i = 8'b01100110; //0
192
        TIMEin = 6'b001101; //D
193
        // --------------------
194
        #6000 // Time=8700 ns
195
        TIMEin = 6'b001110; //E
196
        // --------------------
197
        #40000 // Time=9100 ns
198
        type_i = 1'b1;
199
        TxData_i = 8'b00000001; //0
200
        // --------------------
201
        #6000 // Time=9300 ns
202
        TIMEin = 6'b001111; //F
203
        // --------------------
204
        #6000 // Time=9900 ns
205
        TIMEin = 6'b010000; //10
206
        // /////////////////////////// fifo Empty ////////////////////////////
207
        #8000 // Time=10100 ns
208
        type_i = 1'b0;
209
        empty_i = 1'b1;
210
        TxData_i = 8'b00000000; //0
211
        //---------------------
212
        #4000 // Time=10500 ns
213
        TIMEin = 6'b010001; //11
214
        // --------------------
215
        #1000 // Time=10600 ns
216
        TICK_IN = 1'b1;
217
        // --------------------
218
   #6000
219
        TxData_i = 8'b00000000; //0
220
        TIMEin = 6'b010010; //12
221
        // --------------------
222
        #6000 // Time=11700 ns
223
        TIMEin = 6'b010011; //13
224
        #20000
225
   TIMEin = 6'b010100;
226
        //----------------------
227
        #10000
228
        TICK_IN = 1'b0;
229
        // --------------------
230
        #50000 // Time=12200 ns
231
        state_i = 6'b000001; //1
232
        // --------------------
233
        #8000 // Time=12900 ns
234
        TIMEin = 6'b010101; //15
235
        // --------------------
236
        #2000 // Time=13100 ns
237
        TxData_i = 8'b00000000; //0
238
        // --------------------
239
        #20000 // Time=13204 ns
240
        // --------------------
241
 
242
        if (TX_ERROR == 0) begin
243
                $display("No errors or warnings");
244
                $fdisplay(TX_FILE,"No errors or warnings");
245
        end else begin
246
                $display("%d errors found in simulation",TX_ERROR);
247
                $fdisplay(TX_FILE,"%d errors found in simulation",TX_ERROR);
248
        end
249
 
250
        $fclose(TX_FILE);
251
        $stop;
252
 
253
end
254
 
255
task CHECK_Do;
256
        input NEXT_Do;
257
 
258
        #0 begin
259
                if (NEXT_Do !== Do) begin
260
                        $display("Error at time=%dns Do=%b, expected=%b",
261
                                $time, Do, NEXT_Do);
262
                        $fdisplay(TX_FILE,"Error at time=%dns Do=%b, expected=%b",
263
                                $time, Do, NEXT_Do);
264
                        TX_ERROR = TX_ERROR + 1;
265
                end
266
        end
267
endtask
268
 
269
task CHECK_So;
270
        input NEXT_So;
271
 
272
        #0 begin
273
                if (NEXT_So !== So) begin
274
                        $display("Error at time=%dns So=%b, expected=%b",
275
                                $time, So, NEXT_So);
276
                        $fdisplay(TX_FILE,"Error at time=%dns So=%b, expected=%b",
277
                                $time, So, NEXT_So);
278
                        TX_ERROR = TX_ERROR + 1;
279
                end
280
        end
281
endtask
282
 
283
task CHECK_err_crd_o;
284
        input NEXT_err_crd_o;
285
 
286
        #0 begin
287
                if (NEXT_err_crd_o !== err_crd_o) begin
288
                        $display("Error at time=%dns err_crd_o=%b, expected=%b",
289
                                $time, err_crd_o, NEXT_err_crd_o);
290
                        $fdisplay(TX_FILE,"Error at time=%dns err_crd_o=%b, expected=%b",
291
                                $time, err_crd_o, NEXT_err_crd_o);
292
                        TX_ERROR = TX_ERROR + 1;
293
                end
294
        end
295
endtask
296
 
297
task CHECK_C_SEND_FCT_o;
298
        input NEXT_C_SEND_FCT_o;
299
 
300
        #0 begin
301
                if (NEXT_C_SEND_FCT_o !== C_SEND_FCT_o) begin
302
                        $display("Error at time=%dns C_SEND_FCT_o=%b, expected=%b",
303
                                $time, C_SEND_FCT_o, NEXT_C_SEND_FCT_o);
304
                        $fdisplay(TX_FILE,"Error at time=%dns C_SEND_FCT_o=%b, expected=%b",
305
                                $time, C_SEND_FCT_o, NEXT_C_SEND_FCT_o);
306
                        TX_ERROR = TX_ERROR + 1;
307
                end
308
        end
309
endtask
310
 
311
task CHECK_rdbuf_o;
312
        input NEXT_rdbuf_o;
313
 
314
        #0 begin
315
                if (NEXT_rdbuf_o !== rdbuf_o) begin
316
                        $display("Error at time=%dns rdbuf_o=%b, expected=%b",
317
                                $time, rdbuf_o, NEXT_rdbuf_o);
318
                        $fdisplay(TX_FILE,"Error at time=%dns rdbuf_o=%b, expected=%b",
319
                                $time, rdbuf_o, NEXT_rdbuf_o);
320
                        TX_ERROR = TX_ERROR + 1;
321
                end
322
        end
323
endtask
324
 
325
endmodule

powered by: WebSVN 2.1.0

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