# Area-Efficient Universal Code Generator for GPS L1C and BDS B1C Signals
## 4 Proposed Area-Efficient Universal Code Generator  
Although previous studies [14; 15; 16; 17] succeeded in generating multiple Legendre-based codes using single hardware, the relevant code generators still have high hardware complexity to universally generate Legendre-based codes. Concretely, the memory-based universal code generator [14; 15] shown in Figure 2 requires a total of 2.7 Mb of ROM to store all the PRN codes by signal (GPS L1C, BDS B1C), by channel (Data, Pilot), and by satellite (1-63). The Legendre-generation universal code generator [16] shown in Figure 3 uses 8.1 K of ROM to store the parameters by signal (GPS L1C, BDS B1C), by channel (Data, Pilot), and by satellite (1-63), and additionally requires 13.8 Kb of RAM to store \begin{table}
\begin{tabular}{c c} \hline \hline
**Notation** & **Meaning** \\ \hline \((L,-,-)\) & GPS L1C signal \\ \hline \((B,-,-)\) & BDS B1C signal \\ \hline \((X,-,-)\) & Universal signals \\ \hline \((-,P,-)\) & Pilot channel \\ \hline \((-,D,-)\) & Data channel \\ \hline \((-,X,-)\) & All channels \\ \hline \((-,-,1)\) & Primary code \\ \hline \((-,-,2)\) & Secondary code \\ \hline \((-,-,3)\) & All codes \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Notations. the generated Legendre sequences and 6.9 K clock cycle initialization time to generate Legendre sequences. The Weil-generation universal code generator [17] shown in Figure 4 requires 97.2 Kb of ROM as read-only memory to store the parameters and Legendre sequences by signal (GPS L1C, BDS B1C), by channel (Data, Pilot), and by satellite (1-63). In addition, since previous studies [14; 15; 16; 17] carried out designs without considering the entire GNSS receiver system, designs that consider the operation elements of the entire system are necessary. All the previous universal code generators [14; 15; 16; 17] generate a data channel code \(C_{data}(t)\) and a pilot channel code \(C_{pilot}(t)\) for every clock cycle. In general, if it is assumed that the GNSS receiver operates at several hundred MHz, the code rate of the previous universal code generator will reach several Mbps. Although a higher code rate can support a higher-speed receiver, when seen from the viewpoint of the system, several Mbps is an unnecessarily high value. According to Table 1, since the code rate of GPS L1C signals and BDS B1C signals is 1.023 Mbps, if the code generator can provide a throughput of 1.023 Mbps or more, there is no degradation from the viewpoint of the entire system. Therefore, in this paper, the hardware complexity will be reduced by sharing the common hardware within the range where there is no degradation from the viewpoint of the system. Time multiplexing is a useful scheme of utilizing shared hardware. It is a method of using shared hardware according to the scheduling of a time unit instead of using the same hardware at the same time by duplicating the same hardware. Time multiplexing can lower the hardware complexity at the cost of increasing latency. Additionally, it is usually implemented using simple logics, such as a multiplexer, and a control signal that changes in every time unit. The proposed code generator also applies time multiplexing with simple logics. Weil-generation universal code generators [17] that correspond to the state of the art use two Legendre ROMs for each channel (Data, Pilot) to generate Weil codes on the fly according to Equation (4). In this case, each Legendre ROM provides two Legendre sequences with a phase difference to configure a Weil sequence, as shown in Equation (4). However, since there will be no degradation in the entire system if only the code generator operates at least at 1.023 Mbps, in the proposed code generator structure, the Legendre ROMs existing by channel are shared, and the Weil sequence shown in Equation (4) is calculated through time multiplexing. Furthermore, as seen in Table 2, in the case of GPS L1C signals, the Legendre sequence of the data channel and the Legendre sequence of the pilot channel are the same.