TDSEDFHQSBX1U.v
3.46 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// VERSION:4.00 DATE:2001/05/14 OPENCAD Verilog LIBRARY
`timescale 1ps / 1ps
`celldefine
`ifdef verifault
`suppress_faults
`enable_portfaults
`endif
module TDSEDFHQSBX1U ( N01, H01, H02, H03 );
input H01;
input H02;
input H03;
output N01;
reg notifier;
reg docheck1;
reg docheck2;
reg docheck3;
reg docheck4;
reg docheck5;
reg docheck6;
buf ( _H01, H01 );
buf ( _H02, H02 );
buf ( _H03, H03 );
not ( _G004, _H03 );
buf ( _G005, _G003 );
or ( N01, _G004, _G005 );
DESFQ ( _G003, _H01, _H02, 1'b1, _H03, notifier );
buf #1 ( _G099, _G003 );
`ifdef INCA
buf #1 ( _docheck1, docheck1 );
buf #1 ( _docheck2, docheck2 );
buf #1 ( _docheck3, docheck3 );
buf #1 ( _docheck4, docheck4 );
buf #1 ( _docheck5, docheck5 );
buf #1 ( _docheck6, docheck6 );
`else
`ifdef VCS
buf #1 ( _docheck1, docheck1 );
buf #1 ( _docheck2, docheck2 );
buf #1 ( _docheck3, docheck3 );
buf #1 ( _docheck4, docheck4 );
buf #1 ( _docheck5, docheck5 );
buf #1 ( _docheck6, docheck6 );
`else
buf ( _docheck1, docheck1 );
buf ( _docheck2, docheck2 );
buf ( _docheck3, docheck3 );
buf ( _docheck4, docheck4 );
buf ( _docheck5, docheck5 );
buf ( _docheck6, docheck6 );
`endif
`endif
initial //initialize data flags
begin
docheck1 = 0;
docheck2 = 0;
docheck3 = 0;
docheck4 = 0;
docheck5 = 0;
docheck6 = 0;
end
always @( _H01 or _H03 )
begin
docheck1 = ( _H03 !== 1'b0 );
if ( (_H02 === 1'b0) && (_H03 !== 1'b0) )
docheck4 = ( _G099 !== _H01 );
if ( (_H02 === 1'b1) && (_H03 !== 1'b0) )
docheck5 = ( _G099 !== _H01 );
end
always @( posedge _H02 )
begin
docheck1 = ( _H03 !== 1'b0 );
docheck3 = ( _H01 !== 1'b1 );
docheck4 = ( (_G099 !== _H01) && (_H03 !== 1'b0) );
docheck5 = 1;
end
always @( negedge _H02 )
begin
docheck4 = ( (_G099 !== _H01) && (_H03 !== 1'b0) );
docheck5 = ( _H03 !== 1'b0 );
end
always @( _G003 )
begin
if ( _H03 === 1'b1 )
docheck6 = ( _G003 !== 1'b1 );
end
always @( posedge _H03 )
begin
docheck2 = ( (_H01 !== 1'b1) );
docheck6 = ( _G003 !== 1'b1 );
end
specify
specparam DMY_SPC=1;
$setup ( posedge H01, posedge H02 &&& _docheck1, DMY_SPC, notifier );
$setup ( negedge H01, posedge H02 &&& _docheck1, DMY_SPC, notifier );
$hold ( posedge H02, posedge H01 &&& _docheck1, DMY_SPC, notifier );
$hold ( posedge H02, negedge H01 &&& _docheck1, DMY_SPC, notifier );
$setup ( posedge H03, posedge H02 &&& _docheck2, DMY_SPC, notifier );
$hold ( posedge H02, posedge H03 &&& _docheck3, DMY_SPC, notifier );
$width ( posedge H02 &&& _docheck4, DMY_SPC, 0, notifier );
$width ( negedge H02 &&& _docheck5, DMY_SPC, 0, notifier );
$width ( negedge H03 &&& _docheck6, DMY_SPC, 0, notifier );
if ( H03 )
( posedge H02 => ( N01 +: H01 )) = ( DMY_SPC, DMY_SPC );
( negedge H03 => ( N01 +: 1'b1 )) = ( DMY_SPC, 0:0:0 );
endspecify
endmodule
`ifdef verifault
`nosuppress_faults
`disable_portfaults
`endif
`endcelldefine