Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit core collection
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
30
Issues
30
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
White Rabbit core collection
Commits
093909a6
Commit
093909a6
authored
Jul 12, 2012
by
Grzegorz Daniluk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wbp_mux: signals naming cleaned up
parent
e70ae0bb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
218 additions
and
218 deletions
+218
-218
wbp_mux.vhd
modules/wrc_core/wbp_mux.vhd
+218
-218
No files found.
modules/wrc_core/wbp_mux.vhd
View file @
093909a6
...
...
@@ -41,61 +41,61 @@ entity wbp_mux is
rst_n_i
:
in
std_logic
;
--ENDPOINT
ep_
wbs
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ep_
wbs
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ep_
wbs
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ep_
wbs
_cyc_i
:
in
std_logic
;
ep_
wbs
_stb_i
:
in
std_logic
;
ep_
wbs
_ack_o
:
out
std_logic
;
ep_
wbs
_err_o
:
out
std_logic
;
ep_
wbs
_stall_o
:
out
std_logic
;
ep_
snk
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ep_
snk
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ep_
snk
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ep_
snk
_cyc_i
:
in
std_logic
;
ep_
snk
_stb_i
:
in
std_logic
;
ep_
snk
_ack_o
:
out
std_logic
;
ep_
snk
_err_o
:
out
std_logic
;
ep_
snk
_stall_o
:
out
std_logic
;
ep_
wbm
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ep_
wbm
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ep_
wbm
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ep_
wbm
_cyc_o
:
out
std_logic
;
ep_
wbm
_stb_o
:
out
std_logic
;
ep_
wbm
_ack_i
:
in
std_logic
;
ep_
wbm
_err_i
:
in
std_logic
;
ep_
wbm
_stall_i
:
in
std_logic
;
ep_
src
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ep_
src
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ep_
src
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ep_
src
_cyc_o
:
out
std_logic
;
ep_
src
_stb_o
:
out
std_logic
;
ep_
src
_ack_i
:
in
std_logic
;
ep_
src
_err_i
:
in
std_logic
;
ep_
src
_stall_i
:
in
std_logic
;
--PTP packets eg. for Mini-NIC
ptp_
wbs
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ptp_
wbs
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ptp_
wbs
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ptp_
wbs
_cyc_i
:
in
std_logic
;
ptp_
wbs
_stb_i
:
in
std_logic
;
ptp_
wbs
_ack_o
:
out
std_logic
;
ptp_
wbs
_err_o
:
out
std_logic
;
ptp_
wbs
_stall_o
:
out
std_logic
;
ptp_
wbm
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ptp_
wbm
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ptp_
wbm
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ptp_
wbm
_cyc_o
:
out
std_logic
;
ptp_
wbm
_stb_o
:
out
std_logic
;
ptp_
wbm
_ack_i
:
in
std_logic
;
ptp_
wbm
_err_i
:
in
std_logic
;
ptp_
wbm
_stall_i
:
in
std_logic
;
ptp_
snk
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ptp_
snk
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ptp_
snk
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ptp_
snk
_cyc_i
:
in
std_logic
;
ptp_
snk
_stb_i
:
in
std_logic
;
ptp_
snk
_ack_o
:
out
std_logic
;
ptp_
snk
_err_o
:
out
std_logic
;
ptp_
snk
_stall_o
:
out
std_logic
;
ptp_
src
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ptp_
src
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ptp_
src
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ptp_
src
_cyc_o
:
out
std_logic
;
ptp_
src
_stb_o
:
out
std_logic
;
ptp_
src
_ack_i
:
in
std_logic
;
ptp_
src
_err_i
:
in
std_logic
;
ptp_
src
_stall_i
:
in
std_logic
;
--External WBP port
ext_
wbs
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ext_
wbs
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ext_
wbs
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ext_
wbs
_cyc_i
:
in
std_logic
;
ext_
wbs
_stb_i
:
in
std_logic
;
ext_
wbs
_ack_o
:
out
std_logic
;
ext_
wbs
_err_o
:
out
std_logic
;
ext_
wbs
_stall_o
:
out
std_logic
;
ext_
snk
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ext_
snk
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ext_
snk
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ext_
snk
_cyc_i
:
in
std_logic
;
ext_
snk
_stb_i
:
in
std_logic
;
ext_
snk
_ack_o
:
out
std_logic
;
ext_
snk
_err_o
:
out
std_logic
;
ext_
snk
_stall_o
:
out
std_logic
;
ext_
wbm
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ext_
wbm
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ext_
wbm
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ext_
wbm
_cyc_o
:
out
std_logic
;
ext_
wbm
_stb_o
:
out
std_logic
;
ext_
wbm
_ack_i
:
in
std_logic
;
ext_
wbm
_err_i
:
in
std_logic
;
ext_
wbm
_stall_i
:
in
std_logic
;
ext_
src
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ext_
src
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ext_
src
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ext_
src
_cyc_o
:
out
std_logic
;
ext_
src
_stb_o
:
out
std_logic
;
ext_
src
_ack_i
:
in
std_logic
;
ext_
src
_err_i
:
in
std_logic
;
ext_
src
_stall_i
:
in
std_logic
;
class_core_i
:
in
std_logic_vector
(
7
downto
0
)
);
...
...
@@ -133,7 +133,7 @@ architecture behaviour of wbp_mux is
signal
mux_pend_ext
:
std_logic
;
signal
mux_pend_ptp
:
std_logic
;
signal
force_stall
:
std_logic
;
signal
ep_
wbs
_stall_out
:
std_logic
;
signal
ep_
snk
_stall_out
:
std_logic
;
--==================================--
...
...
@@ -147,7 +147,7 @@ architecture behaviour of wbp_mux is
signal
ep_stall_mask
:
std_logic
;
signal
ptp_select
,
ext_select
:
std_logic
;
signal
ptp_send_status
,
ext_send_status
:
std_logic
;
signal
ep_
wbm
_stall_d0
:
std_logic
;
signal
ep_
src
_stall_d0
:
std_logic
;
begin
...
...
@@ -167,30 +167,30 @@ dmux_status_class <= f_unmarshall_wrf_status(dmux_status_reg).match_class;
mux_last
<=
'1'
;
mux
<=
MUX_SEL
;
ep_
wbm
_stall_d0
<=
'0'
;
ep_
src
_stall_d0
<=
'0'
;
else
ep_
wbm_stall_d0
<=
ep_wbm
_stall_i
;
ep_
src_stall_d0
<=
ep_src
_stall_i
;
case
(
mux
)
is
when
MUX_SEL
=>
if
(
ext_
wbs_cyc_i
=
'1'
and
ptp_wbs
_cyc_i
=
'0'
)
then
if
(
ext_
snk_cyc_i
=
'1'
and
ptp_snk
_cyc_i
=
'0'
)
then
mux
<=
MUX_EXT
;
elsif
(
ext_
wbs_cyc_i
=
'0'
and
ptp_wbs
_cyc_i
=
'1'
)
then
elsif
(
ext_
snk_cyc_i
=
'0'
and
ptp_snk
_cyc_i
=
'1'
)
then
mux
<=
MUX_PTP
;
--little Round Robin here
elsif
(
ext_
wbs_cyc_i
=
'1'
and
ptp_wbs
_cyc_i
=
'1'
and
mux_last
=
c_LAST_PTP
)
then
elsif
(
ext_
snk_cyc_i
=
'1'
and
ptp_snk
_cyc_i
=
'1'
and
mux_last
=
c_LAST_PTP
)
then
mux
<=
MUX_EXT
;
elsif
(
ext_
wbs_cyc_i
=
'1'
and
ptp_wbs
_cyc_i
=
'1'
and
mux_last
=
c_LAST_EXT
)
then
elsif
(
ext_
snk_cyc_i
=
'1'
and
ptp_snk
_cyc_i
=
'1'
and
mux_last
=
c_LAST_EXT
)
then
mux
<=
MUX_PTP
;
end
if
;
if
(
ext_
wbs_cyc_i
=
'1'
and
ext_wbs
_stb_i
=
'1'
)
then
if
(
ext_
snk_cyc_i
=
'1'
and
ext_snk
_stb_i
=
'1'
)
then
mux_pend_ext
<=
'1'
;
elsif
(
ext_
wbs
_cyc_i
=
'0'
)
then
elsif
(
ext_
snk
_cyc_i
=
'0'
)
then
mux_pend_ext
<=
'0'
;
end
if
;
if
(
ptp_
wbs_cyc_i
=
'1'
and
ptp_wbs
_stb_i
=
'1'
)
then
if
(
ptp_
snk_cyc_i
=
'1'
and
ptp_snk
_stb_i
=
'1'
)
then
mux_pend_ptp
<=
'1'
;
elsif
(
ptp_
wbs
_cyc_i
=
'0'
)
then
elsif
(
ptp_
snk
_cyc_i
=
'0'
)
then
mux_pend_ptp
<=
'0'
;
end
if
;
...
...
@@ -198,13 +198,13 @@ dmux_status_class <= f_unmarshall_wrf_status(dmux_status_reg).match_class;
when
MUX_EXT
=>
mux_last
<=
c_LAST_EXT
;
mux_pend_ext
<=
'0'
;
if
(
ptp_
wbs_cyc_i
=
'1'
and
ptp_wbs
_stb_i
=
'1'
)
then
if
(
ptp_
snk_cyc_i
=
'1'
and
ptp_snk
_stb_i
=
'1'
)
then
mux_pend_ptp
<=
'1'
;
elsif
(
ptp_
wbs
_cyc_i
=
'0'
)
then
elsif
(
ptp_
snk
_cyc_i
=
'0'
)
then
mux_pend_ptp
<=
'0'
;
end
if
;
if
(
ext_
wbs_cyc_i
=
'0'
and
ep_wbm_stall_i
=
'0'
and
ep_wbm
_stall_d0
=
'0'
)
then
if
(
ext_
snk_cyc_i
=
'0'
and
ep_src_stall_i
=
'0'
and
ep_src
_stall_d0
=
'0'
)
then
mux
<=
MUX_SEL
;
end
if
;
...
...
@@ -212,13 +212,13 @@ dmux_status_class <= f_unmarshall_wrf_status(dmux_status_reg).match_class;
when
MUX_PTP
=>
mux_last
<=
c_LAST_PTP
;
mux_pend_ptp
<=
'0'
;
if
(
ext_
wbs_cyc_i
=
'1'
and
ext_wbs
_stb_i
=
'1'
)
then
if
(
ext_
snk_cyc_i
=
'1'
and
ext_snk
_stb_i
=
'1'
)
then
mux_pend_ext
<=
'1'
;
elsif
(
ext_
wbs
_cyc_i
=
'0'
)
then
elsif
(
ext_
snk
_cyc_i
=
'0'
)
then
mux_pend_ext
<=
'0'
;
end
if
;
if
(
ptp_
wbs_cyc_i
=
'0'
and
ep_wbm_stall_i
=
'0'
and
ep_wbm
_stall_d0
=
'0'
)
then
if
(
ptp_
snk_cyc_i
=
'0'
and
ep_src_stall_i
=
'0'
and
ep_src
_stall_d0
=
'0'
)
then
mux
<=
MUX_SEL
;
end
if
;
...
...
@@ -232,7 +232,7 @@ dmux_status_class <= f_unmarshall_wrf_status(dmux_status_reg).match_class;
end
if
;
end
process
;
force_stall
<=
'1'
when
(
mux
=
MUX_SEL
and
ext_
wbs_cyc_i
=
'1'
and
ptp_wbs
_cyc_i
=
'1'
)
else
force_stall
<=
'1'
when
(
mux
=
MUX_SEL
and
ext_
snk_cyc_i
=
'1'
and
ptp_snk
_cyc_i
=
'1'
)
else
'0'
;
--buffers
...
...
@@ -251,54 +251,54 @@ dmux_status_class <= f_unmarshall_wrf_status(dmux_status_reg).match_class;
mux_extstb_reg
<=
'0'
;
mux_ptpstb_reg
<=
'0'
;
else
if
(
ep_
wbm
_stall_i
=
'0'
)
then
mux_extdat_reg
<=
ext_
wbs
_dat_i
;
mux_ptpdat_reg
<=
ptp_
wbs
_dat_i
;
mux_extadr_reg
<=
ext_
wbs
_adr_i
;
mux_ptpadr_reg
<=
ptp_
wbs
_adr_i
;
mux_extsel_reg
<=
ext_
wbs
_sel_i
;
mux_ptpsel_reg
<=
ptp_
wbs
_sel_i
;
mux_extcyc_reg
<=
ext_
wbs
_cyc_i
;
mux_ptpcyc_reg
<=
ptp_
wbs
_cyc_i
;
mux_extstb_reg
<=
ext_
wbs
_stb_i
;
mux_ptpstb_reg
<=
ptp_
wbs
_stb_i
;
if
(
ep_
src
_stall_i
=
'0'
)
then
mux_extdat_reg
<=
ext_
snk
_dat_i
;
mux_ptpdat_reg
<=
ptp_
snk
_dat_i
;
mux_extadr_reg
<=
ext_
snk
_adr_i
;
mux_ptpadr_reg
<=
ptp_
snk
_adr_i
;
mux_extsel_reg
<=
ext_
snk
_sel_i
;
mux_ptpsel_reg
<=
ptp_
snk
_sel_i
;
mux_extcyc_reg
<=
ext_
snk
_cyc_i
;
mux_ptpcyc_reg
<=
ptp_
snk
_cyc_i
;
mux_extstb_reg
<=
ext_
snk
_stb_i
;
mux_ptpstb_reg
<=
ptp_
snk
_stb_i
;
end
if
;
end
if
;
end
if
;
end
process
;
ep_
wbm
_adr_o
<=
mux_extadr_reg
when
(
mux
=
MUX_EXT
)
else
ep_
src
_adr_o
<=
mux_extadr_reg
when
(
mux
=
MUX_EXT
)
else
mux_ptpadr_reg
when
(
mux
=
MUX_PTP
)
else
(
others
=>
'0'
);
ep_
wbm
_dat_o
<=
mux_extdat_reg
when
(
mux
=
MUX_EXT
)
else
ep_
src
_dat_o
<=
mux_extdat_reg
when
(
mux
=
MUX_EXT
)
else
mux_ptpdat_reg
when
(
mux
=
MUX_PTP
)
else
(
others
=>
'0'
);
ep_
wbm
_sel_o
<=
mux_extsel_reg
when
(
mux
=
MUX_EXT
)
else
ep_
src
_sel_o
<=
mux_extsel_reg
when
(
mux
=
MUX_EXT
)
else
mux_ptpsel_reg
when
(
mux
=
MUX_PTP
)
else
(
others
=>
'0'
);
ep_
wbm
_cyc_o
<=
mux_extcyc_reg
when
(
mux
=
MUX_EXT
)
else
ep_
src
_cyc_o
<=
mux_extcyc_reg
when
(
mux
=
MUX_EXT
)
else
mux_ptpcyc_reg
when
(
mux
=
MUX_PTP
)
else
'0'
;
ep_
wbm
_stb_o
<=
mux_extstb_reg
or
mux_pend_ext
when
(
mux
=
MUX_EXT
)
else
ep_
src
_stb_o
<=
mux_extstb_reg
or
mux_pend_ext
when
(
mux
=
MUX_EXT
)
else
mux_ptpstb_reg
or
mux_pend_ptp
when
(
mux
=
MUX_PTP
)
else
'0'
;
ext_
wbs_ack_o
<=
ep_wbm
_ack_i
when
(
mux
=
MUX_EXT
)
else
ext_
snk_ack_o
<=
ep_src
_ack_i
when
(
mux
=
MUX_EXT
)
else
'0'
;
ptp_
wbs_ack_o
<=
ep_wbm
_ack_i
when
(
mux
=
MUX_PTP
)
else
ptp_
snk_ack_o
<=
ep_src
_ack_i
when
(
mux
=
MUX_PTP
)
else
'0'
;
ext_
wbs_err_o
<=
ep_wbm
_err_i
when
(
mux
=
MUX_EXT
)
else
ext_
snk_err_o
<=
ep_src
_err_i
when
(
mux
=
MUX_EXT
)
else
'0'
;
ptp_
wbs_err_o
<=
ep_wbm
_err_i
when
(
mux
=
MUX_PTP
)
else
ptp_
snk_err_o
<=
ep_src
_err_i
when
(
mux
=
MUX_PTP
)
else
'0'
;
ext_
wbs_stall_o
<=
ep_wbm
_stall_i
when
(
mux
=
MUX_EXT
)
else
ext_
snk_stall_o
<=
ep_src
_stall_i
when
(
mux
=
MUX_EXT
)
else
'1'
when
(
mux
=
MUX_PTP
)
else
'1'
when
(
force_stall
=
'1'
)
else
'0'
;
ptp_
wbs_stall_o
<=
ep_wbm
_stall_i
when
(
mux
=
MUX_PTP
)
else
ptp_
snk_stall_o
<=
ep_src
_stall_i
when
(
mux
=
MUX_PTP
)
else
'1'
when
(
mux
=
MUX_EXT
)
else
'1'
when
(
force_stall
=
'1'
)
else
'0'
;
...
...
@@ -332,9 +332,9 @@ dmux_status_class <= f_unmarshall_wrf_status(dmux_status_reg).match_class;
ptp_send_status
<=
'0'
;
ext_select
<=
'0'
;
ext_send_status
<=
'0'
;
if
(
ep_
wbs_cyc_i
=
'1'
and
ep_wbs_stb_i
=
'1'
and
ep_wbs
_adr_i
=
c_WRF_STATUS
)
then
if
(
ep_
snk_cyc_i
=
'1'
and
ep_snk_stb_i
=
'1'
and
ep_snk
_adr_i
=
c_WRF_STATUS
)
then
ep_stall_mask
<=
'1'
;
dmux_status_reg
<=
ep_
wbs
_dat_i
;
dmux_status_reg
<=
ep_
snk
_dat_i
;
demux
<=
DMUX_STATUS
;
else
dmux_status_reg
<=
(
others
=>
'0'
);
...
...
@@ -351,13 +351,13 @@ dmux_status_class <= f_unmarshall_wrf_status(dmux_status_reg).match_class;
if
((
dmux_status_class
=
x"00"
)
or
((
dmux_status_class
and
class_core_i
)
/=
"00000000"
))
then
ptp_select
<=
'1'
;
ptp_send_status
<=
'1'
;
if
(
ptp_
wbm
_stall_i
=
'0'
)
then
if
(
ptp_
src
_stall_i
=
'0'
)
then
demux
<=
DMUX_PAYLOAD
;
end
if
;
else
ext_select
<=
'1'
;
ext_send_status
<=
'1'
;
if
(
ext_
wbm
_stall_i
=
'0'
)
then
if
(
ext_
src
_stall_i
=
'0'
)
then
demux
<=
DMUX_PAYLOAD
;
end
if
;
end
if
;
...
...
@@ -371,7 +371,7 @@ dmux_status_class <= f_unmarshall_wrf_status(dmux_status_reg).match_class;
ext_send_status
<=
'0'
;
ep_stall_mask
<=
'0'
;
if
(
ep_
wbs
_cyc_i
=
'0'
)
then
if
(
ep_
snk
_cyc_i
=
'0'
)
then
demux
<=
DMUX_WAIT
;
end
if
;
...
...
@@ -383,51 +383,51 @@ dmux_status_class <= f_unmarshall_wrf_status(dmux_status_reg).match_class;
end
process
;
ptp_
wbm_cyc_o
<=
ep_wbs
_cyc_i
when
(
ptp_select
=
'1'
)
else
ptp_
src_cyc_o
<=
ep_snk
_cyc_i
when
(
ptp_select
=
'1'
)
else
'0'
;
ptp_
wbm
_stb_o
<=
'1'
when
(
ptp_send_status
=
'1'
)
else
ep_
wbs
_stb_i
when
(
ptp_select
=
'1'
)
else
ptp_
src
_stb_o
<=
'1'
when
(
ptp_send_status
=
'1'
)
else
ep_
snk
_stb_i
when
(
ptp_select
=
'1'
)
else
'0'
;
ptp_
wbm
_adr_o
<=
c_WRF_STATUS
when
(
ptp_send_status
=
'1'
)
else
ep_
wbs
_adr_i
when
(
ptp_select
=
'1'
)
else
ptp_
src
_adr_o
<=
c_WRF_STATUS
when
(
ptp_send_status
=
'1'
)
else
ep_
snk
_adr_i
when
(
ptp_select
=
'1'
)
else
(
others
=>
'0'
);
ptp_
wbm
_dat_o
<=
dmux_status_reg
when
(
ptp_send_status
=
'1'
)
else
ep_
wbs
_dat_i
when
(
ptp_select
=
'1'
)
else
ptp_
src
_dat_o
<=
dmux_status_reg
when
(
ptp_send_status
=
'1'
)
else
ep_
snk
_dat_i
when
(
ptp_select
=
'1'
)
else
(
others
=>
'0'
);
ptp_
wbm
_sel_o
<=
(
others
=>
'1'
)
when
(
ptp_send_status
=
'1'
)
else
ep_
wbs
_sel_i
when
(
ptp_select
=
'1'
)
else
ptp_
src
_sel_o
<=
(
others
=>
'1'
)
when
(
ptp_send_status
=
'1'
)
else
ep_
snk
_sel_i
when
(
ptp_select
=
'1'
)
else
(
others
=>
'1'
);
ep_
wbs_ack_o
<=
ptp_wbm
_ack_i
when
(
ptp_select
=
'1'
)
else
ext_
wbm
_ack_i
when
(
ext_select
=
'1'
)
else
(
ep_
wbs_cyc_i
and
ep_wbs_stb_i
and
not
ep_wbs
_stall_out
);
ep_
snk_ack_o
<=
ptp_src
_ack_i
when
(
ptp_select
=
'1'
)
else
ext_
src
_ack_i
when
(
ext_select
=
'1'
)
else
(
ep_
snk_cyc_i
and
ep_snk_stb_i
and
not
ep_snk
_stall_out
);
ep_
wbs_err_o
<=
ptp_wbm
_err_i
when
(
ptp_select
=
'1'
)
else
ext_
wbm
_err_i
when
(
ext_select
=
'1'
)
else
ep_
snk_err_o
<=
ptp_src
_err_i
when
(
ptp_select
=
'1'
)
else
ext_
src
_err_i
when
(
ext_select
=
'1'
)
else
'0'
;
ep_
wbs
_stall_out
<=
'1'
when
(
ep_stall_mask
=
'1'
)
else
ptp_
wbm
_stall_i
when
(
ptp_select
=
'1'
)
else
ext_
wbm
_stall_i
when
(
ext_select
=
'1'
)
else
ep_
snk
_stall_out
<=
'1'
when
(
ep_stall_mask
=
'1'
)
else
ptp_
src
_stall_i
when
(
ptp_select
=
'1'
)
else
ext_
src
_stall_i
when
(
ext_select
=
'1'
)
else
'0'
;
ep_
wbs_stall_o
<=
ep_wbs
_stall_out
;
ep_
snk_stall_o
<=
ep_snk
_stall_out
;
ext_
wbm_cyc_o
<=
ep_wbs
_cyc_i
when
(
ext_select
=
'1'
)
else
ext_
src_cyc_o
<=
ep_snk
_cyc_i
when
(
ext_select
=
'1'
)
else
'0'
;
ext_
wbm
_stb_o
<=
'1'
when
(
ext_send_status
=
'1'
)
else
ep_
wbs
_stb_i
when
(
ext_select
=
'1'
)
else
ext_
src
_stb_o
<=
'1'
when
(
ext_send_status
=
'1'
)
else
ep_
snk
_stb_i
when
(
ext_select
=
'1'
)
else
'0'
;
ext_
wbm
_adr_o
<=
c_WRF_STATUS
when
(
ext_send_status
=
'1'
)
else
ep_
wbs
_adr_i
when
(
ext_select
=
'1'
)
else
ext_
src
_adr_o
<=
c_WRF_STATUS
when
(
ext_send_status
=
'1'
)
else
ep_
snk
_adr_i
when
(
ext_select
=
'1'
)
else
(
others
=>
'0'
);
ext_
wbm
_dat_o
<=
dmux_status_reg
when
(
ext_send_status
=
'1'
)
else
ep_
wbs
_dat_i
when
(
ext_select
=
'1'
)
else
ext_
src
_dat_o
<=
dmux_status_reg
when
(
ext_send_status
=
'1'
)
else
ep_
snk
_dat_i
when
(
ext_select
=
'1'
)
else
(
others
=>
'0'
);
ext_
wbm
_sel_o
<=
(
others
=>
'1'
)
when
(
ext_send_status
=
'1'
)
else
ep_
wbs
_sel_i
when
(
ext_select
=
'1'
)
else
ext_
src
_sel_o
<=
(
others
=>
'1'
)
when
(
ext_send_status
=
'1'
)
else
ep_
snk
_sel_i
when
(
ext_select
=
'1'
)
else
(
others
=>
'1'
);
end
behaviour
;
...
...
@@ -480,61 +480,61 @@ architecture behaviour of xwbp_mux is
rst_n_i
:
in
std_logic
;
--ENDPOINT
ep_
wbs
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ep_
wbs
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ep_
wbs
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ep_
wbs
_cyc_i
:
in
std_logic
;
ep_
wbs
_stb_i
:
in
std_logic
;
ep_
wbs
_ack_o
:
out
std_logic
;
ep_
wbs
_err_o
:
out
std_logic
;
ep_
wbs
_stall_o
:
out
std_logic
;
ep_
snk
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ep_
snk
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ep_
snk
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ep_
snk
_cyc_i
:
in
std_logic
;
ep_
snk
_stb_i
:
in
std_logic
;
ep_
snk
_ack_o
:
out
std_logic
;
ep_
snk
_err_o
:
out
std_logic
;
ep_
snk
_stall_o
:
out
std_logic
;
ep_
wbm
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ep_
wbm
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ep_
wbm
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ep_
wbm
_cyc_o
:
out
std_logic
;
ep_
wbm
_stb_o
:
out
std_logic
;
ep_
wbm
_ack_i
:
in
std_logic
;
ep_
wbm
_err_i
:
in
std_logic
;
ep_
wbm
_stall_i
:
in
std_logic
;
ep_
src
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ep_
src
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ep_
src
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ep_
src
_cyc_o
:
out
std_logic
;
ep_
src
_stb_o
:
out
std_logic
;
ep_
src
_ack_i
:
in
std_logic
;
ep_
src
_err_i
:
in
std_logic
;
ep_
src
_stall_i
:
in
std_logic
;
--PTP packets eg. for Mini-NIC
ptp_
wbs
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ptp_
wbs
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ptp_
wbs
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ptp_
wbs
_cyc_i
:
in
std_logic
;
ptp_
wbs
_stb_i
:
in
std_logic
;
ptp_
wbs
_ack_o
:
out
std_logic
;
ptp_
wbs
_err_o
:
out
std_logic
;
ptp_
wbs
_stall_o
:
out
std_logic
;
ptp_
snk
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ptp_
snk
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ptp_
snk
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ptp_
snk
_cyc_i
:
in
std_logic
;
ptp_
snk
_stb_i
:
in
std_logic
;
ptp_
snk
_ack_o
:
out
std_logic
;
ptp_
snk
_err_o
:
out
std_logic
;
ptp_
snk
_stall_o
:
out
std_logic
;
ptp_
wbm
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ptp_
wbm
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ptp_
wbm
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ptp_
wbm
_cyc_o
:
out
std_logic
;
ptp_
wbm
_stb_o
:
out
std_logic
;
ptp_
wbm
_ack_i
:
in
std_logic
;
ptp_
wbm
_err_i
:
in
std_logic
;
ptp_
wbm
_stall_i
:
in
std_logic
;
ptp_
src
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ptp_
src
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ptp_
src
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ptp_
src
_cyc_o
:
out
std_logic
;
ptp_
src
_stb_o
:
out
std_logic
;
ptp_
src
_ack_i
:
in
std_logic
;
ptp_
src
_err_i
:
in
std_logic
;
ptp_
src
_stall_i
:
in
std_logic
;
--External WBP port
ext_
wbs
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ext_
wbs
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ext_
wbs
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ext_
wbs
_cyc_i
:
in
std_logic
;
ext_
wbs
_stb_i
:
in
std_logic
;
ext_
wbs
_ack_o
:
out
std_logic
;
ext_
wbs
_err_o
:
out
std_logic
;
ext_
wbs
_stall_o
:
out
std_logic
;
ext_
snk
_adr_i
:
in
std_logic_vector
(
g_aw
-1
downto
0
);
ext_
snk
_dat_i
:
in
std_logic_vector
(
g_dw
-1
downto
0
);
ext_
snk
_sel_i
:
in
std_logic_vector
(
g_sw
-1
downto
0
);
ext_
snk
_cyc_i
:
in
std_logic
;
ext_
snk
_stb_i
:
in
std_logic
;
ext_
snk
_ack_o
:
out
std_logic
;
ext_
snk
_err_o
:
out
std_logic
;
ext_
snk
_stall_o
:
out
std_logic
;
ext_
wbm
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ext_
wbm
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ext_
wbm
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ext_
wbm
_cyc_o
:
out
std_logic
;
ext_
wbm
_stb_o
:
out
std_logic
;
ext_
wbm
_ack_i
:
in
std_logic
;
ext_
wbm
_err_i
:
in
std_logic
;
ext_
wbm
_stall_i
:
in
std_logic
;
ext_
src
_adr_o
:
out
std_logic_vector
(
g_aw
-1
downto
0
);
ext_
src
_dat_o
:
out
std_logic_vector
(
g_dw
-1
downto
0
);
ext_
src
_sel_o
:
out
std_logic_vector
(
g_sw
-1
downto
0
);
ext_
src
_cyc_o
:
out
std_logic
;
ext_
src
_stb_o
:
out
std_logic
;
ext_
src
_ack_i
:
in
std_logic
;
ext_
src
_err_i
:
in
std_logic
;
ext_
src
_stall_i
:
in
std_logic
;
class_core_i
:
in
std_logic_vector
(
7
downto
0
)
);
end
component
;
...
...
@@ -551,59 +551,59 @@ begin
clk_sys_i
=>
clk_sys_i
,
rst_n_i
=>
rst_n_i
,
ep_
wbs
_adr_i
=>
ep_snk_i
.
adr
,
ep_
wbs
_dat_i
=>
ep_snk_i
.
dat
,
ep_
wbs
_sel_i
=>
ep_snk_i
.
sel
,
ep_
wbs
_cyc_i
=>
ep_snk_i
.
cyc
,
ep_
wbs
_stb_i
=>
ep_snk_i
.
stb
,
ep_
wbs
_ack_o
=>
ep_snk_o
.
ack
,
ep_
wbs
_err_o
=>
ep_snk_o
.
err
,
ep_
wbs
_stall_o
=>
ep_snk_o
.
stall
,
ep_
snk
_adr_i
=>
ep_snk_i
.
adr
,
ep_
snk
_dat_i
=>
ep_snk_i
.
dat
,
ep_
snk
_sel_i
=>
ep_snk_i
.
sel
,
ep_
snk
_cyc_i
=>
ep_snk_i
.
cyc
,
ep_
snk
_stb_i
=>
ep_snk_i
.
stb
,
ep_
snk
_ack_o
=>
ep_snk_o
.
ack
,
ep_
snk
_err_o
=>
ep_snk_o
.
err
,
ep_
snk
_stall_o
=>
ep_snk_o
.
stall
,
ep_
wbm
_adr_o
=>
ep_src_o
.
adr
,
ep_
wbm
_dat_o
=>
ep_src_o
.
dat
,
ep_
wbm
_sel_o
=>
ep_src_o
.
sel
,
ep_
wbm
_cyc_o
=>
ep_src_o
.
cyc
,
ep_
wbm
_stb_o
=>
ep_src_o
.
stb
,
ep_
wbm
_ack_i
=>
ep_src_i
.
ack
,
ep_
wbm
_err_i
=>
ep_src_i
.
err
,
ep_
wbm
_stall_i
=>
ep_src_i
.
stall
,
ep_
src
_adr_o
=>
ep_src_o
.
adr
,
ep_
src
_dat_o
=>
ep_src_o
.
dat
,
ep_
src
_sel_o
=>
ep_src_o
.
sel
,
ep_
src
_cyc_o
=>
ep_src_o
.
cyc
,
ep_
src
_stb_o
=>
ep_src_o
.
stb
,
ep_
src
_ack_i
=>
ep_src_i
.
ack
,
ep_
src
_err_i
=>
ep_src_i
.
err
,
ep_
src
_stall_i
=>
ep_src_i
.
stall
,
ptp_
wbs
_adr_i
=>
ptp_snk_i
.
adr
,
ptp_
wbs
_dat_i
=>
ptp_snk_i
.
dat
,
ptp_
wbs
_sel_i
=>
ptp_snk_i
.
sel
,
ptp_
wbs
_cyc_i
=>
ptp_snk_i
.
cyc
,
ptp_
wbs
_stb_i
=>
ptp_snk_i
.
stb
,
ptp_
wbs
_ack_o
=>
ptp_snk_o
.
ack
,
ptp_
wbs
_err_o
=>
ptp_snk_o
.
err
,
ptp_
wbs
_stall_o
=>
ptp_snk_o
.
stall
,
ptp_
snk
_adr_i
=>
ptp_snk_i
.
adr
,
ptp_
snk
_dat_i
=>
ptp_snk_i
.
dat
,
ptp_
snk
_sel_i
=>
ptp_snk_i
.
sel
,
ptp_
snk
_cyc_i
=>
ptp_snk_i
.
cyc
,
ptp_
snk
_stb_i
=>
ptp_snk_i
.
stb
,
ptp_
snk
_ack_o
=>
ptp_snk_o
.
ack
,
ptp_
snk
_err_o
=>
ptp_snk_o
.
err
,
ptp_
snk
_stall_o
=>
ptp_snk_o
.
stall
,
ptp_
wbm
_adr_o
=>
ptp_src_o
.
adr
,
ptp_
wbm
_dat_o
=>
ptp_src_o
.
dat
,
ptp_
wbm
_sel_o
=>
ptp_src_o
.
sel
,
ptp_
wbm
_cyc_o
=>
ptp_src_o
.
cyc
,
ptp_
wbm
_stb_o
=>
ptp_src_o
.
stb
,
ptp_
wbm
_ack_i
=>
ptp_src_i
.
ack
,
ptp_
wbm
_err_i
=>
ptp_src_i
.
err
,
ptp_
wbm
_stall_i
=>
ptp_src_i
.
stall
,
ptp_
src
_adr_o
=>
ptp_src_o
.
adr
,
ptp_
src
_dat_o
=>
ptp_src_o
.
dat
,
ptp_
src
_sel_o
=>
ptp_src_o
.
sel
,
ptp_
src
_cyc_o
=>
ptp_src_o
.
cyc
,
ptp_
src
_stb_o
=>
ptp_src_o
.
stb
,
ptp_
src
_ack_i
=>
ptp_src_i
.
ack
,
ptp_
src
_err_i
=>
ptp_src_i
.
err
,
ptp_
src
_stall_i
=>
ptp_src_i
.
stall
,
ext_
wbs
_adr_i
=>
ext_snk_i
.
adr
,
ext_
wbs
_dat_i
=>
ext_snk_i
.
dat
,
ext_
wbs
_sel_i
=>
ext_snk_i
.
sel
,
ext_
wbs
_cyc_i
=>
ext_snk_i
.
cyc
,
ext_
wbs
_stb_i
=>
ext_snk_i
.
stb
,
ext_
wbs
_ack_o
=>
ext_snk_o
.
ack
,
ext_
wbs
_err_o
=>
ext_snk_o
.
err
,
ext_
wbs
_stall_o
=>
ext_snk_o
.
stall
,
ext_
snk
_adr_i
=>
ext_snk_i
.
adr
,
ext_
snk
_dat_i
=>
ext_snk_i
.
dat
,
ext_
snk
_sel_i
=>
ext_snk_i
.
sel
,
ext_
snk
_cyc_i
=>
ext_snk_i
.
cyc
,
ext_
snk
_stb_i
=>
ext_snk_i
.
stb
,
ext_
snk
_ack_o
=>
ext_snk_o
.
ack
,
ext_
snk
_err_o
=>
ext_snk_o
.
err
,
ext_
snk
_stall_o
=>
ext_snk_o
.
stall
,
ext_
wbm
_adr_o
=>
ext_src_o
.
adr
,
ext_
wbm
_dat_o
=>
ext_src_o
.
dat
,
ext_
wbm
_sel_o
=>
ext_src_o
.
sel
,
ext_
wbm
_cyc_o
=>
ext_src_o
.
cyc
,
ext_
wbm
_stb_o
=>
ext_src_o
.
stb
,
ext_
wbm
_ack_i
=>
ext_src_i
.
ack
,
ext_
wbm
_err_i
=>
ext_src_i
.
err
,
ext_
wbm
_stall_i
=>
ext_src_i
.
stall
,
ext_
src
_adr_o
=>
ext_src_o
.
adr
,
ext_
src
_dat_o
=>
ext_src_o
.
dat
,
ext_
src
_sel_o
=>
ext_src_o
.
sel
,
ext_
src
_cyc_o
=>
ext_src_o
.
cyc
,
ext_
src
_stb_o
=>
ext_src_o
.
stb
,
ext_
src
_ack_i
=>
ext_src_i
.
ack
,
ext_
src
_err_i
=>
ext_src_i
.
err
,
ext_
src
_stall_i
=>
ext_src_i
.
stall
,
class_core_i
=>
class_core_i
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment