# Design of Universal Code Generator for Multi-Constellation Multi-Frequency GNSS Receiver
## 1 Introduction  
With the establishment and advancement of the four major global satellite navigation systems, namely GPS, Galileo, GLONASS, and BDS, alongside regional navigation systems like India's IRNSS and Japan's QZSS, the satellite navigation system has evolved into a multi-constellation navigation ecosystem with over 130 satellites offering navigation services. Each satellite navigation constellation broadcasts multiple civilian signals. For instance, the third-generation global Beidou system transmits various civil signals including B1C, B1I, B2a, B2b, and B3I. A receiver that supports multiple satellite constellations and multiple frequency bands is capable of receiving signals concurrently from these constellations. This allows for the receiver to acquire additional measurements, enabling multi-mode integrated positioning. Such integration improves the precision, continuity, effectiveness, and reliability of navigation. The proposed universal spread spectrum code generator can be applied to the design of multi-mode and multi-frequency GNSS receiver chips in order to enhance compatibility and minimize design costs. However, the introduction of IZ4 has increased hardware complexity. Therefore, it is crucial to address the resulting increase in hardware structure complexity. Significant global research has been conducted on the design of compatible code generators [1; 2; 3; 4; 5]. The linear feedback shift register (LFSR) is widely used for generating a majority of GNSS signals. In Ref. [2], a universal ranging code generator is proposed, comprising two 14-bit linear feedback shift registers (SR1 and SR2). These shift registers can be combined to form a 28-bit shift register. Additionally, this paper presents a structural scheme for the GPS L2C ranging code generator using the Fibonacci configuration. By setting different initial values to determine the feedback tap position, an m-sequence structure is achieved. In Ref. [3], a memory-based approach is proposed for generating spread spectrum codes. This approach replaces the previously used dedicated logic modules and instead precomputes and stores the respective spread spectrum codes for each signal in a memory unit. When the receiver receives a signal, it retrieves the corresponding spread spectrum code from memory for processing. The exception to this memory code method is GPS L2 CL, which has a code length of 767,250. As a result, the required memory size per channel increases. Each common channel necessitates a minimum of two blocks of 16 kbit RAM and a 27-bit LFSR as essential resources. Ref. [4] presents the design of a spread spectrum code generator architecture that supports multi-constellation and multi-frequency signals. The code generator accommodates three types of spread spectrum codes: linear feedback shift register (LFSR)-based codes, memory codes, and Weil codes. It uses two M-long shift registers to support the generation of spread spectrum codes for satellite signals through time division multiplexing. In Ref. [5], an area-efficient universal code generator based on linear feedback shift registers is proposed. It can be configured with shift registers and tap positions to generate different signal spread spectrum codes, resulting in significant savings of hardware resources. However, its support for signals is not comprehensive, as the code generator cannot handle IRNSS, QZSS L6, and other related signals. Furthermore, the four major navigation systems, namely GPS, Galileo, GLONASS, and BDS, require separate code generator structures. In August 2023, India publicly released the NavIC Interface Control Documentation (ICD) for L1 SPS [6], which uses the Interleaved Z4-linear (IZ4) ranging code as its spread spectrum code. The IZ4 code comprises two 55-bit shift registers and a 5-bit shift register. Notably, the code generator for IZ4 has a significantly longer shift register length compared to other satellite navigation systems. Currently, there are no studies on the compatibility design of the IZ4 code with other satellite navigation systems.