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

Subversion Repositories nova

[/] [nova/] [tags/] [Start/] [src/] [rec_DF_RAM0_96x32.v] - Blame information for rev 11

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 eexuke
// 
2
// Copyright (C) 2004 Virtual Silicon Technology Inc.. All Rights Reserved.
3
// Silicon Ready, The Heart of Great Silicon, and the Virtual Silicon logo are
4
// registered trademarks of Virtual Silicon Technology Inc.
5
// All other trademarks are the property of their respective owner.
6
// 
7
// Virtual Silicon Technology Inc.
8
// 1322 Orleans Drive          
9
// Sunnyvale, CA 94089-1135
10
// Phone : 408-548-2700
11
// Fax : 408-548-2750
12
// Web Site : www.virtual-silicon.com
13
// 
14
// VST Library Release: UMCL18G415T3_1.0
15
// Product:  High Density Single Port SRAM Compiler
16
// Process:  L180 Generic II
17
// 
18
// High Density one-Port RAM 96 words by 32 bits
19
// column mux = 4
20
// bytewrite  = n
21
// test       = n
22
// powerbus   = b
23
// frequency  = 10
24
// 
25
`timescale 1 ns / 1 ps
26
 
27
`celldefine
28
module rec_DF_RAM0_96x32 (
29
  CK,
30
  CEN,
31
  WEN,
32
  OEN,
33
  ADR,
34
  DI,
35
  DOUT
36
  );
37
 
38
// parameter and port declaration block
39
  parameter words = 96;
40
  parameter bits = 32;
41
  parameter addMsb = 6;
42
  parameter bytes= 4;
43
  parameter bitMsb = 31;
44
 
45
  input CK;
46
  input CEN;
47
  input WEN;
48
  input OEN;
49
  input [addMsb:0] ADR;
50
  input [bitMsb:0] DI;
51
  output [bitMsb:0] DOUT;
52
 
53
// input buffer block
54
  buf (buf_CK, CK);
55
  buf (buf_CEN, CEN);
56
  buf (buf_WEN, WEN);
57
  buf (buf_OEN, OEN);
58
 
59
  wire [addMsb:0] buf_ADR;
60
  wire [bitMsb:0] buf_DI;
61
  assign buf_ADR = ADR;
62
  assign buf_DI = DI;
63
 
64
 
65
// internal variable declarations
66
  reg int_CEN;
67
  reg int_WEN;
68
  reg [addMsb:0] int_ADR;
69
  reg [bitMsb:0] int_DI;
70
  reg [bitMsb:0] int_DOUT;
71
  reg [bitMsb:0] memory_array [95:0];
72
 
73
  reg old_CK;
74
  reg write_error;
75
  reg read_error;
76
  reg risingTmp;
77
  always @(posedge buf_CK)
78
     risingTmp = 1'b1;
79
  always @(negedge buf_CK)
80
     risingTmp = 1'b0;
81
 
82
  wire risingCK = risingTmp;
83
 
