// REVISION    : $Revision: 1.2 $
// Mentor Graphics Corporation Proprietary and Confidential
// Copyright 2007 Mentor Graphics Corporation and Licensors
`timescale 1ps/1ps
module
CoreTSE_M2S090_CORETSE_AHB_0_T8B10B
(
CORETSEO00I
,
CORETSElI0I
,
CORETSEoI0I
,
CORETSEll0I
,
CORETSEiI0I
)
;
input
[
7
:
0
]
CORETSEO00I
;
input
[
3
:
0
]
CORETSElI0I
;
input
CORETSEoI0I
;
output
[
9
:
0
]
CORETSEll0I
;
output
CORETSEiI0I
;
wire
[
9
:
0
]
CORETSEll0I
;
wire
CORETSEiI0I
;
parameter
CORETSEOII
=
1
;
wire
[
4
:
0
]
CORETSElol0
;
wire
[
2
:
0
]
CORETSEool0
;
reg
[
5
:
0
]
CORETSEiol0
;
reg
CORETSEO0ol
,
CORETSEOil0
;
reg
[
1
:
0
]
CORETSEIil0
;
reg
[
3
:
0
]
CORETSElil0
;
reg
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
;
reg
CORETSEIO00
;
reg
[
9
:
0
]
CORETSElO00
;
assign
CORETSElol0
=
CORETSEO00I
[
4
:
0
]
;
always
@
(
CORETSEO00I
[
4
:
0
]
)
case
(
{
CORETSEO00I
[
4
]
,
CORETSEO00I
[
3
]
,
CORETSEO00I
[
2
]
,
CORETSEO00I
[
1
]
,
CORETSEO00I
[
0
]
}
)
5
'b
00000
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
100111_0_0_00
;
5
'b
00001
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
011101_0_0_00
;
5
'b
00010
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
101101_0_0_00
;
5
'b
00011
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
110001_1_1_00
;
5
'b
00100
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
110101_0_0_00
;
5
'b
00101
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
101001_1_1_00
;
5
'b
00110
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
011001_1_1_00
;
5
'b
00111
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
111000_1_0_00
;
5
'b
01000
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
111001_0_0_00
;
5
'b
01001
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
100101_1_1_00
;
5
'b
01010
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
010101_1_1_00
;
5
'b
01011
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
110100_1_1_01
;
5
'b
01100
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
001101_1_1_00
;
5
'b
01101
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
101100_1_1_01
;
5
'b
01110
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
011100_1_1_01
;
5
'b
01111
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
010111_0_0_00
;
5
'b
10000
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
011011_0_0_00
;
5
'b
10001
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
100011_1_1_10
;
5
'b
10010
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
010011_1_1_10
;
5
'b
10011
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
110010_1_1_00
;
5
'b
10100
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
001011_1_1_10
;
5
'b
10101
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
101010_1_1_00
;
5
'b
10110
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
011010_1_1_00
;
5
'b
10111
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
111010_0_0_00
;
5
'b
11000
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
110011_0_0_00
;
5
'b
11001
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
100110_1_1_00
;
5
'b
11010
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
010110_1_1_00
;
5
'b
11011
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
110110_0_0_00
;
5
'b
11100
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
001110_1_1_00
;
5
'b
11101
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
101110_0_0_00
;
5
'b
11110
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
011110_0_0_00
;
5
'b
11111
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
101011_0_0_00
;
default
:
{
CORETSEiol0
,
CORETSEO0ol
,
CORETSEOil0
,
CORETSEIil0
}
=
10
'b
000000_0_0_00
;
endcase
assign
CORETSEool0
=
CORETSEO00I
[
7
:
5
]
;
always
@
(
CORETSEO00I
[
7
:
5
]
)
case
(
{
CORETSEO00I
[
7
]
,
CORETSEO00I
[
6
]
,
CORETSEO00I
[
5
]
}
)
3
'b
000
:
{
CORETSElil0
,
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
}
=
7
'b
0100_1_0_0
;
3
'b
001
:
{
CORETSElil0
,
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
}
=
7
'b
1001_0_1_0
;
3
'b
010
:
{
CORETSElil0
,
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
}
=
7
'b
0101_0_1_0
;
3
'b
011
:
{
CORETSElil0
,
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
}
=
7
'b
0011_1_1_0
;
3
'b
100
:
{
CORETSElil0
,
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
}
=
7
'b
0010_1_0_0
;
3
'b
101
:
{
CORETSElil0
,
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
}
=
7
'b
1010_0_1_0
;
3
'b
110
:
{
CORETSElil0
,
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
}
=
7
'b
0110_0_1_0
;
3
'b
111
:
{
CORETSElil0
,
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
}
=
7
'b
0001_1_0_1
;
default
:
{
CORETSElil0
,
CORETSEoil0
,
CORETSEiil0
,
CORETSEOO00
}
=
7
'b
0000_0_0_0
;
endcase
// Reversal of ten bit symbols by tdi are blocked corresponding
always
@
(
CORETSEoI0I
or
CORETSEOil0
or
CORETSElI0I
or
CORETSEiol0
)
casex
(
{
CORETSEoI0I
,
CORETSEOil0
,
CORETSElI0I
}
)
6
'b
0_x_1000
:
CORETSElO00
[
5
:
0
]
=
6
'b
11_0110
;
6
'b
1_x_1000
:
CORETSElO00
[
5
:
0
]
=
6
'b
00_1001
;
6
'b
0_x_1001
:
CORETSElO00
[
5
:
0
]
=
6
'b
01_1110
;
6
'b
1_x_1001
:
CORETSElO00
[
5
:
0
]
=
6
'b
10_0001
;
6
'b
0_x_1010
:
CORETSElO00
[
5
:
0
]
=
6
'b
10_1110
;
6
'b
1_x_1010
:
CORETSElO00
[
5
:
0
]
=
6
'b
01_0001
;
6
'b
0_x_1011
:
CORETSElO00
[
5
:
0
]
=
6
'b
11_1010
;
6
'b
1_x_1011
:
CORETSElO00
[
5
:
0
]
=
6
'b
00_0101
;
6
'b
0_x_1100
:
CORETSElO00
[
5
:
0
]
=
6
'b
00_1111
;
6
'b
1_x_1100
:
CORETSElO00
[
5
:
0
]
=
6
'b
11_0000
;
6
'b
x_x_1110
:
CORETSElO00
[
5
:
0
]
=
6
'b
10_1010
;
6
'b
0_x_1111
:
CORETSElO00
[
5
:
0
]
=
6
'b
10_1101
;
6
'b
1_x_1111
:
CORETSElO00
[
5
:
0
]
=
6
'b
01_0010
;
6
'b
x_x_0000
:
CORETSElO00
[
5
:
0
]
=
6
'b
10_1001
;
6
'b
0_x_0001
:
CORETSElO00
[
5
:
0
]
=
6
'b
01_1011
;
6
'b
1_x_0001
:
CORETSElO00
[
5
:
0
]
=
6
'b
10_0100
;
6
'b
x_x_0010
:
CORETSElO00
[
5
:
0
]
=
6
'b
01_1001
;
6
'b
X_x_0011
:
CORETSElO00
[
5
:
0
]
=
6
'b
01_0110
;
6
'b
0_x_1101
:
CORETSElO00
[
5
:
0
]
=
CORETSEiol0
;
6
'b
1_0_1101
:
CORETSElO00
[
5
:
0
]
=
~
CORETSEiol0
;
6
'b
1_1_1101
:
CORETSElO00
[
5
:
0
]
=
CORETSEiol0
;
default
:
CORETSElO00
[
5
:
0
]
=
6
'b
00_0000
;
endcase
always
@
(
CORETSEoI0I
or
CORETSEoil0
or
CORETSEO0ol
or
CORETSElI0I
or
CORETSElil0
or
CORETSEOO00
or
CORETSEIil0
)
casex
(
{
CORETSEoI0I
,
CORETSEoil0
,
CORETSEO0ol
,
CORETSElI0I
,
CORETSEOO00
,
CORETSEIil0
}
)
10
'b
0_x_x_1000_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
10_00
;
10
'b
1_x_x_1000_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
01_11
;
10
'b
0_x_x_1001_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
10_00
;
10
'b
1_x_x_1001_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
01_11
;
10
'b
0_x_x_1010_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
10_00
;
10
'b
1_x_x_1010_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
01_11
;
10
'b
0_x_x_1011_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
10_00
;
10
'b
1_x_x_1011_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
01_11
;
10
'b
0_x_x_1100_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
10_10
;
10
'b
1_x_x_1100_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
01_01
;
10
'b
x_x_x_1110_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
10_10
;
10
'b
x_x_x_1111_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
01_01
;
10
'b
x_x_x_0000_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
01_10
;
10
'b
x_x_x_0001_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
01_01
;
10
'b
x_x_x_0010_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
10_10
;
10
'b
0_x_x_0011_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
11_01
;
10
'b
1_x_x_0011_x_xx
:
CORETSElO00
[
9
:
6
]
=
4
'b
00_10
;
10
'b
0_0_x_1101_0_xx
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
0_0_x_1101_x_00
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
0_0_x_1101_1_x1
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
0_0_x_1101_1_10
:
CORETSElO00
[
9
:
6
]
=
4
'b
0111
;
10
'b
0_x_0_1101_0_xx
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
0_x_0_1101_x_00
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
0_x_0_1101_1_x1
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
0_x_0_1101_1_10
:
CORETSElO00
[
9
:
6
]
=
4
'b
0111
;
10
'b
0_1_1_1101_0_xx
:
CORETSElO00
[
9
:
6
]
=
~
CORETSElil0
;
10
'b
0_1_1_1101_x_00
:
CORETSElO00
[
9
:
6
]
=
~
CORETSElil0
;
10
'b
0_1_1_1101_1_x1
:
CORETSElO00
[
9
:
6
]
=
~
CORETSElil0
;
10
'b
0_1_1_1101_1_10
:
CORETSElO00
[
9
:
6
]
=
4
'b
0111
;
10
'b
1_0_x_1101_0_xx
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
1_0_x_1101_x_00
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
1_0_x_1101_1_1x
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
1_0_x_1101_1_01
:
CORETSElO00
[
9
:
6
]
=
4
'b
1000
;
10
'b
1_1_0_1101_0_xx
:
CORETSElO00
[
9
:
6
]
=
~
CORETSElil0
;
10
'b
1_1_0_1101_x_00
:
CORETSElO00
[
9
:
6
]
=
~
CORETSElil0
;
10
'b
1_1_0_1101_1_1x
:
CORETSElO00
[
9
:
6
]
=
~
CORETSElil0
;
10
'b
1_1_0_1101_1_01
:
CORETSElO00
[
9
:
6
]
=
4
'b
1000
;
10
'b
1_1_1_1101_0_xx
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
1_1_1_1101_x_00
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
1_1_1_1101_1_1x
:
CORETSElO00
[
9
:
6
]
=
CORETSElil0
;
10
'b
1_1_1_1101_1_01
:
CORETSElO00
[
9
:
6
]
=
4
'b
1000
;
default
:
CORETSElO00
[
9
:
6
]
=
4
'b
0000
;
endcase
assign
CORETSEll0I
=
{
CORETSElO00
[
6
]
,
CORETSElO00
[
7
]
,
CORETSElO00
[
8
]
,
CORETSElO00
[
9
]
,
CORETSElO00
[
0
]
,
CORETSElO00
[
1
]
,
CORETSElO00
[
2
]
,
CORETSElO00
[
3
]
,
CORETSElO00
[
4
]
,
CORETSElO00
[
5
]
}
;
always
@
(
CORETSElI0I
or
CORETSEiil0
or
CORETSEO0ol
)
casex
(
{
CORETSElI0I
}
)
4
'b
1000
:
CORETSEIO00
=
1
'b
0
;
4
'b
1001
:
CORETSEIO00
=
1
'b
0
;
4
'b
1010
:
CORETSEIO00
=
1
'b
0
;
4
'b
1011
:
CORETSEIO00
=
1
'b
0
;
4
'b
1100
:
CORETSEIO00
=
1
'b
1
;
4
'b
1110
:
CORETSEIO00
=
1
'b
0
;
4
'b
1111
:
CORETSEIO00
=
1
'b
1
;
4
'b
0000
:
CORETSEIO00
=
1
'b
0
;
4
'b
0001
:
CORETSEIO00
=
1
'b
1
;
4
'b
1101
:
CORETSEIO00
=
CORETSEiil0
^
CORETSEO0ol
;
default
:
CORETSEIO00
=
1
'b
0
;
endcase
assign
CORETSEiI0I
=
CORETSEIO00
;
endmodule
