From f248d57eb7eabff5cb746bed45af017af2f00fc8 Mon Sep 17 00:00:00 2001 From: Daniel van der Schuur <schuur@astron.nl> Date: Fri, 29 May 2015 08:54:26 +0000 Subject: [PATCH] -Stripped down the VHDL files; -Fixed paths in hdllib; -Adjusted MM width of BG in SOPC. --- .../designs/apertif_unb1_fn_bf_emu/hdllib.cfg | 4 +- .../quartus/sopc_apertif_unb1_fn_bf_emu.sopc | 78 +-- .../src/vhdl/apertif_unb1_fn_bf_emu.vhd | 494 +----------------- .../src/vhdl/mmm_apertif_unb1_fn_bf_emu.vhd | 317 +---------- .../tb/vhdl/tb_apertif_unb1_fn_bf_emu.vhd | 22 +- 5 files changed, 89 insertions(+), 826 deletions(-) diff --git a/applications/apertif/designs/apertif_unb1_fn_bf_emu/hdllib.cfg b/applications/apertif/designs/apertif_unb1_fn_bf_emu/hdllib.cfg index 202170885a..258be17c43 100644 --- a/applications/apertif/designs/apertif_unb1_fn_bf_emu/hdllib.cfg +++ b/applications/apertif/designs/apertif_unb1_fn_bf_emu/hdllib.cfg @@ -11,12 +11,12 @@ synth_top_level_entity = synth_files = $HDL_BUILD_DIR/unb1/quartus/apertif_unb1_fn_bf_emu/sopc_apertif_unb1_fn_bf_emu.vhd - ../apertif_unb1_fn_beamformer/src/vhdl/apertif_unb1_fn_bf_emu_udp_offload.vhd + ../apertif_unb1_fn_beamformer/src/vhdl/apertif_unb1_fn_beamformer_udp_offload.vhd src/vhdl/mmm_apertif_unb1_fn_bf_emu.vhd src/vhdl/apertif_unb1_fn_bf_emu.vhd test_bench_files = - tb_apertif_unb1_fn_bf_emu.vhd + tb/vhdl/tb_apertif_unb1_fn_bf_emu.vhd modelsim_copy_files = src/hex hex diff --git a/applications/apertif/designs/apertif_unb1_fn_bf_emu/quartus/sopc_apertif_unb1_fn_bf_emu.sopc b/applications/apertif/designs/apertif_unb1_fn_bf_emu/quartus/sopc_apertif_unb1_fn_bf_emu.sopc index 6e0d0a00ea..1a2e9090d8 100644 --- a/applications/apertif/designs/apertif_unb1_fn_bf_emu/quartus/sopc_apertif_unb1_fn_bf_emu.sopc +++ b/applications/apertif/designs/apertif_unb1_fn_bf_emu/quartus/sopc_apertif_unb1_fn_bf_emu.sopc @@ -92,6 +92,14 @@ type = "String"; } } + element ram_diag_bg.mem + { + datum baseAddress + { + value = "32768"; + type = "long"; + } + } element reg_mdio_2.mem { datum baseAddress @@ -100,7 +108,7 @@ type = "long"; } } - element rom_system_info.mem + element reg_wdi.mem { datum _lockedAddress { @@ -109,19 +117,11 @@ } datum baseAddress { - value = "4096"; - type = "long"; - } - } - element ram_diag_bg.mem - { - datum baseAddress - { - value = "32768"; + value = "12288"; type = "long"; } } - element pio_system_info.mem + element rom_system_info.mem { datum _lockedAddress { @@ -130,68 +130,68 @@ } datum baseAddress { - value = "0"; + value = "4096"; type = "long"; } } - element reg_wdi.mem + element reg_mdio_0.mem { - datum _lockedAddress - { - value = "1"; - type = "boolean"; - } datum baseAddress { - value = "12288"; + value = "288"; type = "long"; } } - element reg_diag_bg.mem + element reg_mdio_1.mem { datum baseAddress { - value = "256"; + value = "320"; type = "long"; } } - element pio_pps.mem + element pio_system_info.mem { + datum _lockedAddress + { + value = "1"; + type = "boolean"; + } datum baseAddress { - value = "440"; + value = "0"; type = "long"; } } - element reg_mdio_0.mem + element pio_pps.mem { datum baseAddress { - value = "288"; + value = "440"; type = "long"; } } - element reg_tr_xaui.mem + element reg_unb_sens.mem { datum baseAddress { - value = "16384"; + value = "224"; type = "long"; } } - element reg_mdio_1.mem + element reg_diag_bg.mem { datum baseAddress { - value = "320"; + value = "256"; type = "long"; } } - element reg_unb_sens.mem + element reg_tr_xaui.mem { datum baseAddress { - value = "224"; + value = "16384"; type = "long"; } } @@ -388,19 +388,19 @@ type = "long"; } } - element timer_0.s1 + element pio_debug_wave.s1 { datum baseAddress { - value = "192"; + value = "400"; type = "long"; } } - element pio_debug_wave.s1 + element timer_0.s1 { datum baseAddress { - value = "400"; + value = "192"; type = "long"; } } @@ -447,8 +447,8 @@ <parameter name="maxAdditionalLatency" value="0" /> <parameter name="projectName">apertif_unb1_fn_bf_emu.qpf</parameter> <parameter name="sopcBorderPoints" value="true" /> - <parameter name="systemHash" value="-38264576650" /> - <parameter name="timeStamp" value="1432881833399" /> + <parameter name="systemHash" value="-36816734619" /> + <parameter name="timeStamp" value="1432887284815" /> <parameter name="useTestBenchNamingPattern" value="false" /> <module kind="clock_source" version="11.1" enabled="1" name="clk_0"> <parameter name="clockFrequency" value="25000000" /> @@ -549,7 +549,7 @@ <parameter name="dcache_numTCDM" value="_0" /> <parameter name="dcache_lineSize" value="_32" /> <parameter name="dcache_bursts" value="false" /> - <parameter name="dataSlaveMapParam"><![CDATA[<address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' /><slave name='avs_eth_0.mms_reg' start='0x80' end='0xC0' /><slave name='timer_0.s1' start='0xC0' end='0xE0' /><slave name='reg_unb_sens.mem' start='0xE0' end='0x100' /><slave name='reg_diag_bg.mem' start='0x100' end='0x120' /><slave name='reg_mdio_0.mem' start='0x120' end='0x140' /><slave name='reg_mdio_1.mem' start='0x140' end='0x160' /><slave name='reg_mdio_2.mem' start='0x160' end='0x180' /><slave name='altpll_0.pll_slave' start='0x180' end='0x190' /><slave name='pio_debug_wave.s1' start='0x190' end='0x1A0' /><slave name='pio_wdi.s1' start='0x1A0' end='0x1B0' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x1B0' end='0x1B8' /><slave name='pio_pps.mem' start='0x1B8' end='0x1C0' /><slave name='rom_system_info.mem' start='0x1000' end='0x2000' /><slave name='avs_eth_0.mms_tse' start='0x2000' end='0x3000' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' /><slave name='cpu_0.jtag_debug_module' start='0x3800' end='0x4000' /><slave name='reg_tr_xaui.mem' start='0x4000' end='0x6000' /><slave name='avs_eth_0.mms_ram' start='0x6000' end='0x7000' /><slave name='ram_diag_bg.mem' start='0x8000' end='0x10000' /><slave name='reg_tr_10GbE.mem' start='0x10000' end='0x18000' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' /></address-map>]]></parameter> + <parameter name="dataSlaveMapParam"><![CDATA[<address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' /><slave name='avs_eth_0.mms_reg' start='0x80' end='0xC0' /><slave name='timer_0.s1' start='0xC0' end='0xE0' /><slave name='reg_unb_sens.mem' start='0xE0' end='0x100' /><slave name='reg_diag_bg.mem' start='0x100' end='0x120' /><slave name='reg_mdio_0.mem' start='0x120' end='0x140' /><slave name='reg_mdio_1.mem' start='0x140' end='0x160' /><slave name='reg_mdio_2.mem' start='0x160' end='0x180' /><slave name='altpll_0.pll_slave' start='0x180' end='0x190' /><slave name='pio_debug_wave.s1' start='0x190' end='0x1A0' /><slave name='pio_wdi.s1' start='0x1A0' end='0x1B0' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x1B0' end='0x1B8' /><slave name='pio_pps.mem' start='0x1B8' end='0x1C0' /><slave name='rom_system_info.mem' start='0x1000' end='0x2000' /><slave name='avs_eth_0.mms_tse' start='0x2000' end='0x3000' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' /><slave name='cpu_0.jtag_debug_module' start='0x3800' end='0x4000' /><slave name='reg_tr_xaui.mem' start='0x4000' end='0x6000' /><slave name='avs_eth_0.mms_ram' start='0x6000' end='0x7000' /><slave name='ram_diag_bg.mem' start='0x8000' end='0x9000' /><slave name='reg_tr_10GbE.mem' start='0x10000' end='0x18000' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' /></address-map>]]></parameter> <parameter name="dataAddrWidth" value="18" /> <parameter name="customInstSlavesSystemInfo" value="<info/>" /> <parameter name="cpuReset" value="false" /> @@ -833,7 +833,7 @@ q]]></parameter> <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" /> </module> <module kind="avs_common_mm" version="1.0" enabled="1" name="ram_diag_bg"> - <parameter name="g_adr_w" value="13" /> + <parameter name="g_adr_w" value="10" /> <parameter name="g_dat_w" value="32" /> <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" /> </module> diff --git a/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/apertif_unb1_fn_bf_emu.vhd b/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/apertif_unb1_fn_bf_emu.vhd index cf8f42b73c..86cc86967f 100644 --- a/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/apertif_unb1_fn_bf_emu.vhd +++ b/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/apertif_unb1_fn_bf_emu.vhd @@ -75,17 +75,6 @@ ENTITY apertif_unb1_fn_bf_emu IS -- Transceiver clocks SA_CLK : IN STD_LOGIC := '0'; -- TR clock BN-BI (tr_back) / SI_FN (tr_front) - SB_CLK : IN STD_LOGIC := '0'; -- TR clock FN-BN (tr_mesh) - - -- Mesh Serial I/O - FN_BN_0_TX : OUT STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0); - FN_BN_0_RX : IN STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0) := (OTHERS=>'0'); - FN_BN_1_TX : OUT STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0); - FN_BN_1_RX : IN STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0) := (OTHERS=>'0'); - FN_BN_2_TX : OUT STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0); - FN_BN_2_RX : IN STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0) := (OTHERS=>'0'); - FN_BN_3_TX : OUT STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0); - FN_BN_3_RX : IN STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0) := (OTHERS=>'0'); -- Front Serial I/O SI_FN_0_TX : OUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.bus_w-1 DOWNTO 0); @@ -101,25 +90,17 @@ ENTITY apertif_unb1_fn_bf_emu IS SI_FN_1_CNTRL : INOUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.cntrl_w-1 DOWNTO 0); SI_FN_2_CNTRL : INOUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.cntrl_w-1 DOWNTO 0); SI_FN_3_CNTRL : INOUT STD_LOGIC_VECTOR(c_unb1_board_ci.tr.cntrl_w-1 DOWNTO 0); - SI_FN_RSTN : OUT STD_LOGIC := '1'; -- ResetN is pulled up in the Vitesse chip, but pulled down again by external 1k resistor. + SI_FN_RSTN : OUT STD_LOGIC := '1' -- ResetN is pulled up in the Vitesse chip, but pulled down again by external 1k resistor. -- So we need to assign a '1' to it. - -- SO-DIMM Memory Bank I - MB_I_IN : IN t_tech_ddr3_phy_in; - MB_I_IO : INOUT t_tech_ddr3_phy_io; - MB_I_OU : OUT t_tech_ddr3_phy_ou ); END apertif_unb1_fn_bf_emu; ARCHITECTURE str OF apertif_unb1_fn_bf_emu IS - CONSTANT c_use_transpose : BOOLEAN := g_design_name="apertif_unb1_fn_bf_emu_trans" OR g_design_name="apertif_unb1_fn_bf_emu_tp_bg"; -- Also use DDR3 - CONSTANT c_use_bg : BOOLEAN := g_design_name="apertif_unb1_fn_bf_emu_tp_bg"; -- Also use DDR3, but no mesh terminals - CONSTANt c_use_bf : BOOLEAN := NOT(g_design_name="apertif_unb1_fn_bf_emu_tp_bg" AND g_sim); - CONSTANT c_use_phy : t_c_unb1_board_use_phy := (1, 1, sel_a_b(c_use_bg, 0, 1), 0, sel_a_b(c_use_transpose, 1, 0), 0, 0, 1); - CONSTANT c_fw_version : t_unb1_board_fw_version := (3, 8); -- firmware version x.y - CONSTANT c_tr_mesh : t_c_unb1_board_tr := c_unb1_board_tr_mesh; - CONSTANT c_dp_clk_use_pll : BOOLEAN := g_design_name="apertif_unb1_fn_bf_emu_base"; + CONSTANT c_use_phy : t_c_unb1_board_use_phy := (1, 1, 0, 0, 0, 0, 0, 1); + CONSTANT c_fw_version : t_unb1_board_fw_version := (0, 0); -- firmware version x.y + CONSTANT c_dp_clk_use_pll : BOOLEAN := TRUE; -- System SIGNAL cs_sim : STD_LOGIC; @@ -145,13 +126,6 @@ ARCHITECTURE str OF apertif_unb1_fn_bf_emu IS SIGNAL pout_debug_wave : STD_LOGIC_VECTOR(c_word_w-1 DOWNTO 0); SIGNAL pout_wdi : STD_LOGIC; - SIGNAL pin_intab : STD_LOGIC_VECTOR(c_word_w-1 DOWNTO 0) := (OTHERS=>'0'); - SIGNAL pout_intab : STD_LOGIC_VECTOR(c_word_w-1 DOWNTO 0); - - -- eth1g UDP streaming ports - SIGNAL eth1g_udp_tx_sosi_arr : t_dp_sosi_arr(c_eth_nof_udp_ports-1 DOWNTO 0); - SIGNAL eth1g_udp_tx_siso_arr : t_dp_siso_arr(c_eth_nof_udp_ports-1 DOWNTO 0); - -- Interface: 10GbE CONSTANT c_nof_10GbE_offload_streams : NATURAL := 1; CONSTANT c_pkt_len : NATURAL := 176; -- Let tr_10GbE FIFO buffer one full packet before releasing it @@ -163,57 +137,13 @@ ARCHITECTURE str OF apertif_unb1_fn_bf_emu IS SIGNAL mdio_mdc_arr : STD_LOGIC_VECTOR(c_nof_10GbE_offload_streams-1 DOWNTO 0); SIGNAL mdio_mdat_in_arr : STD_LOGIC_VECTOR(c_nof_10GbE_offload_streams-1 DOWNTO 0); SIGNAL mdio_mdat_oen_arr : STD_LOGIC_VECTOR(c_nof_10GbE_offload_streams-1 DOWNTO 0); - - SIGNAL beamlets_qua_sosi_arr : t_dp_sosi_arr(g_bf.nof_bf_units-1 DOWNTO 0); -- 8b beamlets - SIGNAL udp_offload_snk_in_arr : t_dp_sosi_arr(g_bf.nof_bf_units-1 DOWNTO 0); + SIGNAL udp_offload_snk_in_arr : t_dp_sosi_arr(g_bf.nof_bf_units-1 DOWNTO 0); --FIXME: rename these to match the ones below. SIGNAL udp_offload_snk_out_arr : t_dp_siso_arr(g_bf.nof_bf_units-1 DOWNTO 0) := (OTHERS => c_dp_siso_rdy); - - ---------------------------------------------------- - -- Constants and signals for the reorder function -- - -------------------------------------------------- - CONSTANT c_offload_dat_w : NATURAL := 8; - - CONSTANT c_use_complex : BOOLEAN := TRUE; - CONSTANT c_total_data_w : NATURAL := g_bf.nof_bf_units*c_offload_dat_w; - CONSTANT c_complex_data_w : NATURAL := c_total_data_w*c_nof_complex; - CONSTANT c_data_w : NATURAL := sel_a_b(c_use_complex, c_complex_data_w, c_total_data_w); - - CONSTANT c_wr_fifo_depth : NATURAL := 256; - CONSTANT c_rd_fifo_depth : NATURAL := 256; - CONSTANT c_ddr3_mem_w : NATURAL := 256; - CONSTANT c_ena_pre_transp : BOOLEAN := TRUE; - CONSTANT c_wr_chunksize : NATURAL := 176; --240 for 6-bit or 176 for 8-bit; --g_bf.nof_weights; - CONSTANT c_rd_chunksize : NATURAL := 16; --32; - CONSTANT c_rd_nof_chunks : NATURAL := 11; --15 for 6-bit or 11 for 8-bit - CONSTANT c_rd_interval : NATURAL := c_rd_chunksize; - CONSTANT c_gapsize : NATURAL := 0; - CONSTANT c_nof_blocks : NATURAL := sel_a_b(g_sim, 16, 800000); --800000 781250); - CONSTANT c_bsn_sync_time_out : NATURAL := c_nof_blocks * g_bf.nof_weights; - - CONSTANT c_reorder_seq_conf : t_reorder_seq := (c_wr_chunksize, - c_rd_chunksize, - c_rd_nof_chunks, - c_rd_interval, - c_gapsize, - c_nof_blocks); - - CONSTANT c_tech_ddr : t_c_tech_ddr := c_tech_ddr3_4g_800m_master; - - -- Signals to interface with the DDR conroller and memory model. - SIGNAL ctlr_dvr_miso : t_mem_ctlr_miso; - SIGNAL ctlr_dvr_mosi : t_mem_ctlr_mosi; - - SIGNAL to_mem_siso : t_dp_siso := c_dp_siso_rdy; - SIGNAL to_mem_sosi : t_dp_sosi; - SIGNAL from_mem_siso : t_dp_siso := c_dp_siso_rdy; - SIGNAL from_mem_sosi : t_dp_sosi; - + SIGNAL dp_offload_tx_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0); SIGNAL dp_offload_tx_src_in_arr : t_dp_siso_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0); - - SIGNAL bsn_in_sosi_arr : t_dp_sosi_arr(2-1 DOWNTO 0); - + ----------------------------------------------------------------------------- -- Memory Mapped interfaces ----------------------------------------------------------------------------- @@ -231,6 +161,11 @@ ARCHITECTURE str OF apertif_unb1_fn_bf_emu IS -- PPSH SIGNAL reg_ppsh_mosi : t_mem_mosi; SIGNAL reg_ppsh_miso : t_mem_miso; + -- Block gens + SIGNAL reg_diag_bg_mosi : t_mem_mosi; + SIGNAL reg_diag_bg_miso : t_mem_miso; + SIGNAL ram_diag_bg_mosi : t_mem_mosi; + SIGNAL ram_diag_bg_miso : t_mem_miso; -- . eth1g SIGNAL eth1g_tse_clk : STD_LOGIC; SIGNAL eth1g_mm_rst : STD_LOGIC; @@ -240,69 +175,14 @@ ARCHITECTURE str OF apertif_unb1_fn_bf_emu IS SIGNAL eth1g_reg_miso : t_mem_miso; SIGNAL eth1g_reg_interrupt : STD_LOGIC; SIGNAL eth1g_ram_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL eth1g_ram_miso : t_mem_miso; - -- . tr_mesh - SIGNAL tx_serial_2arr : t_unb1_board_mesh_sl_2arr; - SIGNAL rx_serial_2arr : t_unb1_board_mesh_sl_2arr; - -- . tr_nonbonded with diagnostics - SIGNAL reg_tr_nonbonded_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL reg_tr_nonbonded_miso : t_mem_miso; - SIGNAL reg_diagnostics_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL reg_diagnostics_miso : t_mem_miso; - -- . diag_data_buffer - SIGNAL ram_diag_data_buf_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL ram_diag_data_buf_miso : t_mem_miso; - SIGNAL reg_diag_data_buf_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL reg_diag_data_buf_miso : t_mem_miso; - -- . bsn_monitor - SIGNAL reg_bsn_monitor_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL reg_bsn_monitor_miso : t_mem_miso; - -- . block generator - SIGNAL reg_diag_bg_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL reg_diag_bg_miso : t_mem_miso; - SIGNAL ram_diag_bg_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL ram_diag_bg_miso : t_mem_miso; - -- . beam former - SIGNAL ram_ss_ss_wide_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL ram_ss_ss_wide_miso : t_mem_miso; - SIGNAL ram_bf_weights_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL ram_bf_weights_miso : t_mem_miso; - SIGNAL ram_st_sst_bf_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL ram_st_sst_bf_miso : t_mem_miso; - SIGNAL reg_st_sst_bf_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL reg_st_sst_bf_miso : t_mem_miso; - -- . dp_ram_from_mm for DP offload (header insertion) - SIGNAL reg_dp_ram_from_mm_mosi : t_mem_mosi; - SIGNAL reg_dp_ram_from_mm_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL ram_dp_ram_from_mm_mosi : t_mem_mosi; - SIGNAL ram_dp_ram_from_mm_miso : t_mem_miso := c_mem_miso_rst; - -- . UDP offload - SIGNAL reg_dp_split_mosi : t_mem_mosi; - SIGNAL reg_dp_split_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL reg_dp_pkt_merge_mosi : t_mem_mosi; - SIGNAL reg_dp_pkt_merge_miso : t_mem_miso := c_mem_miso_rst; + SIGNAL eth1g_ram_miso : t_mem_miso; -- . 10GbE offload - SIGNAL reg_dp_offload_tx_mosi : t_mem_mosi; - SIGNAL reg_dp_offload_tx_miso : t_mem_miso; - SIGNAL reg_dp_offload_tx_hdr_dat_mosi : t_mem_mosi; - SIGNAL reg_dp_offload_tx_hdr_dat_miso : t_mem_miso; SIGNAL reg_tr_10GbE_mosi : t_mem_mosi; SIGNAL reg_tr_10GbE_miso : t_mem_miso := c_mem_miso_rst; SIGNAL reg_tr_xaui_mosi : t_mem_mosi; SIGNAL reg_tr_xaui_miso : t_mem_miso := c_mem_miso_rst; SIGNAL reg_mdio_mosi_arr : t_mem_mosi_arr(c_unb1_board_nof_mdio-1 DOWNTO 0); - SIGNAL reg_mdio_miso_arr : t_mem_miso_arr(c_unb1_board_nof_mdio-1 DOWNTO 0); - -- . Pre-transpose - SIGNAL ram_ss_ss_transp_mosi : t_mem_mosi; - SIGNAL ram_ss_ss_transp_miso : t_mem_miso; - -- . DDR register map - SIGNAL reg_io_ddr_mosi : t_mem_mosi; - SIGNAL reg_io_ddr_miso : t_mem_miso; - -- . bsn_monitor - SIGNAL reg_bsn_monitor_output_mosi : t_mem_mosi := c_mem_mosi_rst; - SIGNAL reg_bsn_monitor_output_miso : t_mem_miso; - - + SIGNAL reg_mdio_miso_arr : t_mem_miso_arr(c_unb1_board_nof_mdio-1 DOWNTO 0); BEGIN @@ -379,10 +259,6 @@ BEGIN eth1g_ram_mosi => eth1g_ram_mosi, eth1g_ram_miso => eth1g_ram_miso, - -- eth1g UDP streaming ports to offload BF out - udp_tx_sosi_arr => eth1g_udp_tx_sosi_arr, - udp_tx_siso_arr => eth1g_udp_tx_siso_arr, - -- FPGA pins -- . General CLK => CLK, @@ -403,233 +279,6 @@ BEGIN ETH_SGOUT => ETH_SGOUT ); - ----------------------------------------------------------------------------- - -- Node function - ----------------------------------------------------------------------------- - u_node_fn_bf_emu : ENTITY work.node_apertif_unb1_fn_bf_emu - GENERIC MAP( - g_sim => g_sim, - g_use_block_gen => c_use_bg, -- TRUE overrides terminal output and feeds BG output to the BF instead. - g_use_bf => c_use_bf - ) - PORT MAP( - -- System - mm_rst => mm_rst, - mm_clk => mm_clk, - dp_rst => dp_rst, - dp_clk => dp_clk, - dp_pps => dp_pps, - tr_mesh_clk => SB_CLK, - cal_clk => cal_rec_clk, - - chip_id => this_chip_id, - - -- MM interface - -- . block generator - reg_diag_bg_mosi => reg_diag_bg_mosi, - reg_diag_bg_miso => reg_diag_bg_miso, - ram_diag_bg_mosi => ram_diag_bg_mosi, - ram_diag_bg_miso => ram_diag_bg_miso, - -- . beam former - ram_ss_ss_wide_mosi => ram_ss_ss_wide_mosi, - ram_ss_ss_wide_miso => ram_ss_ss_wide_miso, - ram_bf_weights_mosi => ram_bf_weights_mosi, - ram_bf_weights_miso => ram_bf_weights_miso, - ram_st_sst_bf_mosi => ram_st_sst_bf_mosi, - ram_st_sst_bf_miso => ram_st_sst_bf_miso, - reg_st_sst_bf_mosi => reg_st_sst_bf_mosi, - reg_st_sst_bf_miso => reg_st_sst_bf_miso, - - -- . hdr_insert for dp offload - reg_hdr_insert_mosi => reg_dp_ram_from_mm_mosi, - ram_hdr_insert_mosi => ram_dp_ram_from_mm_mosi, - -- . dp_split for dp offload - reg_dp_split_mosi => reg_dp_split_mosi, - reg_dp_split_miso => reg_dp_split_miso, - reg_dp_pkt_merge_mosi => reg_dp_pkt_merge_mosi, - reg_dp_pkt_merge_miso => reg_dp_pkt_merge_miso, - - -- . tr_nonbonded - reg_tr_nonbonded_mosi => reg_tr_nonbonded_mosi, - reg_tr_nonbonded_miso => reg_tr_nonbonded_miso, - reg_diagnostics_mosi => reg_diagnostics_mosi, - reg_diagnostics_miso => reg_diagnostics_miso, - -- . diag_data_buffer - ram_diag_data_buf_mosi => ram_diag_data_buf_mosi, - ram_diag_data_buf_miso => ram_diag_data_buf_miso, - reg_diag_data_buf_mosi => reg_diag_data_buf_mosi, - reg_diag_data_buf_miso => reg_diag_data_buf_miso, - -- . bsn_monitor - reg_bsn_monitor_mosi => reg_bsn_monitor_mosi, - reg_bsn_monitor_miso => reg_bsn_monitor_miso, - - -- ST interface, BF beamlets out - beamlets_bst_sosi_arr => OPEN, -- 16b beamlets; for 1GbE a selection can be offloaded via bf_out_offload_tx_sosi_arr. - beamlets_qua_sosi_arr => beamlets_qua_sosi_arr, -- 8b beamlets; for 10GbE offload - - -- 1GbE offload - bf_out_offload_tx_sosi_arr => eth1g_udp_tx_sosi_arr, - bf_out_offload_tx_siso_arr => eth1g_udp_tx_siso_arr, - - -- Mesh interface - tx_serial_2arr => tx_serial_2arr, - rx_serial_2arr => rx_serial_2arr - ); - - gen_no_transpose : IF c_use_transpose = FALSE GENERATE - dp_rst <= ctrl_dp_rst; - dp_clk <= ctrl_dp_clk; - udp_offload_snk_in_arr <= beamlets_qua_sosi_arr; - END GENERATE; - - gen_transpose : IF c_use_transpose = TRUE GENERATE - ---------------------------------------------------------------------------- - -- Transpose function - ---------------------------------------------------------------------------- - u_transpose: ENTITY reorder_lib.reorder_transpose - GENERIC MAP( - g_nof_streams => g_bf.nof_bf_units, - g_in_dat_w => c_offload_dat_w, - g_frame_size_in => g_bf.nof_weights, -- 256 - g_frame_size_out => c_pkt_len, -- 176 - g_use_complex => c_use_complex, - g_mem_dat_w => c_ddr3_mem_w, - g_ena_pre_transp => c_ena_pre_transp, - g_reorder_seq => c_reorder_seq_conf - ) - PORT MAP ( - mm_rst => mm_rst, - mm_clk => mm_clk, - - dp_rst => dp_rst, - dp_clk => dp_clk, - - -- ST sink - snk_out_arr => OPEN, - snk_in_arr => beamlets_qua_sosi_arr, - - -- ST source - src_in_arr => udp_offload_snk_out_arr, - src_out_arr => udp_offload_snk_in_arr, - - ram_ss_ss_transp_mosi => ram_ss_ss_transp_mosi, - ram_ss_ss_transp_miso => ram_ss_ss_transp_miso, - - -- Control interface to the external memory - dvr_miso => ctlr_dvr_miso, - dvr_mosi => ctlr_dvr_mosi, - - -- Data interface to the external memory - to_mem_src_out => to_mem_sosi, - to_mem_src_in => to_mem_siso, - - from_mem_snk_in => from_mem_sosi, - from_mem_snk_out => from_mem_siso - ); - - u_areset_ddr_ref_rst : ENTITY common_lib.common_areset - GENERIC MAP( - g_rst_level => '1', - g_delay_len => 40 - ) - PORT MAP( - clk => CLK, - in_rst => '0', - out_rst => ddr_ref_rst - ); - - u_ddr_mem_ctrl : ENTITY io_ddr_lib.io_ddr - GENERIC MAP( - g_sim_model => g_sim_model, - g_technology => c_tech_select_default, - g_tech_ddr => c_tech_ddr, - g_cross_domain_dvr_ctlr => FALSE, - g_wr_data_w => c_data_w, - g_wr_fifo_depth => c_wr_fifo_depth, - g_rd_fifo_depth => c_rd_fifo_depth, - g_rd_data_w => c_data_w, - g_wr_flush_mode => "SYN", - g_wr_flush_use_channel => FALSE, - g_wr_flush_start_channel => 0, - g_wr_flush_nof_channels => 1 - ) - PORT MAP ( - -- DDR reference clock - ctlr_ref_clk => CLK, - ctlr_ref_rst => ddr_ref_rst, - - -- DDR controller clock domain - ctlr_clk_out => dp_clk, - ctlr_rst_out => dp_rst, - - ctlr_clk_in => dp_clk, - ctlr_rst_in => dp_rst, - - -- MM clock + reset - mm_rst => mm_rst, - mm_clk => mm_clk, - - -- MM register map for DDR controller status info - reg_io_ddr_mosi => reg_io_ddr_mosi, - reg_io_ddr_miso => reg_io_ddr_miso, - - -- Driver clock domain - dvr_clk => dp_clk, - dvr_rst => dp_rst, - - dvr_miso => ctlr_dvr_miso, - dvr_mosi => ctlr_dvr_mosi, - - -- Write FIFO clock domain - wr_clk => dp_clk, - wr_rst => dp_rst, - - wr_fifo_usedw => OPEN, - wr_sosi => to_mem_sosi, - wr_siso => to_mem_siso, - - -- Read FIFO clock domain - rd_clk => dp_clk, - rd_rst => dp_rst, - - rd_fifo_usedw => OPEN, - rd_sosi => from_mem_sosi, - rd_siso => from_mem_siso, - - phy3_in => MB_I_IN, - phy3_io => MB_I_IO, - phy3_ou => MB_I_OU - ); - END GENERATE; - - ----------------------------------------------------------------------------- - -- Mesh I/O - ----------------------------------------------------------------------------- - no_tr_mesh : IF c_use_phy.tr_mesh=0 GENERATE - rx_serial_2arr <= (OTHERS=>(OTHERS=>'0')); - END GENERATE; - - gen_tr_mesh : IF c_use_phy.tr_mesh/=0 GENERATE - u_mesh_io : ENTITY unb1_board_lib.unb1_board_mesh_io - GENERIC MAP ( - g_bus_w => c_tr_mesh.bus_w - ) - PORT MAP ( - tx_serial_2arr => tx_serial_2arr, - rx_serial_2arr => rx_serial_2arr, - - -- Serial I/O - FN_BN_0_TX => FN_BN_0_TX, - FN_BN_0_RX => FN_BN_0_RX, - FN_BN_1_TX => FN_BN_1_TX, - FN_BN_1_RX => FN_BN_1_RX, - FN_BN_2_TX => FN_BN_2_TX, - FN_BN_2_RX => FN_BN_2_RX, - FN_BN_3_TX => FN_BN_3_TX, - FN_BN_3_RX => FN_BN_3_RX - ); - END GENERATE; - ----------------------------------------------------------------------------- -- Interface : 10GbE ----------------------------------------------------------------------------- @@ -725,37 +374,11 @@ BEGIN SI_FN_2_CNTRL => SI_FN_2_CNTRL, SI_FN_3_CNTRL => SI_FN_3_CNTRL ); - - u_bsn_monitor_align : ENTITY dp_lib.mms_dp_bsn_monitor - GENERIC MAP ( - g_nof_streams => 2, - g_cross_clock_domain => TRUE, - g_sync_timeout => c_bsn_sync_time_out, - g_bsn_w => c_dp_stream_bsn_w, - g_cnt_sop_w => c_word_w, - g_cnt_valid_w => c_word_w, - g_log_first_bsn => TRUE - ) - PORT MAP ( - -- Memory-mapped clock domain - mm_rst => mm_rst, - mm_clk => mm_clk, - reg_mosi => reg_bsn_monitor_output_mosi, - reg_miso => reg_bsn_monitor_output_miso, - -- Streaming clock domain - dp_rst => dp_rst, - dp_clk => dp_clk, - in_siso_arr => (OTHERS => c_dp_siso_rdy), - in_sosi_arr => bsn_in_sosi_arr(1 DOWNTO 0) - ); - bsn_in_sosi_arr(0) <= udp_offload_snk_in_arr(0); - bsn_in_sosi_arr(1) <= dp_offload_tx_src_out_arr(0); - ----------------------------------------------------------------------------- -- DP offload TX : BF out -> 10GbE ----------------------------------------------------------------------------- - u_fn_bf_emu_udp_offload : ENTITY work.apertif_unb1_fn_bf_emu_udp_offload + u_fn_beamformer_udp_offload : ENTITY work.apertif_unb1_fn_beamformer_udp_offload PORT MAP ( mm_rst => mm_rst, mm_clk => mm_clk, @@ -770,10 +393,10 @@ BEGIN ID => ID, - reg_dp_offload_tx_mosi => reg_dp_offload_tx_mosi, - reg_dp_offload_tx_miso => reg_dp_offload_tx_miso, - reg_dp_offload_tx_hdr_dat_mosi => reg_dp_offload_tx_hdr_dat_mosi, - reg_dp_offload_tx_hdr_dat_miso => reg_dp_offload_tx_hdr_dat_miso + reg_dp_offload_tx_mosi => c_mem_mosi_rst, + reg_dp_offload_tx_miso => OPEN, + reg_dp_offload_tx_hdr_dat_mosi => c_mem_mosi_rst, + reg_dp_offload_tx_hdr_dat_miso => OPEN ); u_mmm : ENTITY work.mmm_apertif_unb1_fn_bf_emu @@ -781,9 +404,7 @@ BEGIN -- General g_sim => g_sim, g_sim_unb_nr => g_sim_unb_nr, - g_sim_node_nr => g_sim_node_nr, - g_bf => g_bf, - g_reorder_seq => c_reorder_seq_conf + g_sim_node_nr => g_sim_node_nr ) PORT MAP ( xo_clk => xo_clk, @@ -813,59 +434,14 @@ BEGIN -- PPSH reg_ppsh_mosi => reg_ppsh_mosi, - reg_ppsh_miso => reg_ppsh_miso, - - -- Diagnostics - reg_diagnostics_mosi => reg_diagnostics_mosi, - reg_diagnostics_miso => reg_diagnostics_miso, - - -- . tr_nonbonded with diagnostics - reg_tr_nonbonded_mosi => reg_tr_nonbonded_mosi, - reg_tr_nonbonded_miso => reg_tr_nonbonded_miso, - - -- . diag_data_buffer - ram_diag_data_buf_mosi => ram_diag_data_buf_mosi, - ram_diag_data_buf_miso => ram_diag_data_buf_miso, - reg_diag_data_buf_mosi => reg_diag_data_buf_mosi, - reg_diag_data_buf_miso => reg_diag_data_buf_miso, - - -- . bsn_monitor - reg_bsn_monitor_mosi => reg_bsn_monitor_mosi, - reg_bsn_monitor_miso => reg_bsn_monitor_miso, - - -- . beamformer - ram_st_sst_bf_mosi => ram_st_sst_bf_mosi, - ram_st_sst_bf_miso => ram_st_sst_bf_miso, - reg_st_sst_bf_mosi => reg_st_sst_bf_mosi, - reg_st_sst_bf_miso => reg_st_sst_bf_miso, - - ram_ss_ss_wide_mosi => ram_ss_ss_wide_mosi, - ram_ss_ss_wide_miso => ram_ss_ss_wide_miso, - ram_bf_weights_mosi => ram_bf_weights_mosi, - ram_bf_weights_miso => ram_bf_weights_miso, - - reg_diag_bg_mosi => reg_diag_bg_mosi, - reg_diag_bg_miso => reg_diag_bg_miso, - ram_diag_bg_mosi => ram_diag_bg_mosi, - ram_diag_bg_miso => ram_diag_bg_miso, - - -- . dp_ram_from_mm for DP offload (header insertion) - reg_dp_ram_from_mm_mosi => reg_dp_ram_from_mm_mosi, - reg_dp_ram_from_mm_miso => reg_dp_ram_from_mm_miso, - ram_dp_ram_from_mm_mosi => ram_dp_ram_from_mm_mosi, - ram_dp_ram_from_mm_miso => ram_dp_ram_from_mm_miso, - - -- . UDP offload - reg_dp_split_mosi => reg_dp_split_mosi, - reg_dp_split_miso => reg_dp_split_miso, - reg_dp_pkt_merge_mosi => reg_dp_pkt_merge_mosi, - reg_dp_pkt_merge_miso => reg_dp_pkt_merge_miso, - - -- . 10GbE offload - reg_dp_offload_tx_mosi => reg_dp_offload_tx_mosi, - reg_dp_offload_tx_miso => reg_dp_offload_tx_miso, - reg_dp_offload_tx_hdr_dat_mosi => reg_dp_offload_tx_hdr_dat_mosi, - reg_dp_offload_tx_hdr_dat_miso => reg_dp_offload_tx_hdr_dat_miso, + reg_ppsh_miso => reg_ppsh_miso, + + + -- Block gens + ram_diag_bg_mosi => ram_diag_bg_mosi, + ram_diag_bg_miso => ram_diag_bg_miso, + reg_diag_bg_mosi => reg_diag_bg_mosi, + reg_diag_bg_miso => reg_diag_bg_miso, reg_tr_10GbE_mosi => reg_tr_10GbE_mosi, reg_tr_10GbE_miso => reg_tr_10GbE_miso, @@ -875,19 +451,7 @@ BEGIN reg_tr_xaui_mosi => reg_tr_xaui_mosi, reg_tr_xaui_miso => reg_tr_xaui_miso, - - -- . Pre-transpose - ram_ss_ss_transp_mosi => ram_ss_ss_transp_mosi, - ram_ss_ss_transp_miso => ram_ss_ss_transp_miso, - - -- . DDR register map - reg_io_ddr_mosi => reg_io_ddr_mosi, - reg_io_ddr_miso => reg_io_ddr_miso, - - -- . bsn_monitor_output - reg_bsn_monitor_output_mosi => reg_bsn_monitor_output_mosi, - reg_bsn_monitor_output_miso => reg_bsn_monitor_output_miso, - + -- eth1g eth1g_tse_clk => eth1g_tse_clk, eth1g_mm_rst => eth1g_mm_rst, diff --git a/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/mmm_apertif_unb1_fn_bf_emu.vhd b/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/mmm_apertif_unb1_fn_bf_emu.vhd index f2146b6ba2..fd038163df 100644 --- a/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/mmm_apertif_unb1_fn_bf_emu.vhd +++ b/applications/apertif/designs/apertif_unb1_fn_bf_emu/src/vhdl/mmm_apertif_unb1_fn_bf_emu.vhd @@ -1,6 +1,6 @@ ------------------------------------------------------------------------------ -- --- Copyright (C) 2013 +-- Copyright (C) 2015 -- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> -- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -- @@ -48,9 +48,7 @@ ENTITY mmm_apertif_unb1_fn_bf_emu IS g_sim : BOOLEAN := FALSE; --FALSE: use SOPC; TRUE: use mm_file I/O g_sim_unb_nr : NATURAL := 0; g_sim_node_nr : NATURAL := 0; - g_tech_select : INTEGER := c_tech_select_default; - g_bf : t_c_bf := c_bf; - g_reorder_seq : t_reorder_seq := c_reorder_seq + g_tech_select : INTEGER := c_tech_select_default ); PORT ( xo_clk : IN STD_LOGIC; @@ -82,57 +80,13 @@ ENTITY mmm_apertif_unb1_fn_bf_emu IS reg_ppsh_mosi : OUT t_mem_mosi; reg_ppsh_miso : IN t_mem_miso; - -- Diagnostics - reg_diagnostics_mosi : OUT t_mem_mosi; - reg_diagnostics_miso : IN t_mem_miso; - - -- . tr_nonbonded with diagnostics - reg_tr_nonbonded_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - reg_tr_nonbonded_miso : IN t_mem_miso; - - -- . diag_data_buffer - ram_diag_data_buf_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - ram_diag_data_buf_miso : IN t_mem_miso; - reg_diag_data_buf_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - reg_diag_data_buf_miso : IN t_mem_miso; - - -- . bsn_monitor - reg_bsn_monitor_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - reg_bsn_monitor_miso : IN t_mem_miso; - - -- . beamformer - ram_st_sst_bf_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - ram_st_sst_bf_miso : IN t_mem_miso; - reg_st_sst_bf_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - reg_st_sst_bf_miso : IN t_mem_miso; - - ram_ss_ss_wide_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - ram_ss_ss_wide_miso : IN t_mem_miso; - ram_bf_weights_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - ram_bf_weights_miso : IN t_mem_miso; - - reg_diag_bg_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - reg_diag_bg_miso : IN t_mem_miso; - ram_diag_bg_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - ram_diag_bg_miso : IN t_mem_miso; - - -- . dp_ram_from_mm for DP offload (header insertion) - reg_dp_ram_from_mm_mosi : OUT t_mem_mosi; - reg_dp_ram_from_mm_miso : IN t_mem_miso := c_mem_miso_rst; - ram_dp_ram_from_mm_mosi : OUT t_mem_mosi; - ram_dp_ram_from_mm_miso : IN t_mem_miso := c_mem_miso_rst; - - -- . UDP offload - reg_dp_split_mosi : OUT t_mem_mosi; - reg_dp_split_miso : IN t_mem_miso := c_mem_miso_rst; - reg_dp_pkt_merge_mosi : OUT t_mem_mosi; - reg_dp_pkt_merge_miso : IN t_mem_miso := c_mem_miso_rst; + -- Block gens + ram_diag_bg_mosi : OUT t_mem_mosi; + ram_diag_bg_miso : IN t_mem_miso; + reg_diag_bg_mosi : OUT t_mem_mosi; + reg_diag_bg_miso : IN t_mem_miso; -- . 10GbE offload - reg_dp_offload_tx_mosi : OUT t_mem_mosi; - reg_dp_offload_tx_miso : IN t_mem_miso; - reg_dp_offload_tx_hdr_dat_mosi : OUT t_mem_mosi; - reg_dp_offload_tx_hdr_dat_miso : IN t_mem_miso; reg_tr_10GbE_mosi : OUT t_mem_mosi; reg_tr_10GbE_miso : IN t_mem_miso; @@ -142,17 +96,6 @@ ENTITY mmm_apertif_unb1_fn_bf_emu IS reg_tr_xaui_mosi : OUT t_mem_mosi; reg_tr_xaui_miso : IN t_mem_miso := c_mem_miso_rst; - ram_ss_ss_transp_mosi : OUT t_mem_mosi; - ram_ss_ss_transp_miso : IN t_mem_miso := c_mem_miso_rst; - - -- IO DDR register map - reg_io_ddr_mosi : OUT t_mem_mosi; - reg_io_ddr_miso : IN t_mem_miso := c_mem_miso_rst; - - -- . bsn_monitor_output - reg_bsn_monitor_output_mosi : OUT t_mem_mosi := c_mem_mosi_rst; - reg_bsn_monitor_output_miso : IN t_mem_miso; - -- eth1g eth1g_tse_clk : OUT STD_LOGIC; eth1g_mm_rst : OUT STD_LOGIC; @@ -170,33 +113,13 @@ END mmm_apertif_unb1_fn_bf_emu; ARCHITECTURE str OF mmm_apertif_unb1_fn_bf_emu IS - -- Custom register widths - CONSTANT c_bg_diag_wave_period : POSITIVE := 4; - CONSTANT c_ram_st_sst_bf_addr_w : NATURAL := ceil_log2(c_bf_max_nof_bf_units*g_bf.stat_data_sz*g_bf.nof_weights*c_nof_complex); - CONSTANT c_reg_st_sst_bf_addr_w : NATURAL := ceil_log2(c_bf_max_nof_bf_units)*2; - CONSTANT c_ram_ss_ss_wide_addr_w : NATURAL := ceil_log2(c_bf_max_nof_bf_units*g_bf.nof_weights*g_bf.nof_signal_paths); - CONSTANT c_ram_bf_weights_addr_w : NATURAL := ceil_log2(c_bf_max_nof_bf_units*g_bf.nof_signal_paths*g_bf.nof_weights); - CONSTANT c_ram_diag_bg_addr_w : NATURAL := ceil_log2(c_bg_diag_wave_period) + ceil_log2(g_bf.nof_subbands*g_bf.nof_signal_paths/g_bf.nof_input_streams)+ceil_log2(g_bf.nof_input_streams); - CONSTANT c_dp_ram_mm_nof_words : NATURAL := c_network_total_header_32b_nof_words * (c_tech_tse_data_w/c_word_w); - CONSTANT c_dp_ram_mm_adr_w : NATURAL := ceil_log2(g_bf.nof_bf_units * pow2(ceil_log2(c_dp_ram_mm_nof_words))); - CONSTANT c_reg_bsn_monitor_output_adr_w : NATURAL := 5; - - CONSTANT c_ram_ss_ss_transp_addr_w : NATURAL := ceil_log2(g_reorder_seq.rd_chunksize*g_bf.nof_weights*2); - CONSTANT c_mm_reg_io_ddr_addr_w : NATURAL := ceil_log2(16); + -- Block generators + -- . 4 instances, one for each BF unit. + -- . Block size/instance: 256 beamlets + -- . Data width: 16b complex (2*8b). + CONSTANT c_ram_diag_bg_addr_w : NATURAL := ceil_log2(4*256); - CONSTANT c_dp_reg_mm_nof_words : NATURAL := 1; - CONSTANT c_dp_reg_mm_adr_w : NATURAL := ceil_log2(g_bf.nof_bf_units * pow2(ceil_log2(c_dp_reg_mm_nof_words))); - CONSTANT c_reg_dp_split_nof_words : NATURAL := 1; - CONSTANT c_reg_dp_split_adr_w : NATURAL := ceil_log2(g_bf.nof_bf_units * pow2(ceil_log2(c_reg_dp_split_nof_words))); - CONSTANT c_reg_dp_pkt_merge_nof_words : NATURAL := 1; - CONSTANT c_reg_dp_pkt_merge_adr_w : NATURAL := ceil_log2(c_eth_nof_udp_ports * pow2(ceil_log2(c_reg_dp_pkt_merge_nof_words))); - -- 10GbE offload - CONSTANT c_reg_dp_offload_tx_adr_w : NATURAL := 1; - CONSTANT c_reg_dp_offload_tx_hdr_dat_nof_words : NATURAL := field_nof_words(c_apertif_udp_offload_hdr_field_arr, c_word_w); -- = 26 32b words - CONSTANT c_reg_dp_offload_tx_hdr_dat_adr_w : NATURAL := ceil_log2(c_reg_dp_offload_tx_hdr_dat_nof_words); -- = 5 - CONSTANT c_reg_dp_offload_tx_hdr_ovr_nof_words : NATURAL := c_apertif_udp_offload_hdr_field_arr'LENGTH; -- = 23 override bits; one for each field; each bit in its own 32b register. - CONSTANT c_reg_dp_offload_tx_hdr_ovr_adr_w : NATURAL := ceil_log2(c_reg_dp_offload_tx_hdr_ovr_nof_words); -- = 5 CONSTANT c_reg_tr_10GbE_adr_w : NATURAL := func_tech_mac_10g_csr_addr_w(g_tech_select); CONSTANT c_xaui_mosi_addr_w : NATURAL := 9; --2^9 = range of 512 addresses CONSTANT c_max_nof_xaui_inst : NATURAL := 4; @@ -283,63 +206,15 @@ BEGIN u_mm_file_reg_ppsh : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_PPS") PORT MAP(mm_rst, i_mm_clk, reg_ppsh_mosi, reg_ppsh_miso ); - - u_mm_file_reg_diagnostics : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAGNOSTICS") - PORT MAP(mm_rst, i_mm_clk, reg_diagnostics_mosi, reg_diagnostics_miso ); - - u_mm_file_reg_tr_nonbonded : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_NONBONDED") - PORT MAP(mm_rst, i_mm_clk, reg_tr_nonbonded_mosi, reg_tr_nonbonded_miso ); - - u_mm_file_ram_diag_data_buf : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_DATA_BUFFER") - PORT MAP(mm_rst, i_mm_clk, ram_diag_data_buf_mosi, ram_diag_data_buf_miso); - - u_mm_file_reg_diag_data_buf : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_DATA_BUFFER") - PORT MAP(mm_rst, i_mm_clk, reg_diag_data_buf_mosi, reg_diag_data_buf_miso); - - u_mm_file_reg_bsn_monitor : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_BSN_MONITOR") - PORT MAP(mm_rst, i_mm_clk, reg_bsn_monitor_mosi, reg_bsn_monitor_miso ); - - u_mm_file_ram_st_sst_bf : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_ST_SST") - PORT MAP(mm_rst, i_mm_clk, ram_st_sst_bf_mosi, ram_st_sst_bf_miso ); - - u_mm_file_reg_st_sst_bf : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_ST_SST") - PORT MAP(mm_rst, i_mm_clk, reg_st_sst_bf_mosi, reg_st_sst_bf_miso ); - - u_mm_file_ram_ss_ss_wide : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_SS_SS_WIDE") - PORT MAP(mm_rst, i_mm_clk, ram_ss_ss_wide_mosi, ram_ss_ss_wide_miso ); - - u_mm_file_ram_bf_weights : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_BF_WEIGHTS") - PORT MAP(mm_rst, i_mm_clk, ram_bf_weights_mosi, ram_bf_weights_miso ); - + u_mm_file_reg_diag_bg : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DIAG_BG") PORT MAP(mm_rst, i_mm_clk, reg_diag_bg_mosi, reg_diag_bg_miso ); u_mm_file_ram_diag_bg : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DIAG_BG") PORT MAP(mm_rst, i_mm_clk, ram_diag_bg_mosi, ram_diag_bg_miso ); - u_mm_file_reg_dp_ram_from_mm : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_RAM_FROM_MM") - PORT MAP(mm_rst, i_mm_clk, reg_dp_ram_from_mm_mosi, reg_dp_ram_from_mm_miso ); - - u_mm_file_ram_dp_ram_from_mm : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_DP_RAM_FROM_MM") - PORT MAP(mm_rst, i_mm_clk, ram_dp_ram_from_mm_mosi, ram_dp_ram_from_mm_miso ); - - u_mm_file_reg_dp_split : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_SPLIT") - PORT MAP(mm_rst, i_mm_clk, reg_dp_split_mosi, reg_dp_split_miso ); - - u_mm_file_reg_dp_pkt_merge : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_DP_PKT_MERGE") - PORT MAP(mm_rst, i_mm_clk, reg_dp_pkt_merge_mosi, reg_dp_pkt_merge_miso ); - - u_mm_file_ram_ss_ss_transp : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "RAM_SS_SS_WIDE_TRANSP") - PORT MAP(mm_rst, i_mm_clk, ram_ss_ss_transp_mosi, ram_ss_ss_transp_miso ); - - u_mm_file_reg_io_ddr : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_IO_DDR") - PORT MAP(mm_rst, i_mm_clk, reg_io_ddr_mosi, reg_io_ddr_miso); - u_mm_file_reg_tr_xaui_mosi : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_TR_XAUI") PORT MAP(mm_rst, i_mm_clk, reg_tr_xaui_mosi, reg_tr_xaui_miso); - - u_mm_file_reg_bsn_monitor_output : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_BSN_MONITOR_OUTPUT") - PORT MAP(mm_rst, i_mm_clk, reg_bsn_monitor_output_mosi, reg_bsn_monitor_output_miso ); u_mm_file_reg_eth : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "AVS_ETH_0_MMS_REG") PORT MAP(mm_rst, i_mm_clk, i_eth1g_reg_mosi, eth1g_reg_miso ); @@ -431,61 +306,7 @@ BEGIN coe_reset_export_from_the_reg_unb_sens => OPEN, coe_write_export_from_the_reg_unb_sens => reg_unb_sens_mosi.wr, coe_writedata_export_from_the_reg_unb_sens => reg_unb_sens_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_tr_nonbonded_mesh - coe_address_export_from_the_reg_tr_nonbonded_mesh => reg_tr_nonbonded_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_tr_nonbonded_adr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_tr_nonbonded_mesh => OPEN, - coe_read_export_from_the_reg_tr_nonbonded_mesh => reg_tr_nonbonded_mosi.rd, - coe_readdata_export_to_the_reg_tr_nonbonded_mesh => reg_tr_nonbonded_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_tr_nonbonded_mesh => OPEN, - coe_write_export_from_the_reg_tr_nonbonded_mesh => reg_tr_nonbonded_mosi.wr, - coe_writedata_export_from_the_reg_tr_nonbonded_mesh => reg_tr_nonbonded_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_diagnostics_mesh - coe_address_export_from_the_reg_diagnostics_mesh => reg_diagnostics_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diagnostics_adr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_diagnostics_mesh => OPEN, - coe_read_export_from_the_reg_diagnostics_mesh => reg_diagnostics_mosi.rd, - coe_readdata_export_to_the_reg_diagnostics_mesh => reg_diagnostics_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_diagnostics_mesh => OPEN, - coe_write_export_from_the_reg_diagnostics_mesh => reg_diagnostics_mosi.wr, - coe_writedata_export_from_the_reg_diagnostics_mesh => reg_diagnostics_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_ram_diag_data_buffer - coe_address_export_from_the_ram_diag_data_buffer => ram_diag_data_buf_mosi.address(c_unb1_board_peripherals_mm_reg_default.ram_diag_db_adr_w-1 DOWNTO 0), - coe_clk_export_from_the_ram_diag_data_buffer => OPEN, - coe_read_export_from_the_ram_diag_data_buffer => ram_diag_data_buf_mosi.rd, - coe_readdata_export_to_the_ram_diag_data_buffer => ram_diag_data_buf_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_ram_diag_data_buffer => OPEN, - coe_write_export_from_the_ram_diag_data_buffer => ram_diag_data_buf_mosi.wr, - coe_writedata_export_from_the_ram_diag_data_buffer => ram_diag_data_buf_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_diag_data_buffer - coe_address_export_from_the_reg_diag_data_buffer => reg_diag_data_buf_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_db_adr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_diag_data_buffer => OPEN, - coe_read_export_from_the_reg_diag_data_buffer => reg_diag_data_buf_mosi.rd, - coe_readdata_export_to_the_reg_diag_data_buffer => reg_diag_data_buf_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_diag_data_buffer => OPEN, - coe_write_export_from_the_reg_diag_data_buffer => reg_diag_data_buf_mosi.wr, - coe_writedata_export_from_the_reg_diag_data_buffer => reg_diag_data_buf_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_bsn_monitor - coe_address_export_from_the_reg_bsn_monitor => reg_bsn_monitor_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_bsn_monitor_adr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_bsn_monitor => OPEN, - coe_read_export_from_the_reg_bsn_monitor => reg_bsn_monitor_mosi.rd, - coe_readdata_export_to_the_reg_bsn_monitor => reg_bsn_monitor_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_bsn_monitor => OPEN, - coe_write_export_from_the_reg_bsn_monitor => reg_bsn_monitor_mosi.wr, - coe_writedata_export_from_the_reg_bsn_monitor => reg_bsn_monitor_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_bsn_monitor_output - coe_address_export_from_the_reg_bsn_monitor_output => reg_bsn_monitor_output_mosi.address(c_reg_bsn_monitor_output_adr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_bsn_monitor_output => OPEN, - coe_read_export_from_the_reg_bsn_monitor_output => reg_bsn_monitor_output_mosi.rd, - coe_readdata_export_to_the_reg_bsn_monitor_output => reg_bsn_monitor_output_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_bsn_monitor_output => OPEN, - coe_write_export_from_the_reg_bsn_monitor_output => reg_bsn_monitor_output_mosi.wr, - coe_writedata_export_from_the_reg_bsn_monitor_output => reg_bsn_monitor_output_mosi.wrdata(c_word_w-1 DOWNTO 0), - + -- the_pio_debug_wave out_port_from_the_pio_debug_wave => OPEN, @@ -528,60 +349,6 @@ BEGIN coe_write_export_from_the_reg_wdi => reg_wdi_mosi.wr, coe_writedata_export_from_the_reg_wdi => reg_wdi_mosi.wrdata(c_word_w-1 DOWNTO 0), - -- the_ram_st_sst - coe_address_export_from_the_ram_st_sst => ram_st_sst_bf_mosi.address(c_ram_st_sst_bf_addr_w-1 DOWNTO 0), - coe_clk_export_from_the_ram_st_sst => OPEN, - coe_read_export_from_the_ram_st_sst => ram_st_sst_bf_mosi.rd, - coe_readdata_export_to_the_ram_st_sst => ram_st_sst_bf_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_ram_st_sst => OPEN, - coe_write_export_from_the_ram_st_sst => ram_st_sst_bf_mosi.wr, - coe_writedata_export_from_the_ram_st_sst => ram_st_sst_bf_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_st_sst - coe_address_export_from_the_reg_st_sst => reg_st_sst_bf_mosi.address(c_reg_st_sst_bf_addr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_st_sst => OPEN, - coe_read_export_from_the_reg_st_sst => reg_st_sst_bf_mosi.rd, - coe_readdata_export_to_the_reg_st_sst => reg_st_sst_bf_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_st_sst => OPEN, - coe_write_export_from_the_reg_st_sst => reg_st_sst_bf_mosi.wr, - coe_writedata_export_from_the_reg_st_sst => reg_st_sst_bf_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_ram_ss_ss_wide - coe_address_export_from_the_ram_ss_ss_wide => ram_ss_ss_wide_mosi.address(c_ram_ss_ss_wide_addr_w-1 DOWNTO 0), - coe_clk_export_from_the_ram_ss_ss_wide => OPEN, - coe_read_export_from_the_ram_ss_ss_wide => ram_ss_ss_wide_mosi.rd, - coe_readdata_export_to_the_ram_ss_ss_wide => ram_ss_ss_wide_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_ram_ss_ss_wide => OPEN, - coe_write_export_from_the_ram_ss_ss_wide => ram_ss_ss_wide_mosi.wr, - coe_writedata_export_from_the_ram_ss_ss_wide => ram_ss_ss_wide_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_ram_ss_ss_transpose - coe_address_export_from_the_ram_ss_ss_transp => ram_ss_ss_transp_mosi.address(c_ram_ss_ss_transp_addr_w-1 DOWNTO 0), - coe_clk_export_from_the_ram_ss_ss_transp => OPEN, - coe_read_export_from_the_ram_ss_ss_transp => ram_ss_ss_transp_mosi.rd, - coe_readdata_export_to_the_ram_ss_ss_transp => ram_ss_ss_transp_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_ram_ss_ss_transp => OPEN, - coe_write_export_from_the_ram_ss_ss_transp => ram_ss_ss_transp_mosi.wr, - coe_writedata_export_from_the_ram_ss_ss_transp => ram_ss_ss_transp_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_io_ddr - coe_address_export_from_the_reg_io_ddr => reg_io_ddr_mosi.address(c_mm_reg_io_ddr_addr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_io_ddr => OPEN, - coe_read_export_from_the_reg_io_ddr => reg_io_ddr_mosi.rd, - coe_readdata_export_to_the_reg_io_ddr => reg_io_ddr_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_io_ddr => OPEN, - coe_write_export_from_the_reg_io_ddr => reg_io_ddr_mosi.wr, - coe_writedata_export_from_the_reg_io_ddr => reg_io_ddr_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_ram_bf_weights - coe_address_export_from_the_ram_bf_weights => ram_bf_weights_mosi.address(c_ram_bf_weights_addr_w-1 DOWNTO 0), - coe_clk_export_from_the_ram_bf_weights => OPEN, - coe_read_export_from_the_ram_bf_weights => ram_bf_weights_mosi.rd, - coe_readdata_export_to_the_ram_bf_weights => ram_bf_weights_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_ram_bf_weights => OPEN, - coe_write_export_from_the_ram_bf_weights => ram_bf_weights_mosi.wr, - coe_writedata_export_from_the_ram_bf_weights => ram_bf_weights_mosi.wrdata(c_word_w-1 DOWNTO 0), - -- the_reg_bg_diag_bg coe_address_export_from_the_reg_diag_bg => reg_diag_bg_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_bg_adr_w-1 DOWNTO 0), coe_clk_export_from_the_reg_diag_bg => OPEN, @@ -599,61 +366,7 @@ BEGIN coe_reset_export_from_the_ram_diag_bg => OPEN, coe_write_export_from_the_ram_diag_bg => ram_diag_bg_mosi.wr, coe_writedata_export_from_the_ram_diag_bg => ram_diag_bg_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_dp_ram_from_mm - coe_clk_export_from_the_reg_dp_ram_from_mm => OPEN, - coe_reset_export_from_the_reg_dp_ram_from_mm => OPEN, - coe_address_export_from_the_reg_dp_ram_from_mm => reg_dp_ram_from_mm_mosi.address(c_dp_reg_mm_adr_w-1 DOWNTO 0), - coe_read_export_from_the_reg_dp_ram_from_mm => reg_dp_ram_from_mm_mosi.rd, - coe_readdata_export_to_the_reg_dp_ram_from_mm => reg_dp_ram_from_mm_miso.rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_reg_dp_ram_from_mm => reg_dp_ram_from_mm_mosi.wr, - coe_writedata_export_from_the_reg_dp_ram_from_mm => reg_dp_ram_from_mm_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_ram_dp_ram_from_mm - coe_clk_export_from_the_ram_dp_ram_from_mm => OPEN, - coe_reset_export_from_the_ram_dp_ram_from_mm => OPEN, - coe_address_export_from_the_ram_dp_ram_from_mm => ram_dp_ram_from_mm_mosi.address(c_dp_ram_mm_adr_w-1 DOWNTO 0), - coe_read_export_from_the_ram_dp_ram_from_mm => ram_dp_ram_from_mm_mosi.rd, - coe_readdata_export_to_the_ram_dp_ram_from_mm => ram_dp_ram_from_mm_miso.rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_ram_dp_ram_from_mm => ram_dp_ram_from_mm_mosi.wr, - coe_writedata_export_from_the_ram_dp_ram_from_mm => ram_dp_ram_from_mm_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_dp_split - coe_clk_export_from_the_reg_dp_split => OPEN, - coe_reset_export_from_the_reg_dp_split => OPEN, - coe_address_export_from_the_reg_dp_split => reg_dp_split_mosi.address(c_reg_dp_split_adr_w-1 DOWNTO 0), - coe_read_export_from_the_reg_dp_split => reg_dp_split_mosi.rd, - coe_readdata_export_to_the_reg_dp_split => reg_dp_split_miso.rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_reg_dp_split => reg_dp_split_mosi.wr, - coe_writedata_export_from_the_reg_dp_split => reg_dp_split_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_dp_pkt_merge - coe_clk_export_from_the_reg_dp_pkt_merge => OPEN, - coe_reset_export_from_the_reg_dp_pkt_merge => OPEN, - coe_address_export_from_the_reg_dp_pkt_merge => reg_dp_pkt_merge_mosi.address(c_reg_dp_pkt_merge_adr_w-1 DOWNTO 0), - coe_read_export_from_the_reg_dp_pkt_merge => reg_dp_pkt_merge_mosi.rd, - coe_readdata_export_to_the_reg_dp_pkt_merge => reg_dp_pkt_merge_miso.rddata(c_word_w-1 DOWNTO 0), - coe_write_export_from_the_reg_dp_pkt_merge => reg_dp_pkt_merge_mosi.wr, - coe_writedata_export_from_the_reg_dp_pkt_merge => reg_dp_pkt_merge_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_dp_offload_tx - coe_address_export_from_the_reg_dp_offload_tx => reg_dp_offload_tx_mosi.address(0), - coe_clk_export_from_the_reg_dp_offload_tx => OPEN, - coe_read_export_from_the_reg_dp_offload_tx => reg_dp_offload_tx_mosi.rd, - coe_readdata_export_to_the_reg_dp_offload_tx => reg_dp_offload_tx_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_dp_offload_tx => OPEN, - coe_write_export_from_the_reg_dp_offload_tx => reg_dp_offload_tx_mosi.wr, - coe_writedata_export_from_the_reg_dp_offload_tx => reg_dp_offload_tx_mosi.wrdata(c_word_w-1 DOWNTO 0), - - -- the_reg_dp_offload_tx_hdr_dat - coe_address_export_from_the_reg_dp_offload_tx_hdr_dat => reg_dp_offload_tx_hdr_dat_mosi.address(c_reg_dp_offload_tx_hdr_dat_adr_w-1 DOWNTO 0), - coe_clk_export_from_the_reg_dp_offload_tx_hdr_dat => OPEN, - coe_read_export_from_the_reg_dp_offload_tx_hdr_dat => reg_dp_offload_tx_hdr_dat_mosi.rd, - coe_readdata_export_to_the_reg_dp_offload_tx_hdr_dat => reg_dp_offload_tx_hdr_dat_miso.rddata(c_word_w-1 DOWNTO 0), - coe_reset_export_from_the_reg_dp_offload_tx_hdr_dat => OPEN, - coe_write_export_from_the_reg_dp_offload_tx_hdr_dat => reg_dp_offload_tx_hdr_dat_mosi.wr, - coe_writedata_export_from_the_reg_dp_offload_tx_hdr_dat => reg_dp_offload_tx_hdr_dat_mosi.wrdata(c_word_w-1 DOWNTO 0), - + -- the_reg_tr_10GbE coe_clk_export_from_the_reg_tr_10GbE => OPEN, coe_reset_export_from_the_reg_tr_10GbE => OPEN, diff --git a/applications/apertif/designs/apertif_unb1_fn_bf_emu/tb/vhdl/tb_apertif_unb1_fn_bf_emu.vhd b/applications/apertif/designs/apertif_unb1_fn_bf_emu/tb/vhdl/tb_apertif_unb1_fn_bf_emu.vhd index 78e33ab67a..74f46d6b1f 100644 --- a/applications/apertif/designs/apertif_unb1_fn_bf_emu/tb/vhdl/tb_apertif_unb1_fn_bf_emu.vhd +++ b/applications/apertif/designs/apertif_unb1_fn_bf_emu/tb/vhdl/tb_apertif_unb1_fn_bf_emu.vhd @@ -75,8 +75,7 @@ ARCHITECTURE tb OF tb_apertif_unb1_fn_bf_emu IS SIGNAL sens_scl : STD_LOGIC; SIGNAL sens_sda : STD_LOGIC; SIGNAL si_fn_0_tx : STD_LOGIC_VECTOR(c_unb1_board_ci.tr.bus_w-1 DOWNTO 0) := (OTHERS => '0'); - SIGNAL fn_bn_0_tx : STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0) := (OTHERS => '0'); - + -- Signals to interface with the DDR3 memory model. SIGNAL phy_in : t_tech_ddr3_phy_in_arr(0 DOWNTO 0); SIGNAL phy_io : t_tech_ddr3_phy_io_arr(0 DOWNTO 0); @@ -114,12 +113,10 @@ BEGIN u_apertif_unb1_fn_bf_emu : ENTITY work.apertif_unb1_fn_bf_emu GENERIC MAP ( g_design_name => "fn_bf_emu", --"apertif_unb1_fn_bf_emu"; - g_design_note => "Apertif subband beamformer", --"UNUSED"; + g_design_note => "Apertif bf emu", --"UNUSED"; g_sim => c_sim, g_sim_unb_nr => c_unb_nr, - g_sim_node_nr => c_node_nr, - g_bf => c_bf, - g_use_bf => TRUE + g_sim_node_nr => c_node_nr ) PORT MAP ( -- GENERAL @@ -144,23 +141,12 @@ BEGIN -- Transceiver clocks SA_CLK => sa_clk, -- : IN STD_LOGIC; -- SerDes Clock BN-BI / SI_FN - SB_CLK => sb_clk, - - -- Mesh Serial I/O - FN_BN_0_RX => fn_bn_0_tx, -- : IN STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0) := (OTHERS=>'0'); - FN_BN_1_RX => fn_bn_0_tx, -- : IN STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0) := (OTHERS=>'0'); - FN_BN_2_RX => fn_bn_0_tx, -- : IN STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0) := (OTHERS=>'0'); - FN_BN_3_RX => fn_bn_0_tx, -- : IN STD_LOGIC_VECTOR(c_unb1_board_tr_mesh.bus_w-1 DOWNTO 0) := (OTHERS=>'0'); -- Serial I/O SI_FN_0_RX => si_fn_0_tx, -- : IN STD_LOGIC_VECTOR(c_unb1_board_ci.tr.bus_w-1 DOWNTO 0); SI_FN_1_RX => si_fn_0_tx, -- : IN STD_LOGIC_VECTOR(c_unb1_board_ci.tr.bus_w-1 DOWNTO 0); SI_FN_2_RX => si_fn_0_tx, -- : IN STD_LOGIC_VECTOR(c_unb1_board_ci.tr.bus_w-1 DOWNTO 0); - SI_FN_3_RX => si_fn_0_tx, -- : IN STD_LOGIC_VECTOR(c_unb1_board_ci.tr.bus_w-1 DOWNTO 0); - - MB_I_in => phy_in, - MB_I_io => phy_io, - MB_I_ou => phy_ou + SI_FN_3_RX => si_fn_0_tx -- : IN STD_LOGIC_VECTOR(c_unb1_board_ci.tr.bus_w-1 DOWNTO 0); ); END tb; -- GitLab