447 lines
17 KiB
Systemverilog
447 lines
17 KiB
Systemverilog
// 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
|
|
|