From d7ac4b2fecd78200d5e7297bf785e6f1206a4448 Mon Sep 17 00:00:00 2001 From: Priest <priest> Date: Mon, 24 Oct 2016 07:42:31 +0000 Subject: [PATCH] Added entities dp_bsn_monitor and diag_data_buffer and changed unb1_ctrl accordingly --- .../src/vhdl/compaan_io_test_bn.vhd | 157 +++++++++++++----- 1 file changed, 115 insertions(+), 42 deletions(-) diff --git a/applications/compaan/designs/compaan_io_test_bn/src/vhdl/compaan_io_test_bn.vhd b/applications/compaan/designs/compaan_io_test_bn/src/vhdl/compaan_io_test_bn.vhd index a0aa35404d..5fda8e52ec 100644 --- a/applications/compaan/designs/compaan_io_test_bn/src/vhdl/compaan_io_test_bn.vhd +++ b/applications/compaan/designs/compaan_io_test_bn/src/vhdl/compaan_io_test_bn.vhd @@ -23,22 +23,16 @@ -- Purpose: -- . Test Compaan's capability of inter-FPGA communication -LIBRARY IEEE, common_lib, unb1_board_lib, dp_lib, eth_lib, tech_tse_lib, diag_lib, tr_10GbE_lib, technology_lib; +LIBRARY IEEE, common_lib, unb1_board_lib, dp_lib, diag_lib, technology_lib; use IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_str_pkg.ALL; USE common_lib.common_mem_pkg.ALL; -USE common_lib.common_network_layers_pkg.ALL; -USE common_lib.common_interface_layers_pkg.ALL; USE unb1_board_lib.unb1_board_pkg.ALL; USE unb1_board_lib.unb1_board_peripherals_pkg.ALL; USE dp_lib.dp_stream_pkg.ALL; -USE tech_tse_lib.tech_tse_pkg.ALL; -USE eth_lib.eth_pkg.ALL; -USE common_lib.common_network_layers_pkg.ALL; USE diag_lib.diag_pkg.ALL; -USE common_lib.common_field_pkg.ALL; USE technology_lib.technology_pkg.ALL; ENTITY compaan_io_test_bn IS @@ -100,6 +94,8 @@ ARCHITECTURE str OF compaan_io_test_bn IS -- General CONSTANT c_fw_version : t_unb1_board_fw_version := (1, 0); CONSTANT c_block_size : NATURAL := 8; + CONSTANT c_gap_size : NATURAL := 3000; + CONSTANT c_nof_blocks_per_sync : NATURAL := 200000; CONSTANT c_use_1GbE : BOOLEAN := TRUE; CONSTANT c_use_phy : t_c_unb1_board_use_phy := (sel_a_b(g_sim, 0, 1), 0, 0, 0, 0, 0, 0, 1); -- Terminal @@ -122,7 +118,10 @@ ARCHITECTURE str OF compaan_io_test_bn IS CONSTANT c_term_rx_fifo_size : NATURAL := c_bram_m9k_fifo_depth; CONSTANT c_term_rx_fifo_fill : NATURAL := 0; CONSTANT c_term_rx_timeout_w : NATURAL := 0; - + + -- BSN Monitor + CONSTANT c_nof_bsn_mon_streams : NATURAL := 2; + CONSTANT c_bsn_mon_timeout : NATURAL := (c_block_size+c_gap_size)*c_nof_blocks_per_sync*10/8; ----------------------------------------------------------------------------- -- SIGNALS ----------------------------------------------------------------------------- @@ -164,6 +163,10 @@ ARCHITECTURE str OF compaan_io_test_bn IS SIGNAL TEST_FIFO_FULL : STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL TEST_BLOCK_RD : STD_LOGIC_VECTOR(2 DOWNTO 0); + -- BSN monitor + SIGNAL bsn_monitor_snk_in_arr : t_dp_sosi_arr(c_nof_bsn_mon_streams-1 DOWNTO 0); + SIGNAL bsn_monitor_snk_out_arr : t_dp_siso_arr(c_nof_bsn_mon_streams-1 DOWNTO 0) := (OTHERS=> c_dp_siso_rdy); + -- MM interface -- . Terminal SIGNAL reg_tr_nonbonded_mosi : t_mem_mosi; @@ -172,7 +175,15 @@ ARCHITECTURE str OF compaan_io_test_bn IS SIGNAL reg_diagnostics_miso : t_mem_miso; -- . Compaan SIGNAL reg_compaan_mosi : t_mem_mosi; - SIGNAL reg_compaan_miso : t_mem_miso; + SIGNAL reg_compaan_miso : t_mem_miso; + -- . Databuffer + SIGNAL ram_diag_data_buffer_mosi : t_mem_mosi; + SIGNAL ram_diag_data_buffer_miso : t_mem_miso; + SIGNAL reg_diag_data_buffer_mosi : t_mem_mosi; + SIGNAL reg_diag_data_buffer_miso : t_mem_miso; + -- . BSN Monitor + SIGNAL reg_bsn_monitor_mosi : t_mem_mosi; + SIGNAL reg_bsn_monitor_miso : t_mem_miso; -- . UNB1 Cntrl SIGNAL reg_wdi_mosi : t_mem_mosi; SIGNAL reg_wdi_miso : t_mem_miso; @@ -288,7 +299,8 @@ BEGIN ----------------------------------------------------------------------------- u_compaan_design: ENTITY work.compaan_wrapper GENERIC MAP( - g_blocks_per_sync => c_block_size + g_blocks_per_sync => c_nof_blocks_per_sync, + g_blocksize => c_block_size ) PORT MAP( -- Streaming sink @@ -323,6 +335,61 @@ BEGIN END GENERATE; END GENERATE; + ----------------------------------------------------------------------------- + -- Databuffer + ----------------------------------------------------------------------------- + u_diag_data_buffer : ENTITY diag_lib.mms_diag_data_buffer + GENERIC MAP ( + g_nof_streams => c_nof_streams, + g_data_w => c_term_data_w, + g_buf_nof_data => 1024, + g_buf_use_sync => FALSE + ) + PORT MAP ( + mm_rst => mm_rst, + mm_clk => mm_clk, + dp_rst => dp_rst, + dp_clk => dp_clk, + + ram_data_buf_mosi => ram_diag_data_buffer_mosi, + ram_data_buf_miso => ram_diag_data_buffer_miso, + reg_data_buf_mosi => reg_diag_data_buffer_mosi, + reg_data_buf_miso => reg_diag_data_buffer_miso, + + in_sync => compaan_snk_in_arr(3).sync, + in_sosi_arr => compaan_snk_in_arr(3 DOWNTO 3) + ); + + ----------------------------------------------------------------------------- + -- BSN monitor + ----------------------------------------------------------------------------- + u_dp_bsn_monitor: ENTITY dp_lib.mms_dp_bsn_monitor + GENERIC MAP ( + g_nof_streams => c_nof_bsn_mon_streams, + g_cross_clock_domain => TRUE, + g_sync_timeout => c_bsn_mon_timeout, + g_cnt_sop_w => ceil_log2(c_nof_blocks_per_sync+1), + g_cnt_valid_w => ceil_log2(c_nof_blocks_per_sync*c_block_size+1), + g_log_first_bsn => TRUE + ) + PORT MAP ( + mm_rst => mm_rst, + mm_clk => mm_clk, + reg_mosi => reg_bsn_monitor_mosi, + reg_miso => reg_bsn_monitor_miso, + + dp_rst => dp_rst, + dp_clk => dp_clk, + in_siso_arr => bsn_monitor_snk_out_arr, + in_sosi_arr => bsn_monitor_snk_in_arr + ); + + bsn_monitor_snk_in_arr(0) <= compaan_snk_in_arr(3); + bsn_monitor_snk_out_arr(0) <= compaan_snk_out_arr(3); + + bsn_monitor_snk_in_arr(1) <= compaan_src_out_arr(3); + bsn_monitor_snk_out_arr(1) <= compaan_src_in_arr(3); + ----------------------------------------------------------------------------- -- UNB1 Control ----------------------------------------------------------------------------- @@ -357,7 +424,7 @@ BEGIN dp_rst => dp_rst, dp_clk => dp_clk, - dp_pps => OPEN, + dp_pps => dp_pps, dp_rst_in => dp_rst, dp_clk_in => dp_clk, @@ -428,37 +495,43 @@ BEGIN g_sim_node_nr => g_sim_node_nr ) PORT MAP( - mm_clk => mm_clk, - mm_rst => mm_rst, - pout_wdi => pout_wdi, - reg_wdi_mosi => reg_wdi_mosi, - reg_wdi_miso => reg_wdi_miso, - reg_unb_system_info_mosi => reg_unb_system_info_mosi, - reg_unb_system_info_miso => reg_unb_system_info_miso, - rom_unb_system_info_mosi => rom_unb_system_info_mosi, - rom_unb_system_info_miso => rom_unb_system_info_miso, - reg_unb_sens_mosi => reg_unb_sens_mosi, - reg_unb_sens_miso => reg_unb_sens_miso, - reg_ppsh_mosi => reg_ppsh_mosi, - reg_ppsh_miso => reg_ppsh_miso, - eth1g_mm_rst => eth1g_mm_rst, - eth1g_reg_interrupt => eth1g_reg_interrupt, - eth1g_ram_mosi => eth1g_ram_mosi, - eth1g_ram_miso => eth1g_ram_miso, - eth1g_reg_mosi => eth1g_reg_mosi, - eth1g_reg_miso => eth1g_reg_miso, - eth1g_tse_mosi => eth1g_tse_mosi, - eth1g_tse_miso => eth1g_tse_miso, - reg_epcs_mosi => reg_epcs_mosi, - reg_epcs_miso => reg_epcs_miso, - reg_remu_mosi => reg_remu_mosi, - reg_remu_miso => reg_remu_miso, - reg_diagnostics_mosi => reg_diagnostics_mosi, - reg_diagnostics_miso => reg_diagnostics_miso, - reg_tr_nonbonded_mosi => reg_tr_nonbonded_mosi, - reg_tr_nonbonded_miso => reg_tr_nonbonded_miso, - reg_compaan_mosi => reg_compaan_mosi, - reg_compaan_miso => reg_compaan_miso + mm_clk => mm_clk, + mm_rst => mm_rst, + pout_wdi => pout_wdi, + reg_wdi_mosi => reg_wdi_mosi, + reg_wdi_miso => reg_wdi_miso, + reg_unb_system_info_mosi => reg_unb_system_info_mosi, + reg_unb_system_info_miso => reg_unb_system_info_miso, + rom_unb_system_info_mosi => rom_unb_system_info_mosi, + rom_unb_system_info_miso => rom_unb_system_info_miso, + reg_unb_sens_mosi => reg_unb_sens_mosi, + reg_unb_sens_miso => reg_unb_sens_miso, + reg_ppsh_mosi => reg_ppsh_mosi, + reg_ppsh_miso => reg_ppsh_miso, + eth1g_mm_rst => eth1g_mm_rst, + eth1g_reg_interrupt => eth1g_reg_interrupt, + eth1g_ram_mosi => eth1g_ram_mosi, + eth1g_ram_miso => eth1g_ram_miso, + eth1g_reg_mosi => eth1g_reg_mosi, + eth1g_reg_miso => eth1g_reg_miso, + eth1g_tse_mosi => eth1g_tse_mosi, + eth1g_tse_miso => eth1g_tse_miso, + reg_epcs_mosi => reg_epcs_mosi, + reg_epcs_miso => reg_epcs_miso, + reg_remu_mosi => reg_remu_mosi, + reg_remu_miso => reg_remu_miso, + reg_diag_data_buffer_mosi => reg_diag_data_buffer_mosi, + reg_diag_data_buffer_miso => reg_diag_data_buffer_miso, + ram_diag_data_buffer_mosi => ram_diag_data_buffer_mosi, + ram_diag_data_buffer_miso => ram_diag_data_buffer_miso, + reg_bsn_monitor_mosi => reg_bsn_monitor_mosi, + reg_bsn_monitor_miso => reg_bsn_monitor_miso, + reg_diagnostics_mosi => reg_diagnostics_mosi, + reg_diagnostics_miso => reg_diagnostics_miso, + reg_tr_nonbonded_mosi => reg_tr_nonbonded_mosi, + reg_tr_nonbonded_miso => reg_tr_nonbonded_miso, + reg_compaan_mosi => reg_compaan_mosi, + reg_compaan_miso => reg_compaan_miso ); END str; \ No newline at end of file -- GitLab