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
0
Merge Requests
0
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
a842c4b2
Commit
a842c4b2
authored
Sep 24, 2018
by
Maciej Lipinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[VXS support] added support for two multiplexed GTP/SFP-I2C in VXS board
parent
9653ab5f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
123 additions
and
2 deletions
+123
-2
wr_vxs_pkg.vhd
board/vxs/wr_vxs_pkg.vhd
+31
-0
wrc_board_vxs.vhd
board/vxs/wrc_board_vxs.vhd
+36
-0
xwrc_board_vxs.vhd
board/vxs/xwrc_board_vxs.vhd
+56
-2
No files found.
board/vxs/wr_vxs_pkg.vhd
View file @
a842c4b2
...
@@ -55,6 +55,9 @@ package wr_vxs_pkg is
...
@@ -55,6 +55,9 @@ package wr_vxs_pkg is
g_dpram_initf
:
string
:
=
"default_xilinx"
;
g_dpram_initf
:
string
:
=
"default_xilinx"
;
g_diag_id
:
integer
:
=
0
;
g_diag_id
:
integer
:
=
0
;
g_diag_ver
:
integer
:
=
0
;
g_diag_ver
:
integer
:
=
0
;
g_gtp_enable_ch0
:
integer
:
=
1
;
g_gtp_enable_ch1
:
integer
:
=
0
;
g_gtp_mux_enable
:
boolean
:
=
FALSE
;
g_diag_ro_size
:
integer
:
=
0
;
g_diag_ro_size
:
integer
:
=
0
;
g_diag_rw_size
:
integer
:
=
0
);
g_diag_rw_size
:
integer
:
=
0
);
port
(
port
(
...
@@ -89,6 +92,20 @@ package wr_vxs_pkg is
...
@@ -89,6 +92,20 @@ package wr_vxs_pkg is
sfp_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp_tx_disable_o
:
out
std_logic
;
sfp_tx_disable_o
:
out
std_logic
;
sfp_los_i
:
in
std_logic
:
=
'0'
;
sfp_los_i
:
in
std_logic
:
=
'0'
;
sfp_mux_sel_i
:
in
std_logic
:
=
'0'
;
sfp1_txp_o
:
out
std_logic
;
sfp1_txn_o
:
out
std_logic
;
sfp1_rxp_i
:
in
std_logic
;
sfp1_rxn_i
:
in
std_logic
;
sfp1_det_i
:
in
std_logic
:
=
'1'
;
sfp1_sda_i
:
in
std_logic
;
sfp1_sda_o
:
out
std_logic
;
sfp1_scl_i
:
in
std_logic
;
sfp1_scl_o
:
out
std_logic
;
sfp1_rate_select_o
:
out
std_logic
;
sfp1_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp1_tx_disable_o
:
out
std_logic
;
sfp1_los_i
:
in
std_logic
:
=
'0'
;
eeprom_sda_i
:
in
std_logic
:
=
'1'
;
eeprom_sda_i
:
in
std_logic
:
=
'1'
;
eeprom_sda_o
:
out
std_logic
;
eeprom_sda_o
:
out
std_logic
;
eeprom_scl_i
:
in
std_logic
:
=
'1'
;
eeprom_scl_i
:
in
std_logic
:
=
'1'
;
...
@@ -195,6 +212,20 @@ package wr_vxs_pkg is
...
@@ -195,6 +212,20 @@ package wr_vxs_pkg is
sfp_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp_tx_disable_o
:
out
std_logic
;
sfp_tx_disable_o
:
out
std_logic
;
sfp_los_i
:
in
std_logic
:
=
'0'
;
sfp_los_i
:
in
std_logic
:
=
'0'
;
sfp_mux_sel_i
:
in
std_logic
:
=
'0'
;
sfp1_txp_o
:
out
std_logic
;
sfp1_txn_o
:
out
std_logic
;
sfp1_rxp_i
:
in
std_logic
;
sfp1_rxn_i
:
in
std_logic
;
sfp1_det_i
:
in
std_logic
:
=
'1'
;
sfp1_sda_i
:
in
std_logic
;
sfp1_sda_o
:
out
std_logic
;
sfp1_scl_i
:
in
std_logic
;
sfp1_scl_o
:
out
std_logic
;
sfp1_rate_select_o
:
out
std_logic
;
sfp1_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp1_tx_disable_o
:
out
std_logic
;
sfp1_los_i
:
in
std_logic
:
=
'0'
;
eeprom_sda_i
:
in
std_logic
;
eeprom_sda_i
:
in
std_logic
;
eeprom_sda_o
:
out
std_logic
;
eeprom_sda_o
:
out
std_logic
;
eeprom_scl_i
:
in
std_logic
;
eeprom_scl_i
:
in
std_logic
;
...
...
board/vxs/wrc_board_vxs.vhd
View file @
a842c4b2
...
@@ -124,6 +124,28 @@ entity wrc_board_vxs is
...
@@ -124,6 +124,28 @@ entity wrc_board_vxs is
sfp_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp_tx_disable_o
:
out
std_logic
;
sfp_tx_disable_o
:
out
std_logic
;
sfp_los_i
:
in
std_logic
:
=
'0'
;
sfp_los_i
:
in
std_logic
:
=
'0'
;
---------------------------------------------------------------------------
-- if both SFP channels are enabled and sfp_mux is enabled,
-- this is the bit to switch between them
-- '0' - enable SFP (channel 0) and disable SFP1 (channel 1)
-- '1' - disable SFP (channel 0) and enable SFP1 (channel 1)
sfp_mux_sel_i
:
in
std_logic
:
=
'0'
;
---------------------------------------------------------------------------
-- SFP CH1 I/O for transceiver and SFP management info
---------------------------------------------------------------------------
sfp1_txp_o
:
out
std_logic
;
sfp1_txn_o
:
out
std_logic
;
sfp1_rxp_i
:
in
std_logic
;
sfp1_rxn_i
:
in
std_logic
;
sfp1_det_i
:
in
std_logic
:
=
'1'
;
sfp1_sda_i
:
in
std_logic
;
sfp1_sda_o
:
out
std_logic
;
sfp1_scl_i
:
in
std_logic
;
sfp1_scl_o
:
out
std_logic
;
sfp1_rate_select_o
:
out
std_logic
;
sfp1_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp1_tx_disable_o
:
out
std_logic
;
sfp1_los_i
:
in
std_logic
:
=
'0'
;
---------------------------------------------------------------------------
---------------------------------------------------------------------------
-- I2C EEPROM
-- I2C EEPROM
...
@@ -475,6 +497,20 @@ begin -- architecture struct
...
@@ -475,6 +497,20 @@ begin -- architecture struct
sfp_rate_select_o
=>
sfp_rate_select_o
,
sfp_rate_select_o
=>
sfp_rate_select_o
,
sfp_tx_fault_i
=>
sfp_tx_fault_i
,
sfp_tx_fault_i
=>
sfp_tx_fault_i
,
sfp_tx_disable_o
=>
sfp_tx_disable_o
,
sfp_tx_disable_o
=>
sfp_tx_disable_o
,
sfp_mux_sel_i
=>
sfp_mux_sel_i
,
sfp1_txp_o
=>
sfp1_txp_o
,
sfp1_txn_o
=>
sfp1_txn_o
,
sfp1_rxp_i
=>
sfp1_rxp_i
,
sfp1_rxn_i
=>
sfp1_rxn_i
,
sfp1_det_i
=>
sfp1_det_i
,
sfp1_sda_i
=>
sfp1_sda_i
,
sfp1_sda_o
=>
sfp1_sda_o
,
sfp1_scl_i
=>
sfp1_scl_i
,
sfp1_scl_o
=>
sfp1_scl_o
,
sfp1_rate_select_o
=>
sfp1_rate_select_o
,
sfp1_tx_fault_i
=>
sfp1_tx_fault_i
,
sfp1_tx_disable_o
=>
sfp1_tx_disable_o
,
sfp_los_i
=>
sfp_los_i
,
sfp_los_i
=>
sfp_los_i
,
eeprom_sda_i
=>
eeprom_sda_i
,
eeprom_sda_i
=>
eeprom_sda_i
,
eeprom_sda_o
=>
eeprom_sda_o
,
eeprom_sda_o
=>
eeprom_sda_o
,
...
...
board/vxs/xwrc_board_vxs.vhd
View file @
a842c4b2
...
@@ -70,6 +70,10 @@ entity xwrc_board_vxs is
...
@@ -70,6 +70,10 @@ entity xwrc_board_vxs is
-- identification (id and ver) of the layout of words in the generic diag interface
-- identification (id and ver) of the layout of words in the generic diag interface
g_diag_id
:
integer
:
=
0
;
g_diag_id
:
integer
:
=
0
;
g_diag_ver
:
integer
:
=
0
;
g_diag_ver
:
integer
:
=
0
;
-- Select GTP channel to use
g_gtp_enable_ch0
:
integer
:
=
1
;
g_gtp_enable_ch1
:
integer
:
=
0
;
g_gtp_mux_enable
:
boolean
:
=
FALSE
;
-- size the generic diag interface
-- size the generic diag interface
g_diag_ro_size
:
integer
:
=
0
;
g_diag_ro_size
:
integer
:
=
0
;
g_diag_rw_size
:
integer
:
=
0
g_diag_rw_size
:
integer
:
=
0
...
@@ -112,7 +116,7 @@ entity xwrc_board_vxs is
...
@@ -112,7 +116,7 @@ entity xwrc_board_vxs is
pll20dac_cs_n_o
:
out
std_logic
;
pll20dac_cs_n_o
:
out
std_logic
;
---------------------------------------------------------------------------
---------------------------------------------------------------------------
-- SFP I/O for transceiver and SFP management info
-- SFP
CH0
I/O for transceiver and SFP management info
---------------------------------------------------------------------------
---------------------------------------------------------------------------
sfp_txp_o
:
out
std_logic
;
sfp_txp_o
:
out
std_logic
;
sfp_txn_o
:
out
std_logic
;
sfp_txn_o
:
out
std_logic
;
...
@@ -127,6 +131,28 @@ entity xwrc_board_vxs is
...
@@ -127,6 +131,28 @@ entity xwrc_board_vxs is
sfp_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp_tx_disable_o
:
out
std_logic
;
sfp_tx_disable_o
:
out
std_logic
;
sfp_los_i
:
in
std_logic
:
=
'0'
;
sfp_los_i
:
in
std_logic
:
=
'0'
;
---------------------------------------------------------------------------
-- if both SFP channels are enabled and sfp_mux is enabled,
-- this is the bit to switch between them
-- '0' - enable SFP (channel 0) and disable SFP1 (channel 1)
-- '1' - disable SFP (channel 0) and enable SFP1 (channel 1)
sfp_mux_sel_i
:
in
std_logic
:
=
'0'
;
---------------------------------------------------------------------------
-- SFP CH1 I/O for transceiver and SFP management info
---------------------------------------------------------------------------
sfp1_txp_o
:
out
std_logic
;
sfp1_txn_o
:
out
std_logic
;
sfp1_rxp_i
:
in
std_logic
;
sfp1_rxn_i
:
in
std_logic
;
sfp1_det_i
:
in
std_logic
:
=
'1'
;
sfp1_sda_i
:
in
std_logic
;
sfp1_sda_o
:
out
std_logic
;
sfp1_scl_i
:
in
std_logic
;
sfp1_scl_o
:
out
std_logic
;
sfp1_rate_select_o
:
out
std_logic
;
sfp1_tx_fault_i
:
in
std_logic
:
=
'0'
;
sfp1_tx_disable_o
:
out
std_logic
;
sfp1_los_i
:
in
std_logic
:
=
'0'
;
---------------------------------------------------------------------------
---------------------------------------------------------------------------
-- I2C EEPROM
-- I2C EEPROM
...
@@ -316,6 +342,9 @@ begin -- architecture struct
...
@@ -316,6 +342,9 @@ begin -- architecture struct
g_fpga_family
=>
"virtex5"
,
g_fpga_family
=>
"virtex5"
,
g_with_external_clock_input
=>
g_with_external_clock_input
,
g_with_external_clock_input
=>
g_with_external_clock_input
,
g_use_default_plls
=>
TRUE
,
g_use_default_plls
=>
TRUE
,
g_gtp_enable_ch0
=>
g_gtp_enable_ch0
,
g_gtp_enable_ch1
=>
g_gtp_enable_ch1
,
g_gtp_mux_enable
=>
g_gtp_mux_enable
,
g_simulation
=>
g_simulation
)
g_simulation
=>
g_simulation
)
port
map
(
port
map
(
areset_n_i
=>
areset_n_i
,
areset_n_i
=>
areset_n_i
,
...
@@ -324,6 +353,7 @@ begin -- architecture struct
...
@@ -324,6 +353,7 @@ begin -- architecture struct
clk_125m_pllref_i
=>
clk_125m_pllref_buf
,
clk_125m_pllref_i
=>
clk_125m_pllref_buf
,
clk_125m_gtp_p_i
=>
clk_125m_gtp_p_i
,
clk_125m_gtp_p_i
=>
clk_125m_gtp_p_i
,
clk_125m_gtp_n_i
=>
clk_125m_gtp_n_i
,
clk_125m_gtp_n_i
=>
clk_125m_gtp_n_i
,
-- ch0
sfp_txn_o
=>
sfp_txn_o
,
sfp_txn_o
=>
sfp_txn_o
,
sfp_txp_o
=>
sfp_txp_o
,
sfp_txp_o
=>
sfp_txp_o
,
sfp_rxn_i
=>
sfp_rxn_i
,
sfp_rxn_i
=>
sfp_rxn_i
,
...
@@ -331,6 +361,18 @@ begin -- architecture struct
...
@@ -331,6 +361,18 @@ begin -- architecture struct
sfp_tx_fault_i
=>
sfp_tx_fault_i
,
sfp_tx_fault_i
=>
sfp_tx_fault_i
,
sfp_los_i
=>
sfp_los_i
,
sfp_los_i
=>
sfp_los_i
,
sfp_tx_disable_o
=>
sfp_tx_disable_o
,
sfp_tx_disable_o
=>
sfp_tx_disable_o
,
sfp_mux_sel_i
=>
sfp_mux_sel_i
,
-- ch1
sfp1_txn_o
=>
sfp1_txn_o
,
sfp1_txp_o
=>
sfp1_txp_o
,
sfp1_rxn_i
=>
sfp1_rxn_i
,
sfp1_rxp_i
=>
sfp1_rxp_i
,
sfp1_tx_fault_i
=>
sfp1_tx_fault_i
,
sfp1_los_i
=>
sfp1_los_i
,
sfp1_tx_disable_o
=>
sfp1_tx_disable_o
,
clk_62m5_sys_o
=>
clk_pll_62m5
,
clk_62m5_sys_o
=>
clk_pll_62m5
,
clk_125m_ref_o
=>
clk_pll_125m
,
clk_125m_ref_o
=>
clk_pll_125m
,
clk_62m5_dmtd_o
=>
clk_pll_dmtd
,
clk_62m5_dmtd_o
=>
clk_pll_dmtd
,
...
@@ -437,6 +479,7 @@ begin -- architecture struct
...
@@ -437,6 +479,7 @@ begin -- architecture struct
g_streamers_op_mode
=>
g_streamers_op_mode
,
g_streamers_op_mode
=>
g_streamers_op_mode
,
g_tx_streamer_params
=>
g_tx_streamer_params
,
g_tx_streamer_params
=>
g_tx_streamer_params
,
g_rx_streamer_params
=>
g_rx_streamer_params
,
g_rx_streamer_params
=>
g_rx_streamer_params
,
g_sfp_i2c_mux_enable
=>
g_gtp_mux_enable
,
g_fabric_iface
=>
g_fabric_iface
g_fabric_iface
=>
g_fabric_iface
)
)
port
map
(
port
map
(
...
@@ -461,11 +504,21 @@ begin -- architecture struct
...
@@ -461,11 +504,21 @@ begin -- architecture struct
scl_i
=>
eeprom_scl_i
,
scl_i
=>
eeprom_scl_i
,
sda_o
=>
eeprom_sda_o
,
sda_o
=>
eeprom_sda_o
,
sda_i
=>
eeprom_sda_i
,
sda_i
=>
eeprom_sda_i
,
sfp_scl_o
=>
sfp_scl_o
,
sfp_scl_o
=>
sfp_scl_o
,
sfp_scl_i
=>
sfp_scl_i
,
sfp_scl_i
=>
sfp_scl_i
,
sfp_sda_o
=>
sfp_sda_o
,
sfp_sda_o
=>
sfp_sda_o
,
sfp_sda_i
=>
sfp_sda_i
,
sfp_sda_i
=>
sfp_sda_i
,
sfp_det_i
=>
sfp_det_i
,
sfp_det_i
=>
sfp_det_i
,
sfp_mux_sel_i
=>
sfp_mux_sel_i
,
sfp1_scl_o
=>
sfp1_scl_o
,
sfp1_scl_i
=>
sfp1_scl_i
,
sfp1_sda_o
=>
sfp1_sda_o
,
sfp1_sda_i
=>
sfp1_sda_i
,
sfp1_det_i
=>
sfp1_det_i
,
spi_sclk_o
=>
flash_sclk_o
,
spi_sclk_o
=>
flash_sclk_o
,
spi_ncs_o
=>
flash_ncs_o
,
spi_ncs_o
=>
flash_ncs_o
,
spi_mosi_o
=>
flash_mosi_o
,
spi_mosi_o
=>
flash_mosi_o
,
...
@@ -522,7 +575,8 @@ begin -- architecture struct
...
@@ -522,7 +575,8 @@ begin -- architecture struct
pps_led_o
=>
pps_led_o
,
pps_led_o
=>
pps_led_o
,
link_ok_o
=>
link_ok_o
);
link_ok_o
=>
link_ok_o
);
sfp_rate_select_o
<=
'1'
;
sfp_rate_select_o
<=
'1'
;
sfp1_rate_select_o
<=
'1'
;
onewire_oen_o
<=
onewire_en
(
0
);
onewire_oen_o
<=
onewire_en
(
0
);
onewire_in
(
0
)
<=
onewire_i
;
onewire_in
(
0
)
<=
onewire_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