84
  wire rflag = risingCK & (buf_WEN!==1'b0);
85
  wire wflag = risingCK & (buf_WEN!==1'b1);
86
 
87
 
88
// DOUT processing
89
  wire [bitMsb:0] out_DOUT;
90
  assign out_DOUT = int_DOUT;
91
 
92
  wire int_OEN = buf_OEN;
93
  bufif0(DOUT[0], out_DOUT[0], int_OEN);
94
  bufif0(DOUT[1], out_DOUT[1], int_OEN);
95
  bufif0(DOUT[2], out_DOUT[2], int_OEN);
96
  bufif0(DOUT[3], out_DOUT[3], int_OEN);
97
  bufif0(DOUT[4], out_DOUT[4], int_OEN);
98
  bufif0(DOUT[5], out_DOUT[5], int_OEN);
99
  bufif0(DOUT[6], out_DOUT[6], int_OEN);
100
  bufif0(DOUT[7], out_DOUT[7], int_OEN);
101
  bufif0(DOUT[8], out_DOUT[8], int_OEN);
102
  bufif0(DOUT[9], out_DOUT[9], int_OEN);
103
  bufif0(DOUT[10], out_DOUT[10], int_OEN);
104
  bufif0(DOUT[11], out_DOUT[11], int_OEN);
105
  bufif0(DOUT[12], out_DOUT[12], int_OEN);
106
  bufif0(DOUT[13], out_DOUT[13], int_OEN);
107
  bufif0(DOUT[14], out_DOUT[14], int_OEN);
108
  bufif0(DOUT[15], out_DOUT[15], int_OEN);
109
  bufif0(DOUT[16], out_DOUT[16], int_OEN);
110
  bufif0(DOUT[17], out_DOUT[17], int_OEN);
111
  bufif0(DOUT[18], out_DOUT[18], int_OEN);
112
  bufif0(DOUT[19], out_DOUT[19], int_OEN);
113
  bufif0(DOUT[20], out_DOUT[20], int_OEN);
114
  bufif0(DOUT[21], out_DOUT[21], int_OEN);
115
  bufif0(DOUT[22], out_DOUT[22], int_OEN);
116
  bufif0(DOUT[23], out_DOUT[23], int_OEN);
117
  bufif0(DOUT[24], out_DOUT[24], int_OEN);
118
  bufif0(DOUT[25], out_DOUT[25], int_OEN);
119
  bufif0(DOUT[26], out_DOUT[26], int_OEN);
120
  bufif0(DOUT[27], out_DOUT[27], int_OEN);
121
  bufif0(DOUT[28], out_DOUT[28], int_OEN);
122
  bufif0(DOUT[29], out_DOUT[29], int_OEN);
123
  bufif0(DOUT[30], out_DOUT[30], int_OEN);
124
  bufif0(DOUT[31], out_DOUT[31], int_OEN);
125
 
126
 
127
  and (chk_DI, ~buf_CEN, ~buf_WEN);
128
 
129
  reg mpwCK_notifier;
130
  reg pwhCK_notifier;
131
  reg shCEN_notifier;
132
  reg shADR_notifier;
133
  reg shWEN_notifier;
134
  reg shDI_notifier;
135
 
136
  integer i, j, h, k, m;
137
 
138
  parameter x_data = 32'bx;
139
  parameter data_0 = {32{1'b0}};
140
  parameter x_adr  = 7'bx;
141
  parameter adr_0  = {7{1'b0}};
142
 
143
initial begin
144
   for (i = 0; i < words; i=i+1)
145
        memory_array[i] = x_data;
146
end
147
 
148
initial begin
149
    read_error = 1'b0;
150
    write_error = 1'b0;
151
         old_CK = 1'b0;
152
    // Wait for valid initial transition
153
    wait (buf_CK === 1'b0);
154
 
155
    forever @(buf_CK) begin
156
                case ({old_CK,buf_CK})
157
      // 0->1 transition
158
      2'b01:
159
                begin
160
        int_CEN = buf_CEN;
161
        int_WEN = buf_WEN;
162
        int_ADR = buf_ADR;
163
        int_DI = buf_DI;
164
 
165
                if (int_CEN === 1'b0) begin
166
                        // Read cycle
167
                                if( ^int_ADR === 1'bx)  begin
168
                                        ADR_error;
169
                        end else if (int_WEN === 1'b1) begin
170
                        int_DOUT = memory_array[int_ADR];
171
                        // Write cycle
172
                        end else if (int_WEN === 1'b0) begin
173
                                        if (write_error === 1'b0) begin
174
                                memory_array[int_ADR] = int_DI; // Write cycle
175
                                int_DOUT = int_DI;
176
                        end
177
                        // Unknown cycle
178
                        end else begin // int_WEN = x
179
                        SHWrite_error;
180
                        end
181
                end else if (int_CEN === 1'bx) begin
182
                        wipe_memory_output;
183
                end
184
      // 0->unknown transition, wait until returns to 0
185
      end
186
          2'b0x, 2'b1x, 2'bx1, 2'bx0: begin
187
        int_CEN = 1'bx;
188
        wipe_memory_output;
189
        end
190
         endcase
191
                old_CK <= #0.002 buf_CK;
192
    end
193
  end  // end memory loop
194
 
195
 
196
//====================
197
// Task and procedure
198
//====================
199
 
200
// This task process entire MEM and OUTPUTs
201
task wipe_memory_output;
202
integer i;
203
  begin
204
    write_error = 1'b1;
205
    int_DOUT = x_data;
206
    int_ADR = x_adr;
207
    int_WEN = 1'bx;
208
    int_DI = x_data;
209
 
210
 
211
    for (i = 0; i < words; i=i+1) begin
212
        memory_array[i] = x_data;
213
    end
214
    write_error = 1'b0;
215
  end
216
endtask
217
 
218
// This task process write through violation
219
task SHWrite_error;
220
integer ic, ib;
221
  begin
222
        write_error = 1'b1;
223
        read_error = 1'b1;
224
    if (int_WEN===1'bx) begin
225
        memory_array[int_ADR] = x_data;
226
                int_DOUT = x_data;
227
    end else if (int_WEN===1'b0) begin
228
        memory_array[int_ADR] = int_DI;
229
                int_DOUT = int_DI;
230
    end
231
 
232
        write_error = 1'b0;
233
        read_error = 1'b0;
234
  end
235
endtask
236
 
237
// This task process read violation
238
task SHRead_error;
239
  begin
240
    read_error = 1'b1;
241
    int_DOUT = x_data;
242
    //wait (buf_CK === 1'b0);
243
    read_error = 1'b0;
244
  end
245
endtask
246
 
247
// This task process ADR violation
248
task ADR_error;
249
integer i;
250
  begin
251
        write_error = 1'b1;
252
        read_error = 1'b1;
253
        int_DOUT = x_data;
254
        for (i = 0; i < words; i=i+1)
255
                memory_array[i] = x_data;
256
   write_error = 1'b0;
257
        read_error = 1'b0;
258
  end
259
endtask
260
 
261
//=======================
262
// Violation processing 
263
//=======================
264
// CK violation
265
always @(pwhCK_notifier) begin
266
  $display ("%m CLK cycle pulse width high timing violation detected %t", $realtime);
267
  int_CEN = 1'bx;
268
  wipe_memory_output;
269
end
270
 
271
always @(mpwCK_notifier) begin
272
  $display ("%m CLK cycle timing violation detected %t", $realtime);
273
  #0.001;
274
  wipe_memory_output;
275
  risingTmp = 1'b0;
276
end
277
 
278
 
279
// CEN violation
280
always @(shCEN_notifier) begin
281
  int_CEN = 1'bx;
282
  $display ("%m Cell enable timing violation detected %t", $realtime);
283
  wipe_memory_output;
284
end
285
 
286
// ADR violation
287
always @(shADR_notifier) begin
288
  int_ADR = x_adr;
289
  $display ("%m Address timing violation detected %t", $realtime);
290
  ADR_error;
291
end
292
 
293
// WEN violation
294
always @(shWEN_notifier) begin
295
  int_WEN = 1'bx;
296
  $display ("%m Write enable timing violation detected %t", $realtime);
297
  if( ^int_ADR !== 1'bx)
298
          SHWrite_error;
299
end
300
 
301
 
302
// DI violation
303
always @(shDI_notifier) begin
304
  int_DI = x_data;
305
  $display ("%m Input data timing violation detected %t", $realtime);
306
  if( ^int_ADR !== 1'bx)
307
          SHWrite_error;
308
end
309
 
310
 
311
 
312
specify
313
 
314
    // Path delays
315
   if (rflag)  (CK *> DOUT[0]) = 0.1;
316
   if (wflag)  (CK *> DOUT[0]) = 0.1;
317
   if (rflag)  (CK *> DOUT[1]) = 0.1;
318
   if (wflag)  (CK *> DOUT[1]) = 0.1;
319
   if (rflag)  (CK *> DOUT[2]) = 0.1;
320
   if (wflag)  (CK *> DOUT[2]) = 0.1;
321
   if (rflag)  (CK *> DOUT[3]) = 0.1;
322
   if (wflag)  (CK *> DOUT[3]) = 0.1;
323
   if (rflag)  (CK *> DOUT[4]) = 0.1;
324
   if (wflag)  (CK *> DOUT[4]) = 0.1;
325
   if (rflag)  (CK *> DOUT[5]) = 0.1;
326
   if (wflag)  (CK *> DOUT[5]) = 0.1;
327
   if (rflag)  (CK *> DOUT[6]) = 0.1;
328
   if (wflag)  (CK *> DOUT[6]) = 0.1;
329
   if (rflag)  (CK *> DOUT[7]) = 0.1;
330
   if (wflag)  (CK *> DOUT[7]) = 0.1;
331
   if (rflag)  (CK *> DOUT[8]) = 0.1;
332
   if (wflag)  (CK *> DOUT[8]) = 0.1;
333
   if (rflag)  (CK *> DOUT[9]) = 0.1;
334
   if (wflag)  (CK *> DOUT[9]) = 0.1;
335
   if (rflag)  (CK *> DOUT[10]) = 0.1;
336
   if (wflag)  (CK *> DOUT[10]) = 0.1;
337
   if (rflag)  (CK *> DOUT[11]) = 0.1;
338
   if (wflag)  (CK *> DOUT[11]) = 0.1;
339
   if (rflag)  (CK *> DOUT[12]) = 0.1;
340
   if (wflag)  (CK *> DOUT[12]) = 0.1;
341
   if (rflag)  (CK *> DOUT[13]) = 0.1;
342
   if (wflag)  (CK *> DOUT[13]) = 0.1;
343
   if (rflag)  (CK *> DOUT[14]) = 0.1;
344
   if (wflag)  (CK *> DOUT[14]) = 0.1;
345
   if (rflag)  (CK *> DOUT[15]) = 0.1;
346
   if (wflag)  (CK *> DOUT[15]) = 0.1;
347
   if (rflag)  (CK *> DOUT[16]) = 0.1;
348
   if (wflag)  (CK *> DOUT[16]) = 0.1;
349
   if (rflag)  (CK *> DOUT[17]) = 0.1;
350
   if (wflag)  (CK *> DOUT[17]) = 0.1;
351
   if (rflag)  (CK *> DOUT[18]) = 0.1;
352
   if (wflag)  (CK *> DOUT[18]) = 0.1;
353
   if (rflag)  (CK *> DOUT[19]) = 0.1;
354
   if (wflag)  (CK *> DOUT[19]) = 0.1;
355
   if (rflag)  (CK *> DOUT[20]) = 0.1;
356
   if (wflag)  (CK *> DOUT[20]) = 0.1;
357
   if (rflag)  (CK *> DOUT[21]) = 0.1;
358
   if (wflag)  (CK *> DOUT[21]) = 0.1;
359
   if (rflag)  (CK *> DOUT[22]) = 0.1;
360
   if (wflag)  (CK *> DOUT[22]) = 0.1;
361
   if (rflag)  (CK *> DOUT[23]) = 0.1;
362
   if (wflag)  (CK *> DOUT[23]) = 0.1;
363
   if (rflag)  (CK *> DOUT[24]) = 0.1;
364
   if (wflag)  (CK *> DOUT[24]) = 0.1;
365
   if (rflag)  (CK *> DOUT[25]) = 0.1;
366
   if (wflag)  (CK *> DOUT[25]) = 0.1;
367
   if (rflag)  (CK *> DOUT[26]) = 0.1;
368
   if (wflag)  (CK *> DOUT[26]) = 0.1;
369
   if (rflag)  (CK *> DOUT[27]) = 0.1;
370
   if (wflag)  (CK *> DOUT[27]) = 0.1;
371
   if (rflag)  (CK *> DOUT[28]) = 0.1;
372
   if (wflag)  (CK *> DOUT[28]) = 0.1;
373
   if (rflag)  (CK *> DOUT[29]) = 0.1;
374
   if (wflag)  (CK *> DOUT[29]) = 0.1;
375
   if (rflag)  (CK *> DOUT[30]) = 0.1;
376
   if (wflag)  (CK *> DOUT[30]) = 0.1;
377
   if (rflag)  (CK *> DOUT[31]) = 0.1;
378
   if (wflag)  (CK *> DOUT[31]) = 0.1;
379
 
380
 (OEN *> DOUT[0]) = 0.1;
381
 (OEN *> DOUT[1]) = 0.1;
382
 (OEN *> DOUT[2]) = 0.1;
383
 (OEN *> DOUT[3]) = 0.1;
384
 (OEN *> DOUT[4]) = 0.1;
385
 (OEN *> DOUT[5]) = 0.1;
386
 (OEN *> DOUT[6]) = 0.1;
387
 (OEN *> DOUT[7]) = 0.1;
388
 (OEN *> DOUT[8]) = 0.1;
389
 (OEN *> DOUT[9]) = 0.1;
390
 (OEN *> DOUT[10]) = 0.1;
391
 (OEN *> DOUT[11]) = 0.1;
392
 (OEN *> DOUT[12]) = 0.1;
393
 (OEN *> DOUT[13]) = 0.1;
394
 (OEN *> DOUT[14]) = 0.1;
395
 (OEN *> DOUT[15]) = 0.1;
396
 (OEN *> DOUT[16]) = 0.1;
397
 (OEN *> DOUT[17]) = 0.1;
398
 (OEN *> DOUT[18]) = 0.1;
399
 (OEN *> DOUT[19]) = 0.1;
400
 (OEN *> DOUT[20]) = 0.1;
401
 (OEN *> DOUT[21]) = 0.1;
402
 (OEN *> DOUT[22]) = 0.1;
403
 (OEN *> DOUT[23]) = 0.1;
404
 (OEN *> DOUT[24]) = 0.1;
405
 (OEN *> DOUT[25]) = 0.1;
406
 (OEN *> DOUT[26]) = 0.1;
407
 (OEN *> DOUT[27]) = 0.1;
408
 (OEN *> DOUT[28]) = 0.1;
409
 (OEN *> DOUT[29]) = 0.1;
410
 (OEN *> DOUT[30]) = 0.1;
411
 (OEN *> DOUT[31]) = 0.1;
412
 
413
 
414
 
415
    // Timing check parameters
416
  specparam tsadrl = 0;
417
  specparam thadrl = 0;
418
  specparam tsadrh = 0;
419
  specparam thadrh = 0;
420
  specparam tsdil = 0;
421
  specparam tsdih = 0;
422
  specparam thdil = 0;
423
  specparam thdih = 0;
424
  specparam tscenl = 0;
425
  specparam thcenl = 0;
426
  specparam tscenh = 0;
427
  specparam thcenh = 0;
428
  specparam tswenl = 0;
429
  specparam thwenl = 0;
430
  specparam tswenh = 0;
431
  specparam thwenh = 0;
432
  specparam tcyc = 0;
433
  specparam tlck = 0;
434
  specparam thck = 0;
435
 
436
    // Timing checks
437
  $setuphold(posedge CK, negedge CEN, tscenl, thcenl, shCEN_notifier);
438
  $setuphold(posedge CK, posedge CEN, tscenh, thcenh, shCEN_notifier);
439
 
440
  $setuphold(posedge CK &&& (CEN===1'b0), negedge ADR[0], tsadrl, thadrl, shADR_notifier);
441
  $setuphold(posedge CK &&& (CEN===1'b0), posedge ADR[0], tsadrh, thadrh, shADR_notifier);
442
  $setuphold(posedge CK &&& (CEN===1'b0), negedge ADR[1], tsadrl, thadrl, shADR_notifier);
443
  $setuphold(posedge CK &&& (CEN===1'b0), posedge ADR[1], tsadrh, thadrh, shADR_notifier);
444
  $setuphold(posedge CK &&& (CEN===1'b0), negedge ADR[2], tsadrl, thadrl, shADR_notifier);
445
  $setuphold(posedge CK &&& (CEN===1'b0), posedge ADR[2], tsadrh, thadrh, shADR_notifier);
446
  $setuphold(posedge CK &&& (CEN===1'b0), negedge ADR[3], tsadrl, thadrl, shADR_notifier);
447
  $setuphold(posedge CK &&& (CEN===1'b0), posedge ADR[3], tsadrh, thadrh, shADR_notifier);
448
  $setuphold(posedge CK &&& (CEN===1'b0), negedge ADR[4], tsadrl, thadrl, shADR_notifier);
449
  $setuphold(posedge CK &&& (CEN===1'b0), posedge ADR[4], tsadrh, thadrh, shADR_notifier);
450
  $setuphold(posedge CK &&& (CEN===1'b0), negedge ADR[5], tsadrl, thadrl, shADR_notifier);
451
  $setuphold(posedge CK &&& (CEN===1'b0), posedge ADR[5], tsadrh, thadrh, shADR_notifier);
452
  $setuphold(posedge CK &&& (CEN===1'b0), negedge ADR[6], tsadrl, thadrl, shADR_notifier);
453
  $setuphold(posedge CK &&& (CEN===1'b0), posedge ADR[6], tsadrh, thadrh, shADR_notifier);
454
 
455
  $setuphold(posedge CK &&& (CEN===1'b0), negedge WEN, tswenl, thwenl, shWEN_notifier);
456
  $setuphold(posedge CK &&& (CEN===1'b0), posedge WEN, tswenh, thwenh, shWEN_notifier);
457
 
458
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[0], tsdil, thdil, shDI_notifier);
459
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[0], tsdih, thdih, shDI_notifier);
460
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[1], tsdil, thdil, shDI_notifier);
461
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[1], tsdih, thdih, shDI_notifier);
462
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[2], tsdil, thdil, shDI_notifier);
463
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[2], tsdih, thdih, shDI_notifier);
464
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[3], tsdil, thdil, shDI_notifier);
465
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[3], tsdih, thdih, shDI_notifier);
466
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[4], tsdil, thdil, shDI_notifier);
467
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[4], tsdih, thdih, shDI_notifier);
468
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[5], tsdil, thdil, shDI_notifier);
469
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[5], tsdih, thdih, shDI_notifier);
470
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[6], tsdil, thdil, shDI_notifier);
471
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[6], tsdih, thdih, shDI_notifier);
472
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[7], tsdil, thdil, shDI_notifier);
473
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[7], tsdih, thdih, shDI_notifier);
474
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[8], tsdil, thdil, shDI_notifier);
475
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[8], tsdih, thdih, shDI_notifier);
476
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[9], tsdil, thdil, shDI_notifier);
477
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[9], tsdih, thdih, shDI_notifier);
478
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[10], tsdil, thdil, shDI_notifier);
479
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[10], tsdih, thdih, shDI_notifier);
480
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[11], tsdil, thdil, shDI_notifier);
481
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[11], tsdih, thdih, shDI_notifier);
482
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[12], tsdil, thdil, shDI_notifier);
483
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[12], tsdih, thdih, shDI_notifier);
484
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[13], tsdil, thdil, shDI_notifier);
485
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[13], tsdih, thdih, shDI_notifier);
486
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[14], tsdil, thdil, shDI_notifier);
487
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[14], tsdih, thdih, shDI_notifier);
488
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[15], tsdil, thdil, shDI_notifier);
489
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[15], tsdih, thdih, shDI_notifier);
490
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[16], tsdil, thdil, shDI_notifier);
491
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[16], tsdih, thdih, shDI_notifier);
492
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[17], tsdil, thdil, shDI_notifier);
493
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[17], tsdih, thdih, shDI_notifier);
494
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[18], tsdil, thdil, shDI_notifier);
495
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[18], tsdih, thdih, shDI_notifier);
496
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[19], tsdil, thdil, shDI_notifier);
497
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[19], tsdih, thdih, shDI_notifier);
498
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[20], tsdil, thdil, shDI_notifier);
499
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[20], tsdih, thdih, shDI_notifier);
500
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[21], tsdil, thdil, shDI_notifier);
501
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[21], tsdih, thdih, shDI_notifier);
502
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[22], tsdil, thdil, shDI_notifier);
503
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[22], tsdih, thdih, shDI_notifier);
504
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[23], tsdil, thdil, shDI_notifier);
505
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[23], tsdih, thdih, shDI_notifier);
506
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[24], tsdil, thdil, shDI_notifier);
507
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[24], tsdih, thdih, shDI_notifier);
508
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[25], tsdil, thdil, shDI_notifier);
509
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[25], tsdih, thdih, shDI_notifier);
510
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[26], tsdil, thdil, shDI_notifier);
511
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[26], tsdih, thdih, shDI_notifier);
512
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[27], tsdil, thdil, shDI_notifier);
513
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[27], tsdih, thdih, shDI_notifier);
514
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[28], tsdil, thdil, shDI_notifier);
515
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[28], tsdih, thdih, shDI_notifier);
516
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[29], tsdil, thdil, shDI_notifier);
517
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[29], tsdih, thdih, shDI_notifier);
518
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[30], tsdil, thdil, shDI_notifier);
519
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[30], tsdih, thdih, shDI_notifier);
520
  $setuphold(posedge CK &&& (chk_DI===1'b1), negedge DI[31], tsdil, thdil, shDI_notifier);
521
  $setuphold(posedge CK &&& (chk_DI===1'b1), posedge DI[31], tsdih, thdih, shDI_notifier);
522
 
523
  $period(posedge CK, tcyc, mpwCK_notifier);
524
  $width(negedge CK, tlck, 0, mpwCK_notifier);
525
  $width(posedge CK, thck, 0, pwhCK_notifier);
526
 
527
endspecify
528
 
529
endmodule
530
`endcelldefine

powered by: WebSVN 2.1.0

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