Recent trends suggest Global Navigation Satellite System (GNSS) receiver technology has tremendous scope for satellite applications such as precise orbit determination and reflectometry. Space borne receivers are characterised by low-power requirements, high processing speed and radiation resistant electronic components. Such sophisticated receivers, also called hardware GNSS receivers, are fabricated for specific applications and hence lack of design flexibility. On the other hand, a software GNSS receiver allows easy design modifications without any hardware component replacement. Software receivers employ reconfigurable hardware elements called field-programmable gate arrays (FPGAs). Hardware designs can be implemented or modified in FPGAs using Hardware Description Language (HDL). In this research, a low-power, low-cost software GNSS receiver has been designed and developed using a combination of a microprocessor and FPGA, i.e. System on Chip (SoC). The developed software GNSS receiver is capable of detecting GPS satellites, tracking these signals and computing receiver position estimates. Efficient task partitioning is achieved by implementing operations in both the FPGA and the microprocessor. Also demonstrated in the improvement of processing speed by 20% when certain GNSS receiver operations are performed in the FPGA instead of the microprocessor.