// REVISION    : $Revision: 1.13 $
//         Mentor Graphics Corporation Proprietary and Confidential
//         Copyright Mentor Graphics Corporation and Licensors 2004
`include "include.v"
module
CoreTSE_M2S090_CORETSE_AHB_0_DMA_DUAL
#
(
parameter
FAMILY
=
19
,
parameter
CORETSEO
=
0
,
parameter
CORETSEoO00
=
1
)
(
HCLK
,
CORETSEi1O0I
,
CORETSEOoO0I
,
CORETSEIoO0I
,
CORETSEloO0I
,
CORETSEooO0I
,
CORETSEioO0I
,
CORETSEOiO0I
,
CORETSEIiO0I
,
CORETSEliO0I
,
CORETSEoiO0I
,
CORETSEiiO0I
,
CORETSEOOI0I
,
CORETSEIOI0I
,
CORETSElOI0I
,
CORETSEoOI0I
,
CORETSEiOI0I
,
CORETSEOII0I
,
CORETSEIII0I
,
CORETSElII0I
,
CORETSEoII0I
,
CORETSEiII0I
,
CORETSEOlI0I
,
CORETSEIlI0I
,
CORETSEllI0I
,
CORETSEolI0I
,
CORETSEilI0I
,
CORETSEO0I0I
,
CORETSEI0I0I
,
CORETSEl0I0I
,
CORETSEo0I0I
,
CORETSEi0I0I
,
CORETSEO1I0I
,
CORETSEI1I0I
,
CORETSEl1I0I
,
CORETSEo1I0I
,
CORETSEi1I0I
,
CORETSEOoI0I
,
CORETSEIoI0I
,
CORETSEloI0I
,
CORETSEi1oOI
,
CORETSEi11lI
,
CORETSEOooOI
,
CORETSEOo1lI
,
CORETSEIooOI
,
CORETSElooOI
,
CORETSEoo1lI
)
;
input
CORETSEi1O0I
;
input
HCLK
;
input
CORETSEOoO0I
;
input
CORETSEIoO0I
;
input
[
1
:
0
]
CORETSEloO0I
;
input
[
31
:
0
]
CORETSEooO0I
;
output
CORETSEioO0I
;
output
[
1
:
0
]
CORETSEOiO0I
;
output
[
31
:
2
]
CORETSEIiO0I
;
output
CORETSEliO0I
;
output
[
31
:
0
]
CORETSEoiO0I
;
input
CORETSEiiO0I
;
input
CORETSEOOI0I
;
input
[
1
:
0
]
CORETSEIOI0I
;
input
[
31
:
0
]
CORETSElOI0I
;
output
CORETSEoOI0I
;
output
[
1
:
0
]
CORETSEiOI0I
;
output
[
31
:
2
]
CORETSEOII0I
;
output
CORETSEIII0I
;
output
[
31
:
0
]
CORETSElII0I
;
output
CORETSEIlI0I
;
output
CORETSEllI0I
;
output
CORETSEolI0I
;
output
[
31
:
0
]
CORETSEilI0I
;
output
[
1
:
0
]
CORETSEO0I0I
;
input
CORETSEI1I0I
;
output
CORETSEl0I0I
;
output
CORETSEo0I0I
;
output
[
1
:
0
]
CORETSEi0I0I
;
output
CORETSEO1I0I
;
output
CORETSEI0I0I
;
input
CORETSEl1I0I
;
input
CORETSEo1I0I
;
input
CORETSEi1I0I
;
input
CORETSEOoI0I
;
input
[
31
:
0
]
CORETSEIoI0I
;
input
[
1
:
0
]
CORETSEloI0I
;
input
[
15
:
0
]
CORETSEoII0I
;
input
CORETSEi1oOI
;
input
CORETSEi11lI
;
input
[
4
:
0
]
CORETSEOooOI
;
input
[
31
:
0
]
CORETSEOo1lI
;
output
[
31
:
0
]
CORETSEIooOI
;
output
CORETSElooOI
;
input
[
31
:
0
]
CORETSEiII0I
;
input
[
31
:
0
]
CORETSEOlI0I
;
output
CORETSEoo1lI
;
reg
CORETSEooI0I
;
reg
CORETSEioI0I
;
reg
CORETSEOiI0I
;
reg
CORETSEIiI0I
;
reg
CORETSEliI0I
;
reg
CORETSEoiI0I
;
reg
CORETSEiiI0I
;
reg
CORETSEOOl0I
;
reg
CORETSEIOl0I
;
reg
CORETSElOl0I
;
wire
CORETSEoOl0I
;
wire
CORETSEiOl0I
;
wire
CORETSEOIl0I
;
wire
CORETSEIIl0I
;
reg
[
31
:
2
]
CORETSElIl0I
,
CORETSEoIl0I
;
wire
[
31
:
2
]
CORETSEiIl0I
,
CORETSEOll0I
;
reg
CORETSEIll0I
;
wire
[
3
:
0
]
CORETSElll0I
;
wire
[
7
:
0
]
CORETSEoll0I
;
wire
[
3
:
0
]
CORETSEill0I
;
wire
[
7
:
0
]
CORETSEO0l0I
;
reg
[
9
:
0
]
CORETSEI0l0I
;
reg
[
31
:
0
]
CORETSEIooOI
;
reg
CORETSEoo1lI
;
wire
CORETSEl0l0I
,
CORETSEo0l0I
,
CORETSEi0l0I
;
wire
[
31
:
2
]
CORETSEO1l0I
;
wire
[
31
:
2
]
CORETSEI1l0I
;
wire
[
31
:
2
]
CORETSEl1l0I
,
CORETSEo1l0I
;
wire
CORETSEi1l0I
;
wire
CORETSEOol0I
;
reg
CORETSEIol0I
;
reg
CORETSElol0I
;
wire
[
7
:
0
]
CORETSEool0I
;
wire
[
7
:
0
]
CORETSEiol0I
;
reg
[
7
:
0
]
CORETSEOil0I
;
reg
[
7
:
0
]
CORETSEIil0I
;
wire
[
31
:
0
]
CORETSEOO10
;
reg
[
31
:
0
]
CORETSEIO10
;
wire
[
31
:
0
]
CORETSElO10
;
reg
[
31
:
0
]
CORETSEoO10
;
wire
CORETSElo1
;
wire
CORETSEoo1
;
assign
CORETSElo1
=
(
FAMILY
==
25
)
?
1
'b
0
:
CORETSEi1O0I
;
assign
CORETSEoo1
=
(
FAMILY
==
25
)
?
CORETSEi1O0I
:
1
'b
0
;
generate
if
(
CORETSEoO00
==
1
)
begin
assign
CORETSEOO10
=
{
32
{
(
CORETSEIO10
==
CORETSEiII0I
)
|
~
CORETSEI0l0I
[
8
]
}
}
&
32
'b
0
|
{
32
{
~
(
CORETSEIO10
==
CORETSEiII0I
)
&
CORETSEI0l0I
[
8
]
}
}
&
(
CORETSEIO10
+
1
'b
1
)
;
assign
CORETSElO10
=
{
32
{
(
CORETSEoO10
==
CORETSEOlI0I
)
|
~
CORETSEI0l0I
[
9
]
}
}
&
32
'b
0
|
{
32
{
~
(
CORETSEoO10
==
CORETSEOlI0I
)
&
CORETSEI0l0I
[
9
]
}
}
&
(
CORETSEoO10
+
1
'b
1
)
;
always
@
(
posedge
HCLK
or
negedge
CORETSElo1
)
begin
if
(
!
(
CORETSElo1
||
CORETSEoo1
)
)
begin
CORETSEIO10
<=
32
'b
0
;
CORETSEoO10
<=
32
'b
0
;
end
else
begin
CORETSEIO10
<=
CORETSEOO10
;
CORETSEoO10
<=
CORETSElO10
;
end
end
always
@
(
posedge
HCLK
or
negedge
CORETSElo1
)
begin
if
(
!
(
CORETSElo1
||
CORETSEoo1
)
)
CORETSEIol0I
<=
1
'b
0
;
else
if
(
|
CORETSEoll0I
==
1
'b
0
)
CORETSEIol0I
<=
1
'b
0
;
else
if
(
(
CORETSEoll0I
==
CORETSEIil0I
)
||
(
CORETSEIO10
==
CORETSEiII0I
)
)
CORETSEIol0I
<=
1
'b
1
;
else
CORETSEIol0I
<=
CORETSEIol0I
;
end
always
@
(
posedge
HCLK
or
negedge
CORETSElo1
)
begin
if
(
!
(
CORETSElo1
||
CORETSEoo1
)
)
CORETSElol0I
<=
1
'b
0
;
else
if
(
|
CORETSEO0l0I
==
1
'b
0
)
CORETSElol0I
<=
1
'b
0
;
else
if
(
(
CORETSEO0l0I
==
CORETSEOil0I
)
||
(
CORETSEoO10
==
CORETSEOlI0I
)
)
CORETSElol0I
<=
1
'b
1
;
else
CORETSElol0I
<=
CORETSElol0I
;
end
end
else
begin
always
@
(
posedge
HCLK
or
negedge
CORETSElo1
)
begin
if
(
!
(
CORETSElo1
||
CORETSEoo1
)
)
CORETSEIol0I
<=
1
'b
0
;
else
if
(
|
CORETSEoll0I
==
1
'b
0
)
CORETSEIol0I
<=
1
'b
0
;
else
if
(
CORETSEoll0I
==
CORETSEIil0I
)
CORETSEIol0I
<=
1
'b
1
;
else
CORETSEIol0I
<=
CORETSEIol0I
;
end
always
@
(
posedge
HCLK
or
negedge
CORETSElo1
)
begin
if
(
!
(
CORETSElo1
||
CORETSEoo1
)
)
CORETSElol0I
<=
1
'b
0
;
else
if
(
|
CORETSEO0l0I
==
1
'b
0
)
CORETSElol0I
<=
1
'b
0
;
else
if
(
CORETSEO0l0I
==
CORETSEOil0I
)
CORETSElol0I
<=
1
'b
1
;
else
CORETSElol0I
<=
CORETSElol0I
;
end
end
endgenerate
assign
CORETSEiol0I
=
(
!
CORETSEi1oOI
&&
~|
CORETSEOooOI
[
4
:
3
]
&&
!
CORETSEi11lI
&&
CORETSEOooOI
[
2
:
0
]
==
`CORETSEl0iOI
)
?
CORETSEOo1lI
[
15
:
8
]
:
CORETSEIil0I
;
assign
CORETSEool0I
=
(
!
CORETSEi1oOI
&&
~|
CORETSEOooOI
[
4
:
3
]
&&
!
CORETSEi11lI
&&
CORETSEOooOI
[
2
:
0
]
==
`CORETSEO1iOI
)
?
CORETSEOo1lI
[
15
:
8
]
:
CORETSEOil0I
;
always
@
(
posedge
HCLK
or
negedge
CORETSElo1
)
begin
if
(
!
(
CORETSElo1
||
CORETSEoo1
)
)
begin
CORETSEIil0I
<=
8
'h
01
;
CORETSEOil0I
<=
8
'h
01
;
end
else
begin
CORETSEIil0I
<=
CORETSEiol0I
;
CORETSEOil0I
<=
CORETSEool0I
;
end
end
assign
CORETSEill0I
=
{
CORETSEIll0I
,
CORETSElOl0I
,
1
'b
0
,
|
CORETSEO0l0I
}
;
assign
CORETSElll0I
=
{
CORETSEIll0I
,
1
'b
0
,
CORETSEIOl0I
,
|
CORETSEoll0I
}
;
always
@
(
*
)
begin
:
CORETSElil0I
case
(
CORETSEOooOI
[
3
:
0
]
)
`CORETSEl0iOI
:
CORETSEIooOI
=
{
16
'b
0
,
CORETSEIil0I
,
7
'b
0
,
CORETSEOIl0I
}
;
`CORETSEo0iOI
:
CORETSEIooOI
=
{
CORETSElIl0I
,
2
'b
0
}
;
`CORETSEi0iOI
:
CORETSEIooOI
=
{
8
'b
0
,
CORETSEoll0I
,
12
'b
0
,
CORETSElll0I
}
;
`CORETSEO1iOI
:
CORETSEIooOI
=
{
16
'b
0
,
CORETSEOil0I
,
7
'b
0
,
CORETSEIIl0I
}
;
`CORETSEI1iOI
:
CORETSEIooOI
=
{
CORETSEoIl0I
,
2
'b
0
}
;
`CORETSEl1iOI
:
CORETSEIooOI
=
{
8
'b
0
,
CORETSEO0l0I
,
12
'b
0
,
CORETSEill0I
}
;
`CORETSEo1iOI
:
CORETSEIooOI
=
{
22
'b
0
,
CORETSEI0l0I
[
9
:
6
]
,
1
'b
0
,
CORETSEI0l0I
[
4
:
3
]
,
1
'b
0
,
CORETSEI0l0I
[
1
:
0
]
}
;
`CORETSEi1iOI
:
CORETSEIooOI
=
{
22
'b
0
,
(
CORETSEI0l0I
&
{
CORETSElol0I
,
CORETSEIol0I
,
CORETSEill0I
,
CORETSElll0I
}
)
}
;
default
:
CORETSEIooOI
=
32
'b
0
;
endcase
CORETSEoo1lI
=
|
(
{
CORETSEI0l0I
[
9
:
8
]
,
CORETSEI0l0I
[
7
:
6
]
,
1
'b
0
,
CORETSEI0l0I
[
4
:
3
]
,
1
'b
0
,
CORETSEI0l0I
[
1
:
0
]
}
&
{
CORETSElol0I
,
CORETSEIol0I
,
CORETSEill0I
,
CORETSElll0I
}
)
;
end
assign
CORETSElooOI
=
~
CORETSEOooOI
[
4
]
;
always
@
(
*
)
begin
:
CORETSEoil0I
CORETSEooI0I
=
0
;
CORETSEioI0I
=
0
;
CORETSEOiI0I
=
0
;
CORETSEIiI0I
=
0
;
CORETSEliI0I
=
0
;
CORETSEoiI0I
=
0
;
CORETSEiiI0I
=
0
;
CORETSEOOl0I
=
0
;
if
(
!
CORETSEi1oOI
&&
~|
CORETSEOooOI
[
4
:
3
]
&&
!
CORETSEi11lI
)
begin
case
(
CORETSEOooOI
[
2
:
0
]
)
`CORETSEl0iOI
:
begin
CORETSEooI0I
=
CORETSEOo1lI
[
0
]
;
CORETSEioI0I
=
!
CORETSEOo1lI
[
0
]
;
end
`CORETSEo0iOI
:
CORETSEliI0I
=
1
;
`CORETSEi0iOI
:
CORETSEiiI0I
=
1
;
`CORETSEO1iOI
:
begin
CORETSEOiI0I
=
CORETSEOo1lI
[
0
]
;
CORETSEIiI0I
=
!
CORETSEOo1lI
[
0
]
;
end
`CORETSEI1iOI
:
CORETSEoiI0I
=
1
;
`CORETSEl1iOI
:
CORETSEOOl0I
=
1
;
default
:
;
endcase
end
end
always
@
(
posedge
HCLK
or
negedge
CORETSElo1
)
begin
:
CORETSEiil0I
if
(
!
(
CORETSElo1
||
CORETSEoo1
)
)
CORETSEI0l0I
<=
0
;
else
if
(
!
CORETSEi1oOI
&&
~|
CORETSEOooOI
[
4
:
3
]
&&
CORETSEOooOI
[
2
:
0
]
==
`CORETSEo1iOI
&&
!
CORETSEi11lI
)
CORETSEI0l0I
<=
CORETSEOo1lI
[
9
:
0
]
;
end
always
@
(
posedge
HCLK
or
negedge
CORETSElo1
)
begin
if
(
!
(
CORETSElo1
||
CORETSEoo1
)
)
begin
CORETSElIl0I
<=
0
;
CORETSEoIl0I
<=
0
;
CORETSElOl0I
<=
0
;
CORETSEIOl0I
<=
0
;
end
else
begin
CORETSElOl0I
<=
CORETSElOl0I
&&
!
(
CORETSEOOl0I
&&
CORETSEOo1lI
[
2
]
)
||
CORETSEOol0I
;
CORETSEIOl0I
<=
CORETSEIOl0I
&&
!
(
CORETSEiiI0I
&&
CORETSEOo1lI
[
1
]
)
||
CORETSEi1l0I
;
if
(
CORETSEliI0I
)
CORETSElIl0I
<=
CORETSEOo1lI
[
31
:
2
]
;
else
CORETSElIl0I
<=
CORETSEl1l0I
;
if
(
CORETSEoiI0I
)
CORETSEoIl0I
<=
CORETSEOo1lI
[
31
:
2
]
;
else
CORETSEoIl0I
<=
CORETSEo1l0I
;
end
end
assign
CORETSEOO00I
=
CORETSEiiI0I
&&
CORETSEOo1lI
[
0
]
;
assign
CORETSEIO00I
=
CORETSEOOl0I
&&
CORETSEOo1lI
[
0
]
;
assign
CORETSEl0l0I
=
CORETSEo0l0I
||
CORETSEi0l0I
;
assign
CORETSEO1l0I
=
CORETSElIl0I
;
assign
CORETSEI1l0I
=
CORETSEoIl0I
;
always
@
(
posedge
HCLK
or
negedge
CORETSElo1
)
begin
if
(
!
(
CORETSElo1
||
CORETSEoo1
)
)
CORETSEIll0I
<=
0
;
else
CORETSEIll0I
<=
CORETSEIll0I
&&
!
(
(
CORETSEiiI0I
|
CORETSEOOl0I
)
&&
CORETSEOo1lI
[
3
]
)
||
CORETSEl0l0I
;
end
CoreTSE_M2S090_CORETSE_AHB_0_DMATX
#
(
.FAMILY
(
FAMILY
)
,
.CORETSEO
(
CORETSEO
)
)
CORETSElO00I
(
.CORETSEoO00I
(
CORETSEOoO0I
)
,
.HREADY
(
CORETSEIoO0I
)
,
.HRESP
(
CORETSEloO0I
)
,
.HRDATA
(
CORETSEooO0I
)
,
.CORETSEi1O0I
(
CORETSEi1O0I
)
,
.HCLK
(
HCLK
)
,
.CORETSEiO00I
(
CORETSEioO0I
)
,
.HTRANS
(
CORETSEOiO0I
)
,
.HADDR
(
CORETSEIiO0I
)
,
.HWRITE
(
CORETSEliO0I
)
,
.HWDATA
(
CORETSEoiO0I
)
,
.CORETSEo0l0I
(
CORETSEo0l0I
)
,
.CORETSEi1l0I
(
CORETSEi1l0I
)
,
.CORETSEl1l0I
(
CORETSEl1l0I
)
,
.CORETSEoll0I
(
CORETSEoll0I
)
,
.CORETSEooI0I
(
CORETSEooI0I
)
,
.CORETSEOIl0I
(
CORETSEOIl0I
)
,
.CORETSEioI0I
(
CORETSEioI0I
)
,
.CORETSEOO00I
(
CORETSEOO00I
)
,
.CORETSEO1l0I
(
CORETSEO1l0I
)
,
.CORETSEIlI0I
(
CORETSEIlI0I
)
,
.CORETSEllI0I
(
CORETSEllI0I
)
,
.CORETSEolI0I
(
CORETSEolI0I
)
,
.CORETSEilI0I
(
CORETSEilI0I
)
,
.CORETSEO0I0I
(
CORETSEO0I0I
)
,
.CORETSEl0I0I
(
CORETSEl0I0I
)
,
.CORETSEo0I0I
(
CORETSEo0I0I
)
,
.CORETSEi0I0I
(
CORETSEi0I0I
)
,
.CORETSEO1I0I
(
CORETSEO1I0I
)
,
.CORETSEI1I0I
(
CORETSEI1I0I
)
,
.CORETSEl1I0I
(
CORETSEl1I0I
)
)
;
CoreTSE_M2S090_CORETSE_AHB_0_DMARX
#
(
.FAMILY
(
FAMILY
)
,
.CORETSEO
(
CORETSEO
)
)
CORETSEOI00I
(
.CORETSEoO00I
(
CORETSEiiO0I
)
,
.HREADY
(
CORETSEOOI0I
)
,
.HRESP
(
CORETSEIOI0I
)
,
.HRDATA
(
CORETSElOI0I
)
,
.CORETSEi1O0I
(
CORETSEi1O0I
)
,
.HCLK
(
HCLK
)
,
.CORETSEiO00I
(
CORETSEoOI0I
)
,
.HTRANS
(
CORETSEiOI0I
)
,
.HADDR
(
CORETSEOII0I
)
,
.HWRITE
(
CORETSEIII0I
)
,
.HWDATA
(
CORETSElII0I
)
,
.CORETSEi0l0I
(
CORETSEi0l0I
)
,
.CORETSEIIl0I
(
CORETSEIIl0I
)
,
.CORETSEOol0I
(
CORETSEOol0I
)
,
.CORETSEo1l0I
(
CORETSEo1l0I
)
,
.CORETSEO0l0I
(
CORETSEO0l0I
)
,
.CORETSEOiI0I
(
CORETSEOiI0I
)
,
.CORETSEIiI0I
(
CORETSEIiI0I
)
,
.CORETSEIO00I
(
CORETSEIO00I
)
,
.CORETSEI1l0I
(
CORETSEI1l0I
)
,
.CORETSEoII0I
(
CORETSEoII0I
)
,
.CORETSEI0I0I
(
CORETSEI0I0I
)
,
.CORETSEo1I0I
(
CORETSEo1I0I
)
,
.CORETSEi1I0I
(
CORETSEi1I0I
)
,
.CORETSEOoI0I
(
CORETSEOoI0I
)
,
.CORETSEIoI0I
(
CORETSEIoI0I
)
,
.CORETSEloI0I
(
CORETSEloI0I
)
)
;
endmodule
