From 4861454911158ebaa8ce780b890139f646893e09 Mon Sep 17 00:00:00 2001 From: Leon Hiemstra <hiemstra@astron.nl> Date: Tue, 18 Aug 2015 12:13:25 +0000 Subject: [PATCH] currently using 24x 10G on QSFP --- boards/uniboard2/designs/unb2_test/doc/README | 9 +++++ .../revisions/unb2_test_10GbE/hdllib.cfg | 2 +- .../unb2_test_10GbE/unb2_test_10GbE.vhd | 24 +++++++------- .../designs/unb2_test/src/vhdl/unb2_test.vhd | 33 ++++++++++--------- 4 files changed, 39 insertions(+), 29 deletions(-) diff --git a/boards/uniboard2/designs/unb2_test/doc/README b/boards/uniboard2/designs/unb2_test/doc/README index 06127c7872..1aacdad1e3 100644 --- a/boards/uniboard2/designs/unb2_test/doc/README +++ b/boards/uniboard2/designs/unb2_test/doc/README @@ -13,6 +13,9 @@ Generate MMM for QSYS (select one of these revisions): run_qsys unb2 unb2_test_10GbE run_qsys unb2 unb2_test_ddr run_qsys unb2 unb2_test_all + run_qsys unb2 unb2_test_ddr_MB_I + run_qsys unb2 unb2_test_ddr_MB_II + run_qsys unb2 unb2_test_ddr_MB_I_II -> From here either continue to Modelsim (simulation) or Quartus (synthesis) @@ -47,6 +50,9 @@ Quartus instructions: (select one of these revisions): run_qcomp unb2 unb2_test_1GbE run_qcomp unb2 unb2_test_ddr run_qcomp unb2 unb2_test_all + run_qcomp unb2 unb2_test_ddr_MB_I + run_qcomp unb2 unb2_test_ddr_MB_II + run_qcomp unb2 unb2_test_ddr_MB_I_II In case of needing the Quartus GUI for inspection: @@ -59,6 +65,9 @@ Convert .sof to .rbf: run_rbf unb2 unb2_test_1GbE run_rbf unb2 unb2_test_ddr run_rbf unb2 unb2_test_all + run_rbf unb2 unb2_test_ddr_MB_I + run_rbf unb2 unb2_test_ddr_MB_II + run_rbf unb2 unb2_test_ddr_MB_I_II Send to LCU capture5: diff --git a/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/hdllib.cfg b/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/hdllib.cfg index d99fc33c2f..bc61a12970 100644 --- a/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/hdllib.cfg +++ b/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/hdllib.cfg @@ -2,7 +2,7 @@ hdl_lib_name = unb2_test_10GbE hdl_library_clause_name = unb2_test_10GbE_lib hdl_lib_uses_synth = common mm technology unb2_board unb2_test hdl_lib_uses_sim = -hdl_lib_excludes = ip_arria10_ddr4_4g_1600 ip_arria10_ddr4_8g_2400 +hdl_lib_excludes = ip_arria10_ddr4_4g_1600 ip_arria10_ddr4_8g_2400 ip_arria10_ddr4_4g_2000 hdl_lib_technology = ip_arria10 diff --git a/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/unb2_test_10GbE.vhd b/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/unb2_test_10GbE.vhd index 3299958faf..dad36de790 100644 --- a/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/unb2_test_10GbE.vhd +++ b/boards/uniboard2/designs/unb2_test/revisions/unb2_test_10GbE/unb2_test_10GbE.vhd @@ -92,12 +92,12 @@ ENTITY unb2_test_10GbE IS 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); 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); - --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); - --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); - --QSFP_5_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); + 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); + 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); + 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); @@ -172,12 +172,12 @@ BEGIN QSFP_1_TX => QSFP_1_TX, QSFP_2_RX => QSFP_2_RX, QSFP_2_TX => QSFP_2_TX, - --QSFP_3_RX => QSFP_3_RX, - --QSFP_3_TX => QSFP_3_TX, - --QSFP_4_RX => QSFP_4_RX, - --QSFP_4_TX => QSFP_4_TX, - --QSFP_5_RX => QSFP_5_RX, - --QSFP_5_TX => QSFP_5_TX, + QSFP_3_RX => QSFP_3_RX, + QSFP_3_TX => QSFP_3_TX, + QSFP_4_RX => QSFP_4_RX, + QSFP_4_TX => QSFP_4_TX, + QSFP_5_RX => QSFP_5_RX, + QSFP_5_TX => QSFP_5_TX, QSFP_SDA => QSFP_SDA, QSFP_SCL => QSFP_SCL, 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 6214e70e09..716fb49cf5 100644 --- a/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd +++ b/boards/uniboard2/designs/unb2_test/src/vhdl/unb2_test.vhd @@ -109,12 +109,12 @@ ENTITY unb2_test IS 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_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); @@ -153,7 +153,7 @@ ARCHITECTURE str OF unb2_test IS CONSTANT c_use_MB_II : BOOLEAN := g_design_name="unb2_test_ddr_MB_II" OR g_design_name="unb2_test_ddr_MB_I_II" OR g_design_name="unb2_test_all"; -- transceivers - CONSTANT c_nof_qsfp : NATURAL := 12;--c_unb2_board_tr_qsfp.nof_bus * c_unb2_board_tr_qsfp.bus_w;--8 + CONSTANT c_nof_qsfp : NATURAL := c_unb2_board_tr_qsfp.nof_bus * c_unb2_board_tr_qsfp.bus_w; CONSTANT c_nof_ring : NATURAL := 0;--8;--12;--c_unb2_board_tr_ring.nof_bus * c_unb2_board_tr_ring.bus_w; CONSTANT c_nof_back0 : NATURAL := 0;--c_unb2_board_tr_back.bus_w; CONSTANT c_nof_back1 : NATURAL := c_unb2_board_tr_back.bus_w; @@ -877,16 +877,16 @@ 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(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_3_TX <= i_QSFP_TX(3); + QSFP_4_TX <= i_QSFP_TX(4); + QSFP_5_TX <= i_QSFP_TX(5); @@ -1033,7 +1033,7 @@ BEGIN gen_no_udp_stream_10GbE : IF c_use_10GbE = FALSE GENERATE u_front_io : ENTITY unb2_board_lib.unb2_board_front_io GENERIC MAP ( - g_nof_qsfp_bus => 2--c_unb2_board_tr_qsfp.nof_bus + g_nof_qsfp_bus => c_unb2_board_tr_qsfp.nof_bus ) PORT MAP ( green_led_arr => qsfp_green_led_arr, @@ -1044,7 +1044,7 @@ BEGIN GENERIC MAP ( g_sim => g_sim, g_factory_image => g_factory_image, - g_nof_qsfp => 2,--c_unb2_board_tr_qsfp.nof_bus, + g_nof_qsfp => c_unb2_board_tr_qsfp.nof_bus, g_pulse_us => 1000 / (10**9 / c_mm_clk_freq) -- nof clk cycles to get us period ) PORT MAP ( @@ -1063,6 +1063,7 @@ BEGIN ASSERT func_tech_ddr_ctlr_data_w(g_ddr_MB_I)=func_tech_ddr_ctlr_data_w(g_ddr_MB_II) REPORT "unb2_test: DDR4 MB_I and MB_II must have the same ctlr data widths" SEVERITY FAILURE; gen_stream_MB_I : IF c_use_MB_I = TRUE GENERATE + u_mms_io_ddr_diag : ENTITY io_ddr_lib.mms_io_ddr_diag GENERIC MAP ( -- System -- GitLab