The Caravel user_proj_example.v has eight instanciation of GPS channel and a I2C Master . The GPS Channel < write the functionality of gps channel> and the I2C Master is used to configure the GPS RF Front End chipset .
The following block diagram shows the internal blocks of single gps channel
accumulator.v
- 20 bit accumulatoradc2to3bit.v
- Two to three bit mapping of the input dataclk_gen_gps_new.v
- Module containing NCO for Carrier Generation and code clock generationcodectrllogic.v
- Topmost module for generation of three versions of Goldcodes (Early,Late,Prompt)codegen.v
- Goldcode instantiation modulegoldcode.v
- Goldcode generation module based on the Satellite IDgps_multichannel.v
- Topmost Module containing 8 single channels and address decodinggps_single_channel.v
- Single channel module containing all module instantiations and Wishbone Interfacesignmag_twocomp_vv.v
- Sign Magnitude to Two's complement Conversionsignmul.v
- 3 bit Sign Magnitude Number multiplierthresh_control.v
- Threshold check block to generate Carrier change pulse to invoke Dopplerthreshold.v
- Threshold check block to check whether the satellite is acquired or nottrack_intganddump.v
- Gold code multiplication with Integrate and dumping of 6 signals(3 - i and 3 - q)wb_interface.v
- Provides interface between 32-bit wiishbone bus and internal blocks . Through this wishbone interface , software can write and read memory mapped registers . The details of the wishbone registers is mentioned below .
The verification environment is shown in the following block diagram . A wishbone bus function model is used to create wishbone write and read transactions . The gps raw data is stored to a txt file and being used in the simulation environment .
The following test cases were created and used to verify the gps channel at block level and system level
The testcase can be simulated by executing the following command
.. code:: bash
cd verilog/dv/wb_bfm_goldcode_test/ chmod +x verify_gold.sh ./verify_gold.sh
The Physical implementation of single gps channel is carried out using openlane tool flow with the timing constraint of 50MHz .