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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [core/] [sim/] [rtl_sim/] [src/] [tA_output.v] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 olivier.gi
/*===========================================================================*/
2
/* Copyright (C) 2001 Authors                                                */
3
/*                                                                           */
4
/* This source file may be used and distributed without restriction provided */
5
/* that this copyright statement is not removed from the file and that any   */
6
/* derivative work contains the original copyright notice and the associated */
7
/* disclaimer.                                                               */
8
/*                                                                           */
9
/* This source file is free software; you can redistribute it and/or modify  */
10
/* it under the terms of the GNU Lesser General Public License as published  */
11
/* by the Free Software Foundation; either version 2.1 of the License, or    */
12
/* (at your option) any later version.                                       */
13
/*                                                                           */
14
/* This source is distributed in the hope that it will be useful, but WITHOUT*/
15
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     */
16
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public       */
17
/* License for more details.                                                 */
18
/*                                                                           */
19
/* You should have received a copy of the GNU Lesser General Public License  */
20
/* along with this source; if not, write to the Free Software Foundation,    */
21
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA        */
22
/*                                                                           */
23
/*===========================================================================*/
24
/*                                  TIMER A                                  */
25
/*---------------------------------------------------------------------------*/
26
/* Test the timer A:                                                         */
27
/*                        - Check the timer output unit.                     */
28
/*===========================================================================*/
29
 
30
integer my_counter;
31
always @ (posedge mclk)
32
  my_counter <=  my_counter+1;
33
 
34
wire [15:0] tar = timerA_0.tar;
35
 
36
initial
37
   begin
38
      $display(" ===============================================");
39
      $display("|                 START SIMULATION              |");
40
      $display(" ===============================================");
41
      repeat(5) @(posedge mclk);
42
      stimulus_done = 0;
43
 
44
      // TIMER A TEST:  COMPARATOR 0
45
      //--------------------------------------------------------
46
 
47
                                // --------- Output       (mode 0) ----------
