TDDHLQX1.v
2.98 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// VERSION:4.00 DATE:2001/05/14 OPENCAD Verilog LIBRARY
`timescale 1ps / 1ps
`celldefine
`ifdef verifault
`suppress_faults
`enable_portfaults
`endif
module TDDHLQX1 ( N01, H01, H02, H03 );
input H01;
input H02;
input H03;
output N01;
reg notifier;
reg docheck1;
reg docheck2;
reg docheck3;
reg docheck4;
buf ( _H01, H01 );
buf ( _H02, H02 );
buf ( _H03, H03 );
not ( _G001, _H01 );
not ( _G003, _H03 );
not ( _G002, _G006 );
not ( _G008, _H02 );
and ( _G004A, _G001, _G002 );
and ( _G004B, _G001, _G003 );
and ( _G004C, _G002, _H03 );
nor ( _G005, _G004A, _G004B, _G004C );
buf ( N01, _G006 );
DESFQ ( _G006, _G005, _G008, 1'b1, 1'b1, notifier );
buf #1 ( _G099, _G006 );
`ifdef INCA
buf #1 ( _docheck1, docheck1 );
buf #1 ( _docheck2, docheck2 );
buf #1 ( _docheck3, docheck3 );
buf #1 ( _docheck4, docheck4 );
`else
`ifdef VCS
buf #1 ( _docheck1, docheck1 );
buf #1 ( _docheck2, docheck2 );
buf #1 ( _docheck3, docheck3 );
buf #1 ( _docheck4, docheck4 );
`else
buf ( _docheck1, docheck1 );
buf ( _docheck2, docheck2 );
buf ( _docheck3, docheck3 );
buf ( _docheck4, docheck4 );
`endif
`endif
initial //initialize data flags
begin
docheck1 = 0;
docheck2 = 0;
docheck3 = 0;
docheck4 = 0;
end
always @( _H01 or _H03 )
begin
docheck1 = ( _H03 !== 1'b1 );
docheck2 = ( _G099 !== _H01 );
end
always @( negedge _H02 )
begin
docheck1 = ( _H03 !== 1'b1 );
docheck2 = ( _G099 !== _H01 );
docheck3 = ( (_G099 !== _H01) && (_H03 !== 1'b1) );
docheck4 = 1;
end
always @( posedge _H02 )
begin
docheck2 = ( _G099 !== _H01 );
docheck3 = ( (_G099 !== _H01) && (_H03 !== 1'b1) );
docheck4 = ( _H03 !== 1'b1 );
end
specify
specparam DMY_SPC = 1:1:1;
$setup ( posedge H01, negedge H02 &&& _docheck1, DMY_SPC, notifier );
$setup ( negedge H01, negedge H02 &&& _docheck1, DMY_SPC, notifier );
$hold ( negedge H02, posedge H01 &&& _docheck1, DMY_SPC, notifier );
$hold ( negedge H02, negedge H01 &&& _docheck1, DMY_SPC, notifier );
$setup ( posedge H03, negedge H02 &&& _docheck2, DMY_SPC, notifier );
$setup ( negedge H03, negedge H02 &&& _docheck2, DMY_SPC, notifier );
$hold ( negedge H02, posedge H03 &&& _docheck2, DMY_SPC, notifier );
$hold ( negedge H02, negedge H03 &&& _docheck2, DMY_SPC, notifier );
$width ( negedge H02 &&& _docheck3, DMY_SPC, 0, notifier );
$width ( posedge H02 &&& _docheck4, DMY_SPC, 0, notifier );
if ( !H03 )
( negedge H02 => ( N01 +: H01 )) = ( DMY_SPC, DMY_SPC );
endspecify
endmodule
`ifdef verifault
`nosuppress_faults
`disable_portfaults
`endif
`endcelldefine