From e08a01adcee8e6e6a3120a88eeb9bbe336dabd5a Mon Sep 17 00:00:00 2001 From: Reinier van der Walle <walle@astron.nl> Date: Fri, 3 Sep 2021 10:12:07 +0200 Subject: [PATCH] updated lofar2_unb2c_sdp_station --- .../lofar2_unb2c_sdp_station.fpga.yaml | 9 + .../qsys_lofar2_unb2c_sdp_station_cpu_0.ip | 4 +- .../qsys_lofar2_unb2c_sdp_station_pio_pps.ip | 28 +- .../qsys_lofar2_unb2c_sdp_station.qsys | 241 ++++--- .../lofar2_unb2c_sdp_station_adc.vhd | 2 +- .../lofar2_unb2c_sdp_station_bf.vhd | 2 +- .../lofar2_unb2c_sdp_station_fsub.vhd | 2 +- .../lofar2_unb2c_sdp_station_full/hdllib.cfg | 105 +++ .../lofar2_unb2c_sdp_station_full.vhd | 161 +++++ .../lofar2_unb2c_sdp_station_xsub_one.vhd | 2 +- .../src/vhdl/lofar2_unb2c_sdp_station.vhd | 621 ++++-------------- .../src/vhdl/mmm_lofar2_unb2c_sdp_station.vhd | 4 +- .../qsys_lofar2_unb2c_sdp_station_pkg.vhd | 2 +- 13 files changed, 547 insertions(+), 636 deletions(-) create mode 100644 applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_full/hdllib.cfg create mode 100644 applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_full/lofar2_unb2c_sdp_station_full.vhd diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml b/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml index baf004cdb5..a4a417b9d6 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/lofar2_unb2c_sdp_station.fpga.yaml @@ -11,8 +11,12 @@ parameters: - { name: c_N_beamsets, value: 2 } - { name: c_N_sub, value: 512 } - { name: c_N_fft, value: 1024 } + - { name: c_N_pn_lb, value: 16 } - { name: c_S_pn, value: 12 } - { name: c_Q_fft, value: 2 } + - { name: c_P_sq, value: 1 + c_N_pn_lb // 2 } # = 1 + 16 // 2 = 9, on revision xsub_one only first X_sq cell is used + - { name: c_X_sq, value: c_S_pn * c_S_pn } # = 144 + - { name: c_N_crosslets, value: 1 } - { name: c_N_taps, value: 16 } - { name: c_W_adc_jesd, value: 16 } - { name: c_W_adc, value: 14 } @@ -101,6 +105,8 @@ peripherals: - PIO_JESD_CTRL - peripheral_name: tech_jesd204b/jesd204b_arria10 + parameter_overrides: + - { name: g_nof_streams, value: c_S_pn } mm_port_names: - JESD204B @@ -218,6 +224,9 @@ peripherals: - REG_DP_SYNC_INSERT_V2 - peripheral_name: st/st_xst_for_sdp + parameter_overrides: + - { name: g_nof_streams, value: c_P_sq } + - { name: g_nof_crosslets, value: c_N_crosslets } mm_port_names: - RAM_ST_XSQ diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_cpu_0.ip b/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_cpu_0.ip index 5dc78ca3aa..8749dd152b 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_cpu_0.ip +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_cpu_0.ip @@ -2302,7 +2302,7 @@ <ipxact:parameter parameterId="dataSlaveMapParam" type="string"> <ipxact:name>dataSlaveMapParam</ipxact:name> <ipxact:displayName>dataSlaveMapParam</ipxact:displayName> - <ipxact:value><address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' datawidth='32' /><slave name='reg_diag_data_buffer_bsn.mem' start='0x80' end='0x100' datawidth='32' /><slave name='reg_stat_hdr_dat_xst.mem' start='0x100' end='0x200' datawidth='32' /><slave name='reg_stat_hdr_dat_bst.mem' start='0x200' end='0x400' datawidth='32' /><slave name='reg_bsn_monitor_input.mem' start='0x400' end='0x800' datawidth='32' /><slave name='ram_scrap.mem' start='0x800' end='0x1000' datawidth='32' /><slave name='avs_eth_0.mms_tse' start='0x1000' end='0x2000' datawidth='32' /><slave name='avs_eth_0.mms_ram' start='0x2000' end='0x3000' datawidth='32' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' datawidth='32' /><slave name='reg_stat_enable_xst.mem' start='0x3008' end='0x3010' datawidth='32' /><slave name='pio_wdi.s1' start='0x3010' end='0x3020' datawidth='32' /><slave name='timer_0.s1' start='0x3020' end='0x3040' datawidth='16' /><slave name='avs_eth_0.mms_reg' start='0x3040' end='0x3080' datawidth='32' /><slave name='reg_dp_shiftram.mem' start='0x3080' end='0x3100' datawidth='32' /><slave name='reg_stat_hdr_dat_sst.mem' start='0x3100' end='0x3200' datawidth='32' /><slave name='reg_hdr_dat.mem' start='0x3200' end='0x3400' datawidth='32' /><slave name='reg_wg.mem' start='0x3400' end='0x3500' datawidth='32' /><slave name='reg_aduh_monitor.mem' start='0x3500' end='0x3600' datawidth='32' /><slave name='cpu_0.debug_mem_slave' start='0x3800' end='0x4000' datawidth='32' /><slave name='ram_st_bst.mem' start='0x4000' end='0x8000' datawidth='32' /><slave name='reg_nw_10gbe_mac.mem' start='0x8000' end='0x10000' datawidth='32' /><slave name='rom_system_info.mem' start='0x10000' end='0x18000' datawidth='32' /><slave name='ram_equalizer_gains.mem' start='0x18000' end='0x20000' datawidth='32' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' datawidth='32' /><slave name='ram_bf_weights.mem' start='0x40000' end='0x60000' datawidth='32' /><slave name='ram_st_xsq.mem' start='0x60000' end='0x70000' datawidth='32' /><slave name='ram_ss_ss_wide.mem' start='0x70000' end='0x80000' datawidth='32' /><slave name='ram_wg.mem' start='0x80000' end='0x90000' datawidth='32' /><slave name='ram_fil_coefs.mem' start='0x90000' end='0xA0000' datawidth='32' /><slave name='ram_st_sst.mem' start='0xA0000' end='0xB0000' datawidth='32' /><slave name='jesd204b.mem' start='0xB0000' end='0xB4000' datawidth='32' /><slave name='reg_crosslets_info.mem' start='0xB4000' end='0xB4040' datawidth='32' /><slave name='reg_sdp_info.mem' start='0xB4040' end='0xB4080' datawidth='32' /><slave name='reg_fpga_voltage_sens.mem' start='0xB4080' end='0xB40C0' datawidth='32' /><slave name='reg_bsn_source_v2.mem' start='0xB40C0' end='0xB40E0' datawidth='32' /><slave name='reg_fpga_temp_sens.mem' start='0xB40E0' end='0xB4100' datawidth='32' /><slave name='reg_epcs.mem' start='0xB4100' end='0xB4120' datawidth='32' /><slave name='reg_remu.mem' start='0xB4120' end='0xB4140' datawidth='32' /><slave name='reg_stat_enable_bst.mem' start='0xB4140' end='0xB4150' datawidth='32' /><slave name='reg_dp_xonoff.mem' start='0xB4150' end='0xB4160' datawidth='32' /><slave name='reg_bf_scale.mem' start='0xB4160' end='0xB4170' datawidth='32' /><slave name='reg_bsn_scheduler_xsub.mem' start='0xB4170' end='0xB4178' datawidth='32' /><slave name='reg_dp_sync_insert_v2.mem' start='0xB4178' end='0xB4180' datawidth='32' /><slave name='reg_stat_enable_sst.mem' start='0xB4180' end='0xB4188' datawidth='32' /><slave name='pio_jesd_ctrl.mem' start='0xB4188' end='0xB4190' datawidth='32' /><slave name='reg_nw_10gbe_eth10g.mem' start='0xB4190' end='0xB4198' datawidth='32' /><slave name='reg_dp_selector.mem' start='0xB4198' end='0xB41A0' datawidth='32' /><slave name='reg_bsn_scheduler.mem' start='0xB41A0' end='0xB41A8' datawidth='32' /><slave name='reg_si.mem' start='0xB41A8' end='0xB41B0' datawidth='32' /><slave name='reg_mmdp_data.mem' start='0xB41B0' end='0xB41B8' datawidth='32' /><slave name='reg_mmdp_ctrl.mem' start='0xB41B8' end='0xB41C0' datawidth='32' /><slave name='reg_dpmm_data.mem' start='0xB41C0' end='0xB41C8' datawidth='32' /><slave name='reg_dpmm_ctrl.mem' start='0xB41C8' end='0xB41D0' datawidth='32' /><slave name='pio_pps.mem' start='0xB41D0' end='0xB41D8' datawidth='32' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0xB41D8' end='0xB41E0' datawidth='32' /><slave name='ram_diag_data_buffer_bsn.mem' start='0x800000' end='0x1000000' datawidth='32' /></address-map></ipxact:value> + <ipxact:value><address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' datawidth='32' /><slave name='reg_diag_data_buffer_bsn.mem' start='0x80' end='0x100' datawidth='32' /><slave name='reg_stat_hdr_dat_xst.mem' start='0x100' end='0x200' datawidth='32' /><slave name='reg_stat_hdr_dat_bst.mem' start='0x200' end='0x400' datawidth='32' /><slave name='reg_bsn_monitor_input.mem' start='0x400' end='0x800' datawidth='32' /><slave name='ram_scrap.mem' start='0x800' end='0x1000' datawidth='32' /><slave name='avs_eth_0.mms_tse' start='0x1000' end='0x2000' datawidth='32' /><slave name='avs_eth_0.mms_ram' start='0x2000' end='0x3000' datawidth='32' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' datawidth='32' /><slave name='reg_stat_enable_xst.mem' start='0x3008' end='0x3010' datawidth='32' /><slave name='pio_wdi.s1' start='0x3010' end='0x3020' datawidth='32' /><slave name='timer_0.s1' start='0x3020' end='0x3040' datawidth='16' /><slave name='avs_eth_0.mms_reg' start='0x3040' end='0x3080' datawidth='32' /><slave name='reg_dp_shiftram.mem' start='0x3080' end='0x3100' datawidth='32' /><slave name='reg_stat_hdr_dat_sst.mem' start='0x3100' end='0x3200' datawidth='32' /><slave name='reg_hdr_dat.mem' start='0x3200' end='0x3400' datawidth='32' /><slave name='reg_wg.mem' start='0x3400' end='0x3500' datawidth='32' /><slave name='reg_aduh_monitor.mem' start='0x3500' end='0x3600' datawidth='32' /><slave name='reg_crosslets_info.mem' start='0x3600' end='0x3640' datawidth='32' /><slave name='reg_sdp_info.mem' start='0x3640' end='0x3680' datawidth='32' /><slave name='reg_fpga_voltage_sens.mem' start='0x3680' end='0x36C0' datawidth='32' /><slave name='reg_bsn_source_v2.mem' start='0x36C0' end='0x36E0' datawidth='32' /><slave name='reg_fpga_temp_sens.mem' start='0x36E0' end='0x3700' datawidth='32' /><slave name='reg_epcs.mem' start='0x3700' end='0x3720' datawidth='32' /><slave name='reg_remu.mem' start='0x3720' end='0x3740' datawidth='32' /><slave name='reg_stat_enable_bst.mem' start='0x3740' end='0x3750' datawidth='32' /><slave name='reg_dp_xonoff.mem' start='0x3750' end='0x3760' datawidth='32' /><slave name='reg_bf_scale.mem' start='0x3760' end='0x3770' datawidth='32' /><slave name='pio_pps.mem' start='0x3770' end='0x3780' datawidth='32' /><slave name='reg_bsn_scheduler_xsub.mem' start='0x3780' end='0x3788' datawidth='32' /><slave name='reg_dp_sync_insert_v2.mem' start='0x3788' end='0x3790' datawidth='32' /><slave name='reg_stat_enable_sst.mem' start='0x3790' end='0x3798' datawidth='32' /><slave name='pio_jesd_ctrl.mem' start='0x3798' end='0x37A0' datawidth='32' /><slave name='reg_nw_10gbe_eth10g.mem' start='0x37A0' end='0x37A8' datawidth='32' /><slave name='reg_dp_selector.mem' start='0x37A8' end='0x37B0' datawidth='32' /><slave name='reg_bsn_scheduler.mem' start='0x37B0' end='0x37B8' datawidth='32' /><slave name='reg_si.mem' start='0x37B8' end='0x37C0' datawidth='32' /><slave name='reg_mmdp_data.mem' start='0x37C0' end='0x37C8' datawidth='32' /><slave name='reg_mmdp_ctrl.mem' start='0x37C8' end='0x37D0' datawidth='32' /><slave name='reg_dpmm_data.mem' start='0x37D0' end='0x37D8' datawidth='32' /><slave name='reg_dpmm_ctrl.mem' start='0x37D8' end='0x37E0' datawidth='32' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x37E0' end='0x37E8' datawidth='32' /><slave name='cpu_0.debug_mem_slave' start='0x3800' end='0x4000' datawidth='32' /><slave name='ram_st_bst.mem' start='0x4000' end='0x8000' datawidth='32' /><slave name='reg_nw_10gbe_mac.mem' start='0x8000' end='0x10000' datawidth='32' /><slave name='rom_system_info.mem' start='0x10000' end='0x18000' datawidth='32' /><slave name='ram_equalizer_gains.mem' start='0x18000' end='0x20000' datawidth='32' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' datawidth='32' /><slave name='ram_bf_weights.mem' start='0x40000' end='0x60000' datawidth='32' /><slave name='ram_st_xsq.mem' start='0x60000' end='0x70000' datawidth='32' /><slave name='ram_ss_ss_wide.mem' start='0x70000' end='0x80000' datawidth='32' /><slave name='ram_wg.mem' start='0x80000' end='0x90000' datawidth='32' /><slave name='ram_fil_coefs.mem' start='0x90000' end='0xA0000' datawidth='32' /><slave name='ram_st_sst.mem' start='0xA0000' end='0xB0000' datawidth='32' /><slave name='jesd204b.mem' start='0xB0000' end='0xB4000' datawidth='32' /><slave name='ram_diag_data_buffer_bsn.mem' start='0x800000' end='0x1000000' datawidth='32' /></address-map></ipxact:value> </ipxact:parameter> <ipxact:parameter parameterId="tightlyCoupledDataMaster0MapParam" type="string"> <ipxact:name>tightlyCoupledDataMaster0MapParam</ipxact:name> @@ -3589,7 +3589,7 @@ <suppliedSystemInfos> <entry> <key>ADDRESS_MAP</key> - <value>&lt;address-map&gt;&lt;slave name='pio_system_info.mem' start='0x0' end='0x80' datawidth='32' /&gt;&lt;slave name='reg_diag_data_buffer_bsn.mem' start='0x80' end='0x100' datawidth='32' /&gt;&lt;slave name='reg_stat_hdr_dat_xst.mem' start='0x100' end='0x200' datawidth='32' /&gt;&lt;slave name='reg_stat_hdr_dat_bst.mem' start='0x200' end='0x400' datawidth='32' /&gt;&lt;slave name='reg_bsn_monitor_input.mem' start='0x400' end='0x800' datawidth='32' /&gt;&lt;slave name='ram_scrap.mem' start='0x800' end='0x1000' datawidth='32' /&gt;&lt;slave name='avs_eth_0.mms_tse' start='0x1000' end='0x2000' datawidth='32' /&gt;&lt;slave name='avs_eth_0.mms_ram' start='0x2000' end='0x3000' datawidth='32' /&gt;&lt;slave name='reg_wdi.mem' start='0x3000' end='0x3008' datawidth='32' /&gt;&lt;slave name='reg_stat_enable_xst.mem' start='0x3008' end='0x3010' datawidth='32' /&gt;&lt;slave name='pio_wdi.s1' start='0x3010' end='0x3020' datawidth='32' /&gt;&lt;slave name='timer_0.s1' start='0x3020' end='0x3040' datawidth='16' /&gt;&lt;slave name='avs_eth_0.mms_reg' start='0x3040' end='0x3080' datawidth='32' /&gt;&lt;slave name='reg_dp_shiftram.mem' start='0x3080' end='0x3100' datawidth='32' /&gt;&lt;slave name='reg_stat_hdr_dat_sst.mem' start='0x3100' end='0x3200' datawidth='32' /&gt;&lt;slave name='reg_hdr_dat.mem' start='0x3200' end='0x3400' datawidth='32' /&gt;&lt;slave name='reg_wg.mem' start='0x3400' end='0x3500' datawidth='32' /&gt;&lt;slave name='reg_aduh_monitor.mem' start='0x3500' end='0x3600' datawidth='32' /&gt;&lt;slave name='cpu_0.debug_mem_slave' start='0x3800' end='0x4000' datawidth='32' /&gt;&lt;slave name='ram_st_bst.mem' start='0x4000' end='0x8000' datawidth='32' /&gt;&lt;slave name='reg_nw_10gbe_mac.mem' start='0x8000' end='0x10000' datawidth='32' /&gt;&lt;slave name='rom_system_info.mem' start='0x10000' end='0x18000' datawidth='32' /&gt;&lt;slave name='ram_equalizer_gains.mem' start='0x18000' end='0x20000' datawidth='32' /&gt;&lt;slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' datawidth='32' /&gt;&lt;slave name='ram_bf_weights.mem' start='0x40000' end='0x60000' datawidth='32' /&gt;&lt;slave name='ram_st_xsq.mem' start='0x60000' end='0x70000' datawidth='32' /&gt;&lt;slave name='ram_ss_ss_wide.mem' start='0x70000' end='0x80000' datawidth='32' /&gt;&lt;slave name='ram_wg.mem' start='0x80000' end='0x90000' datawidth='32' /&gt;&lt;slave name='ram_fil_coefs.mem' start='0x90000' end='0xA0000' datawidth='32' /&gt;&lt;slave name='ram_st_sst.mem' start='0xA0000' end='0xB0000' datawidth='32' /&gt;&lt;slave name='jesd204b.mem' start='0xB0000' end='0xB4000' datawidth='32' /&gt;&lt;slave name='reg_crosslets_info.mem' start='0xB4000' end='0xB4040' datawidth='32' /&gt;&lt;slave name='reg_sdp_info.mem' start='0xB4040' end='0xB4080' datawidth='32' /&gt;&lt;slave name='reg_fpga_voltage_sens.mem' start='0xB4080' end='0xB40C0' datawidth='32' /&gt;&lt;slave name='reg_bsn_source_v2.mem' start='0xB40C0' end='0xB40E0' datawidth='32' /&gt;&lt;slave name='reg_fpga_temp_sens.mem' start='0xB40E0' end='0xB4100' datawidth='32' /&gt;&lt;slave name='reg_epcs.mem' start='0xB4100' end='0xB4120' datawidth='32' /&gt;&lt;slave name='reg_remu.mem' start='0xB4120' end='0xB4140' datawidth='32' /&gt;&lt;slave name='reg_stat_enable_bst.mem' start='0xB4140' end='0xB4150' datawidth='32' /&gt;&lt;slave name='reg_dp_xonoff.mem' start='0xB4150' end='0xB4160' datawidth='32' /&gt;&lt;slave name='reg_bf_scale.mem' start='0xB4160' end='0xB4170' datawidth='32' /&gt;&lt;slave name='reg_bsn_scheduler_xsub.mem' start='0xB4170' end='0xB4178' datawidth='32' /&gt;&lt;slave name='reg_dp_sync_insert_v2.mem' start='0xB4178' end='0xB4180' datawidth='32' /&gt;&lt;slave name='reg_stat_enable_sst.mem' start='0xB4180' end='0xB4188' datawidth='32' /&gt;&lt;slave name='pio_jesd_ctrl.mem' start='0xB4188' end='0xB4190' datawidth='32' /&gt;&lt;slave name='reg_nw_10gbe_eth10g.mem' start='0xB4190' end='0xB4198' datawidth='32' /&gt;&lt;slave name='reg_dp_selector.mem' start='0xB4198' end='0xB41A0' datawidth='32' /&gt;&lt;slave name='reg_bsn_scheduler.mem' start='0xB41A0' end='0xB41A8' datawidth='32' /&gt;&lt;slave name='reg_si.mem' start='0xB41A8' end='0xB41B0' datawidth='32' /&gt;&lt;slave name='reg_mmdp_data.mem' start='0xB41B0' end='0xB41B8' datawidth='32' /&gt;&lt;slave name='reg_mmdp_ctrl.mem' start='0xB41B8' end='0xB41C0' datawidth='32' /&gt;&lt;slave name='reg_dpmm_data.mem' start='0xB41C0' end='0xB41C8' datawidth='32' /&gt;&lt;slave name='reg_dpmm_ctrl.mem' start='0xB41C8' end='0xB41D0' datawidth='32' /&gt;&lt;slave name='pio_pps.mem' start='0xB41D0' end='0xB41D8' datawidth='32' /&gt;&lt;slave name='jtag_uart_0.avalon_jtag_slave' start='0xB41D8' end='0xB41E0' datawidth='32' /&gt;&lt;slave name='ram_diag_data_buffer_bsn.mem' start='0x800000' end='0x1000000' datawidth='32' /&gt;&lt;/address-map&gt;</value> + <value>&lt;address-map&gt;&lt;slave name='pio_system_info.mem' start='0x0' end='0x80' datawidth='32' /&gt;&lt;slave name='reg_diag_data_buffer_bsn.mem' start='0x80' end='0x100' datawidth='32' /&gt;&lt;slave name='reg_stat_hdr_dat_xst.mem' start='0x100' end='0x200' datawidth='32' /&gt;&lt;slave name='reg_stat_hdr_dat_bst.mem' start='0x200' end='0x400' datawidth='32' /&gt;&lt;slave name='reg_bsn_monitor_input.mem' start='0x400' end='0x800' datawidth='32' /&gt;&lt;slave name='ram_scrap.mem' start='0x800' end='0x1000' datawidth='32' /&gt;&lt;slave name='avs_eth_0.mms_tse' start='0x1000' end='0x2000' datawidth='32' /&gt;&lt;slave name='avs_eth_0.mms_ram' start='0x2000' end='0x3000' datawidth='32' /&gt;&lt;slave name='reg_wdi.mem' start='0x3000' end='0x3008' datawidth='32' /&gt;&lt;slave name='reg_stat_enable_xst.mem' start='0x3008' end='0x3010' datawidth='32' /&gt;&lt;slave name='pio_wdi.s1' start='0x3010' end='0x3020' datawidth='32' /&gt;&lt;slave name='timer_0.s1' start='0x3020' end='0x3040' datawidth='16' /&gt;&lt;slave name='avs_eth_0.mms_reg' start='0x3040' end='0x3080' datawidth='32' /&gt;&lt;slave name='reg_dp_shiftram.mem' start='0x3080' end='0x3100' datawidth='32' /&gt;&lt;slave name='reg_stat_hdr_dat_sst.mem' start='0x3100' end='0x3200' datawidth='32' /&gt;&lt;slave name='reg_hdr_dat.mem' start='0x3200' end='0x3400' datawidth='32' /&gt;&lt;slave name='reg_wg.mem' start='0x3400' end='0x3500' datawidth='32' /&gt;&lt;slave name='reg_aduh_monitor.mem' start='0x3500' end='0x3600' datawidth='32' /&gt;&lt;slave name='reg_crosslets_info.mem' start='0x3600' end='0x3640' datawidth='32' /&gt;&lt;slave name='reg_sdp_info.mem' start='0x3640' end='0x3680' datawidth='32' /&gt;&lt;slave name='reg_fpga_voltage_sens.mem' start='0x3680' end='0x36C0' datawidth='32' /&gt;&lt;slave name='reg_bsn_source_v2.mem' start='0x36C0' end='0x36E0' datawidth='32' /&gt;&lt;slave name='reg_fpga_temp_sens.mem' start='0x36E0' end='0x3700' datawidth='32' /&gt;&lt;slave name='reg_epcs.mem' start='0x3700' end='0x3720' datawidth='32' /&gt;&lt;slave name='reg_remu.mem' start='0x3720' end='0x3740' datawidth='32' /&gt;&lt;slave name='reg_stat_enable_bst.mem' start='0x3740' end='0x3750' datawidth='32' /&gt;&lt;slave name='reg_dp_xonoff.mem' start='0x3750' end='0x3760' datawidth='32' /&gt;&lt;slave name='reg_bf_scale.mem' start='0x3760' end='0x3770' datawidth='32' /&gt;&lt;slave name='pio_pps.mem' start='0x3770' end='0x3780' datawidth='32' /&gt;&lt;slave name='reg_bsn_scheduler_xsub.mem' start='0x3780' end='0x3788' datawidth='32' /&gt;&lt;slave name='reg_dp_sync_insert_v2.mem' start='0x3788' end='0x3790' datawidth='32' /&gt;&lt;slave name='reg_stat_enable_sst.mem' start='0x3790' end='0x3798' datawidth='32' /&gt;&lt;slave name='pio_jesd_ctrl.mem' start='0x3798' end='0x37A0' datawidth='32' /&gt;&lt;slave name='reg_nw_10gbe_eth10g.mem' start='0x37A0' end='0x37A8' datawidth='32' /&gt;&lt;slave name='reg_dp_selector.mem' start='0x37A8' end='0x37B0' datawidth='32' /&gt;&lt;slave name='reg_bsn_scheduler.mem' start='0x37B0' end='0x37B8' datawidth='32' /&gt;&lt;slave name='reg_si.mem' start='0x37B8' end='0x37C0' datawidth='32' /&gt;&lt;slave name='reg_mmdp_data.mem' start='0x37C0' end='0x37C8' datawidth='32' /&gt;&lt;slave name='reg_mmdp_ctrl.mem' start='0x37C8' end='0x37D0' datawidth='32' /&gt;&lt;slave name='reg_dpmm_data.mem' start='0x37D0' end='0x37D8' datawidth='32' /&gt;&lt;slave name='reg_dpmm_ctrl.mem' start='0x37D8' end='0x37E0' datawidth='32' /&gt;&lt;slave name='jtag_uart_0.avalon_jtag_slave' start='0x37E0' end='0x37E8' datawidth='32' /&gt;&lt;slave name='cpu_0.debug_mem_slave' start='0x3800' end='0x4000' datawidth='32' /&gt;&lt;slave name='ram_st_bst.mem' start='0x4000' end='0x8000' datawidth='32' /&gt;&lt;slave name='reg_nw_10gbe_mac.mem' start='0x8000' end='0x10000' datawidth='32' /&gt;&lt;slave name='rom_system_info.mem' start='0x10000' end='0x18000' datawidth='32' /&gt;&lt;slave name='ram_equalizer_gains.mem' start='0x18000' end='0x20000' datawidth='32' /&gt;&lt;slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' datawidth='32' /&gt;&lt;slave name='ram_bf_weights.mem' start='0x40000' end='0x60000' datawidth='32' /&gt;&lt;slave name='ram_st_xsq.mem' start='0x60000' end='0x70000' datawidth='32' /&gt;&lt;slave name='ram_ss_ss_wide.mem' start='0x70000' end='0x80000' datawidth='32' /&gt;&lt;slave name='ram_wg.mem' start='0x80000' end='0x90000' datawidth='32' /&gt;&lt;slave name='ram_fil_coefs.mem' start='0x90000' end='0xA0000' datawidth='32' /&gt;&lt;slave name='ram_st_sst.mem' start='0xA0000' end='0xB0000' datawidth='32' /&gt;&lt;slave name='jesd204b.mem' start='0xB0000' end='0xB4000' datawidth='32' /&gt;&lt;slave name='ram_diag_data_buffer_bsn.mem' start='0x800000' end='0x1000000' datawidth='32' /&gt;&lt;/address-map&gt;</value> </entry> <entry> <key>ADDRESS_WIDTH</key> diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_pio_pps.ip b/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_pio_pps.ip index 2f53f7f610..e2317ac02e 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_pio_pps.ip +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_pio_pps.ip @@ -139,7 +139,7 @@ <ipxact:parameter parameterId="addressSpan" type="string"> <ipxact:name>addressSpan</ipxact:name> <ipxact:displayName>Address span</ipxact:displayName> - <ipxact:value>8</ipxact:value> + <ipxact:value>16</ipxact:value> </ipxact:parameter> <ipxact:parameter parameterId="addressUnits" type="string"> <ipxact:name>addressUnits</ipxact:name> @@ -664,7 +664,12 @@ <ipxact:name>avs_mem_address</ipxact:name> <ipxact:wire> <ipxact:direction>in</ipxact:direction> - <ipxact:vectors></ipxact:vectors> + <ipxact:vectors> + <ipxact:vector> + <ipxact:left>0</ipxact:left> + <ipxact:right>1</ipxact:right> + </ipxact:vector> + </ipxact:vectors> <ipxact:wireTypeDefs> <ipxact:wireTypeDef> <ipxact:typeName>STD_LOGIC_VECTOR</ipxact:typeName> @@ -765,7 +770,12 @@ <ipxact:name>coe_address_export</ipxact:name> <ipxact:wire> <ipxact:direction>out</ipxact:direction> - <ipxact:vectors></ipxact:vectors> + <ipxact:vectors> + <ipxact:vector> + <ipxact:left>0</ipxact:left> + <ipxact:right>1</ipxact:right> + </ipxact:vector> + </ipxact:vectors> <ipxact:wireTypeDefs> <ipxact:wireTypeDef> <ipxact:typeName>STD_LOGIC_VECTOR</ipxact:typeName> @@ -850,7 +860,7 @@ <ipxact:parameter parameterId="g_adr_w" type="int"> <ipxact:name>g_adr_w</ipxact:name> <ipxact:displayName>g_adr_w</ipxact:displayName> - <ipxact:value>1</ipxact:value> + <ipxact:value>2</ipxact:value> </ipxact:parameter> <ipxact:parameter parameterId="g_dat_w" type="int"> <ipxact:name>g_dat_w</ipxact:name> @@ -987,7 +997,7 @@ <name>avs_mem_address</name> <role>address</role> <direction>Input</direction> - <width>1</width> + <width>2</width> <lowerBound>0</lowerBound> <vhdlType>STD_LOGIC_VECTOR</vhdlType> </port> @@ -1056,7 +1066,7 @@ </entry> <entry> <key>addressSpan</key> - <value>8</value> + <value>16</value> </entry> <entry> <key>addressUnits</key> @@ -1285,7 +1295,7 @@ <name>coe_address_export</name> <role>export</role> <direction>Output</direction> - <width>1</width> + <width>2</width> <lowerBound>0</lowerBound> <vhdlType>STD_LOGIC_VECTOR</vhdlType> </port> @@ -1452,11 +1462,11 @@ <consumedSystemInfos> <entry> <key>ADDRESS_MAP</key> - <value>&lt;address-map&gt;&lt;slave name='mem' start='0x0' end='0x8' datawidth='32' /&gt;&lt;/address-map&gt;</value> + <value>&lt;address-map&gt;&lt;slave name='mem' start='0x0' end='0x10' datawidth='32' /&gt;&lt;/address-map&gt;</value> </entry> <entry> <key>ADDRESS_WIDTH</key> - <value>3</value> + <value>4</value> </entry> <entry> <key>MAX_SLAVE_DATA_WIDTH</key> diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/qsys_lofar2_unb2c_sdp_station.qsys b/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/qsys_lofar2_unb2c_sdp_station.qsys index 113af19555..eb404610db 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/qsys_lofar2_unb2c_sdp_station.qsys +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/quartus/qsys_lofar2_unb2c_sdp_station.qsys @@ -99,7 +99,7 @@ { datum baseAddress { - value = "737752"; + value = "14304"; type = "String"; } } @@ -144,7 +144,7 @@ { datum baseAddress { - value = "737672"; + value = "14232"; type = "String"; } } @@ -165,7 +165,7 @@ { datum baseAddress { - value = "737744"; + value = "14192"; type = "String"; } } @@ -178,7 +178,7 @@ } datum sopceditor_expanded { - value = "0"; + value = "1"; type = "boolean"; } } @@ -394,7 +394,7 @@ { datum baseAddress { - value = "737632"; + value = "14176"; type = "String"; } } @@ -426,7 +426,7 @@ { datum baseAddress { - value = "737696"; + value = "14256"; type = "String"; } } @@ -442,7 +442,7 @@ { datum baseAddress { - value = "737648"; + value = "14208"; type = "String"; } } @@ -458,7 +458,7 @@ { datum baseAddress { - value = "737472"; + value = "14016"; type = "String"; } } @@ -474,7 +474,7 @@ { datum baseAddress { - value = "737280"; + value = "13824"; type = "String"; } } @@ -506,7 +506,7 @@ { datum baseAddress { - value = "737688"; + value = "14248"; type = "String"; } } @@ -538,7 +538,7 @@ { datum baseAddress { - value = "737656"; + value = "14216"; type = "String"; } } @@ -554,7 +554,7 @@ { datum baseAddress { - value = "737616"; + value = "14160"; type = "String"; } } @@ -575,7 +575,7 @@ { datum baseAddress { - value = "737736"; + value = "14296"; type = "String"; } } @@ -596,7 +596,7 @@ { datum baseAddress { - value = "737728"; + value = "14288"; type = "String"; } } @@ -617,7 +617,7 @@ { datum baseAddress { - value = "737536"; + value = "14080"; type = "String"; } } @@ -633,7 +633,7 @@ { datum baseAddress { - value = "737504"; + value = "14048"; type = "String"; } } @@ -654,7 +654,7 @@ { datum baseAddress { - value = "737408"; + value = "13952"; type = "String"; } } @@ -691,7 +691,7 @@ { datum baseAddress { - value = "737720"; + value = "14280"; type = "String"; } } @@ -712,7 +712,7 @@ { datum baseAddress { - value = "737712"; + value = "14272"; type = "String"; } } @@ -728,7 +728,7 @@ { datum baseAddress { - value = "737680"; + value = "14240"; type = "String"; } } @@ -765,7 +765,7 @@ { datum baseAddress { - value = "737568"; + value = "14112"; type = "String"; } } @@ -781,7 +781,7 @@ { datum baseAddress { - value = "737344"; + value = "13888"; type = "String"; } } @@ -797,7 +797,7 @@ { datum baseAddress { - value = "737704"; + value = "14264"; type = "String"; } } @@ -813,7 +813,7 @@ { datum baseAddress { - value = "737600"; + value = "14144"; type = "String"; } } @@ -829,7 +829,7 @@ { datum baseAddress { - value = "737664"; + value = "14224"; type = "String"; } } @@ -7273,7 +7273,7 @@ <consumedSystemInfos> <entry> <key>ADDRESS_MAP</key> - <value><address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' datawidth='32' /><slave name='reg_diag_data_buffer_bsn.mem' start='0x80' end='0x100' datawidth='32' /><slave name='reg_stat_hdr_dat_xst.mem' start='0x100' end='0x200' datawidth='32' /><slave name='reg_stat_hdr_dat_bst.mem' start='0x200' end='0x400' datawidth='32' /><slave name='reg_bsn_monitor_input.mem' start='0x400' end='0x800' datawidth='32' /><slave name='ram_scrap.mem' start='0x800' end='0x1000' datawidth='32' /><slave name='avs_eth_0.mms_tse' start='0x1000' end='0x2000' datawidth='32' /><slave name='avs_eth_0.mms_ram' start='0x2000' end='0x3000' datawidth='32' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' datawidth='32' /><slave name='reg_stat_enable_xst.mem' start='0x3008' end='0x3010' datawidth='32' /><slave name='pio_wdi.s1' start='0x3010' end='0x3020' datawidth='32' /><slave name='timer_0.s1' start='0x3020' end='0x3040' datawidth='16' /><slave name='avs_eth_0.mms_reg' start='0x3040' end='0x3080' datawidth='32' /><slave name='reg_dp_shiftram.mem' start='0x3080' end='0x3100' datawidth='32' /><slave name='reg_stat_hdr_dat_sst.mem' start='0x3100' end='0x3200' datawidth='32' /><slave name='reg_hdr_dat.mem' start='0x3200' end='0x3400' datawidth='32' /><slave name='reg_wg.mem' start='0x3400' end='0x3500' datawidth='32' /><slave name='reg_aduh_monitor.mem' start='0x3500' end='0x3600' datawidth='32' /><slave name='cpu_0.debug_mem_slave' start='0x3800' end='0x4000' datawidth='32' /><slave name='ram_st_bst.mem' start='0x4000' end='0x8000' datawidth='32' /><slave name='reg_nw_10gbe_mac.mem' start='0x8000' end='0x10000' datawidth='32' /><slave name='rom_system_info.mem' start='0x10000' end='0x18000' datawidth='32' /><slave name='ram_equalizer_gains.mem' start='0x18000' end='0x20000' datawidth='32' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' datawidth='32' /><slave name='ram_bf_weights.mem' start='0x40000' end='0x60000' datawidth='32' /><slave name='ram_st_xsq.mem' start='0x60000' end='0x70000' datawidth='32' /><slave name='ram_ss_ss_wide.mem' start='0x70000' end='0x80000' datawidth='32' /><slave name='ram_wg.mem' start='0x80000' end='0x90000' datawidth='32' /><slave name='ram_fil_coefs.mem' start='0x90000' end='0xA0000' datawidth='32' /><slave name='ram_st_sst.mem' start='0xA0000' end='0xB0000' datawidth='32' /><slave name='jesd204b.mem' start='0xB0000' end='0xB4000' datawidth='32' /><slave name='reg_crosslets_info.mem' start='0xB4000' end='0xB4040' datawidth='32' /><slave name='reg_sdp_info.mem' start='0xB4040' end='0xB4080' datawidth='32' /><slave name='reg_fpga_voltage_sens.mem' start='0xB4080' end='0xB40C0' datawidth='32' /><slave name='reg_bsn_source_v2.mem' start='0xB40C0' end='0xB40E0' datawidth='32' /><slave name='reg_fpga_temp_sens.mem' start='0xB40E0' end='0xB4100' datawidth='32' /><slave name='reg_epcs.mem' start='0xB4100' end='0xB4120' datawidth='32' /><slave name='reg_remu.mem' start='0xB4120' end='0xB4140' datawidth='32' /><slave name='reg_stat_enable_bst.mem' start='0xB4140' end='0xB4150' datawidth='32' /><slave name='reg_dp_xonoff.mem' start='0xB4150' end='0xB4160' datawidth='32' /><slave name='reg_bf_scale.mem' start='0xB4160' end='0xB4170' datawidth='32' /><slave name='reg_bsn_scheduler_xsub.mem' start='0xB4170' end='0xB4178' datawidth='32' /><slave name='reg_dp_sync_insert_v2.mem' start='0xB4178' end='0xB4180' datawidth='32' /><slave name='reg_stat_enable_sst.mem' start='0xB4180' end='0xB4188' datawidth='32' /><slave name='pio_jesd_ctrl.mem' start='0xB4188' end='0xB4190' datawidth='32' /><slave name='reg_nw_10gbe_eth10g.mem' start='0xB4190' end='0xB4198' datawidth='32' /><slave name='reg_dp_selector.mem' start='0xB4198' end='0xB41A0' datawidth='32' /><slave name='reg_bsn_scheduler.mem' start='0xB41A0' end='0xB41A8' datawidth='32' /><slave name='reg_si.mem' start='0xB41A8' end='0xB41B0' datawidth='32' /><slave name='reg_mmdp_data.mem' start='0xB41B0' end='0xB41B8' datawidth='32' /><slave name='reg_mmdp_ctrl.mem' start='0xB41B8' end='0xB41C0' datawidth='32' /><slave name='reg_dpmm_data.mem' start='0xB41C0' end='0xB41C8' datawidth='32' /><slave name='reg_dpmm_ctrl.mem' start='0xB41C8' end='0xB41D0' datawidth='32' /><slave name='pio_pps.mem' start='0xB41D0' end='0xB41D8' datawidth='32' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0xB41D8' end='0xB41E0' datawidth='32' /><slave name='ram_diag_data_buffer_bsn.mem' start='0x800000' end='0x1000000' datawidth='32' /></address-map></value> + <value><address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' datawidth='32' /><slave name='reg_diag_data_buffer_bsn.mem' start='0x80' end='0x100' datawidth='32' /><slave name='reg_stat_hdr_dat_xst.mem' start='0x100' end='0x200' datawidth='32' /><slave name='reg_stat_hdr_dat_bst.mem' start='0x200' end='0x400' datawidth='32' /><slave name='reg_bsn_monitor_input.mem' start='0x400' end='0x800' datawidth='32' /><slave name='ram_scrap.mem' start='0x800' end='0x1000' datawidth='32' /><slave name='avs_eth_0.mms_tse' start='0x1000' end='0x2000' datawidth='32' /><slave name='avs_eth_0.mms_ram' start='0x2000' end='0x3000' datawidth='32' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' datawidth='32' /><slave name='reg_stat_enable_xst.mem' start='0x3008' end='0x3010' datawidth='32' /><slave name='pio_wdi.s1' start='0x3010' end='0x3020' datawidth='32' /><slave name='timer_0.s1' start='0x3020' end='0x3040' datawidth='16' /><slave name='avs_eth_0.mms_reg' start='0x3040' end='0x3080' datawidth='32' /><slave name='reg_dp_shiftram.mem' start='0x3080' end='0x3100' datawidth='32' /><slave name='reg_stat_hdr_dat_sst.mem' start='0x3100' end='0x3200' datawidth='32' /><slave name='reg_hdr_dat.mem' start='0x3200' end='0x3400' datawidth='32' /><slave name='reg_wg.mem' start='0x3400' end='0x3500' datawidth='32' /><slave name='reg_aduh_monitor.mem' start='0x3500' end='0x3600' datawidth='32' /><slave name='reg_crosslets_info.mem' start='0x3600' end='0x3640' datawidth='32' /><slave name='reg_sdp_info.mem' start='0x3640' end='0x3680' datawidth='32' /><slave name='reg_fpga_voltage_sens.mem' start='0x3680' end='0x36C0' datawidth='32' /><slave name='reg_bsn_source_v2.mem' start='0x36C0' end='0x36E0' datawidth='32' /><slave name='reg_fpga_temp_sens.mem' start='0x36E0' end='0x3700' datawidth='32' /><slave name='reg_epcs.mem' start='0x3700' end='0x3720' datawidth='32' /><slave name='reg_remu.mem' start='0x3720' end='0x3740' datawidth='32' /><slave name='reg_stat_enable_bst.mem' start='0x3740' end='0x3750' datawidth='32' /><slave name='reg_dp_xonoff.mem' start='0x3750' end='0x3760' datawidth='32' /><slave name='reg_bf_scale.mem' start='0x3760' end='0x3770' datawidth='32' /><slave name='pio_pps.mem' start='0x3770' end='0x3780' datawidth='32' /><slave name='reg_bsn_scheduler_xsub.mem' start='0x3780' end='0x3788' datawidth='32' /><slave name='reg_dp_sync_insert_v2.mem' start='0x3788' end='0x3790' datawidth='32' /><slave name='reg_stat_enable_sst.mem' start='0x3790' end='0x3798' datawidth='32' /><slave name='pio_jesd_ctrl.mem' start='0x3798' end='0x37A0' datawidth='32' /><slave name='reg_nw_10gbe_eth10g.mem' start='0x37A0' end='0x37A8' datawidth='32' /><slave name='reg_dp_selector.mem' start='0x37A8' end='0x37B0' datawidth='32' /><slave name='reg_bsn_scheduler.mem' start='0x37B0' end='0x37B8' datawidth='32' /><slave name='reg_si.mem' start='0x37B8' end='0x37C0' datawidth='32' /><slave name='reg_mmdp_data.mem' start='0x37C0' end='0x37C8' datawidth='32' /><slave name='reg_mmdp_ctrl.mem' start='0x37C8' end='0x37D0' datawidth='32' /><slave name='reg_dpmm_data.mem' start='0x37D0' end='0x37D8' datawidth='32' /><slave name='reg_dpmm_ctrl.mem' start='0x37D8' end='0x37E0' datawidth='32' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x37E0' end='0x37E8' datawidth='32' /><slave name='cpu_0.debug_mem_slave' start='0x3800' end='0x4000' datawidth='32' /><slave name='ram_st_bst.mem' start='0x4000' end='0x8000' datawidth='32' /><slave name='reg_nw_10gbe_mac.mem' start='0x8000' end='0x10000' datawidth='32' /><slave name='rom_system_info.mem' start='0x10000' end='0x18000' datawidth='32' /><slave name='ram_equalizer_gains.mem' start='0x18000' end='0x20000' datawidth='32' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' datawidth='32' /><slave name='ram_bf_weights.mem' start='0x40000' end='0x60000' datawidth='32' /><slave name='ram_st_xsq.mem' start='0x60000' end='0x70000' datawidth='32' /><slave name='ram_ss_ss_wide.mem' start='0x70000' end='0x80000' datawidth='32' /><slave name='ram_wg.mem' start='0x80000' end='0x90000' datawidth='32' /><slave name='ram_fil_coefs.mem' start='0x90000' end='0xA0000' datawidth='32' /><slave name='ram_st_sst.mem' start='0xA0000' end='0xB0000' datawidth='32' /><slave name='jesd204b.mem' start='0xB0000' end='0xB4000' datawidth='32' /><slave name='ram_diag_data_buffer_bsn.mem' start='0x800000' end='0x1000000' datawidth='32' /></address-map></value> </entry> <entry> <key>ADDRESS_WIDTH</key> @@ -12618,7 +12618,7 @@ <name>coe_address_export</name> <role>export</role> <direction>Output</direction> - <width>1</width> + <width>2</width> <lowerBound>0</lowerBound> <vhdlType>STD_LOGIC_VECTOR</vhdlType> </port> @@ -12682,7 +12682,7 @@ <name>avs_mem_address</name> <role>address</role> <direction>Input</direction> - <width>1</width> + <width>2</width> <lowerBound>0</lowerBound> <vhdlType>STD_LOGIC_VECTOR</vhdlType> </port> @@ -12751,7 +12751,7 @@ </entry> <entry> <key>addressSpan</key> - <value>8</value> + <value>16</value> </entry> <entry> <key>addressUnits</key> @@ -13157,11 +13157,11 @@ <suppliedSystemInfos> <entry> <key>ADDRESS_MAP</key> - <value><address-map><slave name='mem' start='0x0' end='0x8' datawidth='32' /></address-map></value> + <value><address-map><slave name='mem' start='0x0' end='0x10' datawidth='32' /></address-map></value> </entry> <entry> <key>ADDRESS_WIDTH</key> - <value>3</value> + <value>4</value> </entry> <entry> <key>MAX_SLAVE_DATA_WIDTH</key> @@ -13198,7 +13198,7 @@ <name>coe_address_export</name> <role>export</role> <direction>Output</direction> - <width>1</width> + <width>2</width> <lowerBound>0</lowerBound> <vhdlType>STD_LOGIC_VECTOR</vhdlType> </port> @@ -13262,7 +13262,7 @@ <name>avs_mem_address</name> <role>address</role> <direction>Input</direction> - <width>1</width> + <width>2</width> <lowerBound>0</lowerBound> <vhdlType>STD_LOGIC_VECTOR</vhdlType> </port> @@ -13331,7 +13331,7 @@ </entry> <entry> <key>addressSpan</key> - <value>8</value> + <value>16</value> </entry> <entry> <key>addressUnits</key> @@ -30252,17 +30252,17 @@ <parameter name="defaultBoundary"><![CDATA[<boundaryDefinition> <interfaces> <interface> - <name>address</name> - <type>conduit</type> + <name>system</name> + <type>clock</type> <isStart>false</isStart> <ports> <port> - <name>coe_address_export</name> - <role>export</role> - <direction>Output</direction> - <width>8</width> + <name>csi_system_clk</name> + <role>clk</role> + <direction>Input</direction> + <width>1</width> <lowerBound>0</lowerBound> - <vhdlType>STD_LOGIC_VECTOR</vhdlType> + <vhdlType>STD_LOGIC</vhdlType> </port> </ports> <assignments> @@ -30271,27 +30271,28 @@ <parameters> <parameterValueMap> <entry> - <key>associatedClock</key> + <key>clockRate</key> + <value>0</value> </entry> <entry> - <key>associatedReset</key> + <key>externallyDriven</key> + <value>false</value> </entry> <entry> - <key>prSafe</key> - <value>false</value> + <key>ptfSchematicName</key> </entry> </parameterValueMap> </parameters> </interface> <interface> - <name>clk</name> - <type>conduit</type> + <name>system_reset</name> + <type>reset</type> <isStart>false</isStart> <ports> <port> - <name>coe_clk_export</name> - <role>export</role> - <direction>Output</direction> + <name>csi_system_reset</name> + <role>reset</role> + <direction>Input</direction> <width>1</width> <lowerBound>0</lowerBound> <vhdlType>STD_LOGIC</vhdlType> @@ -30304,13 +30305,11 @@ <parameterValueMap> <entry> <key>associatedClock</key> + <value>system</value> </entry> <entry> - <key>associatedReset</key> - </entry> - <entry> - <key>prSafe</key> - <value>false</value> + <key>synchronousEdges</key> + <value>DEASSERT</value> </entry> </parameterValueMap> </parameters> @@ -30363,21 +30362,17 @@ </ports> <assignments> <assignmentValueMap> - <entry> - <key>embeddedsw.configuration.isFlash</key> - <value>0</value> - </entry> <entry> <key>embeddedsw.configuration.isMemoryDevice</key> - <value>0</value> + <value>false</value> </entry> <entry> <key>embeddedsw.configuration.isNonVolatileStorage</key> - <value>0</value> + <value>false</value> </entry> <entry> <key>embeddedsw.configuration.isPrintableDevice</key> - <value>0</value> + <value>false</value> </entry> </assignmentValueMap> </assignments> @@ -30417,7 +30412,6 @@ </entry> <entry> <key>bridgedAddressOffset</key> - <value>0</value> </entry> <entry> <key>bridgesToMaster</key> @@ -30550,12 +30544,12 @@ </parameters> </interface> <interface> - <name>read</name> + <name>reset</name> <type>conduit</type> <isStart>false</isStart> <ports> <port> - <name>coe_read_export</name> + <name>coe_reset_export</name> <role>export</role> <direction>Output</direction> <width>1</width> @@ -30582,17 +30576,17 @@ </parameters> </interface> <interface> - <name>readdata</name> + <name>clk</name> <type>conduit</type> <isStart>false</isStart> <ports> <port> - <name>coe_readdata_export</name> + <name>coe_clk_export</name> <role>export</role> - <direction>Input</direction> - <width>32</width> + <direction>Output</direction> + <width>1</width> <lowerBound>0</lowerBound> - <vhdlType>STD_LOGIC_VECTOR</vhdlType> + <vhdlType>STD_LOGIC</vhdlType> </port> </ports> <assignments> @@ -30614,17 +30608,17 @@ </parameters> </interface> <interface> - <name>reset</name> + <name>address</name> <type>conduit</type> <isStart>false</isStart> <ports> <port> - <name>coe_reset_export</name> + <name>coe_address_export</name> <role>export</role> <direction>Output</direction> - <width>1</width> + <width>8</width> <lowerBound>0</lowerBound> - <vhdlType>STD_LOGIC</vhdlType> + <vhdlType>STD_LOGIC_VECTOR</vhdlType> </port> </ports> <assignments> @@ -30646,14 +30640,14 @@ </parameters> </interface> <interface> - <name>system</name> - <type>clock</type> + <name>write</name> + <type>conduit</type> <isStart>false</isStart> <ports> <port> - <name>csi_system_clk</name> - <role>clk</role> - <direction>Input</direction> + <name>coe_write_export</name> + <role>export</role> + <direction>Output</direction> <width>1</width> <lowerBound>0</lowerBound> <vhdlType>STD_LOGIC</vhdlType> @@ -30665,31 +30659,30 @@ <parameters> <parameterValueMap> <entry> - <key>clockRate</key> - <value>0</value> + <key>associatedClock</key> </entry> <entry> - <key>externallyDriven</key> - <value>false</value> + <key>associatedReset</key> </entry> <entry> - <key>ptfSchematicName</key> + <key>prSafe</key> + <value>false</value> </entry> </parameterValueMap> </parameters> </interface> <interface> - <name>system_reset</name> - <type>reset</type> + <name>writedata</name> + <type>conduit</type> <isStart>false</isStart> <ports> <port> - <name>csi_system_reset</name> - <role>reset</role> - <direction>Input</direction> - <width>1</width> + <name>coe_writedata_export</name> + <role>export</role> + <direction>Output</direction> + <width>32</width> <lowerBound>0</lowerBound> - <vhdlType>STD_LOGIC</vhdlType> + <vhdlType>STD_LOGIC_VECTOR</vhdlType> </port> </ports> <assignments> @@ -30699,22 +30692,24 @@ <parameterValueMap> <entry> <key>associatedClock</key> - <value>system</value> </entry> <entry> - <key>synchronousEdges</key> - <value>DEASSERT</value> + <key>associatedReset</key> + </entry> + <entry> + <key>prSafe</key> + <value>false</value> </entry> </parameterValueMap> </parameters> </interface> <interface> - <name>write</name> + <name>read</name> <type>conduit</type> <isStart>false</isStart> <ports> <port> - <name>coe_write_export</name> + <name>coe_read_export</name> <role>export</role> <direction>Output</direction> <width>1</width> @@ -30741,14 +30736,14 @@ </parameters> </interface> <interface> - <name>writedata</name> + <name>readdata</name> <type>conduit</type> <isStart>false</isStart> <ports> <port> - <name>coe_writedata_export</name> + <name>coe_readdata_export</name> <role>export</role> - <direction>Output</direction> + <direction>Input</direction> <width>32</width> <lowerBound>0</lowerBound> <vhdlType>STD_LOGIC_VECTOR</vhdlType> @@ -67485,7 +67480,7 @@ start="cpu_0.data_master" end="jtag_uart_0.avalon_jtag_slave"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b41d8" /> + <parameter name="baseAddress" value="0x37e0" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67565,7 +67560,7 @@ start="cpu_0.data_master" end="pio_pps.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b41d0" /> + <parameter name="baseAddress" value="0x3770" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67605,7 +67600,7 @@ start="cpu_0.data_master" end="reg_remu.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4120" /> + <parameter name="baseAddress" value="0x3720" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67625,7 +67620,7 @@ start="cpu_0.data_master" end="reg_epcs.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4100" /> + <parameter name="baseAddress" value="0x3700" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67645,7 +67640,7 @@ start="cpu_0.data_master" end="reg_dpmm_ctrl.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b41c8" /> + <parameter name="baseAddress" value="0x37d8" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67665,7 +67660,7 @@ start="cpu_0.data_master" end="reg_dpmm_data.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b41c0" /> + <parameter name="baseAddress" value="0x37d0" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67685,7 +67680,7 @@ start="cpu_0.data_master" end="reg_mmdp_ctrl.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b41b8" /> + <parameter name="baseAddress" value="0x37c8" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67705,7 +67700,7 @@ start="cpu_0.data_master" end="reg_mmdp_data.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b41b0" /> + <parameter name="baseAddress" value="0x37c0" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67725,7 +67720,7 @@ start="cpu_0.data_master" end="reg_fpga_temp_sens.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b40e0" /> + <parameter name="baseAddress" value="0x36e0" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67745,7 +67740,7 @@ start="cpu_0.data_master" end="reg_fpga_voltage_sens.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4080" /> + <parameter name="baseAddress" value="0x3680" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67785,7 +67780,7 @@ start="cpu_0.data_master" end="reg_si.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b41a8" /> + <parameter name="baseAddress" value="0x37b8" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67905,7 +67900,7 @@ start="cpu_0.data_master" end="reg_bsn_scheduler.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b41a0" /> + <parameter name="baseAddress" value="0x37b0" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -67925,7 +67920,7 @@ start="cpu_0.data_master" end="reg_bsn_source_v2.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b40c0" /> + <parameter name="baseAddress" value="0x36c0" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68005,7 +68000,7 @@ start="cpu_0.data_master" end="reg_dp_selector.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4198" /> + <parameter name="baseAddress" value="0x37a8" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68085,7 +68080,7 @@ start="cpu_0.data_master" end="reg_bf_scale.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4160" /> + <parameter name="baseAddress" value="0x3760" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68125,7 +68120,7 @@ start="cpu_0.data_master" end="reg_dp_xonoff.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4150" /> + <parameter name="baseAddress" value="0x3750" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68165,7 +68160,7 @@ start="cpu_0.data_master" end="reg_sdp_info.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4040" /> + <parameter name="baseAddress" value="0x3640" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68185,7 +68180,7 @@ start="cpu_0.data_master" end="reg_nw_10gbe_eth10g.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4190" /> + <parameter name="baseAddress" value="0x37a0" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68265,7 +68260,7 @@ start="cpu_0.data_master" end="pio_jesd_ctrl.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4188" /> + <parameter name="baseAddress" value="0x3798" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68285,7 +68280,7 @@ start="cpu_0.data_master" end="reg_stat_enable_sst.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4180" /> + <parameter name="baseAddress" value="0x3790" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68325,7 +68320,7 @@ start="cpu_0.data_master" end="reg_stat_enable_bst.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4140" /> + <parameter name="baseAddress" value="0x3740" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68365,7 +68360,7 @@ start="cpu_0.data_master" end="reg_dp_sync_insert_v2.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4178" /> + <parameter name="baseAddress" value="0x3788" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68385,7 +68380,7 @@ start="cpu_0.data_master" end="reg_crosslets_info.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4000" /> + <parameter name="baseAddress" value="0x3600" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> @@ -68405,7 +68400,7 @@ start="cpu_0.data_master" end="reg_bsn_scheduler_xsub.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x000b4170" /> + <parameter name="baseAddress" value="0x3780" /> <parameter name="defaultConnection" value="false" /> <parameter name="domainAlias" value="" /> <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" /> diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_adc/lofar2_unb2c_sdp_station_adc.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_adc/lofar2_unb2c_sdp_station_adc.vhd index aaae0e3e8a..1205e0b452 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_adc/lofar2_unb2c_sdp_station_adc.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_adc/lofar2_unb2c_sdp_station_adc.vhd @@ -22,7 +22,7 @@ -- Purpose: -- Wrapper for Lofar2 SDP Station adc design -- Description: --- Unb2b version for lab testing +-- Unb2c version for lab testing -- Contains complete AIT input stage with 12 ADC streams diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf/lofar2_unb2c_sdp_station_bf.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf/lofar2_unb2c_sdp_station_bf.vhd index 28832507f3..3076d33960 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf/lofar2_unb2c_sdp_station_bf.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_bf/lofar2_unb2c_sdp_station_bf.vhd @@ -22,7 +22,7 @@ -- Purpose: -- Wrapper for Lofar2 SDP Station beamformer design -- Description: --- Unb2b version for lab testing +-- Unb2c version for lab testing -- Contains complete AIT input stage with 12 ADC streams, FSUB and BF diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_fsub/lofar2_unb2c_sdp_station_fsub.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_fsub/lofar2_unb2c_sdp_station_fsub.vhd index c8f3856024..d293a305d7 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_fsub/lofar2_unb2c_sdp_station_fsub.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_fsub/lofar2_unb2c_sdp_station_fsub.vhd @@ -22,7 +22,7 @@ -- Purpose: -- Wrapper for Lofar2 SDP Station filterbank design -- Description: --- Unb2b version for lab testing +-- Unb2c version for lab testing -- Contains complete AIT input stage with 12 ADC streams and FSUB diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_full/hdllib.cfg b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_full/hdllib.cfg new file mode 100644 index 0000000000..e2d6c0a93c --- /dev/null +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_full/hdllib.cfg @@ -0,0 +1,105 @@ +hdl_lib_name = lofar2_unb2c_sdp_station_full +hdl_library_clause_name = lofar2_unb2c_sdp_station_full_lib +hdl_lib_uses_synth = common mm technology unb2c_board lofar2_unb2c_sdp_station +hdl_lib_uses_sim = eth +hdl_lib_technology = ip_arria10_e2sg + + synth_files = + lofar2_unb2c_sdp_station_full.vhd + +test_bench_files = + +regression_test_vhdl = + +[modelsim_project_file] +modelsim_copy_files = + ../../src/data data + $RADIOHDL_WORK/libraries/dsp/filter/src/hex data # FIR filter coefficients + # Overwrite bf weights with sim data + ../../tb/data data + +[quartus_project_file] +synth_top_level_entity = + +quartus_copy_files = + # Note: path $RADIOHDL_WORK is equivalent to relative path ../../../../../../ + ../../quartus . + ../../src/data data + $RADIOHDL_WORK/libraries/dsp/filter/src/hex data # FIR filter coefficients + +quartus_qsf_files = + $RADIOHDL_WORK/boards/uniboard2c/libraries/unb2c_board/quartus/unb2c_board.qsf + +# use lofar2_unb2c_sdp_station.sdc instead because BCK_REF_CLK is 200MHz, not 644.33MHz. +quartus_sdc_files = + ../../quartus/lofar2_unb2c_sdp_station.sdc + #$RADIOHDL_WORK/boards/uniboard2c/libraries/unb2c_board/quartus/unb2c_board.sdc + +quartus_tcl_files = + ../../quartus/lofar2_unb2c_sdp_station_pins.tcl + +quartus_vhdl_files = + +quartus_qip_files = + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station_full/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station.qip + +quartus_ip_files = + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_avs_common_mm_0.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_avs_common_mm_1.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_avs_eth_0.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_clk_0.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_cpu_0.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_jesd204b.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_jtag_uart_0.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_onchip_memory2_0.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_pio_jesd_ctrl.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_pio_pps.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_pio_system_info.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_pio_wdi.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_bf_weights.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_diag_data_buffer_bsn.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_equalizer_gains.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_fil_coefs.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_scrap.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_ss_ss_wide.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_st_bst.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_st_sst.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_st_xsq.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_ram_wg.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_aduh_monitor.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_bf_scale.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_bsn_monitor_input.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_bsn_scheduler.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_bsn_scheduler_xsub.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_bsn_source_v2.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_crosslets_info.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_diag_data_buffer_bsn.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_dpmm_ctrl.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_dpmm_data.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_dp_selector.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_dp_shiftram.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_dp_sync_insert_v2.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_dp_xonoff.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_epcs.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_fpga_temp_sens.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_fpga_voltage_sens.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_hdr_dat.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_mmdp_ctrl.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_mmdp_data.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_nw_10gbe_eth10g.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_nw_10gbe_mac.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_remu.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_sdp_info.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_si.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_stat_enable_bst.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_stat_enable_sst.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_stat_enable_xst.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_stat_hdr_dat_bst.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_stat_hdr_dat_sst.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_stat_hdr_dat_xst.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_wdi.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_reg_wg.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_rom_system_info.ip + $RADIOHDL_BUILD_DIR/unb2c/quartus/lofar2_unb2c_sdp_station/ip/qsys_lofar2_unb2c_sdp_station/qsys_lofar2_unb2c_sdp_station_timer_0.ip + +nios2_app_userflags = -DCOMPILE_FOR_GEN2_UNB2 diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_full/lofar2_unb2c_sdp_station_full.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_full/lofar2_unb2c_sdp_station_full.vhd new file mode 100644 index 0000000000..c16a176dcd --- /dev/null +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_full/lofar2_unb2c_sdp_station_full.vhd @@ -0,0 +1,161 @@ +------------------------------------------------------------------------------- +-- +-- Copyright 2021 +-- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> +-- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +------------------------------------------------------------------------------- + +-- Author : R. van der Walle +-- Purpose: +-- Wrapper for Lofar2 SDP Station full design +-- Description: +-- Unb2c version for lab testing +-- Contains complete AIT input stage with 12 ADC streams, FSUB, XSUB and BF + + +LIBRARY IEEE, common_lib, unb2c_board_lib, technology_lib, diag_lib, dp_lib, tech_jesd204b_lib, lofar2_unb2c_sdp_station_lib; +USE IEEE.STD_LOGIC_1164.ALL; +USE IEEE.NUMERIC_STD.ALL; +USE common_lib.common_pkg.ALL; +USE common_lib.common_mem_pkg.ALL; +USE technology_lib.technology_pkg.ALL; +USE unb2c_board_lib.unb2c_board_pkg.ALL; +USE diag_lib.diag_pkg.ALL; +USE dp_lib.dp_stream_pkg.ALL; + +ENTITY lofar2_unb2c_sdp_station_full IS + GENERIC ( + g_design_name : STRING := "lofar2_unb2c_sdp_station_full"; + g_design_note : STRING := "Lofar2 SDP station full design"; + g_sim : BOOLEAN := FALSE; --Overridden by TB + g_sim_unb_nr : NATURAL := 0; + g_sim_node_nr : NATURAL := 0; + g_stamp_date : NATURAL := 0; -- Date (YYYYMMDD) -- set by QSF + g_stamp_time : NATURAL := 0; -- Time (HHMMSS) -- set by QSF + g_revision_id : STRING := "" -- revision ID -- set by QSF + ); + PORT ( + -- GENERAL + CLK : IN STD_LOGIC; -- System Clock + PPS : IN STD_LOGIC; -- System Sync + WDI : OUT STD_LOGIC; -- Watchdog Clear + INTA : INOUT STD_LOGIC; -- FPGA interconnect line + INTB : INOUT STD_LOGIC; -- FPGA interconnect line + + -- Others + VERSION : IN STD_LOGIC_VECTOR(c_unb2c_board_aux.version_w-1 DOWNTO 0); + ID : IN STD_LOGIC_VECTOR(c_unb2c_board_aux.id_w-1 DOWNTO 0); + TESTIO : INOUT STD_LOGIC_VECTOR(c_unb2c_board_aux.testio_w-1 DOWNTO 0); + + -- 1GbE Control Interface + ETH_CLK : IN STD_LOGIC_VECTOR(c_unb2c_board_nof_eth-1 DOWNTO 0); + ETH_SGIN : IN STD_LOGIC_VECTOR(c_unb2c_board_nof_eth-1 DOWNTO 0); + ETH_SGOUT : OUT STD_LOGIC_VECTOR(c_unb2c_board_nof_eth-1 DOWNTO 0); + + -- Transceiver clocks + SA_CLK : IN STD_LOGIC := '0'; -- Clock 10GbE front (qsfp) and ring lines + + -- front transceivers + QSFP_1_RX : IN STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp.bus_w-1 downto 0) := (OTHERS=>'0'); + QSFP_1_TX : OUT STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp.bus_w-1 downto 0); + + -- LEDs + QSFP_LED : OUT STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp_nof_leds-1 DOWNTO 0); + + -- back transceivers (note only 6 are used in unb2c) + BCK_RX : IN STD_LOGIC_VECTOR(c_unb2c_board_nof_tr_jesd204b + c_unb2c_board_start_tr_jesd204b-1 downto c_unb2c_board_nof_tr_jesd204b); + BCK_REF_CLK : IN STD_LOGIC; -- Use as JESD204B_REFCLK + + -- jesd204b syncronization signals (2 syncs) + JESD204B_SYSREF : IN STD_LOGIC; + JESD204B_SYNC_N : OUT STD_LOGIC_VECTOR(c_unb2c_board_nof_sync_jesd204b-1 DOWNTO 0) + ); +END lofar2_unb2c_sdp_station_full; + +ARCHITECTURE str OF lofar2_unb2c_sdp_station_full IS + + SIGNAL JESD204B_SERIAL_DATA : STD_LOGIC_VECTOR((c_unb2c_board_tr_jesd204b.bus_w*c_unb2c_board_tr_jesd204b.nof_bus)-1 downto 0); + SIGNAL jesd204b_sync_n_arr : STD_LOGIC_VECTOR((c_unb2c_board_tr_jesd204b.bus_w*c_unb2c_board_tr_jesd204b.nof_bus)-1 downto 0); + SIGNAL JESD204B_REFCLK : STD_LOGIC; + + +BEGIN + + -- Mapping between JESD signal names and UNB2B pin/schematic names + JESD204B_REFCLK <= BCK_REF_CLK; + JESD204B_SERIAL_DATA(0) <= BCK_RX(42); + JESD204B_SERIAL_DATA(1) <= BCK_RX(43); + JESD204B_SERIAL_DATA(2) <= BCK_RX(44); + JESD204B_SERIAL_DATA(3) <= BCK_RX(45); + JESD204B_SERIAL_DATA(4) <= BCK_RX(46); + JESD204B_SERIAL_DATA(5) <= BCK_RX(47); + JESD204B_SERIAL_DATA(6) <= '0'; + JESD204B_SERIAL_DATA(7) <= '0'; + JESD204B_SERIAL_DATA(8) <= '0'; + JESD204B_SERIAL_DATA(9) <= '0'; + JESD204B_SERIAL_DATA(10) <= '0'; + JESD204B_SERIAL_DATA(11) <= '0'; + JESD204B_SYNC_N(c_unb2c_board_nof_sync_jesd204b-1 DOWNTO 0) <= jesd204b_sync_n_arr(c_unb2c_board_nof_sync_jesd204b-1 DOWNTO 0); + + + u_revision : ENTITY lofar2_unb2c_sdp_station_lib.lofar2_unb2c_sdp_station + GENERIC MAP ( + g_design_name => g_design_name, + g_design_note => g_design_note, + g_sim => g_sim, + g_sim_unb_nr => g_sim_unb_nr, + g_sim_node_nr => g_sim_node_nr, + g_stamp_date => g_stamp_date, + g_stamp_time => g_stamp_time, + g_revision_id => g_revision_id + ) + PORT MAP ( + -- GENERAL + CLK => CLK, + PPS => PPS, + WDI => WDI, + INTA => INTA, + INTB => INTB, + + -- Others + VERSION => VERSION, + ID => ID, + TESTIO => TESTIO, + + -- 1GbE Control Interface + ETH_clk => ETH_clk, + ETH_SGIN => ETH_SGIN, + ETH_SGOUT => ETH_SGOUT, + + -- Transceiver clocks + SA_CLK => SA_CLK, + + -- front transceivers + QSFP_1_RX => QSFP_1_RX, + QSFP_1_TX => QSFP_1_TX, + + -- LEDs + QSFP_LED => QSFP_LED, + + -- back transceivers + JESD204B_SERIAL_DATA => JESD204B_SERIAL_DATA, + JESD204B_REFCLK => JESD204B_REFCLK, + + -- jesd204b syncronization signals + JESD204B_SYSREF => JESD204B_SYSREF, + JESD204B_SYNC_N => jesd204b_sync_n_arr + ); +END str; diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_xsub_one/lofar2_unb2c_sdp_station_xsub_one.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_xsub_one/lofar2_unb2c_sdp_station_xsub_one.vhd index 4dfb6cbabf..0d792d0d60 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_xsub_one/lofar2_unb2c_sdp_station_xsub_one.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/revisions/lofar2_unb2c_sdp_station_xsub_one/lofar2_unb2c_sdp_station_xsub_one.vhd @@ -22,7 +22,7 @@ -- Purpose: -- Wrapper for Lofar2 SDP Station subband correlator design -- Description: --- Unb2b version for lab testing +-- Unb2c version for lab testing -- Contains complete AIT input stage with 12 ADC streams, FSUB and XSUB for XST from one node. diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station.vhd index c1d18b8240..7819eb6d3e 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/lofar2_unb2c_sdp_station.vhd @@ -1,6 +1,6 @@ ------------------------------------------------------------------------------- -- --- Copyright 2020 +-- Copyright 2021 -- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> -- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -- @@ -23,7 +23,7 @@ -- Purpose: -- Core design for Lofar2 SDP station -- Description: --- Unb2b version for lab testing +-- Unb2c version for lab testing, using generic sdp_station.vhd for LOFAR2 SDP application. ------------------------------------------------------------------------------- LIBRARY IEEE, common_lib, unb2c_board_lib, technology_lib, diag_lib, dp_lib, tech_jesd204b_lib, wpfb_lib, lofar2_sdp_lib, tech_pll_lib, nw_10gbe_lib, eth_lib; @@ -110,32 +110,9 @@ ARCHITECTURE str OF lofar2_unb2c_sdp_station IS CONSTANT c_lofar2_sample_clk_freq : NATURAL := c_sdp_f_adc_MHz * 10**6; -- fixed 200 MHz for LOFAR2.0 stage 1 -- 10 GbE Interface - CONSTANT c_nof_streams_qsfp : NATURAL := c_unb2c_board_tr_qsfp.nof_bus * c_quad; - CONSTANT c_nof_qsfp_bus : NATURAL := 1; - CONSTANT c_nof_10GbE_offload_streams : NATURAL := 1; - CONSTANT c_nof_blocks_per_packet : NATURAL := 4; - CONSTANT c_nof_beamlets_per_block : NATURAL := c_sdp_N_pol * c_sdp_S_sub_bf; - CONSTANT c_10GbE_block_size : NATURAL := c_nof_blocks_per_packet * c_nof_beamlets_per_block / 4; -- 4 beamlets fit in 1 64bit longword - CONSTANT c_fifo_tx_fill : NATURAL := c_10GbE_block_size; - CONSTANT c_fifo_tx_size : NATURAL := c_fifo_tx_fill + 11; -- Make fifo size large enough for adding header. + CONSTANT c_nof_streams_qsfp : NATURAL := c_unb2c_board_tr_qsfp.nof_bus * c_quad; - -- Address widths of a single MM instance - CONSTANT c_addr_w_ram_ss_ss_wide : NATURAL := ceil_log2(c_sdp_P_pfb * c_sdp_S_sub_bf * c_sdp_Q_fft); - CONSTANT c_addr_w_ram_bf_weights : NATURAL := ceil_log2(c_sdp_N_pol * c_sdp_P_pfb * c_sdp_S_sub_bf * c_sdp_Q_fft); - CONSTANT c_addr_w_reg_bf_scale : NATURAL := 1; - CONSTANT c_addr_w_reg_hdr_dat : NATURAL := ceil_log2(field_nof_words(c_sdp_cep_hdr_field_arr, c_word_w)); - CONSTANT c_addr_w_reg_dp_xonoff : NATURAL := 1; - CONSTANT c_addr_w_ram_st_bst : NATURAL := ceil_log2(c_sdp_S_sub_bf*c_sdp_N_pol*(c_longword_sz/c_word_sz)); - - -- - CONSTANT c_udp_offload_nof_streams : NATURAL := c_eth_nof_udp_ports; - - -- Read only sdp_info values - CONSTANT c_f_adc : STD_LOGIC := '1'; -- '0' => 160M, '1' => 200M - CONSTANT c_fsub_type : STD_LOGIC := '0'; -- '0' => critical sampled PFB, '1' => oversampled PFB - SIGNAL gn_id : STD_LOGIC_VECTOR(c_sdp_W_gn_id-1 DOWNTO 0); - SIGNAL gn_index : NATURAL := 0; -- System SIGNAL cs_sim : STD_LOGIC; @@ -303,38 +280,26 @@ ARCHITECTURE str OF lofar2_unb2c_sdp_station IS -- Beamlet Subband Select SIGNAL ram_ss_ss_wide_mosi : t_mem_mosi := c_mem_mosi_rst; SIGNAL ram_ss_ss_wide_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL ram_ss_ss_wide_mosi_arr : t_mem_mosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_mosi_rst); - SIGNAL ram_ss_ss_wide_miso_arr : t_mem_miso_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_miso_rst); -- Local BF bf weights SIGNAL ram_bf_weights_mosi : t_mem_mosi := c_mem_mosi_rst; SIGNAL ram_bf_weights_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL ram_bf_weights_mosi_arr : t_mem_mosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_mosi_rst); - SIGNAL ram_bf_weights_miso_arr : t_mem_miso_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_miso_rst); -- mms_dp_scale Scale Beamlets SIGNAL reg_bf_scale_mosi : t_mem_mosi := c_mem_mosi_rst; SIGNAL reg_bf_scale_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL reg_bf_scale_mosi_arr : t_mem_mosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_mosi_rst); - SIGNAL reg_bf_scale_miso_arr : t_mem_miso_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_miso_rst); -- Beamlet Data Output header fields SIGNAL reg_hdr_dat_mosi : t_mem_mosi := c_mem_mosi_rst; SIGNAL reg_hdr_dat_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL reg_hdr_dat_mosi_arr : t_mem_mosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_mosi_rst); - SIGNAL reg_hdr_dat_miso_arr : t_mem_miso_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_miso_rst); -- Beamlet Data Output xonoff SIGNAL reg_dp_xonoff_mosi : t_mem_mosi := c_mem_mosi_rst; SIGNAL reg_dp_xonoff_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL reg_dp_xonoff_mosi_arr : t_mem_mosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_mosi_rst); - SIGNAL reg_dp_xonoff_miso_arr : t_mem_miso_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_miso_rst); -- Beamlet Statistics (BST) SIGNAL ram_st_bst_mosi : t_mem_mosi := c_mem_mosi_rst; SIGNAL ram_st_bst_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL ram_st_bst_mosi_arr : t_mem_mosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_mosi_rst); - SIGNAL ram_st_bst_miso_arr : t_mem_miso_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_miso_rst); ---------------------------------------------- -- SST @@ -364,20 +329,16 @@ ARCHITECTURE str OF lofar2_unb2c_sdp_station IS -- Statistics Enable SIGNAL reg_stat_enable_bst_mosi : t_mem_mosi := c_mem_mosi_rst; SIGNAL reg_stat_enable_bst_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL reg_stat_enable_bst_mosi_arr : t_mem_mosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_mosi_rst); - SIGNAL reg_stat_enable_bst_miso_arr : t_mem_miso_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_miso_rst); -- Statistics header info SIGNAL reg_stat_hdr_dat_bst_mosi : t_mem_mosi := c_mem_mosi_rst; SIGNAL reg_stat_hdr_dat_bst_miso : t_mem_miso := c_mem_miso_rst; - SIGNAL reg_stat_hdr_dat_bst_mosi_arr : t_mem_mosi_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_mosi_rst); - SIGNAL reg_stat_hdr_dat_bst_miso_arr : t_mem_miso_arr(c_sdp_N_beamsets-1 DOWNTO 0) := (OTHERS => c_mem_miso_rst); ---------------------------------------------- -- UDP Offload ---------------------------------------------- - SIGNAL udp_tx_sosi_arr : t_dp_sosi_arr(c_udp_offload_nof_streams-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); - SIGNAL udp_tx_siso_arr : t_dp_siso_arr(c_udp_offload_nof_streams-1 DOWNTO 0) := (OTHERS => c_dp_siso_rdy); + SIGNAL udp_tx_sosi_arr : t_dp_sosi_arr(c_eth_nof_udp_ports-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); + SIGNAL udp_tx_siso_arr : t_dp_siso_arr(c_eth_nof_udp_ports-1 DOWNTO 0) := (OTHERS => c_dp_siso_rdy); ---------------------------------------------- -- 10 GbE @@ -388,57 +349,23 @@ ARCHITECTURE str OF lofar2_unb2c_sdp_station IS SIGNAL reg_nw_10GbE_eth10g_mosi : t_mem_mosi := c_mem_mosi_rst; SIGNAL reg_nw_10GbE_eth10g_miso : t_mem_miso := c_mem_miso_rst; - ---------------------------------------------- - - SIGNAL ait_sosi_arr : t_dp_sosi_arr(c_sdp_S_pn-1 DOWNTO 0); - SIGNAL pfb_sosi_arr : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0); - SIGNAL fsub_sosi_arr : t_dp_sosi_arr(c_sdp_P_pfb-1 DOWNTO 0); - - SIGNAL dp_bsn_source_restart : STD_LOGIC; - - SIGNAL bf_udp_sosi_arr : t_dp_sosi_arr(c_sdp_N_beamsets-1 DOWNTO 0); - SIGNAL bf_udp_siso_arr : t_dp_siso_arr(c_sdp_N_beamsets-1 DOWNTO 0); - SIGNAL bf_10GbE_hdr_fields_out_arr : t_slv_1024_arr(c_sdp_N_beamsets-1 DOWNTO 0); - -- 10GbE - SIGNAL tr_ref_clk_312 : STD_LOGIC; - SIGNAL tr_ref_clk_156 : STD_LOGIC; - SIGNAL tr_ref_rst_156 : STD_LOGIC; - SIGNAL i_QSFP_TX : t_unb2c_board_qsfp_bus_2arr(c_unb2c_board_tr_qsfp.nof_bus-1 DOWNTO 0) := (OTHERS => (OTHERS => '0')); SIGNAL i_QSFP_RX : t_unb2c_board_qsfp_bus_2arr(c_unb2c_board_tr_qsfp.nof_bus-1 DOWNTO 0) := (OTHERS => (OTHERS => '0')); SIGNAL unb2_board_front_io_serial_tx_arr : STD_LOGIC_VECTOR(c_nof_streams_qsfp-1 DOWNTO 0) := (OTHERS => '0'); SIGNAL unb2_board_front_io_serial_rx_arr : STD_LOGIC_VECTOR(c_nof_streams_qsfp-1 DOWNTO 0) := (OTHERS => '0'); - SIGNAL nw_10gbe_snk_in_arr : t_dp_sosi_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); - SIGNAL nw_10gbe_snk_out_arr : t_dp_siso_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0) := (OTHERS => c_dp_siso_rdy); - SIGNAL nw_10gbe_src_out_arr : t_dp_sosi_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); - SIGNAL nw_10gbe_src_in_arr : t_dp_siso_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0) := (OTHERS => c_dp_siso_rdy); - - SIGNAL nw_10GbE_hdr_fields_in_arr : t_slv_1024_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0); - SIGNAL this_bck_id : STD_LOGIC_VECTOR(c_unb2c_board_nof_uniboard_w-1 DOWNTO 0); SIGNAL this_chip_id : STD_LOGIC_VECTOR(c_unb2c_board_nof_chip_w-1 DOWNTO 0); - SIGNAL cep_eth_src_mac : STD_LOGIC_VECTOR(c_network_eth_mac_addr_w-1 DOWNTO 0); - SIGNAL cep_ip_src_addr : STD_LOGIC_VECTOR(c_network_ip_addr_w-1 DOWNTO 0); - SIGNAL cep_udp_src_port : STD_LOGIC_VECTOR(c_network_udp_port_w-1 DOWNTO 0); - SIGNAL stat_eth_src_mac : STD_LOGIC_VECTOR(c_network_eth_mac_addr_w-1 DOWNTO 0); - SIGNAL stat_ip_src_addr : STD_LOGIC_VECTOR(c_network_ip_addr_w-1 DOWNTO 0); - SIGNAL sst_udp_src_port : STD_LOGIC_VECTOR(c_network_udp_port_w-1 DOWNTO 0); - SIGNAL bst_udp_src_port : STD_LOGIC_VECTOR(c_network_udp_port_w-1 DOWNTO 0); - SIGNAL xst_udp_src_port : STD_LOGIC_VECTOR(c_network_udp_port_w-1 DOWNTO 0); - - SIGNAL sdp_info : t_sdp_info := c_sdp_info_rst; - -- QSFP LEDS SIGNAL qsfp_green_led_arr : STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp.nof_bus-1 DOWNTO 0); SIGNAL qsfp_red_led_arr : STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp.nof_bus-1 DOWNTO 0); - SIGNAL unb2c_board_qsfp_leds_tx_sosi_arr : t_dp_sosi_arr(c_nof_streams_qsfp-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); - SIGNAL unb2c_board_qsfp_leds_tx_siso_arr : t_dp_siso_arr(c_nof_streams_qsfp-1 DOWNTO 0) := (OTHERS => c_dp_siso_rst); - SIGNAL unb2c_board_qsfp_leds_rx_sosi_arr : t_dp_sosi_arr(c_nof_streams_qsfp-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); + SIGNAL unb2_board_qsfp_leds_tx_sosi_arr : t_dp_sosi_arr(c_nof_streams_qsfp-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); + SIGNAL unb2_board_qsfp_leds_tx_siso_arr : t_dp_siso_arr(c_nof_streams_qsfp-1 DOWNTO 0) := (OTHERS => c_dp_siso_rst); + SIGNAL unb2_board_qsfp_leds_rx_sosi_arr : t_dp_sosi_arr(c_nof_streams_qsfp-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); BEGIN @@ -689,65 +616,59 @@ BEGIN ram_st_xsq_miso => ram_st_xsq_miso ); - ----------------------------------------------------------------------------- - -- SDP Info register - ----------------------------------------------------------------------------- - gn_id <= ID(c_sdp_W_gn_id-1 DOWNTO 0); - gn_index <= TO_UINT(gn_id); - -- derive MAC, IP and UDP Port - cep_eth_src_mac <= c_sdp_cep_eth_src_mac_47_16 & RESIZE_UVEC(this_bck_id, c_byte_w) & RESIZE_UVEC(this_chip_id, c_byte_w); -- Simply use chip_id since we only use 1 of the 6*4 = 24 10GbE port. - cep_ip_src_addr <= c_sdp_cep_ip_src_addr_31_16 & RESIZE_UVEC(this_bck_id, c_byte_w) & INCR_UVEC(RESIZE_UVEC(this_chip_id, c_byte_w), 1); -- +1 to avoid IP = *.*.*.0 - cep_udp_src_port <= c_sdp_cep_udp_src_port_15_8 & ID; - - stat_eth_src_mac <= c_sdp_stat_eth_src_mac_47_16 & RESIZE_UVEC(this_bck_id, c_byte_w) & RESIZE_UVEC(this_chip_id, c_byte_w); -- Simply use chip_id since we only use 1 of the 6*4 = 24 10GbE port. - stat_ip_src_addr <= c_sdp_stat_ip_src_addr_31_16 & RESIZE_UVEC(this_bck_id, c_byte_w) & INCR_UVEC(RESIZE_UVEC(this_chip_id, c_byte_w), 1); -- +1 to avoid IP = *.*.*.0 - sst_udp_src_port <= c_sdp_sst_udp_src_port_15_8 & ID; - bst_udp_src_port <= c_sdp_bst_udp_src_port_15_8 & ID; - xst_udp_src_port <= c_sdp_xst_udp_src_port_15_8 & ID; - - u_sdp_info : ENTITY lofar2_sdp_lib.sdp_info - PORT MAP( - -- Clocks and reset - mm_rst => mm_rst, -- reset synchronous with mm_clk - mm_clk => mm_clk, -- memory-mapped bus clock - - dp_clk => dp_clk, - dp_rst => dp_rst, - - reg_mosi => reg_sdp_info_mosi, - reg_miso => reg_sdp_info_miso, - - -- inputs from other blocks - gn_index => gn_index, - f_adc => c_f_adc, - fsub_type => c_fsub_type, - - -- sdp info - sdp_info => sdp_info - ); + gn_id <= ID(c_sdp_W_gn_id-1 DOWNTO 0); ----------------------------------------------------------------------------- - -- node_adc_input_and_timing (AIT) - -- .Contains JESD receiver, bsn source and associated data buffers, diagnostics and statistics + -- sdp nodes ----------------------------------------------------------------------------- - u_ait: ENTITY lofar2_sdp_lib.node_sdp_adc_input_and_timing - GENERIC MAP( - g_technology => g_technology, - g_sim => g_sim, - g_bsn_nof_clk_per_sync => g_bsn_nof_clk_per_sync + u_sdp_station : ENTITY lofar2_sdp_lib.sdp_station + GENERIC MAP ( + g_technology => g_technology, + g_sim => g_sim, + g_wpfb => g_wpfb, + g_bsn_nof_clk_per_sync => g_bsn_nof_clk_per_sync, + g_scope_selected_subband => g_scope_selected_subband, + g_use_fsub => c_revision_select.use_fsub, + g_use_xsub => c_revision_select.use_xsub, + g_use_bf => c_revision_select.use_bf, + g_P_sq => c_revision_select.P_sq ) - PORT MAP( - -- clocks and resets - mm_clk => mm_clk, - mm_rst => mm_rst, - dp_clk => dp_clk, - dp_rst => dp_rst, - - -- mm control buses - jesd_ctrl_mosi => jesd_ctrl_mosi, - jesd_ctrl_miso => jesd_ctrl_miso, - jesd204b_mosi => jesd204b_mosi, - jesd204b_miso => jesd204b_miso, + PORT MAP ( + + mm_clk => mm_clk, + mm_rst => mm_rst, + + dp_pps => dp_pps, + dp_rst => dp_rst, + dp_clk => dp_clk, + + gn_id => gn_id, + this_bck_id => this_bck_id, + this_chip_id => this_chip_id, + + SA_CLK => SA_CLK, + + -- jesd204b + JESD204B_SERIAL_DATA => JESD204B_SERIAL_DATA, + JESD204B_REFCLK => JESD204B_REFCLK, + JESD204B_SYSREF => JESD204B_SYSREF, + JESD204B_SYNC_N => JESD204B_SYNC_N, + + -- UDP Offload + udp_tx_sosi_arr => udp_tx_sosi_arr, + udp_tx_siso_arr => udp_tx_siso_arr, + + -- 10 GbE + reg_nw_10GbE_mac_mosi => reg_nw_10GbE_mac_mosi, + reg_nw_10GbE_mac_miso => reg_nw_10GbE_mac_miso, + reg_nw_10GbE_eth10g_mosi => reg_nw_10GbE_eth10g_mosi, + reg_nw_10GbE_eth10g_miso => reg_nw_10GbE_eth10g_miso, + + -- AIT + jesd204b_mosi => jesd204b_mosi, + jesd204b_miso => jesd204b_miso, + jesd_ctrl_mosi => jesd_ctrl_mosi, + jesd_ctrl_miso => jesd_ctrl_miso, reg_dp_shiftram_mosi => reg_dp_shiftram_mosi, reg_dp_shiftram_miso => reg_dp_shiftram_miso, reg_bsn_source_v2_mosi => reg_bsn_source_v2_mosi, @@ -766,341 +687,75 @@ BEGIN reg_diag_data_buf_bsn_miso => reg_diag_data_buf_bsn_miso, reg_aduh_monitor_mosi => reg_aduh_monitor_mosi, reg_aduh_monitor_miso => reg_aduh_monitor_miso, - - -- Jesd external IOs - jesd204b_serial_data => JESD204B_SERIAL_DATA, - jesd204b_refclk => JESD204B_REFCLK, - jesd204b_sysref => JESD204B_SYSREF, - jesd204b_sync_n => JESD204B_SYNC_N, - - -- Streaming data output - out_sosi_arr => ait_sosi_arr, - dp_bsn_source_restart => dp_bsn_source_restart + + -- FSUB + ram_st_sst_mosi => ram_st_sst_mosi, + ram_st_sst_miso => ram_st_sst_miso, + reg_si_mosi => reg_si_mosi, + reg_si_miso => reg_si_miso, + ram_fil_coefs_mosi => ram_fil_coefs_mosi, + ram_fil_coefs_miso => ram_fil_coefs_miso, + ram_equalizer_gains_mosi => ram_equalizer_gains_mosi, + ram_equalizer_gains_miso => ram_equalizer_gains_miso, + reg_dp_selector_mosi => reg_dp_selector_mosi, + reg_dp_selector_miso => reg_dp_selector_miso, + + -- SDP Info + reg_sdp_info_mosi => reg_sdp_info_mosi, + reg_sdp_info_miso => reg_sdp_info_miso, + + -- XSUB + reg_dp_sync_insert_v2_mosi => reg_dp_sync_insert_v2_mosi, + reg_dp_sync_insert_v2_miso => reg_dp_sync_insert_v2_miso, + reg_crosslets_info_mosi => reg_crosslets_info_mosi, + reg_crosslets_info_miso => reg_crosslets_info_miso, + reg_bsn_scheduler_xsub_mosi => reg_bsn_scheduler_xsub_mosi, + reg_bsn_scheduler_xsub_miso => reg_bsn_scheduler_xsub_miso, + ram_st_xsq_mosi => ram_st_xsq_mosi, + ram_st_xsq_miso => ram_st_xsq_miso, + + -- BF + 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_bf_scale_mosi => reg_bf_scale_mosi, + reg_bf_scale_miso => reg_bf_scale_miso, + reg_hdr_dat_mosi => reg_hdr_dat_mosi, + reg_hdr_dat_miso => reg_hdr_dat_miso, + reg_dp_xonoff_mosi => reg_dp_xonoff_mosi, + reg_dp_xonoff_miso => reg_dp_xonoff_miso, + ram_st_bst_mosi => ram_st_bst_mosi, + ram_st_bst_miso => ram_st_bst_miso, + + -- SST + reg_stat_enable_sst_mosi => reg_stat_enable_sst_mosi, + reg_stat_enable_sst_miso => reg_stat_enable_sst_miso, + reg_stat_hdr_dat_sst_mosi => reg_stat_hdr_dat_sst_mosi, + reg_stat_hdr_dat_sst_miso => reg_stat_hdr_dat_sst_miso, + + -- XST + reg_stat_enable_xst_mosi => reg_stat_enable_xst_mosi, + reg_stat_enable_xst_miso => reg_stat_enable_xst_miso, + reg_stat_hdr_dat_xst_mosi => reg_stat_hdr_dat_xst_mosi, + reg_stat_hdr_dat_xst_miso => reg_stat_hdr_dat_xst_miso, + + -- BST + reg_stat_enable_bst_mosi => reg_stat_enable_bst_mosi, + reg_stat_enable_bst_miso => reg_stat_enable_bst_miso, + reg_stat_hdr_dat_bst_mosi => reg_stat_hdr_dat_bst_mosi, + reg_stat_hdr_dat_bst_miso => reg_stat_hdr_dat_bst_miso, + + -- QSFP serial + unb2_board_front_io_serial_tx_arr => unb2_board_front_io_serial_tx_arr, + unb2_board_front_io_serial_rx_arr => unb2_board_front_io_serial_rx_arr, + + -- QSFP LEDS + unb2_board_qsfp_leds_tx_sosi_arr => unb2_board_qsfp_leds_tx_sosi_arr, + unb2_board_qsfp_leds_tx_siso_arr => unb2_board_qsfp_leds_tx_siso_arr, + unb2_board_qsfp_leds_rx_sosi_arr => unb2_board_qsfp_leds_rx_sosi_arr ); - ----------------------------------------------------------------------------- - -- node_sdp_filterbank (FSUB) - ----------------------------------------------------------------------------- - gen_use_fsub : IF c_revision_select.use_fsub GENERATE - u_fsub : ENTITY lofar2_sdp_lib.node_sdp_filterbank - GENERIC MAP( - g_sim => g_sim, - g_wpfb => g_wpfb, - g_scope_selected_subband => g_scope_selected_subband - ) - PORT MAP( - dp_clk => dp_clk, - dp_rst => dp_rst, - - in_sosi_arr => ait_sosi_arr, - pfb_sosi_arr => pfb_sosi_arr, - fsub_sosi_arr => fsub_sosi_arr, - dp_bsn_source_restart => dp_bsn_source_restart, - - sst_udp_sosi => udp_tx_sosi_arr(0), - sst_udp_siso => udp_tx_siso_arr(0), - - mm_rst => mm_rst, - mm_clk => mm_clk, - - reg_si_mosi => reg_si_mosi, - reg_si_miso => reg_si_miso, - ram_st_sst_mosi => ram_st_sst_mosi, - ram_st_sst_miso => ram_st_sst_miso, - ram_fil_coefs_mosi => ram_fil_coefs_mosi, - ram_fil_coefs_miso => ram_fil_coefs_miso, - ram_gains_mosi => ram_equalizer_gains_mosi, - ram_gains_miso => ram_equalizer_gains_miso, - reg_selector_mosi => reg_dp_selector_mosi, - reg_selector_miso => reg_dp_selector_miso, - - reg_enable_mosi => reg_stat_enable_sst_mosi, - reg_enable_miso => reg_stat_enable_sst_miso, - reg_hdr_dat_mosi => reg_stat_hdr_dat_sst_mosi, - reg_hdr_dat_miso => reg_stat_hdr_dat_sst_miso, - - sdp_info => sdp_info, - gn_id => gn_id, - eth_src_mac => stat_eth_src_mac, - ip_src_addr => stat_ip_src_addr, - udp_src_port => sst_udp_src_port - ); - END GENERATE; - - - ----------------------------------------------------------------------------- - -- node_sdp_correlator (XSUB) - ----------------------------------------------------------------------------- - gen_use_xsub : IF c_revision_select.use_xsub GENERATE - u_xsub : ENTITY lofar2_sdp_lib.node_sdp_correlator - GENERIC MAP( - g_sim => g_sim, - g_P_sq => c_revision_select.P_sq - ) - PORT MAP( - dp_clk => dp_clk, - dp_rst => dp_rst, - - in_sosi_arr => fsub_sosi_arr, - - xst_udp_sosi => udp_tx_sosi_arr(1), - xst_udp_siso => udp_tx_siso_arr(1), - - mm_rst => mm_rst, - mm_clk => mm_clk, - - reg_dp_sync_insert_v2_mosi => reg_dp_sync_insert_v2_mosi, - reg_dp_sync_insert_v2_miso => reg_dp_sync_insert_v2_miso, - reg_crosslets_info_mosi => reg_crosslets_info_mosi, - reg_crosslets_info_miso => reg_crosslets_info_miso, - reg_bsn_scheduler_xsub_mosi => reg_bsn_scheduler_xsub_mosi, - reg_bsn_scheduler_xsub_miso => reg_bsn_scheduler_xsub_miso, - ram_st_xsq_mosi => ram_st_xsq_mosi, - ram_st_xsq_miso => ram_st_xsq_miso, - - reg_stat_enable_mosi => reg_stat_enable_xst_mosi, - reg_stat_enable_miso => reg_stat_enable_xst_miso, - reg_stat_hdr_dat_mosi => reg_stat_hdr_dat_xst_mosi, - reg_stat_hdr_dat_miso => reg_stat_hdr_dat_xst_miso, - - sdp_info => sdp_info, - gn_id => gn_id, - stat_eth_src_mac => stat_eth_src_mac, - stat_ip_src_addr => stat_ip_src_addr, - stat_udp_src_port => xst_udp_src_port - ); - END GENERATE; - - ----------------------------------------------------------------------------- - -- nof beamsets node_sdp_beamformers (BF) - ----------------------------------------------------------------------------- - gen_use_bf : IF c_revision_select.use_bf GENERATE - -- Beamformers - gen_bf : FOR beamset_id IN 0 TO c_sdp_N_beamsets-1 GENERATE - u_bf : ENTITY lofar2_sdp_lib.node_sdp_beamformer - GENERIC MAP( - g_sim => g_sim, - g_beamset_id => beamset_id, - g_scope_selected_beamlet => g_scope_selected_subband - ) - PORT MAP( - dp_clk => dp_clk, - dp_rst => dp_rst, - - in_sosi_arr => fsub_sosi_arr, - bf_udp_sosi => bf_udp_sosi_arr(beamset_id), - bf_udp_siso => bf_udp_siso_arr(beamset_id), - bst_udp_sosi => udp_tx_sosi_arr(2+ beamset_id), - bst_udp_siso => udp_tx_siso_arr(2+ beamset_id), - - mm_rst => mm_rst, - mm_clk => mm_clk, - - ram_ss_ss_wide_mosi => ram_ss_ss_wide_mosi_arr(beamset_id), - ram_ss_ss_wide_miso => ram_ss_ss_wide_miso_arr(beamset_id), - ram_bf_weights_mosi => ram_bf_weights_mosi_arr(beamset_id), - ram_bf_weights_miso => ram_bf_weights_miso_arr(beamset_id), - reg_bf_scale_mosi => reg_bf_scale_mosi_arr(beamset_id), - reg_bf_scale_miso => reg_bf_scale_miso_arr(beamset_id), - reg_hdr_dat_mosi => reg_hdr_dat_mosi_arr(beamset_id), - reg_hdr_dat_miso => reg_hdr_dat_miso_arr(beamset_id), - reg_dp_xonoff_mosi => reg_dp_xonoff_mosi_arr(beamset_id), - reg_dp_xonoff_miso => reg_dp_xonoff_miso_arr(beamset_id), - ram_st_bst_mosi => ram_st_bst_mosi_arr(beamset_id), - ram_st_bst_miso => ram_st_bst_miso_arr(beamset_id), - reg_stat_enable_mosi => reg_stat_enable_bst_mosi_arr(beamset_id), - reg_stat_enable_miso => reg_stat_enable_bst_miso_arr(beamset_id), - reg_stat_hdr_dat_mosi => reg_stat_hdr_dat_bst_mosi_arr(beamset_id), - reg_stat_hdr_dat_miso => reg_stat_hdr_dat_bst_miso_arr(beamset_id), - - sdp_info => sdp_info, - gn_id => gn_id, - eth_src_mac => cep_eth_src_mac, - ip_src_addr => cep_ip_src_addr, - udp_src_port => cep_udp_src_port, - stat_eth_src_mac => stat_eth_src_mac, - stat_ip_src_addr => stat_ip_src_addr, - stat_udp_src_port => bst_udp_src_port, - - hdr_fields_out => bf_10GbE_hdr_fields_out_arr(beamset_id) - ); - - END GENERATE; - - -- MM multiplexing - u_mem_mux_ram_ss_ss_wide : ENTITY common_lib.common_mem_mux - GENERIC MAP ( - g_nof_mosi => c_sdp_N_beamsets, - g_mult_addr_w => c_addr_w_ram_ss_ss_wide - ) - PORT MAP ( - mosi => ram_ss_ss_wide_mosi, - miso => ram_ss_ss_wide_miso, - mosi_arr => ram_ss_ss_wide_mosi_arr, - miso_arr => ram_ss_ss_wide_miso_arr - ); - - u_mem_mux_ram_bf_weights : ENTITY common_lib.common_mem_mux - GENERIC MAP ( - g_nof_mosi => c_sdp_N_beamsets, - g_mult_addr_w => c_addr_w_ram_bf_weights - ) - PORT MAP ( - mosi => ram_bf_weights_mosi, - miso => ram_bf_weights_miso, - mosi_arr => ram_bf_weights_mosi_arr, - miso_arr => ram_bf_weights_miso_arr - ); - - u_mem_mux_reg_bf_scale : ENTITY common_lib.common_mem_mux - GENERIC MAP ( - g_nof_mosi => c_sdp_N_beamsets, - g_mult_addr_w => c_addr_w_reg_bf_scale - ) - PORT MAP ( - mosi => reg_bf_scale_mosi, - miso => reg_bf_scale_miso, - mosi_arr => reg_bf_scale_mosi_arr, - miso_arr => reg_bf_scale_miso_arr - ); - - u_mem_mux_reg_hdr_dat : ENTITY common_lib.common_mem_mux - GENERIC MAP ( - g_nof_mosi => c_sdp_N_beamsets, - g_mult_addr_w => c_addr_w_reg_hdr_dat - ) - PORT MAP ( - mosi => reg_hdr_dat_mosi, - miso => reg_hdr_dat_miso, - mosi_arr => reg_hdr_dat_mosi_arr, - miso_arr => reg_hdr_dat_miso_arr - ); - - u_mem_mux_reg_dp_xonoff : ENTITY common_lib.common_mem_mux - GENERIC MAP ( - g_nof_mosi => c_sdp_N_beamsets, - g_mult_addr_w => c_addr_w_reg_dp_xonoff - ) - PORT MAP ( - mosi => reg_dp_xonoff_mosi, - miso => reg_dp_xonoff_miso, - mosi_arr => reg_dp_xonoff_mosi_arr, - miso_arr => reg_dp_xonoff_miso_arr - ); - - u_mem_mux_ram_st_bst : ENTITY common_lib.common_mem_mux - GENERIC MAP ( - g_nof_mosi => c_sdp_N_beamsets, - g_mult_addr_w => c_addr_w_ram_st_bst - ) - PORT MAP ( - mosi => ram_st_bst_mosi, - miso => ram_st_bst_miso, - mosi_arr => ram_st_bst_mosi_arr, - miso_arr => ram_st_bst_miso_arr - ); - - u_mem_mux_reg_stat_enable_bst : ENTITY common_lib.common_mem_mux - GENERIC MAP ( - g_nof_mosi => c_sdp_N_beamsets, - g_mult_addr_w => c_sdp_reg_stat_enable_addr_w - ) - PORT MAP ( - mosi => reg_stat_enable_bst_mosi, - miso => reg_stat_enable_bst_miso, - mosi_arr => reg_stat_enable_bst_mosi_arr, - miso_arr => reg_stat_enable_bst_miso_arr - ); - - u_mem_mux_reg_stat_hdr_dat_bst : ENTITY common_lib.common_mem_mux - GENERIC MAP ( - g_nof_mosi => c_sdp_N_beamsets, - g_mult_addr_w => c_sdp_reg_stat_hdr_dat_addr_w - ) - PORT MAP ( - mosi => reg_stat_hdr_dat_bst_mosi, - miso => reg_stat_hdr_dat_bst_miso, - mosi_arr => reg_stat_hdr_dat_bst_mosi_arr, - miso_arr => reg_stat_hdr_dat_bst_miso_arr - ); - - ----------------------------------------------------------------------------- - -- DP MUX - ----------------------------------------------------------------------------- - -- Assign hdr_fields to nw_10GbE for ARP/PING functionality. Only the fields: - -- eth_src_mac, ip_src_addr and ip_dst_addr are used. Which are identical for - -- both beamsets. - nw_10GbE_hdr_fields_in_arr(0) <= bf_10GbE_hdr_fields_out_arr(0); - - u_dp_mux : ENTITY dp_lib.dp_mux - GENERIC MAP ( - g_nof_input => c_sdp_N_beamsets, - g_sel_ctrl_invert => TRUE, - g_fifo_size => array_init(0,c_sdp_N_beamsets), --no FIFO used but must match g_nof_input - g_fifo_fill => array_init(0,c_sdp_N_beamsets) --no FIFO used but must match g_nof_input - ) - PORT MAP ( - clk => dp_clk, - rst => dp_rst, - - snk_in_arr => bf_udp_sosi_arr, - snk_out_arr => bf_udp_siso_arr, - - src_out => nw_10gbe_snk_in_arr(0), - src_in => nw_10gbe_snk_out_arr(0) - ); - - --------------- - -- nw_10GbE - --------------- - u_nw_10GbE: ENTITY nw_10GbE_lib.nw_10GbE - GENERIC MAP ( - g_technology => g_technology, - g_sim => g_sim, - g_sim_level => 1, - g_nof_macs => c_nof_10GbE_offload_streams, - g_direction => "TX_RX", - g_tx_fifo_fill => c_fifo_tx_fill, - g_tx_fifo_size => c_fifo_tx_size, - g_ip_hdr_field_arr => c_sdp_cep_hdr_field_arr - - ) - PORT MAP ( - -- Transceiver PLL reference clock - tr_ref_clk_644 => SA_CLK, - tr_ref_clk_312 => tr_ref_clk_312, - tr_ref_clk_156 => tr_ref_clk_156, - tr_ref_rst_156 => tr_ref_rst_156, - - -- MM interface - mm_rst => mm_rst, - mm_clk => mm_clk, - - reg_mac_mosi => reg_nw_10GbE_mac_mosi, - reg_mac_miso => reg_nw_10GbE_mac_miso, - - reg_eth10g_mosi => reg_nw_10GbE_eth10g_mosi, - reg_eth10g_miso => reg_nw_10GbE_eth10g_miso, - - -- DP interface - dp_rst => dp_rst, - dp_clk => dp_clk, - dp_pps => dp_pps, - - src_out_arr => nw_10gbe_src_out_arr, - src_in_arr => nw_10gbe_src_in_arr, - - snk_out_arr => nw_10gbe_snk_out_arr, - snk_in_arr => nw_10gbe_snk_in_arr, - - -- Serial IO - serial_tx_arr => unb2_board_front_io_serial_tx_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0), - serial_rx_arr => unb2_board_front_io_serial_rx_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0), - - hdr_fields_in_arr => nw_10GbE_hdr_fields_in_arr - ); - END GENERATE; - ----------------------------------------------------------------------------- -- Interface : 10GbE ----------------------------------------------------------------------------- @@ -1127,29 +782,9 @@ BEGIN QSFP_LED => QSFP_LED ); - --------- - -- PLL - --------- - u_tech_pll_xgmii_mac_clocks : ENTITY tech_pll_lib.tech_pll_xgmii_mac_clocks - GENERIC MAP ( - g_technology => g_technology - ) - PORT MAP ( - refclk_644 => SA_CLK, - rst_in => mm_rst, - clk_156 => tr_ref_clk_156, - clk_312 => tr_ref_clk_312, - rst_156 => tr_ref_rst_156, - rst_312 => OPEN - ); - ------------ -- LEDs ------------ - unb2c_board_qsfp_leds_tx_siso_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0) <= nw_10gbe_snk_out_arr; - unb2c_board_qsfp_leds_tx_sosi_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0) <= nw_10gbe_snk_in_arr; - unb2c_board_qsfp_leds_rx_sosi_arr(c_nof_10GbE_offload_streams-1 DOWNTO 0) <= nw_10gbe_src_out_arr; - u_front_led : ENTITY unb2c_board_lib.unb2c_board_qsfp_leds GENERIC MAP ( g_sim => g_sim, @@ -1163,11 +798,9 @@ BEGIN green_led_arr => qsfp_green_led_arr, red_led_arr => qsfp_red_led_arr, - tx_siso_arr => unb2c_board_qsfp_leds_tx_siso_arr, - tx_sosi_arr => unb2c_board_qsfp_leds_tx_sosi_arr, - rx_sosi_arr => unb2c_board_qsfp_leds_rx_sosi_arr + tx_siso_arr => unb2_board_qsfp_leds_tx_siso_arr, + tx_sosi_arr => unb2_board_qsfp_leds_tx_sosi_arr, + rx_sosi_arr => unb2_board_qsfp_leds_rx_sosi_arr ); - - END str; diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/mmm_lofar2_unb2c_sdp_station.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/mmm_lofar2_unb2c_sdp_station.vhd index 2e0af57b6a..34a3f2b908 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/mmm_lofar2_unb2c_sdp_station.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/mmm_lofar2_unb2c_sdp_station.vhd @@ -450,9 +450,7 @@ BEGIN pio_pps_reset_export => OPEN, pio_pps_clk_export => OPEN, --- ToDo: This has changed in the peripherals package - pio_pps_address_export => reg_ppsh_mosi.address(0 DOWNTO 0), --- pio_pps_address_export => reg_ppsh_mosi.address(c_unb2c_board_peripherals_mm_reg_default.reg_ppsh_adr_w-1 DOWNTO 0), + pio_pps_address_export => reg_ppsh_mosi.address(c_unb2c_board_peripherals_mm_reg_default.reg_ppsh_adr_w-1 DOWNTO 0), pio_pps_write_export => reg_ppsh_mosi.wr, pio_pps_writedata_export => reg_ppsh_mosi.wrdata(c_word_w-1 DOWNTO 0), pio_pps_read_export => reg_ppsh_mosi.rd, diff --git a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/qsys_lofar2_unb2c_sdp_station_pkg.vhd b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/qsys_lofar2_unb2c_sdp_station_pkg.vhd index e5039901bc..7b52937ab1 100644 --- a/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/qsys_lofar2_unb2c_sdp_station_pkg.vhd +++ b/applications/lofar2/designs/lofar2_unb2c_sdp_station/src/vhdl/qsys_lofar2_unb2c_sdp_station_pkg.vhd @@ -62,7 +62,7 @@ PACKAGE qsys_lofar2_unb2c_sdp_station_pkg IS pio_jesd_ctrl_reset_export : out std_logic; -- export pio_jesd_ctrl_write_export : out std_logic; -- export pio_jesd_ctrl_writedata_export : out std_logic_vector(31 downto 0); -- export - pio_pps_address_export : out std_logic_vector(0 downto 0); -- export + pio_pps_address_export : out std_logic_vector(1 downto 0); -- export pio_pps_clk_export : out std_logic; -- export pio_pps_read_export : out std_logic; -- export pio_pps_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export -- GitLab