// Actel Corporation Proprietary and Confidential
// Copyright 2010 Actel Corporation.  All rights reserved.
// ANY USE OR REDISTRIBUTION IN PART OR IN WHOLE MUST BE HANDLED IN
// ACCORDANCE WITH THE ACTEL LICENSE AGREEMENT AND MUST BE APPROVED
// IN ADVANCE IN WRITING.
// Revision Information:
// 10Feb10              Production Release Version 3.1
// SVN Revision Information:
// SVN $Revision: 11955 $
// SVN $Date: 2010-01-30 23:35:13 +0000 (Sat, 30 Jan 2010) $
`timescale 1ns/1ps
module
CAHBLTO1l
(
input
HCLK,
input
HRESETN,
input
[
1
:
0
]
CAHBLTI1l,
input
CAHBLTl1l,
input
CAHBLTOO0,
input
CAHBLTIO0,
output
reg
[
1
:
0
]
CAHBLTlO0
)
;
localparam
CAHBLTOI0
=
3
'b
000
;
localparam
CAHBLTII0
=
3
'b
001
;
localparam
CAHBLTlI0
=
3
'b
010
;
localparam
CAHBLTOl0
=
3
'b
011
;
localparam
CAHBLTIl0
=
3
'b
100
;
localparam
CAHBLTll0
=
3
'b
101
;
localparam
CAHBLTO00
=
3
'b
110
;
localparam
CAHBLTI00
=
3
'b
111
;
localparam
CAHBLTl00
=
2
'b
01
;
localparam
CAHBLTO10
=
2
'b
10
;
localparam
CAHBLTI10
=
2
'b
00
;
reg
[
2
:
0
]
CAHBLTl10
;
reg
[
2
:
0
]
CAHBLTOO1
;
always
@(*)
begin
CAHBLTlO0
=
CAHBLTI10
;
case
(
CAHBLTOO1
)
CAHBLTOI0
:
begin
if
(
CAHBLTI1l
[
0
]
)
begin
if
(
CAHBLTOO0
)
CAHBLTl10
=
CAHBLTIl0
;
else
begin
CAHBLTlO0
=
CAHBLTl00
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTOl0
;
else
CAHBLTl10
=
CAHBLTII0
;
end
end
else
if
(
CAHBLTI1l
[
1
]
)
begin
if
(
CAHBLTIO0
)
CAHBLTl10
=
CAHBLTll0
;
else
begin
CAHBLTlO0
=
CAHBLTO10
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTOI0
;
else
CAHBLTl10
=
CAHBLTlI0
;
end
end
else
CAHBLTl10
=
CAHBLTOI0
;
end
CAHBLTOl0
:
begin
if
(
CAHBLTI1l
[
1
]
)
begin
if
(
CAHBLTIO0
)
CAHBLTl10
=
CAHBLTll0
;
else
begin
CAHBLTlO0
=
CAHBLTO10
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTOI0
;
else
CAHBLTl10
=
CAHBLTlI0
;
end
end
else
if
(
CAHBLTI1l
[
0
]
)
begin
if
(
CAHBLTOO0
)
CAHBLTl10
=
CAHBLTIl0
;
else
begin
CAHBLTlO0
=
CAHBLTl00
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTOl0
;
else
CAHBLTl10
=
CAHBLTII0
;
end
end
else
CAHBLTl10
=
CAHBLTOl0
;
end
CAHBLTII0
:
begin
CAHBLTlO0
=
CAHBLTl00
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTOl0
;
else
CAHBLTl10
=
CAHBLTII0
;
end
CAHBLTlI0
:
begin
CAHBLTlO0
=
CAHBLTO10
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTOI0
;
else
CAHBLTl10
=
CAHBLTlI0
;
end
CAHBLTIl0
:
begin
if
(
CAHBLTOO0
)
if
(
CAHBLTI1l
[
0
]
)
begin
CAHBLTlO0
=
CAHBLTl00
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTIl0
;
else
CAHBLTl10
=
CAHBLTO00
;
end
else
CAHBLTl10
=
CAHBLTIl0
;
else
CAHBLTl10
=
CAHBLTOl0
;
end
CAHBLTO00
:
begin
CAHBLTlO0
=
CAHBLTl00
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTIl0
;
else
CAHBLTl10
=
CAHBLTO00
;
end
CAHBLTll0
:
begin
if
(
CAHBLTIO0
)
if
(
CAHBLTI1l
[
1
]
)
begin
CAHBLTlO0
=
CAHBLTO10
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTll0
;
else
CAHBLTl10
=
CAHBLTI00
;
end
else
CAHBLTl10
=
CAHBLTll0
;
else
CAHBLTl10
=
CAHBLTOI0
;
end
CAHBLTI00
:
begin
CAHBLTlO0
=
CAHBLTO10
;
if
(
CAHBLTl1l
)
CAHBLTl10
=
CAHBLTll0
;
else
CAHBLTl10
=
CAHBLTI00
;
end
default
:
CAHBLTl10
=
CAHBLTOI0
;
endcase
end
always
@
(
posedge
HCLK
or
negedge
HRESETN
)
begin
if
(
!
HRESETN
)
CAHBLTOO1
<=
CAHBLTOI0
;
else
CAHBLTOO1
<=
CAHBLTl10
;
end
endmodule
