// REVISION    : $Revision: 1.4 $
//                   MENTOR Proprietary and Confidential
//                       Copyright (c) 2002, MENTOR
`timescale 1ps/1ps
module
CoreTSE_M2S090_CORETSE_AHB_0_AMCXTFIF_FAB
#
(
parameter
FAMILY
=
19
,
parameter
TABITS
=
12
,
parameter
CORETSEi00i
=
32
,
parameter
CORETSEO10i
=
$clog2
(
CORETSEi00i
/
8
)
)
(
CORETSEl10i
,
CORETSEIlii
,
CORETSEIioi
,
CORETSEo10i
,
CORETSEi10i
,
CORETSEOo0i
,
CORETSEIo0i
,
CORETSElo0i
,
CORETSEoo0i
,
CORETSEio0i
,
CORETSEOi0i
,
CORETSEIi0i
,
CORETSEi01i
,
CORETSEO11i
,
CORETSEI11i
,
CORETSEi0oi
,
CORETSEO1oi
,
CORETSEIOii
,
CORETSElOii
,
CORETSEoOii
,
CORETSEOOoi
,
CORETSEOl1i
,
CORETSEIl1i
,
CORETSEiI1i
,
CORETSEIO1i
,
CORETSElO1i
,
CORETSEl11i
,
CORETSEo11i
,
CORETSEi11i
,
CORETSEIIoi
,
CORETSElIoi
)
;
input
CORETSEl10i
;
input
CORETSEIlii
;
input
CORETSEIioi
;
input
[
(
CORETSEi00i
-
1
)
:
0
]
CORETSEo10i
;
input
CORETSEi10i
;
input
CORETSEOo0i
;
input
[
1
:
0
]
CORETSEIo0i
;
input
CORETSElo0i
;
input
CORETSEoo0i
;
input
[
1
:
0
]
CORETSEio0i
;
input
CORETSEOi0i
;
input
CORETSEIi0i
;
input
CORETSEi01i
;
input
[
TABITS
:
0
]
CORETSEO11i
;
input
CORETSEI11i
;
input
[
TABITS
:
0
]
CORETSEi0oi
;
input
[
TABITS
:
0
]
CORETSEO1oi
;
input
[
(
TABITS
+
1
)
:
0
]
CORETSEIOii
;
input
CORETSElOii
;
input
[
(
CORETSEi00i
+
CORETSEO10i
+
6
)
-
1
:
0
]
CORETSEoOii
;
output
CORETSEOOoi
;
output
[
(
TABITS
-
1
)
:
0
]
CORETSEOl1i
;
output
[
(
CORETSEi00i
+
CORETSEO10i
+
6
)
-
1
:
0
]
CORETSEIl1i
;
output
CORETSEiI1i
;
output
CORETSEIO1i
;
output
CORETSElO1i
;
output
[
TABITS
:
0
]
CORETSEl11i
;
output
CORETSEo11i
;
output
CORETSEi11i
;
output
CORETSEIIoi
;
output
[
TABITS
:
0
]
CORETSElIoi
;
parameter
CORETSEol0OI
=
{
TABITS
{
1
'b
0
}
}
;
parameter
CORETSEOlIOI
=
{
(
TABITS
+
1
)
{
1
'b
0
}
}
;
parameter
CORETSEOII
=
1
;
reg
[
TABITS
:
0
]
CORETSEl11i
;
reg
[
TABITS
:
0
]
CORETSEil0OI
;
reg
[
TABITS
:
0
]
CORETSEO00OI
;
reg
CORETSEI00OI
;
reg
CORETSEo11i
;
reg
CORETSEi11i
;
reg
CORETSEOOoi
;
wire
CORETSEIO1i
;
reg
CORETSElO1i
;
wire
CORETSEollOI
;
wire
CORETSEl00OI
;
reg
[
TABITS
:
0
]
CORETSEo00OI
;
reg
CORETSEi00OI
;
reg
CORETSEO10OI
;
reg
CORETSEI10OI
;
reg
CORETSEl10OI
;
reg
CORETSEo10OI
;
reg
CORETSEi10OI
;
reg
[
(
TABITS
-
1
)
:
0
]
CORETSEOl1i
;
reg
[
(
CORETSEi00i
+
CORETSEO10i
+
6
)
-
1
:
0
]
CORETSEIl1i
;
reg
CORETSEiI1i
;
reg
CORETSEOo0OI
;
reg
CORETSEIo0OI
;
wire
[
TABITS
:
0
]
CORETSElo0OI
;
reg
[
(
TABITS
-
1
)
:
0
]
CORETSEoo0OI
;
reg
[
TABITS
:
0
]
CORETSEio0OI
;
reg
[
(
TABITS
-
1
)
:
0
]
CORETSEOi0OI
;
reg
[
TABITS
:
0
]
CORETSEIi0OI
;
reg
CORETSEl0IOI
;
reg
[
TABITS
:
0
]
CORETSEli0OI
;
reg
CORETSEoi0OI
;
wire
[
TABITS
:
0
]
CORETSEii0OI
;
reg
CORETSEOO1OI
;
reg
CORETSEIO1OI
;
wire
CORETSElO1OI
;
reg
CORETSEIIoi
;
wire
[
TABITS
:
0
]
CORETSElIoi
;
reg
CORETSEoO1OI
;
wire
CORETSElo1
;
wire
CORETSEoo1
;
assign
CORETSElo1
=
(
FAMILY
==
25
)
?
1
'b
0
:
CORETSEIlii
;
assign
CORETSEoo1
=
(
FAMILY
==
25
)
?
CORETSEIlii
:
1
'b
0
;
//      generated as part of synthesis results.
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEOl1i
<=
#
1000
CORETSEol0OI
;
else
CORETSEOl1i
<=
#
1000
(
{
TABITS
{
~
(
~
CORETSEIOii
[
TABITS
+
1
]
&
CORETSElO1OI
)
}
}
&
CORETSEO00OI
[
(
TABITS
-
1
)
:
0
]
)
|
(
{
TABITS
{
(
~
CORETSEIOii
[
TABITS
+
1
]
&
CORETSElO1OI
)
}
}
&
CORETSEIOii
[
(
TABITS
-
1
)
:
0
]
)
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEIl1i
<=
#
1000
{
(
CORETSEi00i
+
CORETSEO10i
+
6
)
{
1
'h
0
}
}
;
else
CORETSEIl1i
<=
#
1000
(
{
(
CORETSEi00i
+
CORETSEO10i
+
6
)
{
~
CORETSEIlii
&
~
(
~
CORETSEIOii
[
TABITS
+
1
]
&
CORETSElO1OI
)
}
}
&
{
CORETSEOi0i
,
CORETSEio0i
,
CORETSEoo0i
,
CORETSElo0i
,
CORETSEOo0i
,
CORETSEIo0i
,
CORETSEo10i
}
)
|
(
{
(
CORETSEi00i
+
CORETSEO10i
+
6
)
{
~
CORETSEIlii
&
(
~
CORETSEIOii
[
TABITS
+
1
]
&
CORETSElO1OI
)
}
}
&
CORETSEoOii
)
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEiI1i
<=
#
1000
1
'b
0
;
else
CORETSEiI1i
<=
#
1000
~
(
CORETSEl00OI
|
(
~
CORETSEIOii
[
TABITS
+
1
]
&
CORETSElO1OI
)
)
;
end
assign
CORETSEollOI
=
(
CORETSEO00OI
[
(
TABITS
-
1
)
:
0
]
==
CORETSEo00OI
[
(
TABITS
-
1
)
:
0
]
)
&
(
CORETSEO00OI
[
TABITS
]
!=
CORETSEo00OI
[
TABITS
]
)
;
assign
CORETSEIO1i
=
~
CORETSEollOI
&
CORETSEOOoi
;
assign
CORETSEl00OI
=
(
CORETSEIi0i
&
CORETSEIO1i
)
;
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEO00OI
<=
#
CORETSEOII
CORETSEOlIOI
;
else
if
(
CORETSEIOii
[
TABITS
+
1
]
&
CORETSElO1OI
)
CORETSEO00OI
<=
#
CORETSEOII
CORETSEIOii
[
TABITS
:
0
]
;
else
if
(
CORETSEl00OI
)
CORETSEO00OI
<=
#
CORETSEOII
CORETSEO00OI
+
1
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEo00OI
<=
#
CORETSEOII
CORETSEOlIOI
;
else
if
(
CORETSEl10OI
&
~
CORETSEi11i
)
CORETSEo00OI
<=
#
CORETSEOII
CORETSEO11i
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEOo0OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEOo0OI
<=
#
CORETSEOII
CORETSEO00OI
[
TABITS
]
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEIo0OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEIo0OI
<=
#
CORETSEOII
CORETSEo00OI
[
TABITS
]
;
end
assign
CORETSElo0OI
=
(
CORETSEOo0OI
==
CORETSEIo0OI
)
?
{
1
'b
0
,
CORETSEoo0OI
}
:
CORETSEio0OI
;
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSElO1i
<=
#
CORETSEOII
1
'b
0
;
else
CORETSElO1i
<=
#
CORETSEOII
(
CORETSElo0OI
>
CORETSEi0oi
)
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEoo0OI
<=
#
CORETSEOII
CORETSEol0OI
;
else
CORETSEoo0OI
<=
#
CORETSEOII
CORETSEO00OI
[
(
TABITS
-
1
)
:
0
]
-
CORETSEo00OI
[
(
TABITS
-
1
)
:
0
]
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEio0OI
<=
#
CORETSEOII
CORETSEOlIOI
;
else
CORETSEio0OI
<=
#
CORETSEOII
{
1
'b
1
,
CORETSEO00OI
[
(
TABITS
-
1
)
:
0
]
}
-
{
1
'b
0
,
CORETSEo00OI
[
(
TABITS
-
1
)
:
0
]
}
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEli0OI
<=
#
CORETSEOII
CORETSEOlIOI
;
else
if
(
CORETSEOo0i
&
CORETSEl00OI
)
CORETSEli0OI
<=
#
CORETSEOII
CORETSEO00OI
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEOi0OI
<=
#
CORETSEOII
CORETSEol0OI
;
else
CORETSEOi0OI
<=
#
CORETSEOII
CORETSEO00OI
[
(
TABITS
-
1
)
:
0
]
-
CORETSEli0OI
[
(
TABITS
-
1
)
:
0
]
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEIi0OI
<=
#
CORETSEOII
CORETSEOlIOI
;
else
CORETSEIi0OI
<=
#
CORETSEOII
{
1
'b
1
,
CORETSEO00OI
[
(
TABITS
-
1
)
:
0
]
}
-
{
1
'b
0
,
CORETSEli0OI
[
(
TABITS
-
1
)
:
0
]
}
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEoi0OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEoi0OI
<=
#
CORETSEOII
CORETSEli0OI
[
TABITS
]
;
end
assign
CORETSEii0OI
=
(
CORETSEOo0OI
==
CORETSEoi0OI
)
?
{
1
'b
0
,
CORETSEOi0OI
}
:
CORETSEIi0OI
;
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEoO1OI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEl00OI
&
CORETSEOo0i
)
CORETSEoO1OI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
(
CORETSEii0OI
>
CORETSEO1oi
)
&
CORETSEl0IOI
)
CORETSEoO1OI
<=
#
CORETSEOII
1
'b
1
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEil0OI
<=
#
CORETSEOII
CORETSEOlIOI
;
else
if
(
CORETSEl00OI
&
(
CORETSEOo0i
|
CORETSEoO1OI
)
)
CORETSEil0OI
<=
#
CORETSEOII
CORETSEO00OI
+
1
;
else
if
(
~
CORETSEl0IOI
|
CORETSEoO1OI
)
CORETSEil0OI
<=
#
CORETSEOII
CORETSEO00OI
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEl11i
<=
#
CORETSEOII
CORETSEOlIOI
;
else
if
(
~
CORETSEI00OI
&
~
CORETSEO10OI
)
CORETSEl11i
<=
#
CORETSEOII
CORETSEil0OI
;
end
assign
CORETSElIoi
=
CORETSEO00OI
;
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEI00OI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEO10OI
)
CORETSEI00OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEI00OI
<=
#
CORETSEOII
1
'b
1
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEo11i
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEo11i
<=
#
CORETSEOII
CORETSEI00OI
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEi11i
<=
#
CORETSEOII
1
'b
0
;
else
if
(
~
CORETSEl10OI
)
CORETSEi11i
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEl10OI
)
CORETSEi11i
<=
#
CORETSEOII
1
'b
1
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEi00OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEi00OI
<=
#
CORETSEOII
CORETSEi01i
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEO10OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEO10OI
<=
#
CORETSEOII
CORETSEi00OI
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEI10OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEI10OI
<=
#
CORETSEOII
CORETSEI11i
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEl10OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEl10OI
<=
#
CORETSEOII
CORETSEI10OI
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEo10OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEo10OI
<=
#
CORETSEOII
CORETSEIioi
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEi10OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEi10OI
<=
#
CORETSEOII
CORETSEo10OI
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEOO1OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEOO1OI
<=
#
CORETSEOII
CORETSElOii
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEIO1OI
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEIO1OI
<=
#
CORETSEOII
CORETSEOO1OI
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEIIoi
<=
#
CORETSEOII
1
'b
0
;
else
CORETSEIIoi
<=
#
CORETSEOII
CORETSEIO1OI
;
end
assign
CORETSElO1OI
=
CORETSEIO1OI
&
~
CORETSEIIoi
;
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEl0IOI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEl00OI
&
CORETSEi10i
)
CORETSEl0IOI
<=
#
CORETSEOII
1
'b
1
;
else
if
(
CORETSEl00OI
&
CORETSEOo0i
)
CORETSEl0IOI
<=
#
CORETSEOII
1
'b
0
;
end
always
@
(
posedge
CORETSEl10i
or
posedge
CORETSElo1
)
begin
if
(
CORETSEoo1
||
CORETSElo1
)
CORETSEOOoi
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEi10OI
)
CORETSEOOoi
<=
#
CORETSEOII
1
'b
1
;
else
if
(
(
CORETSEl00OI
&
CORETSEOo0i
&
~
CORETSEi10OI
)
|
(
~
CORETSEl00OI
&
~
CORETSEl0IOI
)
)
CORETSEOOoi
<=
#
CORETSEOII
1
'b
0
;
end
endmodule
