// REVISION    : $Revision: 1.20 $
//                   MENTOR Proprietary and Confidential
//                       Copyright (c) 2003, MENTOR
`timescale 1ns/1ns
module
CoreTSE_M2S090_CORETSE_AHB_0_PERFN_TOP
#
(
parameter
FAMILY
=
19
,
parameter
CORETSEO
=
0
,
parameter
CORETSEI
=
0
)
(
CORETSEl
,
CORETSEo
,
CORETSEi
,
CORETSEOI
,
CORETSEII
,
CORETSElI
,
CORETSEoI
,
CORETSEiI
,
CORETSEOl
,
CORETSEIl
,
CORETSEll
,
CORETSEol
,
CORETSEil
,
CORETSEO0
,
CORETSEI0
,
CORETSEl0
,
CORETSEo0
,
CORETSEi0
,
CORETSEO1
,
CORETSEI1
,
CORETSEl1
,
CORETSEo1
,
CORETSEi1
,
CORETSEOo
,
CORETSEIo
,
CORETSElo
,
CORETSEoo
,
CORETSEio
,
CORETSEOi
,
CORETSEIi
,
CORETSEli
,
CORETSEoi
,
CORETSEii
,
CORETSEOOI
,
CORETSEIOI
,
CORETSElOI
)
;
input
CORETSEl
,
CORETSEo
;
input
CORETSEi
;
input
[
7
:
0
]
CORETSEOI
;
input
CORETSEII
;
input
CORETSElI
;
input
CORETSEoI
;
input
[
1
:
0
]
CORETSEiI
;
input
CORETSEOl
,
CORETSEIl
,
CORETSEll
;
input
CORETSEol
;
input
[
7
:
0
]
CORETSEil
;
input
[
15
:
0
]
CORETSEO0
;
input
CORETSEI0
,
CORETSEl0
,
CORETSEo0
;
input
CORETSEi0
;
output
CORETSEO1
;
output
[
7
:
0
]
CORETSEI1
;
output
CORETSEl1
,
CORETSEo1
,
CORETSEi1
;
output
CORETSEOo
,
CORETSEIo
;
output
CORETSElo
;
output
[
32
:
0
]
CORETSEoo
;
output
CORETSEii
;
output
[
8
:
0
]
CORETSEOOI
;
output
CORETSEIOI
,
CORETSElOI
;
output
[
7
:
0
]
CORETSEio
;
output
[
7
:
0
]
CORETSEOi
;
output
CORETSEIi
;
output
CORETSEli
;
output
CORETSEoi
;
reg
CORETSEO1
;
reg
[
7
:
0
]
CORETSEI1
;
reg
CORETSEl1
,
CORETSEo1
,
CORETSEi1
;
reg
CORETSEOo
,
CORETSEIo
;
reg
CORETSElo
;
reg
[
32
:
0
]
CORETSEoo
;
reg
CORETSEii
;
reg
[
8
:
0
]
CORETSEOOI
;
reg
CORETSEIOI
,
CORETSElOI
;
reg
CORETSEoOI
;
wire
CORETSEiOI
;
parameter
CORETSEOII
=
1
;
reg
CORETSEIII
,
CORETSElII
;
reg
[
7
:
0
]
CORETSEoII
;
reg
CORETSEiII
;
reg
CORETSEOlI
;
wire
[
7
:
0
]
CORETSEIlI
;
reg
[
7
:
0
]
CORETSEllI
;
reg
CORETSEolI
;
wire
CORETSEilI
;
reg
CORETSEO0I
;
wire
CORETSEI0I
;
reg
CORETSEl0I
,
CORETSEo0I
;
wire
CORETSEi0I
;
reg
CORETSEO1I
,
CORETSEI1I
;
wire
CORETSEl1I
;
reg
CORETSEo1I
,
CORETSEi1I
;
wire
CORETSEOoI
,
CORETSEIoI
,
CORETSEloI
,
CORETSEooI
,
CORETSEioI
,
CORETSEOiI
;
reg
CORETSEIiI
,
CORETSEliI
,
CORETSEoiI
,
CORETSEiiI
,
CORETSEOOl
;
wire
CORETSEIOl
;
reg
CORETSElOl
;
wire
CORETSEoOl
,
CORETSEiOl
;
wire
[
7
:
0
]
CORETSEOIl
;
reg
[
7
:
0
]
CORETSEIIl
;
wire
CORETSElIl
;
wire
CORETSEoIl
,
CORETSEiIl
;
wire
[
15
:
0
]
CORETSEOll
;
reg
[
15
:
0
]
CORETSEIll
;
wire
CORETSElll
,
CORETSEoll
,
CORETSEill
,
CORETSEO0l
;
wire
CORETSEI0l
,
CORETSEl0l
,
CORETSEo0l
,
CORETSEi0l
;
wire
CORETSEO1l
,
CORETSEI1l
,
CORETSEl1l
;
wire
CORETSEo1l
,
CORETSEi1l
;
wire
CORETSEOol
,
CORETSEIol
;
wire
[
14
:
0
]
CORETSElol
;
reg
[
14
:
0
]
CORETSEool
;
wire
CORETSEiol
;
reg
CORETSEOil
;
wire
CORETSEIil
;
reg
CORETSElil
;
wire
CORETSEoil
;
reg
CORETSEiil
;
wire
CORETSEOO0
,
CORETSEIO0
,
CORETSElO0
;
reg
CORETSEoO0
,
CORETSEiO0
;
wire
[
7
:
0
]
CORETSEOI0
;
reg
[
7
:
0
]
CORETSEII0
;
wire
CORETSElI0
,
CORETSEoI0
,
CORETSEiI0
;
reg
CORETSEOl0
,
CORETSEIl0
,
CORETSEll0
;
reg
CORETSEol0
;
wire
[
7
:
0
]
CORETSEil0
;
wire
CORETSEO00
,
CORETSEI00
,
CORETSEl00
;
wire
CORETSEo00
,
CORETSEi00
;
wire
CORETSEO10
,
CORETSEI10
,
CORETSEl10
;
reg
CORETSEo10
,
CORETSEi10
,
CORETSEOo0
;
wire
[
31
:
0
]
CORETSEIo0
;
wire
CORETSElo0
;
wire
CORETSEoo0
;
wire
[
8
:
0
]
CORETSEio0
;
wire
CORETSEOi0
;
wire
CORETSEIi0
;
wire
CORETSEli0
,
CORETSEoi0
;
wire
[
15
:
0
]
CORETSEii0
;
reg
[
15
:
0
]
CORETSEOO1
;
wire
CORETSEIO1
,
CORETSElO1
;
wire
CORETSEoO1
;
reg
CORETSEiO1
;
wire
CORETSEOI1
;
reg
CORETSEII1
;
wire
[
15
:
0
]
CORETSElI1
;
reg
[
15
:
0
]
CORETSEoI1
;
wire
CORETSEiI1
;
reg
CORETSEOl1
;
wire
CORETSEIl1
;
reg
CORETSEll1
;
wire
CORETSEol1
;
reg
CORETSEil1
;
wire
CORETSEO01
;
reg
CORETSEI01
;
wire
CORETSEl01
;
reg
CORETSEo01
;
wire
CORETSEi01
;
reg
CORETSEO11
;
wire
CORETSEI11
;
reg
CORETSEl11
;
reg
CORETSEo11
;
wire
CORETSEi11
;
wire
[
32
:
0
]
CORETSEOo1
;
wire
CORETSEIo1
;
wire
CORETSElo1
;
wire
CORETSEoo1
;
assign
CORETSEio
=
CORETSEIlI
;
assign
CORETSEOi
=
CORETSEllI
;
assign
CORETSEIi
=
CORETSEooI
;
assign
CORETSEli
=
CORETSEOOl
;
assign
CORETSEoi
=
CORETSEliI
;
assign
CORETSElo1
=
(
FAMILY
==
25
)
?
1
'b
0
:
CORETSEi0
;
assign
CORETSEoo1
=
(
FAMILY
==
25
)
?
CORETSEi0
:
1
'b
0
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEIII
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEIII
<=
#
CORETSEOII
CORETSEi
&
~
CORETSEiO0
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSElII
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSElII
<=
#
CORETSEOII
CORETSEi
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEoII
[
7
:
0
]
<=
#
CORETSEOII
8
'h
0
;
else
if
(
CORETSEo
)
CORETSEoII
[
7
:
0
]
<=
#
CORETSEOII
CORETSEOI
[
7
:
0
]
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEiII
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEiII
<=
#
CORETSEOII
CORETSEII
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEOlI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEOlI
<=
#
CORETSEOII
CORETSEIII
;
end
assign
CORETSEIlI
[
7
:
0
]
=
{
8
{
~
CORETSEiI
[
1
]
}
}
&
{
CORETSEoII
[
3
:
0
]
,
CORETSEllI
[
7
:
4
]
}
|
{
8
{
CORETSEiI
[
1
]
}
}
&
CORETSEoII
[
7
:
0
]
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEllI
[
7
:
0
]
<=
#
CORETSEOII
8
'h
0
;
else
if
(
CORETSEo
)
CORETSEllI
[
7
:
0
]
<=
#
CORETSEOII
CORETSEIlI
[
7
:
0
]
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEolI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEolI
<=
#
CORETSEOII
CORETSEiII
;
end
assign
CORETSEilI
=
~
CORETSEiI
[
1
]
&
(
~
CORETSEIOl
|
CORETSEIOl
&
CORETSEOlI
&
~
CORETSEO0I
)
|
CORETSEiI
[
1
]
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEO0I
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEO0I
<=
#
CORETSEOII
CORETSEilI
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEl0I
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEl0I
<=
#
CORETSEOII
CORETSEoI
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEo0I
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEo0I
<=
#
CORETSEOII
CORETSEl0I
;
end
assign
CORETSEi0I
=
~
CORETSEIl
&
CORETSEo0I
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEO1I
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEO1I
<=
#
CORETSEOII
CORETSElI
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEI1I
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEI1I
<=
#
CORETSEOII
CORETSEO1I
;
end
assign
CORETSEl1I
=
CORETSEI1I
&
~
CORETSEIl
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEo1I
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEo1I
<=
#
CORETSEOII
CORETSEOl
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEi1I
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEi1I
<=
#
CORETSEOII
CORETSEo1I
;
end
assign
CORETSEIo1
=
~
CORETSEOlI
&
CORETSEi1I
|
CORETSEOlI
&
CORETSEO1
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEO1
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEO1
<=
#
CORETSEOII
CORETSEIo1
;
end
assign
CORETSEOoI
=
CORETSEIiI
&
CORETSEOlI
|
CORETSEliI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
&
CORETSEO0I
&
~
CORETSElIl
|
CORETSEoiI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
&
CORETSEO0I
&
~
CORETSElIl
|
CORETSEiiI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
&
CORETSEO0I
&
~
CORETSElIl
|
CORETSEOOl
&
CORETSEOlI
&
|
CORETSEllI
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEIiI
<=
#
CORETSEOII
1
'b
1
;
else
if
(
CORETSEo
)
CORETSEIiI
<=
#
CORETSEOII
CORETSEOoI
;
end
assign
CORETSEIoI
=
CORETSEIiI
&
~
CORETSEOlI
|
CORETSEoiI
&
~
CORETSEOlI
|
CORETSEiiI
&
~
CORETSEOlI
|
CORETSEOOl
&
~
CORETSEOlI
|
CORETSEliI
&
(
~
CORETSEOlI
|
CORETSEi0I
|
~
CORETSEO0I
|
~
CORETSEO1
)
;
assign
CORETSEOiI
=
CORETSEIoI
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEliI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEliI
<=
#
CORETSEOII
CORETSEOiI
;
end
assign
CORETSEloI
=
CORETSEliI
&
CORETSEOlI
&
CORETSEllI
[
6
:
0
]
!=
7
'b
101_0101
&
CORETSEO0I
&
CORETSEO1
|
CORETSEiiI
&
CORETSEOlI
&
CORETSEllI
[
6
:
0
]
!=
7
'b
101_0101
&
CORETSEO0I
|
CORETSEoiI
&
(
CORETSEOlI
&
CORETSEllI
[
6
:
0
]
!=
7
'b
101_0101
&
CORETSEO0I
|
~
CORETSEO0I
)
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEoiI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEoiI
<=
#
CORETSEOII
CORETSEloI
;
end
assign
CORETSEooI
=
CORETSEliI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
0101_0101
&
CORETSEO0I
&
CORETSEO1
|
CORETSEoiI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
0101_0101
&
CORETSEO0I
|
CORETSEiiI
&
(
CORETSEOlI
&
CORETSEllI
!=
8
'b
1101_0101
&
CORETSEO0I
|
~
CORETSEO0I
)
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEiiI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEiiI
<=
#
CORETSEOII
CORETSEooI
;
end
assign
CORETSEIOl
=
CORETSEliI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
&
CORETSEO1
|
CORETSEoiI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
|
CORETSEiiI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
|
CORETSElOl
&
~
CORETSEliI
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSElOl
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSElOl
<=
#
CORETSEOII
CORETSEIOl
;
end
assign
CORETSEioI
=
CORETSEliI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
&
CORETSEO0I
&
CORETSElIl
&
CORETSEO1
|
CORETSEoiI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
&
CORETSEO0I
&
CORETSElIl
|
CORETSEiiI
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
&
CORETSEO0I
&
CORETSElIl
|
CORETSEOOl
&
CORETSEOlI
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEOOl
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEOOl
<=
#
CORETSEOII
CORETSEioI
;
end
assign
CORETSEoOl
=
CORETSEOOl
&
CORETSEOlI
;
assign
CORETSEiOl
=
~
(
&
CORETSEIIl
[
7
:
0
]
)
&
(
CORETSEIiI
|
CORETSEliI
|
CORETSEoiI
|
CORETSEiiI
|
CORETSEOOl
&
~
CORETSEOlI
)
;
assign
CORETSEOIl
[
7
:
0
]
=
{
8
{
~
CORETSEoOl
&
CORETSEiOl
}
}
&
CORETSEIIl
[
7
:
0
]
+
1
'b
1
|
{
8
{
~
CORETSEoOl
&
~
CORETSEiOl
}
}
&
CORETSEIIl
[
7
:
0
]
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEIIl
[
7
:
0
]
<=
#
CORETSEOII
8
'h
0
;
else
if
(
CORETSEo
)
CORETSEIIl
[
7
:
0
]
<=
#
CORETSEOII
CORETSEOIl
[
7
:
0
]
;
end
assign
CORETSElIl
=
~
CORETSEiI
[
1
]
&
(
CORETSEIIl
[
7
:
0
]
>=
(
CORETSEil
[
7
:
2
]
-
1
'b
1
)
)
|
CORETSEiI
[
1
]
&
(
CORETSEIIl
[
7
:
0
]
>=
(
CORETSEil
[
7
:
3
]
-
1
'b
1
)
)
;
assign
CORETSEoIl
=
CORETSElo
;
assign
CORETSEiIl
=
~
(
&
CORETSEIll
[
15
:
0
]
)
&
(
CORETSEOOl
&
CORETSEO0I
&
CORETSEOlI
)
;
assign
CORETSEOll
[
15
:
0
]
=
{
16
{
~
CORETSEoIl
&
CORETSEiIl
}
}
&
CORETSEIll
[
15
:
0
]
+
1
'b
1
|
{
16
{
~
CORETSEoIl
&
~
CORETSEiIl
}
}
&
CORETSEIll
[
15
:
0
]
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEIll
[
15
:
0
]
<=
#
CORETSEOII
16
'h
0
;
else
if
(
CORETSEo
)
CORETSEIll
[
15
:
0
]
<=
#
CORETSEOII
CORETSEOll
[
15
:
0
]
;
end
assign
CORETSElll
=
CORETSEIll
[
15
:
0
]
==
16
'h
0000
;
assign
CORETSEoll
=
CORETSEIll
[
15
:
0
]
==
16
'h
0001
;
assign
CORETSEill
=
CORETSEIll
[
15
:
0
]
==
16
'h
0002
;
assign
CORETSEO0l
=
CORETSEIll
[
15
:
0
]
==
16
'h
0003
;
assign
CORETSEI0l
=
CORETSEIll
[
15
:
0
]
==
16
'h
0004
;
assign
CORETSEl0l
=
CORETSEIll
[
15
:
0
]
==
16
'h
0005
;
assign
CORETSEo0l
=
CORETSEIll
[
15
:
0
]
>
16
'h
0005
;
assign
CORETSEi0l
=
CORETSEIll
[
15
:
0
]
==
16
'h
0006
;
assign
CORETSEO1l
=
CORETSEIll
[
15
:
0
]
==
16
'h
000c
;
assign
CORETSEI1l
=
CORETSEIll
[
15
:
0
]
==
16
'h
000d
;
assign
CORETSEio1
=
CORETSEIll
[
15
:
0
]
==
16
'h
000e
;
assign
CORETSEl1l
=
CORETSEIll
[
15
:
0
]
==
16
'h
000f
;
assign
CORETSEo1l
=
CORETSEIll
[
15
:
0
]
==
16
'h
0010
;
assign
CORETSEi1l
=
CORETSEIll
[
15
:
0
]
==
16
'h
0011
;
assign
CORETSEOol
=
~
CORETSEl1I
|
CORETSElo
;
assign
CORETSEIol
=
CORETSEl1I
;
assign
CORETSElol
[
14
:
0
]
=
{
15
{
~
CORETSEOol
&
CORETSEIol
}
}
&
CORETSEool
[
14
:
0
]
+
1
'b
1
|
{
15
{
~
CORETSEOol
&
~
CORETSEIol
}
}
&
CORETSEool
[
14
:
0
]
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEool
[
14
:
0
]
<=
#
CORETSEOII
15
'h
0
;
else
if
(
CORETSEo
)
CORETSEool
[
14
:
0
]
<=
#
CORETSEOII
CORETSElol
[
14
:
0
]
;
end
assign
CORETSEiol
=
~
CORETSEOil
&
CORETSEl1I
&
~
CORETSEiI
[
1
]
&
CORETSEool
[
14
:
0
]
==
15
'h
30D4
|
~
CORETSEOil
&
CORETSEl1I
&
CORETSEiI
[
1
]
&
CORETSEool
[
14
:
0
]
==
15
'h
186A
|
CORETSEOil
&
~
CORETSElo
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEOil
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEOil
<=
#
CORETSEOII
CORETSEiol
;
end
assign
CORETSEoil
=
CORETSEiO0
&
CORETSElII
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEiil
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEiil
<=
#
CORETSEOII
CORETSEoil
;
end
assign
CORETSEOO0
=
~
CORETSEoO0
&
CORETSEiil
&
CORETSElII
|
CORETSEoO0
&
~
CORETSElo
&
~
CORETSEo1
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEoO0
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEoO0
<=
#
CORETSEOII
CORETSEOO0
;
end
assign
CORETSElO0
=
CORETSEiI
[
0
]
&
(
CORETSEIll
[
15
:
0
]
==
CORETSEO0
[
15
:
0
]
-
1
)
&
~
CORETSEol
|
CORETSEiI
[
1
]
&
(
CORETSEIll
[
15
:
0
]
==
CORETSEO0
[
15
:
0
]
-
3
)
&
~
CORETSEol
;
assign
CORETSEIO0
=
CORETSElO0
|
CORETSEiO0
&
CORETSElII
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEiO0
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEiO0
<=
#
CORETSEOII
CORETSEIO0
;
end
assign
CORETSEOI0
[
7
:
0
]
=
{
8
{
CORETSEOOl
&
CORETSEO0I
}
}
&
CORETSEllI
[
7
:
0
]
|
{
8
{
CORETSEOOl
&
~
CORETSEO0I
}
}
&
CORETSEI1
[
7
:
0
]
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEII0
[
7
:
0
]
<=
#
CORETSEOII
8
'h
0
;
else
if
(
CORETSEo
)
CORETSEII0
[
7
:
0
]
<=
#
CORETSEOII
CORETSEOI0
[
7
:
0
]
;
end
assign
CORETSElI0
=
CORETSEOOl
&
CORETSEOlI
&
CORETSEO0I
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEOl0
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEOl0
<=
#
CORETSEOII
CORETSElI0
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEol0
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEol0
<=
#
CORETSEOII
CORETSEOl0
;
end
assign
CORETSEoI0
=
CORETSEOOl
&
CORETSEO0I
&
CORETSEOlI
&
~
CORETSEOl0
&
~
CORETSEol0
&
~
CORETSEIl0
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEIl0
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEIl0
<=
#
CORETSEOII
CORETSEoI0
;
end
assign
CORETSEiI0
=
CORETSEOOl
&
CORETSEO0I
&
~
CORETSEIII
&
CORETSEOlI
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEll0
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEll0
<=
#
CORETSEOII
CORETSEiI0
;
end
assign
CORETSEil0
[
7
:
0
]
=
{
8
{
~
CORETSEiI
[
1
]
}
}
&
CORETSEII0
[
7
:
0
]
|
{
8
{
CORETSEiI
[
1
]
}
}
&
CORETSEOI0
[
7
:
0
]
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEI1
[
7
:
0
]
<=
#
CORETSEOII
8
'h
0
;
else
if
(
CORETSEo
)
CORETSEI1
[
7
:
0
]
<=
#
CORETSEOII
CORETSEil0
[
7
:
0
]
;
end
assign
CORETSEO00
=
~
CORETSEiI
[
1
]
&
CORETSEOl0
|
CORETSEiI
[
1
]
&
CORETSElI0
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEl1
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEl1
<=
#
CORETSEOII
CORETSEO00
;
end
assign
CORETSEI00
=
~
CORETSEiI
[
1
]
&
CORETSEIl0
|
CORETSEiI
[
1
]
&
CORETSEoI0
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEo1
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEo1
<=
#
CORETSEOII
CORETSEI00
;
end
assign
CORETSEl00
=
~
CORETSEiI
[
1
]
&
(
CORETSEll0
|
CORETSEOOl
&
~
CORETSEO0I
&
~
CORETSEIII
&
CORETSEOlI
)
|
CORETSEiI
[
1
]
&
CORETSEiI0
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEi1
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEi1
<=
#
CORETSEOII
CORETSEl00
;
end
assign
CORETSEi00
=
CORETSEoO1
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEIo
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEIo
<=
#
CORETSEOII
CORETSEi00
;
end
assign
CORETSEo00
=
1
'b
0
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEOo
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEOo
<=
#
CORETSEOII
CORETSEo00
;
end
assign
CORETSEO10
=
CORETSEliI
&
~
CORETSEI10
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEo10
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEo10
<=
#
CORETSEOII
CORETSEO10
;
end
assign
CORETSEI10
=
~
CORETSEiI
[
1
]
&
CORETSEioI
&
CORETSEIII
&
~
CORETSEO0I
|
CORETSEiI
[
1
]
&
CORETSEioI
&
CORETSEIII
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEi10
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEi10
<=
#
CORETSEOII
CORETSEI10
;
end
assign
CORETSEl10
=
~
CORETSEO10
&
~
CORETSEI10
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEOo0
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEOo0
<=
#
CORETSEOII
CORETSEl10
;
end
CoreTSE_M2S090_CORETSE_AHB_0_PECRC
#
(
.FAMILY
(
FAMILY
)
)
CORETSEOi1
(
.CORETSEIi1
(
CORETSEl
)
,
.CORETSEli1
(
CORETSEi0
)
,
.CORETSEoi1
(
CORETSEllI
)
,
.CORETSEi10
(
CORETSEi10
)
,
.CORETSEo10
(
CORETSEo10
)
,
.CORETSEOo0
(
CORETSEOo0
)
,
.CORETSEii1
(
CORETSEo
)
,
.CORETSEIo0
(
CORETSEIo0
)
,
.CORETSElo0
(
CORETSElo0
)
)
;
assign
CORETSEoo0
=
~
CORETSEii
&
CORETSEi0l
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEii
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEii
<=
#
CORETSEOII
CORETSEoo0
;
end
assign
CORETSEio0
[
8
:
0
]
=
{
9
{
CORETSEoo0
}
}
&
CORETSEIo0
[
31
:
23
]
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEOOI
[
8
:
0
]
<=
#
CORETSEOII
9
'h
0
;
else
if
(
CORETSEo
)
CORETSEOOI
[
8
:
0
]
<=
#
CORETSEOII
CORETSEio0
[
8
:
0
]
;
end
assign
CORETSEOi0
=
CORETSElll
&
CORETSEO0I
&
CORETSEllI
[
0
]
|
~
(
CORETSElll
&
CORETSEO0I
)
&
CORETSElOI
&
!
CORETSEIOI
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSElOI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSElOI
<=
#
CORETSEOII
CORETSEOi0
;
end
assign
CORETSEiOI
=
CORETSElll
&
CORETSEO0I
&
(
&
CORETSEllI
[
7
:
0
]
)
|
CORETSEoll
&
CORETSEO0I
&
(
&
CORETSEllI
[
7
:
0
]
)
&
CORETSEoOI
|
CORETSEill
&
CORETSEO0I
&
(
&
CORETSEllI
[
7
:
0
]
)
&
CORETSEoOI
|
CORETSEO0l
&
CORETSEO0I
&
(
&
CORETSEllI
[
7
:
0
]
)
&
CORETSEoOI
|
CORETSEI0l
&
CORETSEO0I
&
(
&
CORETSEllI
[
7
:
0
]
)
&
CORETSEoOI
|
CORETSEl0l
&
CORETSEO0I
&
(
&
CORETSEllI
[
7
:
0
]
)
&
CORETSEoOI
|
(
CORETSEo0l
|
~
CORETSEO0I
)
&
CORETSEoOI
;
assign
CORETSEIi0
=
CORETSEo0l
&
CORETSEoOI
|
~
CORETSEo0l
&
1
'b
0
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEoOI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEoOI
<=
#
CORETSEOII
CORETSEiOI
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEIOI
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEIOI
<=
#
CORETSEOII
CORETSEIi0
;
end
assign
CORETSEli0
=
CORETSEO1l
&
CORETSEO0I
|
CORETSEo1l
&
CORETSEO0I
&
CORETSEiO1
;
assign
CORETSEoi0
=
CORETSEI1l
&
CORETSEO0I
|
CORETSEi1l
&
CORETSEO0I
&
CORETSEiO1
;
assign
CORETSEii0
[
15
:
0
]
=
{
16
{
CORETSEli0
}
}
&
{
CORETSEllI
[
7
:
0
]
,
CORETSEOO1
[
7
:
0
]
}
|
{
16
{
CORETSEoi0
}
}
&
{
CORETSEOO1
[
15
:
8
]
,
CORETSEllI
[
7
:
0
]
}
|
{
16
{
~
CORETSEli0
&
~
CORETSEoi0
}
}
&
{
CORETSEOO1
[
15
:
8
]
,
CORETSEOO1
[
7
:
0
]
}
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEOO1
[
15
:
0
]
<=
#
CORETSEOII
16
'h
0
;
else
if
(
CORETSEo
)
CORETSEOO1
[
15
:
0
]
<=
#
CORETSEOII
CORETSEii0
[
15
:
0
]
;
end
assign
CORETSEIO1
=
CORETSEOO1
[
15
:
0
]
>
16
'h
05dc
;
assign
CORETSElO1
=
(
CORETSEOO1
[
15
:
0
]
>=
16
'h
002e
)
;
assign
CORETSEoO1
=
CORETSEl1l
&
CORETSEO0I
&
CORETSEOO1
[
15
:
0
]
==
16
'h
8100
|
(
~
CORETSEl1l
|
~
CORETSEO0I
)
&
CORETSEiO1
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEiO1
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEiO1
<=
#
CORETSEOII
CORETSEoO1
;
end
assign
CORETSEIil
=
(
CORETSEIll
[
15
:
0
]
>
16
'h
5ee
)
&
(
CORETSEIll
[
15
:
0
]
<
CORETSEO0
[
15
:
0
]
)
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSElil
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSElil
<=
#
CORETSEOII
CORETSEIil
;
end
assign
CORETSElI1
=
{
16
{
~
CORETSEiO1
&
CORETSEIll
>
5
'h
12
}
}
&
(
CORETSEIll
[
15
:
0
]
-
5
'h
11
)
|
{
16
{
CORETSEiO1
&
CORETSEIll
>
5
'h
16
}
}
&
(
CORETSEIll
[
15
:
0
]
-
5
'h
15
)
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEoI1
<=
#
CORETSEOII
16
'b
0
;
else
if
(
CORETSEo
)
CORETSEoI1
<=
#
CORETSEOII
CORETSElI1
;
end
assign
CORETSEiI1
=
CORETSElO1
&
~
CORETSEIO1
&
CORETSEOO1
[
15
:
0
]
!=
CORETSEoI1
[
15
:
0
]
&
CORETSEll
|
~
CORETSElO1
&
CORETSEll
&
CORETSEoI1
[
15
:
0
]
>
16
'h
002e
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEOl1
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEOl1
<=
#
CORETSEOII
CORETSEiI1
;
end
assign
CORETSEIl1
=
~
CORETSEll1
&
CORETSEIII
&
CORETSEiII
|
CORETSEll1
&
~
CORETSElo
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEll1
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEll1
<=
#
CORETSEOII
CORETSEIl1
;
end
assign
CORETSEol1
=
~
CORETSEil1
&
~
CORETSEIII
&
~
CORETSEolI
&
CORETSEiII
&
CORETSEoII
[
7
:
0
]
==
8
'h
0e
|
CORETSEil1
&
~
CORETSElo
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEil1
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEil1
<=
#
CORETSEOII
CORETSEol1
;
end
assign
CORETSEO01
=
~
CORETSEI01
&
~
CORETSEOlI
&
CORETSElll
&
CORETSElOl
&
CORETSEOOl
|
~
CORETSEI01
&
~
CORETSEOlI
&
CORETSElll
&
CORETSEoiI
&
~
CORETSEiiI
|
~
CORETSEI01
&
~
CORETSEOlI
&
CORETSElll
&
CORETSEiiI
&
~
CORETSEOOl
|
CORETSEI01
&
~
CORETSElo
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEI01
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEI01
<=
#
CORETSEOII
CORETSEO01
;
end
assign
CORETSEl01
=
~
CORETSEo01
&
(
CORETSEliI
|
CORETSEoiI
|
CORETSEiiI
)
&
CORETSEOlI
&
CORETSEllI
==
8
'b
1101_0101
&
CORETSEO0I
&
~
CORETSElIl
|
CORETSEo01
&
~
CORETSElo
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEo01
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEo01
<=
#
CORETSEOII
CORETSEl01
;
end
assign
CORETSEi01
=
~
CORETSEO11
&
~
CORETSEIII
&
CORETSEOlI
&
~
CORETSEO0I
&
~
CORETSEoO0
|
CORETSEO11
&
~
CORETSEliI
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEO11
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEO11
<=
#
CORETSEOII
CORETSEi01
;
end
assign
CORETSEI11
=
~
CORETSEl11
&
~
CORETSEIII
&
CORETSEOlI
&
CORETSEOOl
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEl11
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEl11
<=
#
CORETSEOII
CORETSEI11
;
end
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEo11
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSEo11
<=
#
CORETSEOII
CORETSEl11
;
end
assign
CORETSEi11
=
CORETSEo11
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSElo
<=
#
CORETSEOII
1
'b
0
;
else
if
(
CORETSEo
)
CORETSElo
<=
#
CORETSEOII
CORETSEi11
;
end
assign
CORETSEOo1
[
32
]
=
CORETSEo11
&
CORETSEoO0
|
~
CORETSEo11
&
CORETSEoo
[
32
]
;
assign
CORETSEOo1
[
31
:
28
]
=
{
4
{
CORETSEo11
}
}
&
{
CORETSEOil
,
CORETSEiO1
,
CORETSEo0
,
(
CORETSEl0
&
~
CORETSEll1
&
~
CORETSElo0
&
(
CORETSEIll
[
15
:
0
]
>=
16
'h
0040
&
CORETSEIll
[
15
:
0
]
<=
16
'h
5dc
)
)
}
|
{
4
{
~
CORETSEo11
}
}
&
CORETSEoo
[
31
:
28
]
;
assign
CORETSEOo1
[
27
:
24
]
=
{
4
{
CORETSEo11
}
}
&
{
CORETSEI0
,
CORETSEO11
,
CORETSEo0l
&
CORETSEIOI
,
CORETSEo0l
&
CORETSElOI
}
|
{
4
{
~
CORETSEo11
}
}
&
CORETSEoo
[
27
:
24
]
;
assign
CORETSEOo1
[
23
:
20
]
=
{
4
{
CORETSEo11
}
}
&
{
~
CORETSEll1
&
~
CORETSElo0
,
CORETSElil
,
CORETSEOl1
,
CORETSElo0
}
|
{
4
{
~
CORETSEo11
}
}
&
CORETSEoo
[
23
:
20
]
;
assign
CORETSEOo1
[
19
:
16
]
=
{
4
{
CORETSEo11
}
}
&
{
CORETSEll1
,
CORETSEil1
,
CORETSEI01
,
CORETSEo01
}
|
{
4
{
~
CORETSEo11
}
}
&
CORETSEoo
[
19
:
16
]
;
assign
CORETSEOo1
[
15
:
0
]
=
{
16
{
CORETSEo11
}
}
&
CORETSEIll
[
15
:
0
]
|
{
16
{
~
CORETSEo11
}
}
&
CORETSEoo
[
15
:
0
]
;
always
@
(
posedge
CORETSEl
or
posedge
CORETSElo1
)
begin
if
(
CORETSElo1
||
CORETSEoo1
)
CORETSEoo
[
32
:
0
]
<=
#
CORETSEOII
33
'h
0
;
else
if
(
CORETSEo
)
CORETSEoo
[
32
:
0
]
<=
#
CORETSEOII
CORETSEOo1
[
32
:
0
]
;
end
endmodule
