30179df8e6
Remove the fixed pseudorange start offset, preserve per-PRN navigation assistance across RF loss and power cycles, and seed coherent navigation measurement phase on reacquisition. Add full LNAV almanac visibility scheduling, power-safe QSPI journaling, RF-domain reset isolation, and PPS Gray CDC hardening with Linux, sanitizer, RTL, and end-to-end coverage.
81 lines
2.4 KiB
Systemverilog
81 lines
2.4 KiB
Systemverilog
|
|
package trck_pkg;
|
|
|
|
typedef enum logic[31 : 0]
|
|
{
|
|
CONTROL_REG_OFFSET = 0,
|
|
PRN_NUMBER_REG_OFFSET = 4,
|
|
CODE_PHASE_REG_OFFSET = 8,
|
|
ABS_SAMPLE_REG_OFFSET = 12,
|
|
STATUS_REG_OFFSET = 16,
|
|
DOPPLER_REG_OFFSET = 20,
|
|
NAV_DATA_0_REG_OFFSET = 24,
|
|
NAV_DATA_1_REG_OFFSET = 28,
|
|
NAV_DATA_2_REG_OFFSET = 32,
|
|
NAV_DATA_3_REG_OFFSET = 36,
|
|
NAV_DATA_4_REG_OFFSET = 40,
|
|
NAV_DATA_5_REG_OFFSET = 44,
|
|
NAV_DATA_6_REG_OFFSET = 48,
|
|
NAV_DATA_7_REG_OFFSET = 52,
|
|
NAV_DATA_8_REG_OFFSET = 56,
|
|
NAV_DATA_9_REG_OFFSET = 60,
|
|
TRCK_TIMEOUT_REG_OFFSET = 64,
|
|
NAV_SOLVE_TIMER_REG_OFFSET = 68,
|
|
NAV_SOLVE_PHASE_REG_OFFSET = 72,
|
|
REM_CODE_PH_REG_OFFSET = 76,
|
|
MEASUREMENT_META_REG_OFFSET = 80,
|
|
MEASUREMENT_SEQUENCE_REG_OFFSET = 84,
|
|
MEASUREMENT_CARRIER_REG_OFFSET = 88,
|
|
MEASUREMENT_ABS_SAMPLE_REG_OFFSET = 92,
|
|
MEASUREMENT_REM_CODE_REG_OFFSET = 96,
|
|
MEASUREMENT_SUM_I_REG_OFFSET = 100,
|
|
MEASUREMENT_SUM_Q_REG_OFFSET = 104,
|
|
MEASUREMENT_WBP_LO_REG_OFFSET = 108,
|
|
MEASUREMENT_WBP_HI_REG_OFFSET = 112
|
|
}trck_wrapper_reg_offets_e;
|
|
|
|
|
|
typedef enum
|
|
{
|
|
TRCK_START_POS = 0,
|
|
TRCK_STOP_POS = 1,
|
|
TRCK_INTRPT_ENABLE_POS = 2,
|
|
TRCK_NAV_BITS_INTR_ENABLE_POS = 3,
|
|
TRCK_NAV_BITS_FLAG_ENABLE_POS = 4,
|
|
TRCK_INTRPT_CLEAR_POS = 5,
|
|
TRCK_RESET_POS = 6,
|
|
TRCK_STOP_ON_UNLOCK_EN_POS = 7, // enable pos.
|
|
TRCK_STOP_ON_UNLOCK_INTR_EN_POS = 8, // enable pos.
|
|
TRCK_STOP_ON_UNLOCK_FLAG_EN_POS = 9, // enable pos.
|
|
TRCK_NAV_SOLVE_ENABLE_POS = 10, // clear pos
|
|
TRCK_NAV_SOLVE_INTR_EN_POS = 11, // clear pos
|
|
TRCK_NAV_SOLVE_FLAG_EN_POS = 12, // clear pos
|
|
TRCK_MEASUREMENT_INTR_EN_POS = 13,
|
|
TRCK_MEASUREMENT_FLAG_EN_POS = 14
|
|
}trck_control_reg_pos_e;
|
|
|
|
typedef enum
|
|
{
|
|
TRCK_BUSY_POS = 0,
|
|
TRCK_LOCKED_POS = 1,
|
|
TRCK_FIFO_OV_POS = 2,
|
|
TRCK_INTR_PEND_POS = 3,
|
|
TRCK_NAV_BITS_RCV_FLAG_POS = 4,
|
|
TRCK_UNLOCK_FLAG_POS = 5,
|
|
TRCK_NAV_SOLVE_FLAG_POS = 6,
|
|
TRCK_MEASUREMENT_FLAG_POS = 7
|
|
}trck_status_reg_pos_e;
|
|
|
|
localparam logic [7 : 0] PREAMBLE = 8'b10001011;
|
|
|
|
typedef enum {
|
|
TRCK_STATE_IDLE,
|
|
TRCK_STATE_UNLOCK,
|
|
TRCK_STATE_LOCK
|
|
}trck_state_e;
|
|
|
|
localparam TRCK_TIMEOUT_RESET_VAL = 32'h1312D00;
|
|
|
|
|
|
endpackage
|