48
      @(mem200 === 16'h0001);
49
      if (ta_out0 !== 1'b1) tb_error("====== TIMER_A COMPARE 0: Output (mode 0) =====");
50
      @(mem200 === 16'h0002);
51
      if (ta_out0 !== 1'b0) tb_error("====== TIMER_A COMPARE 0: Output (mode 0) =====");
52
 
53
 
54
                                // --------- Set          (mode 1) ----------
55
      @(mem200 === 16'h0003);
56
      @(tar === 16'h0014);
57
      if (ta_out0 !== 1'b0) tb_error("====== TIMER_A COMPARE 0: Set (mode 1) =====");
58
      @(tar === 16'h0015);
59
      if (ta_out0 !== 1'b1) tb_error("====== TIMER_A COMPARE 0: Set (mode 1) =====");
60
      @(tar === 16'h0014);
61
      if (ta_out0 !== 1'b1) tb_error("====== TIMER_A COMPARE 0: Set (mode 1) =====");
62
      @(tar === 16'h0015);
63
      if (ta_out0 !== 1'b1) tb_error("====== TIMER_A COMPARE 0: Set (mode 1) =====");
64
      @(mem200 === 16'h0004);
65
      if (ta_out0 !== 1'b0) tb_error("====== TIMER_A COMPARE 0: Set (mode 1) =====");
66
 
67
 
68
                                // --------- Toggle       (mode 4) ----------
69
      @(mem200 === 16'h0005);
70
      @(tar === 16'h0014);
71
      if (ta_out0 !== 1'b0) tb_error("====== TIMER_A COMPARE 0: Toggle (mode 4) =====");
72
      @(tar === 16'h0015);
73
      if (ta_out0 !== 1'b1) tb_error("====== TIMER_A COMPARE 0: Toggle (mode 4) =====");
74
      @(tar === 16'h0014);
75
      if (ta_out0 !== 1'b1) tb_error("====== TIMER_A COMPARE 0: Toggle (mode 4) =====");
76
      @(tar === 16'h0015);
77
      if (ta_out0 !== 1'b0) tb_error("====== TIMER_A COMPARE 0: Toggle (mode 4) =====");
78
 
79
 
80
                                // --------- Reset        (mode 5) ----------
81
      @(mem200 === 16'h0006);
82
      @(tar === 16'h0014);
83
      if (ta_out0 !== 1'b1) tb_error("====== TIMER_A COMPARE 0: Reset (mode 5) =====");
84
      @(tar === 16'h0015);
85
      if (ta_out0 !== 1'b0) tb_error("====== TIMER_A COMPARE 0: Reset (mode 5) =====");
86
      @(tar === 16'h0014);
87
      if (ta_out0 !== 1'b0) tb_error("====== TIMER_A COMPARE 0: Reset (mode 5) =====");
88
      @(tar === 16'h0015);
89
      if (ta_out0 !== 1'b0) tb_error("====== TIMER_A COMPARE 0: Reset (mode 5) =====");
90
 
91
 
92
      // TIMER A TEST:  COMPARATOR 1
93
      //--------------------------------------------------------
94
      @(r15 === 16'h1000);
95
 
96
                                // --------- Output       (mode 0) ----------
97
      @(mem200 === 16'h0001);
98
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Output (mode 0) =====");
99
      @(mem200 === 16'h0002);
100
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Output (mode 0) =====");
101
 
102
 
103
                                // --------- Set          (mode 1) ----------
104
      @(mem200 === 16'h0003);
105
      @(tar === 16'h0014);
106
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Set (mode 1) =====");
107
      @(tar === 16'h0015);
108
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Set (mode 1) =====");
109
      @(tar === 16'h0014);
110
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Set (mode 1) =====");
111
      @(tar === 16'h0015);
112
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Set (mode 1) =====");
113
      @(mem200 === 16'h0004);
114
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Set (mode 1) =====");
115
 
116
 
117
                                // --------- Toggle/Reset (mode 2) ----------
118
      @(mem200 === 16'h0005);
119
      @(tar === 16'h0014);
120
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle/Reset (mode 2) =====");
121
      @(tar === 16'h0015);
122
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle/Reset (mode 2) =====");
123
      @(tar === 16'h001f);
124
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle/Reset (mode 2) =====");
125
      @(tar === 16'h0020);
126
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle/Reset (mode 2) =====");
127
 
128
      @(mem200 === 16'h0006);
129
      @(tar === 16'h0014);
130
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle/Reset (mode 2) =====");
131
      @(tar === 16'h0015);
132
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle/Reset (mode 2) =====");
133
      @(tar === 16'h001f);
134
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle/Reset (mode 2) =====");
135
      @(tar === 16'h0020);
136
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle/Reset (mode 2) =====");
137
 
138
 
139
                                // --------- Set/Reset (mode 3) ----------
140
      @(mem200 === 16'h0007);
141
      @(tar === 16'h0014);
142
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Set/Reset (mode 3) =====");
143
      @(tar === 16'h0015);
144
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Set/Reset (mode 3) =====");
145
      @(tar === 16'h001f);
146
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Set/Reset (mode 3) =====");
147
      @(tar === 16'h0020);
148
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Set/Reset (mode 3) =====");
149
 
150
      @(mem200 === 16'h0008);
151
      @(tar === 16'h0014);
152
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Set/Reset (mode 3) =====");
153
      @(tar === 16'h0015);
154
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Set/Reset (mode 3) =====");
155
      @(tar === 16'h001f);
156
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Set/Reset (mode 3) =====");
157
      @(tar === 16'h0020);
158
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Set/Reset (mode 3) =====");
159
 
160
 
161
                                // --------- Toggle (mode 4) ----------
162
      @(mem200 === 16'h0009);
163
      @(tar === 16'h0014);
164
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle (mode 4) =====");
165
      @(tar === 16'h0015);
166
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle (mode 4) =====");
167
      @(tar === 16'h0014);
168
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle (mode 4) =====");
169
      @(tar === 16'h0015);
170
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle (mode 4) =====");
171
 
172
 
173
                                // --------- Reset  (mode 5) ----------
174
      @(mem200 === 16'h000A);
175
      @(tar === 16'h0014);
176
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Reset (mode 5) =====");
177
      @(tar === 16'h0015);
178
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Reset (mode 5) =====");
179
      @(tar === 16'h0014);
180
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Reset (mode 5) =====");
181
      @(tar === 16'h0015);
182
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Reset (mode 5) =====");
183
 
184
 
185
                                // --------- Toggle/Set (mode 6) ----------
186
      @(mem200 === 16'h000B);
187
      @(tar === 16'h0014);
188
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle/Set (mode 6) =====");
189
      @(tar === 16'h0015);
190
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle/Set (mode 6) =====");
191
      @(tar === 16'h001f);
192
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle/Set (mode 6) =====");
193
      @(tar === 16'h0020);
194
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle/Set (mode 6) =====");
195
 
196
      @(mem200 === 16'h000C);
197
      @(tar === 16'h0014);
198
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle/Set (mode 6) =====");
199
      @(tar === 16'h0015);
200
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle/Set (mode 6) =====");
201
      @(tar === 16'h001f);
202
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Toggle/Set (mode 6) =====");
203
      @(tar === 16'h0020);
204
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Toggle/Set (mode 6) =====");
205
 
206
 
207
                                // --------- Reset/Set (mode 7) ----------
208
      @(mem200 === 16'h000D);
209
      @(tar === 16'h0014);
210
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Reset/Set (mode 7) =====");
211
      @(tar === 16'h0015);
212
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Reset/Set (mode 7) =====");
213
      @(tar === 16'h001f);
214
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Reset/Set (mode 7) =====");
215
      @(tar === 16'h0020);
216
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Reset/Set (mode 7) =====");
217
 
218
      @(mem200 === 16'h000E);
219
      @(tar === 16'h0014);
220
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Reset/Set (mode 7) =====");
221
      @(tar === 16'h0015);
222
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Reset/Set (mode 7) =====");
223
      @(tar === 16'h001f);
224
      if (ta_out1 !== 1'b0) tb_error("====== TIMER_A COMPARE 1: Reset/Set (mode 7) =====");
225
      @(tar === 16'h0020);
226
      if (ta_out1 !== 1'b1) tb_error("====== TIMER_A COMPARE 1: Reset/Set (mode 7) =====");
227
 
228
 
229
      // TIMER A TEST:  COMPARATOR 2
230
      //--------------------------------------------------------
231
      @(r15 === 16'h2000);
232
 
233
                                // --------- Output       (mode 0) ----------
234
      @(mem200 === 16'h0001);
235
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Output (mode 0) =====");
236
      @(mem200 === 16'h0002);
237
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Output (mode 0) =====");
238
 
239
 
240
                                // --------- Set          (mode 1) ----------
241
      @(mem200 === 16'h0003);
242
      @(tar === 16'h0014);
243
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Set (mode 1) =====");
244
      @(tar === 16'h0015);
245
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Set (mode 1) =====");
246
      @(tar === 16'h0014);
247
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Set (mode 1) =====");
248
      @(tar === 16'h0015);
249
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Set (mode 1) =====");
250
      @(mem200 === 16'h0004);
251
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Set (mode 1) =====");
252
 
253
 
254
                                // --------- Toggle/Reset (mode 2) ----------
255
      @(mem200 === 16'h0005);
256
      @(tar === 16'h0014);
257
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle/Reset (mode 2) =====");
258
      @(tar === 16'h0015);
259
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle/Reset (mode 2) =====");
260
      @(tar === 16'h001f);
261
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle/Reset (mode 2) =====");
262
      @(tar === 16'h0020);
263
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle/Reset (mode 2) =====");
264
 
265
      @(mem200 === 16'h0006);
266
      @(tar === 16'h0014);
267
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle/Reset (mode 2) =====");
268
      @(tar === 16'h0015);
269
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle/Reset (mode 2) =====");
270
      @(tar === 16'h001f);
271
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle/Reset (mode 2) =====");
272
      @(tar === 16'h0020);
273
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle/Reset (mode 2) =====");
274
 
275
 
276
                                // --------- Set/Reset (mode 3) ----------
277
      @(mem200 === 16'h0007);
278
      @(tar === 16'h0014);
279
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Set/Reset (mode 3) =====");
280
      @(tar === 16'h0015);
281
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Set/Reset (mode 3) =====");
282
      @(tar === 16'h001f);
283
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Set/Reset (mode 3) =====");
284
      @(tar === 16'h0020);
285
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Set/Reset (mode 3) =====");
286
 
287
      @(mem200 === 16'h0008);
288
      @(tar === 16'h0014);
289
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Set/Reset (mode 3) =====");
290
      @(tar === 16'h0015);
291
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Set/Reset (mode 3) =====");
292
      @(tar === 16'h001f);
293
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Set/Reset (mode 3) =====");
294
      @(tar === 16'h0020);
295
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Set/Reset (mode 3) =====");
296
 
297
 
298
                                // --------- Toggle (mode 4) ----------
299
      @(mem200 === 16'h0009);
300
      @(tar === 16'h0014);
301
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle (mode 4) =====");
302
      @(tar === 16'h0015);
303
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle (mode 4) =====");
304
      @(tar === 16'h0014);
305
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle (mode 4) =====");
306
      @(tar === 16'h0015);
307
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle (mode 4) =====");
308
 
309
 
310
                                // --------- Reset  (mode 5) ----------
311
      @(mem200 === 16'h000A);
312
      @(tar === 16'h0014);
313
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Reset (mode 5) =====");
314
      @(tar === 16'h0015);
315
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Reset (mode 5) =====");
316
      @(tar === 16'h0014);
317
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Reset (mode 5) =====");
318
      @(tar === 16'h0015);
319
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Reset (mode 5) =====");
320
 
321
 
322
                                // --------- Toggle/Set (mode 6) ----------
323
      @(mem200 === 16'h000B);
324
      @(tar === 16'h0014);
325
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle/Set (mode 6) =====");
326
      @(tar === 16'h0015);
327
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle/Set (mode 6) =====");
328
      @(tar === 16'h001f);
329
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle/Set (mode 6) =====");
330
      @(tar === 16'h0020);
331
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle/Set (mode 6) =====");
332
 
333
      @(mem200 === 16'h000C);
334
      @(tar === 16'h0014);
335
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle/Set (mode 6) =====");
336
      @(tar === 16'h0015);
337
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle/Set (mode 6) =====");
338
      @(tar === 16'h001f);
339
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Toggle/Set (mode 6) =====");
340
      @(tar === 16'h0020);
341
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Toggle/Set (mode 6) =====");
342
 
343
 
344
                                // --------- Reset/Set (mode 7) ----------
345
      @(mem200 === 16'h000D);
346
      @(tar === 16'h0014);
347
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Reset/Set (mode 7) =====");
348
      @(tar === 16'h0015);
349
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Reset/Set (mode 7) =====");
350
      @(tar === 16'h001f);
351
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Reset/Set (mode 7) =====");
352
      @(tar === 16'h0020);
353
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Reset/Set (mode 7) =====");
354
 
355
      @(mem200 === 16'h000E);
356
      @(tar === 16'h0014);
357
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Reset/Set (mode 7) =====");
358
      @(tar === 16'h0015);
359
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Reset/Set (mode 7) =====");
360
      @(tar === 16'h001f);
361
      if (ta_out2 !== 1'b0) tb_error("====== TIMER_A COMPARE 2: Reset/Set (mode 7) =====");
362
      @(tar === 16'h0020);
363
      if (ta_out2 !== 1'b1) tb_error("====== TIMER_A COMPARE 2: Reset/Set (mode 7) =====");
364
 
365
 
366
      stimulus_done = 1;
367
   end
368
 

powered by: WebSVN 2.1.0

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