FPGA Timekeeper and the NI 9467 GPS Module

Updated Sep 27, 2023

Reported In


  • NI-9467


  • NI-TimeSync

Issue Details

  • What is the function of the NI-9467 GPS module and the FPGA timekeeper VIs?
  • Why are the timestamps I'm reading from my NI-9467 GPS module several seconds off from the actual time?


The NI-9467 is a stationary GPS timing module for C Series platforms. It provides accurate timing and geographic location information to the C Series host once a second, which enables synchronization of C Series systems.

The FPGA Timekeeper is a set of VIs that allows you to synchronize absolute time on your FPGA target. It is code that can be included in your FPGA application to provide a timekeeper for the FPGA, from which time can be read on every clock tick.

By using the FPGA Timekeeper with the NI-9467, you will be able to correlate absolute time with system events at an accuracy of around 100 ns. Some common applications of using these products together are:
  • Timestamping I/O in FPGA
  • Scheduling I/O according to a future time in FPGA
  • Getting and sharing accurate time within the FPGA domain

When using the NI-9467 as its synchronization source, the FPGA Timekeeper will be synchronized to International Atomic Time (TAI), which does not account for leap seconds and will be several seconds off from UTC time. The offset between TAI and Coordinated Universal Time (UTC) is a readable property for the NI 9467, so UTC can be calculated. Because the TAI is a U64 representing nanoseconds, and the UTC Offset is an I8 representing seconds, it is recommended that only TAI be used in the FPGA. Any conversions to or from UTC should be made on the host.

Additional Information