From 79f760b3fa074ad572ce8fd645db1dd847380750 Mon Sep 17 00:00:00 2001 From: Leon Hiemstra <hiemstra@astron.nl> Date: Thu, 11 Jun 2015 09:15:43 +0000 Subject: [PATCH] using all 24 10GbE tranceivers (all QSFPs) --- .../designs/unb2_test/src/vhdl/unb2_test.vhd | 51 ++++++++++++------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd b/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd index 377532c13a..cab5731b9c 100644 --- a/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd +++ b/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd @@ -20,7 +20,7 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, unb2_board_lib, dp_lib, eth_lib, tr_10GbE_lib, diag_lib, technology_lib, tech_ddr_lib, reorder_lib; +LIBRARY IEEE, common_lib, unb2_board_lib, dp_lib, eth_lib, tr_10GbE_lib, diag_lib, technology_lib, tech_ddr_lib, reorder_lib, tech_clkbuf_lib; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; USE common_lib.common_pkg.ALL; @@ -98,14 +98,14 @@ ENTITY unb2_test IS QSFP_0_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); QSFP_1_RX : IN STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); QSFP_1_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); - --QSFP_2_RX : IN STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); - --QSFP_2_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); - --QSFP_3_RX : IN STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); - --QSFP_3_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); - --QSFP_4_RX : IN STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); - --QSFP_4_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); - --QSFP_5_RX : IN STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); - --QSFP_5_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); + QSFP_2_RX : IN STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); + QSFP_2_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); + QSFP_3_RX : IN STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); + QSFP_3_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); + QSFP_4_RX : IN STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); + QSFP_4_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); + QSFP_5_RX : IN STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); + QSFP_5_TX : OUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.bus_w-1 downto 0); QSFP_SDA : INOUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.i2c_w-1 downto 0); QSFP_SCL : INOUT STD_LOGIC_VECTOR(c_unb2_board_tr_qsfp.i2c_w-1 downto 0); @@ -148,7 +148,7 @@ ARCHITECTURE str OF unb2_test IS CONSTANT c_use_MB_I : NATURAL := sel_a_b(c_use_ddr,1,0); -- 1: use MB_I 0: do not use CONSTANT c_use_MB_II : NATURAL := 0; - CONSTANT c_nof_qsfp : NATURAL := 8;--c_unb2_board_tr_qsfp.nof_bus * c_unb2_board_tr_qsfp.bus_w; + CONSTANT c_nof_qsfp : NATURAL := c_unb2_board_tr_qsfp.nof_bus * c_unb2_board_tr_qsfp.bus_w; CONSTANT c_nof_ring : NATURAL := c_unb2_board_tr_ring.nof_bus * c_unb2_board_tr_ring.bus_w; CONSTANT c_nof_back0 : NATURAL := c_unb2_board_tr_back.bus_w; CONSTANT c_nof_back1 : NATURAL := c_unb2_board_tr_back.bus_w; @@ -211,6 +211,8 @@ ARCHITECTURE str OF unb2_test IS SIGNAL dp_clk : STD_LOGIC; SIGNAL dp_rst : STD_LOGIC; + SIGNAL SA_CLK_buf : STD_LOGIC; + -- PIOs SIGNAL pout_wdi : STD_LOGIC; @@ -784,6 +786,17 @@ BEGIN reg_diag_rx_seq_miso => reg_diag_rx_seq_10GbE_miso ); + + u_sa_clk_buf : ENTITY tech_clkbuf_lib.tech_clkbuf + GENERIC MAP ( + g_technology => g_technology, + g_clock_net => "GLOBAL" + ) + PORT MAP ( + inclk => SA_CLK, + outclk => SA_CLK_buf + ); + u_tr_10GbE_qsfp_and_ring: ENTITY unb2_board_lib.unb2_board_10gbe -- QSFP and Ring lines GENERIC MAP ( g_technology => g_technology, @@ -794,7 +807,7 @@ BEGIN g_tx_fifo_size => c_def_10GbE_block_size*2 ) PORT MAP ( - tr_ref_clk => SA_CLK, + tr_ref_clk => SA_CLK_buf, mm_rst => mm_rst, mm_clk => mm_clk, reg_mac_mosi => reg_tr_10GbE_qsfp_ring_mosi, @@ -819,17 +832,17 @@ BEGIN i_QSFP_RX(0) <= QSFP_0_RX; i_QSFP_RX(1) <= QSFP_1_RX; - --i_QSFP_RX(2) <= QSFP_2_RX; - --i_QSFP_RX(3) <= QSFP_3_RX; - --i_QSFP_RX(4) <= QSFP_4_RX; - --i_QSFP_RX(5) <= QSFP_5_RX; + i_QSFP_RX(2) <= QSFP_2_RX; + i_QSFP_RX(3) <= QSFP_3_RX; + i_QSFP_RX(4) <= QSFP_4_RX; + i_QSFP_RX(5) <= QSFP_5_RX; QSFP_0_TX <= i_QSFP_TX(0); QSFP_1_TX <= i_QSFP_TX(1); - --QSFP_2_TX <= i_QSFP_TX(2); - --QSFP_3_TX <= i_QSFP_TX(3); - --QSFP_4_TX <= i_QSFP_TX(4); - --QSFP_5_TX <= i_QSFP_TX(5); + QSFP_2_TX <= i_QSFP_TX(2); + QSFP_3_TX <= i_QSFP_TX(3); + QSFP_4_TX <= i_QSFP_TX(4); + QSFP_5_TX <= i_QSFP_TX(5); -- GitLab