Observing Wrong UART Baud Rate on sbRIO-9609 RMC CLIP Ports

Updated Jul 16, 2026

Reported In

Hardware

  • sbRIO-9609

Issue Details

I have a single-board Reconfigurable I/O sbRIO-9609 controller and configured a UART through the sbRIO CLIP generator's Peripherals page. I use this port via VISA in a LabVIEW Real-Time Virtual Instrument.

When I request a baud rate of 9600, the transmitted signal on the TX line runs uniformly fast. Specifically, one 10-bit frame measures approximately 0.93 ms instead of the expected 1.04 ms. This timing error is uniform across all bits. The onboard RS-232 port works correctly at 9600 baud, and only the RMC CLIP-based UART ports are affected. What causes this baud rate error and how can I correct it?

Solution

This behavior is caused by a known FPGA clock synchronization issue within the generated VHDL code of the CLIP. The serial UART helper classes do not handle the internal reset logic properly during initialization, resulting in a timing mismatch that executes approximately 12% faster than expected.

To resolve this issue, apply a manual correction to the generated VHDL code.

  • Locate the generated CLIP folder on your development computer.
  • Open the CLIP VHDL source file with the .vhd extension, which is located alongside the .cfg configuration file.
  • Search for the serial interface class declarations inside the file, which are typically named Serial<N>UART, where <N> represents the UART instance number.
  • Replace the lineĀ aReset => to_Boolean(aReset) with aReset => to_Boolean(aPowerOnReset) to use the power-on reset signal. Ensure this modification is applied to all Serial<N>UART class instances in the file.
  • Save and close the .vhd file.
  • Recompile your LabVIEW FPGA build specification to generate a new bitfile.
  • Update the sbRIO-9609 NI MAX under FPGA>>Device and Interfaces using the newly generated bitfile, or configure the application to load automatically from flash memory.
  • Power-cycle the sbRIO-9609 controller completely.
  • Reconnect the sbRIO-9609 within your LabVIEW project and verify that the UART baud rate and frame timings match the requested configurations.