TDLALAX1.v
1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// VERSION:4.00 DATE:00/02/15 OPENCAD Verilog LIBRARY
`timescale 1ps / 1ps
`celldefine
`ifdef verifault
`suppress_faults
`enable_portfaults
`endif
module TDLALAX1 ( N01, N02, H01, H02 );
input H01;
input H02;
output N01;
output N02;
reg notifier;
reg docheck;
buf ( _H01, H01 );
buf ( _H02, H02 );
not ( _G002, _H02 );
buf ( N01, _G003 );
buf ( N02, _G003N );
DLSFQ ( _G003, _H01, _G002, 1'b1, 1'b1, notifier );
DLSFQB ( _G003N, _H01, _G002, 1'b1, 1'b1, notifier );
buf #1 ( _G099, _G003 );
`ifdef INCA
buf #1 ( _docheck, docheck );
`else
`ifdef VCS
buf #1 ( _docheck, docheck );
`else
buf ( _docheck, docheck );
`endif
`endif
initial //initialize data flags
begin
docheck = 0;
end
always @( _H01 )
begin
docheck = ( _G099 !== _H01 );
end
always @( posedge _H02 )
begin
docheck = ( _G099 !== _H01 );
end
always @( negedge _H02 )
begin
docheck = ( _G099 !== _H01 );
end
specify
specparam DMY_SPC=1;
$setup ( posedge H01, posedge H02, DMY_SPC, notifier );
$setup ( negedge H01, posedge H02, DMY_SPC, notifier );
$hold ( posedge H02, posedge H01, DMY_SPC, notifier );
$hold ( posedge H02, negedge H01, DMY_SPC, notifier );
$width ( negedge H02 &&& _docheck, DMY_SPC, 0, notifier );
if ( !H02 )
( H01 +=> N01 ) = ( DMY_SPC, DMY_SPC );
if ( !H02 )
( H01 -=> N02 ) = ( DMY_SPC, DMY_SPC );
( negedge H02 => ( N01 +: H01 )) = ( DMY_SPC, DMY_SPC );
( negedge H02 => ( N02 -: H01 )) = ( DMY_SPC, DMY_SPC );
endspecify
endmodule
`ifdef verifault
`nosuppress_faults
`disable_portfaults
`endif
`endcelldefine