TBDFLARBX2.v
3.77 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
125
126
127
128
129
130
131
132
// VERSION:4.00 DATE:2001/05/14 OPENCAD Verilog LIBRARY
`timescale 1ps / 1ps
`celldefine
`ifdef verifault
`suppress_faults
`enable_portfaults
`endif
module TBDFLARBX2 ( N01, N02, H01, H02, H03 );
input H01;
input H02;
input H03;
output N01;
output N02;
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, _H02 );
not ( _G005, _H03 );
buf ( _G006, _G003 );
buf ( _G007, _G003N );
and ( N01, _G006, _H03 );
or ( N02, _G007, _G005 );
DESFQ ( _G003, _H01, _G004, _H03, 1'b1, notifier );
DESFQB ( _G003N, _H01, _G004, _H03, 1'b1, 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'b1) && (_H03 !== 1'b0) )
docheck5 = ( _G099 !== _H01 );
if ( (_H02 === 1'b0) && (_H03 !== 1'b0) )
docheck4 = ( _G099 !== _H01 );
end
always @( negedge _H02 )
begin
docheck1 = ( _H03 !== 1'b0 );
docheck3 = ( _H01 !== 1'b0 );
docheck5 = ( (_G099 !== _H01) && (_H03 !== 1'b0) );
docheck4 = 1;
end
always @( posedge _H02 )
begin
docheck4 = ( _H03 !== 1'b0 );
docheck5 = ( (_G099 !== _H01) && (_H03 !== 1'b0) );
end
always @( _G003 )
begin
if ( _H03 === 1'b1 )
docheck6 = ( _G003 !== 1'b0 );
end
always @( posedge _H03 )
begin
docheck2 = ( _H01 !== 1'b0 );
docheck6 = ( _G003 !== 1'b0 );
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 );
$hold ( negedge 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 )
( negedge H02 => ( N01 +: H01 )) = ( DMY_SPC, DMY_SPC );
if ( H03 )
( negedge H02 => ( N02 -: H01 )) = ( DMY_SPC, DMY_SPC );
( negedge H03 => ( N01 +: 1'b0 )) = ( 0:0:0, DMY_SPC );
( negedge H03 => ( N02 -: 1'b0 )) = ( DMY_SPC, 0:0:0 );
endspecify
endmodule
`ifdef verifault
`nosuppress_faults
`disable_portfaults
`endif
`endcelldefine