26#ifndef GNSS_SDR_PCPS_ACQUISITION_FPGA_H
27#define GNSS_SDR_PCPS_ACQUISITION_FPGA_H
48using pcps_acquisition_fpga_sptr = std::shared_ptr<pcps_acquisition_fpga>;
50pcps_acquisition_fpga_sptr pcps_make_acquisition_fpga(
Acq_Conf_Fpga* conf_, uint32_t acq_buff_num, std::vector<std::pair<uint32_t, uint32_t>>& downsampling_filter_specs, uint32_t& max_FFT_size);
58class pcps_acquisition_fpga
73 d_gnss_synchro = p_gnss_synchro;
79 inline uint32_t
mag()
const
115 d_channel_fsm = std::move(channel_fsm);
135 friend pcps_acquisition_fpga_sptr pcps_make_acquisition_fpga(
Acq_Conf_Fpga* conf, uint32_t acq_buff_num, std::vector<std::pair<uint32_t, uint32_t>>& downsampling_filter_specs, uint32_t& max_FFT_size);
136 explicit pcps_acquisition_fpga(
Acq_Conf_Fpga* conf, uint32_t acq_buff_num, std::vector<std::pair<uint32_t, uint32_t>>& downsampling_filter_specs, uint32_t& max_FFT_size);
138 void send_negative_acquisition();
139 void send_positive_acquisition();
140 void acquisition_core(uint32_t num_doppler_bins, uint32_t doppler_step, int32_t doppler_min);
141 float first_vs_second_peak_statistic(uint32_t& indext, int32_t& doppler, uint32_t num_doppler_bins, int32_t doppler_max, int32_t doppler_step);
143 std::shared_ptr<Fpga_Acquisition> d_acquisition_fpga;
144 std::weak_ptr<ChannelFsm> d_channel_fsm;
150 uint64_t d_sample_counter;
152 const float d_threshold;
155 float d_test_statistics;
156 float d_doppler_step2;
157 float d_doppler_center_step_two;
159 int32_t d_doppler_center;
162 uint32_t d_doppler_index;
164 const uint32_t d_doppler_step;
165 const uint32_t d_doppler_max;
166 const uint32_t d_num_doppler_bins;
167 uint32_t d_total_block_exp;
168 uint32_t d_num_doppler_bins_step2;
169 uint32_t d_max_num_acqs;
Class that contains all the configuration parameters for generic acquisition block based on the PCPS ...
Interface of the State Machine for channel.
This is the class that contains the information that is shared by the processing blocks.
This class implements a Parallel Code Phase Search Acquisition that uses the FPGA.
void stop_acquisition()
stop the acquisition and the other FPGA modules.
void set_active(bool active)
Starts acquisition algorithm, turning from standby mode to active mode.
void set_doppler_center(int32_t doppler_center)
Set Doppler center frequency for the grid search. It will refresh the Doppler grid.
~pcps_acquisition_fpga()=default
Destructor.
void set_channel(uint32_t channel)
Set acquisition channel unique ID.
void set_local_code()
Sets local code for PCPS acquisition algorithm.
uint32_t mag() const
Returns the maximum peak of grid search.
void init()
Initializes acquisition algorithm.
void set_channel_fsm(std::weak_ptr< ChannelFsm > channel_fsm)
Set channel fsm associated to this acquisition instance.
void reset_acquisition()
This function triggers a HW reset of the FPGA PL.
void set_gnss_synchro(Gnss_Synchro *p_gnss_synchro)
Set acquisition/tracking common Gnss_Synchro object pointer to exchange synchronization data between ...
Highly optimized FPGA vector correlator class.