// Generated by CIRCT firtool-1.151.0 module APBGpsBlock( input clock, reset, output auto_pps_out_out, input [3:0] auto_rf_data_in, input auto_afe_clock_in, auto_tracking_clock_in, auto_acq_clock_in, auto_in_psel, auto_in_penable, auto_in_pwrite, input [28:0] auto_in_paddr, input [31:0] auto_in_pwdata, output auto_in_pready, auto_in_pslverr, output [31:0] auto_in_prdata, output auto_int_out_0, auto_int_out_1, auto_int_out_2, auto_int_out_3, auto_int_out_4, auto_int_out_5, auto_int_out_6, auto_int_out_7, auto_int_out_8, auto_int_out_9 ); wire _afeReset_gps_afe_reset_io_sync_reset; wire _trckReset_gps_trck_reset_io_sync_reset; wire _acqReset_gps_acq_reset_io_sync_reset; wire _apbReset_gps_apb_reset_io_sync_reset; wire _pps_PREADY; wire [31:0] _pps_PRDATA; wire _pps_PSLVERR; wire _tracking_8_PREADY; wire [31:0] _tracking_8_PRDATA; wire _tracking_8_PSLVERR; wire _tracking_8_pps_capture; wire _tracking_7_PREADY; wire [31:0] _tracking_7_PRDATA; wire _tracking_7_PSLVERR; wire _tracking_7_pps_capture; wire _tracking_6_PREADY; wire [31:0] _tracking_6_PRDATA; wire _tracking_6_PSLVERR; wire _tracking_6_pps_capture; wire _tracking_5_PREADY; wire [31:0] _tracking_5_PRDATA; wire _tracking_5_PSLVERR; wire _tracking_5_pps_capture; wire _tracking_4_PREADY; wire [31:0] _tracking_4_PRDATA; wire _tracking_4_PSLVERR; wire _tracking_4_pps_capture; wire _tracking_3_PREADY; wire [31:0] _tracking_3_PRDATA; wire _tracking_3_PSLVERR; wire _tracking_3_pps_capture; wire _tracking_2_PREADY; wire [31:0] _tracking_2_PRDATA; wire _tracking_2_PSLVERR; wire _tracking_2_pps_capture; wire _tracking_1_PREADY; wire [31:0] _tracking_1_PRDATA; wire _tracking_1_PSLVERR; wire _tracking_1_pps_capture; wire _tracking_0_PREADY; wire [31:0] _tracking_0_PRDATA; wire _tracking_0_PSLVERR; wire _tracking_0_pps_capture; wire _afe_sample_align_o; wire [31:0] _afe_sample_counter_o; wire _acq_PREADY; wire [31:0] _acq_PRDATA; wire _acq_PSLVERR; wire _acq_afe_start; wire _acq_sample_counter_clear; wire sel_0 = auto_in_paddr[28:12] == 17'h10020; wire sel_1 = auto_in_paddr[28:12] == 17'h10021; wire sel_2 = auto_in_paddr[28:12] == 17'h10022; wire sel_3 = auto_in_paddr[28:12] == 17'h10023; wire sel_4 = auto_in_paddr[28:12] == 17'h10024; wire sel_5 = auto_in_paddr[28:12] == 17'h10025; wire sel_6 = auto_in_paddr[28:12] == 17'h10026; wire sel_7 = auto_in_paddr[28:12] == 17'h10027; wire sel_8 = auto_in_paddr[28:12] == 17'h10028; wire sel_9 = auto_in_paddr[28:12] == 17'h10029; wire sel_10 = auto_in_paddr[28:12] == 17'h1002A; wire _GEN = {sel_10, sel_9, sel_8, sel_7, sel_6, sel_5, sel_4, sel_3, sel_2, sel_1, sel_0} == 11'h0; acq_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) acq ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_0), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_acq_PREADY), .PRDATA (_acq_PRDATA), .PSLVERR (_acq_PSLVERR), .afe_start (_acq_afe_start), .sample_counter_clear (_acq_sample_counter_clear), .clk_80mhz (auto_acq_clock_in), .rf_clk (auto_afe_clock_in), .acq_resetn (~_acqReset_gps_acq_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .rf_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .start_acq_manuel (1'h0), .acq_intr (auto_int_out_0) ); afe_top afe ( .afe_rstn (~_afeReset_gps_afe_reset_io_sync_reset), .trk_rstn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_clk (auto_afe_clock_in), .trk_clk (auto_tracking_clock_in), .start_i (_acq_afe_start), .sample_counter_clear_i (_acq_sample_counter_clear), .sample_align_o (_afe_sample_align_o), .sample_counter_o (_afe_sample_counter_o), .rf_data_o (/* unused */) ); tracking_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) tracking_0 ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_1), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_tracking_0_PREADY), .PRDATA (_tracking_0_PRDATA), .PSLVERR (_tracking_0_PSLVERR), .trck_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .trck_clk (auto_tracking_clock_in), .afe_clk (auto_afe_clock_in), .afe_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .sample_counter (_afe_sample_counter_o), .gps_frame_ready (auto_int_out_1), .pps_capture (_tracking_0_pps_capture) ); tracking_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) tracking_1 ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_2), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_tracking_1_PREADY), .PRDATA (_tracking_1_PRDATA), .PSLVERR (_tracking_1_PSLVERR), .trck_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .trck_clk (auto_tracking_clock_in), .afe_clk (auto_afe_clock_in), .afe_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .sample_counter (_afe_sample_counter_o), .gps_frame_ready (auto_int_out_2), .pps_capture (_tracking_1_pps_capture) ); tracking_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) tracking_2 ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_3), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_tracking_2_PREADY), .PRDATA (_tracking_2_PRDATA), .PSLVERR (_tracking_2_PSLVERR), .trck_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .trck_clk (auto_tracking_clock_in), .afe_clk (auto_afe_clock_in), .afe_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .sample_counter (_afe_sample_counter_o), .gps_frame_ready (auto_int_out_3), .pps_capture (_tracking_2_pps_capture) ); tracking_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) tracking_3 ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_4), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_tracking_3_PREADY), .PRDATA (_tracking_3_PRDATA), .PSLVERR (_tracking_3_PSLVERR), .trck_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .trck_clk (auto_tracking_clock_in), .afe_clk (auto_afe_clock_in), .afe_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .sample_counter (_afe_sample_counter_o), .gps_frame_ready (auto_int_out_4), .pps_capture (_tracking_3_pps_capture) ); tracking_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) tracking_4 ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_5), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_tracking_4_PREADY), .PRDATA (_tracking_4_PRDATA), .PSLVERR (_tracking_4_PSLVERR), .trck_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .trck_clk (auto_tracking_clock_in), .afe_clk (auto_afe_clock_in), .afe_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .sample_counter (_afe_sample_counter_o), .gps_frame_ready (auto_int_out_5), .pps_capture (_tracking_4_pps_capture) ); tracking_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) tracking_5 ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_6), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_tracking_5_PREADY), .PRDATA (_tracking_5_PRDATA), .PSLVERR (_tracking_5_PSLVERR), .trck_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .trck_clk (auto_tracking_clock_in), .afe_clk (auto_afe_clock_in), .afe_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .sample_counter (_afe_sample_counter_o), .gps_frame_ready (auto_int_out_6), .pps_capture (_tracking_5_pps_capture) ); tracking_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) tracking_6 ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_7), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_tracking_6_PREADY), .PRDATA (_tracking_6_PRDATA), .PSLVERR (_tracking_6_PSLVERR), .trck_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .trck_clk (auto_tracking_clock_in), .afe_clk (auto_afe_clock_in), .afe_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .sample_counter (_afe_sample_counter_o), .gps_frame_ready (auto_int_out_7), .pps_capture (_tracking_6_pps_capture) ); tracking_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) tracking_7 ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_8), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_tracking_7_PREADY), .PRDATA (_tracking_7_PRDATA), .PSLVERR (_tracking_7_PSLVERR), .trck_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .trck_clk (auto_tracking_clock_in), .afe_clk (auto_afe_clock_in), .afe_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .sample_counter (_afe_sample_counter_o), .gps_frame_ready (auto_int_out_8), .pps_capture (_tracking_7_pps_capture) ); tracking_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0) ) tracking_8 ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_9), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_tracking_8_PREADY), .PRDATA (_tracking_8_PRDATA), .PSLVERR (_tracking_8_PSLVERR), .trck_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .afe_resetn (~_afeReset_gps_afe_reset_io_sync_reset), .trck_clk (auto_tracking_clock_in), .afe_clk (auto_afe_clock_in), .afe_data (auto_rf_data_in), .sample_align (_afe_sample_align_o), .sample_counter (_afe_sample_counter_o), .gps_frame_ready (auto_int_out_9), .pps_capture (_tracking_8_pps_capture) ); pps_wrapper #( .ADDR_BUS_WIDTH(12), .DATA_BUS_WIDTH(32), .HIGH_ADDRESS(4095), .LOW_ADDRESS(0), .NUM_CAPTURE_CHANNELS(9) ) pps ( .PCLK (clock), .PRESETN (~_apbReset_gps_apb_reset_io_sync_reset), .PADDR (auto_in_paddr[11:0]), .PSEL (auto_in_psel & sel_10), .PENABLE (auto_in_penable), .PWRITE (auto_in_pwrite), .PWDATA (auto_in_pwdata), .PREADY (_pps_PREADY), .PRDATA (_pps_PRDATA), .PSLVERR (_pps_PSLVERR), .pps_clk (auto_tracking_clock_in), .pps_resetn (~_trckReset_gps_trck_reset_io_sync_reset), .capture_i ({_tracking_8_pps_capture, _tracking_7_pps_capture, _tracking_6_pps_capture, _tracking_5_pps_capture, _tracking_4_pps_capture, _tracking_3_pps_capture, _tracking_2_pps_capture, _tracking_1_pps_capture, _tracking_0_pps_capture}), .pps_out (auto_pps_out_out), .pps_valid (/* unused */) ); ResetCatchAndSync_d3 apbReset_gps_apb_reset ( .clock (clock), .reset (reset), .io_sync_reset (_apbReset_gps_apb_reset_io_sync_reset) ); ResetCatchAndSync_d3 acqReset_gps_acq_reset ( .clock (auto_acq_clock_in), .reset (reset), .io_sync_reset (_acqReset_gps_acq_reset_io_sync_reset) ); ResetCatchAndSync_d3 trckReset_gps_trck_reset ( .clock (auto_tracking_clock_in), .reset (reset), .io_sync_reset (_trckReset_gps_trck_reset_io_sync_reset) ); ResetCatchAndSync_d3 afeReset_gps_afe_reset ( .clock (auto_afe_clock_in), .reset (reset), .io_sync_reset (_afeReset_gps_afe_reset_io_sync_reset) ); assign auto_in_pready = _GEN | sel_0 & _acq_PREADY | sel_1 & _tracking_0_PREADY | sel_2 & _tracking_1_PREADY | sel_3 & _tracking_2_PREADY | sel_4 & _tracking_3_PREADY | sel_5 & _tracking_4_PREADY | sel_6 & _tracking_5_PREADY | sel_7 & _tracking_6_PREADY | sel_8 & _tracking_7_PREADY | sel_9 & _tracking_8_PREADY | sel_10 & _pps_PREADY; assign auto_in_pslverr = _GEN | sel_0 & _acq_PSLVERR | sel_1 & _tracking_0_PSLVERR | sel_2 & _tracking_1_PSLVERR | sel_3 & _tracking_2_PSLVERR | sel_4 & _tracking_3_PSLVERR | sel_5 & _tracking_4_PSLVERR | sel_6 & _tracking_5_PSLVERR | sel_7 & _tracking_6_PSLVERR | sel_8 & _tracking_7_PSLVERR | sel_9 & _tracking_8_PSLVERR | sel_10 & _pps_PSLVERR; assign auto_in_prdata = (sel_0 ? _acq_PRDATA : 32'h0) | (sel_1 ? _tracking_0_PRDATA : 32'h0) | (sel_2 ? _tracking_1_PRDATA : 32'h0) | (sel_3 ? _tracking_2_PRDATA : 32'h0) | (sel_4 ? _tracking_3_PRDATA : 32'h0) | (sel_5 ? _tracking_4_PRDATA : 32'h0) | (sel_6 ? _tracking_5_PRDATA : 32'h0) | (sel_7 ? _tracking_6_PRDATA : 32'h0) | (sel_8 ? _tracking_7_PRDATA : 32'h0) | (sel_9 ? _tracking_8_PRDATA : 32'h0) | (sel_10 ? _pps_PRDATA : 32'h0); endmodule