diff --git a/applications/apertif/designs/apertif_unb1_correlator/quartus/qsys_apertif_unb1_correlator.qsys b/applications/apertif/designs/apertif_unb1_correlator/quartus/qsys_apertif_unb1_correlator.qsys index e59c0c009a7a8924afa4f663af1510f9878767a7..2406dfd90c3bb4d2811fc00083ebffa12915a3f6 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/quartus/qsys_apertif_unb1_correlator.qsys +++ b/applications/apertif/designs/apertif_unb1_correlator/quartus/qsys_apertif_unb1_correlator.qsys @@ -37,7 +37,7 @@ } datum sopceditor_expanded { - value = "1"; + value = "0"; type = "boolean"; } } @@ -82,7 +82,7 @@ } datum sopceditor_expanded { - value = "1"; + value = "0"; type = "boolean"; } } @@ -133,6 +133,14 @@ type = "boolean"; } } + element ram_fil_coefs.mem + { + datum baseAddress + { + value = "14336"; + type = "long"; + } + } element reg_mdio_2.mem { datum baseAddress @@ -141,69 +149,77 @@ type = "long"; } } - element reg_tr_10GbE.mem + element pio_system_info.mem { - datum _tags + datum _lockedAddress { - value = ""; - type = "String"; + value = "1"; + type = "boolean"; } datum baseAddress { - value = "262144"; + value = "0"; type = "long"; } } - element reg_unb_sens.mem + element reg_wdi.mem { + datum _lockedAddress + { + value = "1"; + type = "boolean"; + } datum baseAddress { - value = "1600"; + value = "12288"; type = "long"; } } - element reg_bsn_monitor.mem + element pio_pps.mem { datum baseAddress { - value = "1024"; + value = "1696"; type = "long"; } } - element ram_diag_data_buf.mem + element reg_tr_xaui.mem { datum baseAddress { - value = "524288"; + value = "16384"; type = "long"; } } - element ram_fil_coefs.mem + element reg_dp_offload_tx_hdr_dat.mem { datum baseAddress { - value = "14336"; + value = "256"; type = "long"; } } - element pio_system_info.mem + element reg_bsn_monitor.mem { - datum _lockedAddress + datum baseAddress { - value = "1"; - type = "boolean"; + value = "1024"; + type = "long"; } + } + element reg_mdio_0.mem + { datum baseAddress { - value = "0"; + value = "1568"; type = "long"; } } - element reg_dp_offload_rx_hdr_dat.mem + element ram_diag_data_buf.mem { datum baseAddress { - value = "512"; + value = "524288"; type = "long"; } } @@ -228,56 +244,40 @@ type = "long"; } } - element reg_diag_data_buf.mem - { - datum baseAddress - { - value = "1688"; - type = "long"; - } - } - element reg_mdio_0.mem + element reg_tr_10GbE.mem { - datum baseAddress + datum _tags { - value = "1568"; - type = "long"; + value = ""; + type = "String"; } - } - element reg_tr_xaui.mem - { datum baseAddress { - value = "16384"; + value = "262144"; type = "long"; } } - element pio_pps.mem + element reg_dp_offload_rx_hdr_dat.mem { datum baseAddress { - value = "1696"; + value = "512"; type = "long"; } } - element reg_wdi.mem + element reg_unb_sens.mem { - datum _lockedAddress - { - value = "1"; - type = "boolean"; - } datum baseAddress { - value = "12288"; + value = "1600"; type = "long"; } } - element reg_dp_offload_tx_hdr_dat.mem + element reg_diag_data_buf.mem { datum baseAddress { - value = "256"; + value = "1688"; type = "long"; } } @@ -358,7 +358,7 @@ } datum sopceditor_expanded { - value = "1"; + value = "0"; type = "boolean"; } } @@ -446,6 +446,14 @@ type = "int"; } } + element reg_diag_bg + { + datum _sortIndex + { + value = "26"; + type = "int"; + } + } element reg_diag_data_buf { datum _sortIndex @@ -574,40 +582,40 @@ type = "boolean"; } } - element timer_0.s1 + element pio_wdi.s1 { datum baseAddress { - value = "192"; + value = "1648"; type = "long"; } } - element pio_debug_wave.s1 + element onchip_memory2_0.s1 { + datum _lockedAddress + { + value = "1"; + type = "boolean"; + } datum baseAddress { - value = "1632"; + value = "131072"; type = "long"; } } - element pio_wdi.s1 + element pio_debug_wave.s1 { datum baseAddress { - value = "1648"; + value = "1632"; type = "long"; } } - element onchip_memory2_0.s1 + element timer_0.s1 { - datum _lockedAddress - { - value = "1"; - type = "boolean"; - } datum baseAddress { - value = "131072"; + value = "192"; type = "long"; } } @@ -663,7 +671,7 @@ <parameter name="projectName">apertif_unb1_correlator.qpf</parameter> <parameter name="sopcBorderPoints" value="false" /> <parameter name="systemHash" value="1" /> - <parameter name="timeStamp" value="1428818040058" /> + <parameter name="timeStamp" value="1429171641244" /> <parameter name="useTestBenchNamingPattern" value="false" /> <instanceScript></instanceScript> <interface name="mm_clk" internal="export_mm.out_clk" type="clock" dir="start"> @@ -1348,6 +1356,41 @@ internal="reg_dp_offload_tx_hdr_dat.readdata" type="conduit" dir="end" /> + <interface + name="reg_diag_bg_reset" + internal="reg_diag_bg.reset" + type="conduit" + dir="end" /> + <interface + name="reg_diag_bg_clk" + internal="reg_diag_bg.clk" + type="conduit" + dir="end" /> + <interface + name="reg_diag_bg_address" + internal="reg_diag_bg.address" + type="conduit" + dir="end" /> + <interface + name="reg_diag_bg_write" + internal="reg_diag_bg.write" + type="conduit" + dir="end" /> + <interface + name="reg_diag_bg_writedata" + internal="reg_diag_bg.writedata" + type="conduit" + dir="end" /> + <interface + name="reg_diag_bg_read" + internal="reg_diag_bg.read" + type="conduit" + dir="end" /> + <interface + name="reg_diag_bg_readdata" + internal="reg_diag_bg.readdata" + type="conduit" + dir="end" /> <module kind="altera_avalon_onchip_memory2" version="11.1" @@ -1828,6 +1871,11 @@ q]]></parameter> <parameter name="g_dat_w" value="32" /> <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" /> </module> + <module kind="avs_common_mm" version="1.0" enabled="1" name="reg_diag_bg"> + <parameter name="g_adr_w" value="3" /> + <parameter name="g_dat_w" value="32" /> + <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" /> + </module> <connection kind="avalon" version="11.1" @@ -2406,4 +2454,14 @@ q]]></parameter> <parameter name="arbitrationPriority" value="1" /> <parameter name="baseAddress" value="0x0100" /> </connection> + <connection + kind="reset" + version="11.1" + start="clk_input.clk_reset" + end="reg_diag_bg.system_reset" /> + <connection + kind="clock" + version="11.1" + start="altpll_0.c0" + end="reg_diag_bg.system" /> </system> diff --git a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd index e3f44a0b2412e27dac435e50509461633532b68c..85fd54445bb99c164afd84d70cbbad4148c97090 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd +++ b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/apertif_unb1_correlator.vhd @@ -198,7 +198,7 @@ ARCHITECTURE str OF apertif_unb1_correlator IS -- . The sync pulse is only there for the human eye (wave window) - -- it is not used by the correlator. CONSTANT c_bg_blocks_per_sync : NATURAL := largest(c_integration_period, c_nof_visibilities); - CONSTANT c_bg_ctrl : t_diag_block_gen := ('1', -- enable + CONSTANT c_bg_ctrl : t_diag_block_gen := (sel_a_b(g_sim, '1', '0'), -- enable: On by default in simulation; MM enable required on hardware. '0', -- enable_sync TO_UVEC( c_bg_block_size, c_diag_bg_samples_per_packet_w), TO_UVEC(c_bg_blocks_per_sync, c_diag_bg_blocks_per_sync_w), @@ -252,6 +252,10 @@ ARCHITECTURE str OF apertif_unb1_correlator IS SIGNAL eth1g_ram_mosi : t_mem_mosi; -- ETH rx frame and tx frame memory SIGNAL eth1g_ram_miso : t_mem_miso; + -- Block generator + SIGNAL reg_diag_bg_mosi : t_mem_mosi; + SIGNAL reg_diag_bg_miso : t_mem_miso; + -- MM DP offload RX SIGNAL reg_dp_offload_rx_hdr_dat_mosi : t_mem_mosi; SIGNAL reg_dp_offload_rx_hdr_dat_miso : t_mem_miso; @@ -326,7 +330,7 @@ ARCHITECTURE str OF apertif_unb1_correlator IS SIGNAL correlator_src_out_arr : t_dp_sosi_arr(1-1 DOWNTO 0); -- 1GbE Visibility Offload - SIGNAL dp_fifo_sc_snk_in : t_dp_sosi; + SIGNAL dp_fifo_sc_snk_in : t_dp_sosi; SIGNAL dp_repack_data_snk_in : t_dp_sosi; SIGNAL dp_repack_data_snk_out : t_dp_siso; SIGNAL apertif_unb1_correlator_vis_offload_snk_in : t_dp_sosi; @@ -366,6 +370,9 @@ BEGIN dp_rst => dp_rst, dp_clk => dp_clk, + + reg_bg_ctrl_mosi => reg_diag_bg_mosi, + reg_bg_ctrl_miso => reg_diag_bg_miso, out_sosi_arr => interleaved_arr ); @@ -1218,7 +1225,11 @@ BEGIN -- PPSH reg_ppsh_mosi => reg_ppsh_mosi, reg_ppsh_miso => reg_ppsh_miso, - + + -- Block generator + reg_diag_bg_mosi => reg_diag_bg_mosi, + reg_diag_bg_miso => reg_diag_bg_miso, + -- 10 GbE reg_tr_10GbE_mosi => reg_tr_10GbE_mosi, reg_tr_10GbE_miso => reg_tr_10GbE_miso, diff --git a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/mmm_apertif_unb1_correlator.vhd b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/mmm_apertif_unb1_correlator.vhd index 85218e6d3808f26eecea0b076219fe929b13fc81..46c60e3a5b820cb68c9f9c05cf9cbab8574d86d4 100644 --- a/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/mmm_apertif_unb1_correlator.vhd +++ b/applications/apertif/designs/apertif_unb1_correlator/src/vhdl/mmm_apertif_unb1_correlator.vhd @@ -75,6 +75,10 @@ ENTITY mmm_apertif_unb1_correlator IS -- PPSH reg_ppsh_mosi : OUT t_mem_mosi; reg_ppsh_miso : IN t_mem_miso; + + -- Block generator + reg_diag_bg_mosi : OUT t_mem_mosi; + reg_diag_bg_miso : IN t_mem_miso; -- DP Offload RX reg_dp_offload_rx_hdr_dat_mosi : OUT t_mem_mosi; @@ -197,6 +201,15 @@ ARCHITECTURE str OF mmm_apertif_unb1_correlator IS mm_clk : out std_logic; -- clk out_port_from_the_pio_debug_wave : out std_logic_vector(31 downto 0); -- export out_port_from_the_pio_wdi : out std_logic; -- export + + reg_diag_bg_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + reg_diag_bg_read_export : out std_logic; -- export + reg_diag_bg_writedata_export : out std_logic_vector(31 downto 0); -- export + reg_diag_bg_write_export : out std_logic; -- export + reg_diag_bg_address_export : out std_logic_vector(2 downto 0); -- export + reg_diag_bg_clk_export : out std_logic; -- export + reg_diag_bg_reset_export : out std_logic; -- export + ram_diag_data_buf_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export ram_diag_data_buf_read_export : out std_logic; -- export ram_diag_data_buf_writedata_export : out std_logic_vector(31 downto 0); -- export @@ -505,7 +518,15 @@ BEGIN reg_wdi_readdata_export => reg_wdi_miso.rddata(c_word_w-1 DOWNTO 0), reg_wdi_write_export => reg_wdi_mosi.wr, reg_wdi_writedata_export => reg_wdi_mosi.wrdata(c_word_w-1 DOWNTO 0), - + + reg_diag_bg_readdata_export => reg_diag_bg_miso.rddata(c_word_w-1 DOWNTO 0), + reg_diag_bg_read_export => reg_diag_bg_mosi.rd, + reg_diag_bg_writedata_export => reg_diag_bg_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_diag_bg_write_export => reg_diag_bg_mosi.wr, + reg_diag_bg_address_export => reg_diag_bg_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_diag_bg_adr_w-1 DOWNTO 0), + reg_diag_bg_clk_export => OPEN, + reg_diag_bg_reset_export => OPEN, + ram_diag_data_buf_readdata_export => ram_diag_data_buf_miso.rddata(c_word_w-1 DOWNTO 0), ram_diag_data_buf_read_export => ram_diag_data_buf_mosi.rd, ram_diag_data_buf_writedata_export => ram_diag_data_buf_mosi.wrdata(c_word_w-1 DOWNTO 0),