SPRY288C April   2020  – December 2021 TMS320C28341 , TMS320C28342 , TMS320C28343 , TMS320C28343-Q1 , TMS320C28344 , TMS320C28345 , TMS320C28346 , TMS320C28346-Q1 , TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F2802 , TMS320F2802-Q1 , TMS320F28020 , TMS320F280200 , TMS320F28021 , TMS320F28022 , TMS320F28022-Q1 , TMS320F280220 , TMS320F28023 , TMS320F28023-Q1 , TMS320F280230 , TMS320F28026 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027 , TMS320F28027-Q1 , TMS320F280270 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28030 , TMS320F28030-Q1 , TMS320F28031 , TMS320F28031-Q1 , TMS320F28032 , TMS320F28032-Q1 , TMS320F28033 , TMS320F28033-Q1 , TMS320F28034 , TMS320F28034-Q1 , TMS320F28035 , TMS320F28035-EP , TMS320F28035-Q1 , TMS320F28050 , TMS320F28051 , TMS320F28052 , TMS320F28052-Q1 , TMS320F28052F , TMS320F28052F-Q1 , TMS320F28052M , TMS320F28052M-Q1 , TMS320F28053 , TMS320F28054 , TMS320F28054-Q1 , TMS320F28054F , TMS320F28054F-Q1 , TMS320F28054M , TMS320F28054M-Q1 , TMS320F28055 , TMS320F2806 , TMS320F2806-Q1 , TMS320F28062 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28063 , TMS320F28064 , TMS320F28065 , TMS320F28066 , TMS320F28066-Q1 , TMS320F28067 , TMS320F28067-Q1 , TMS320F28069 , TMS320F28069-Q1 , TMS320F28075 , TMS320F28075-Q1 , TMS320F28332 , TMS320F28333 , TMS320F28334 , TMS320F28335 , TMS320F28335-Q1 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S

 

  1.   Trademarks
  2. 1Introduction
  3. 2Floating-Point Unit (FPU)
  4. 3Control Law Accelerator (CLA)
  5. 4Trigonometric Math Unit (TMU)
  6. 5Fast Integer Division Unit (FINTDIV)
  7. 6Viterbi, Complex Math, and CRC Unit (VCU)
  8. 7Summary
  9. 8References
  10.   Revision History

Viterbi, Complex Math, and CRC Unit (VCU)

Todays advanced control systems, such as motor control and power applications, can benefit from intelligent management and communications to optimize efficient operation. Power line communications (PLC) has become an ideal solution for intelligent management since the existing infrastructure can be used cost effectively. Communicating data in noisy environments is very challenging and computationally intensive. A typical microcontroller running a control application at its limit cannot tolerate the additional burden of supporting power line communications, and may require an additional processor. To solve this problem, TI developed the VCU. The VCU is a tightly coupled fixed-point unit that improves performance of communications-based applications by a factor of roughly seven times. Additionally, cost savings are realized by eliminating the need for a separate processor. Besides communications, the VCU is very useful for general-purpose signal processing applications such as filtering and spectral analysis. For example, spectral analysis can be used to process motor vibration noise to determine the impact of vibration on a system, estimate the motor operating life, and calibrate the control loop to improve efficiency.

The VCU has been designed to be flexible in supporting various communications technologies. For the typical MCU, four key operations consume most of the processing power: Viterbi decoding, complex Fast Fourier Transform (FFT), complex filters, and Cyclical Redundancy Check (CRC). Using the hardware capabilities of the VCU, an application will significantly benefit by the increased performance over a software implementation. As an example, the performance contributions of each key operation are:

  • Viterbi decoding is commonly used in baseband communications applications. The Viterbi decode algorithm consists of three main parts – branch metric calculation, add-compare-select (Viterbi butterfly), and traceback operation. With the VCU, the branch metric calculation can be completed in a single cycle (code rate = 1/2, and two cycles for code rate = 1/3). The Viterbi butterfly takes 2 cycles per stage, as compared to 15 cycles per stage without the VCU. The traceback takes 3 cycles per stage, as compared to 22 cycles per stage without the VCU.
  • The complex FFT is used in spread spectrum communications, as well as many other signal processing algorithms. For a 16-bit fixed-point complex FFT the VCU only requires 5 cycles per stage, as compared to approximately 20 cycles per stage without the VCU.
  • Complex filters are used to improve data reliability, transmission distance, and power efficiency, and are commonly used in other various signal processing applications. The VCU can perform a complex I and Q multiply with coefficients (four multiplies) in a single cycle, as compared to approximately 10 cycles without the VCU. In addition, the VCU can read/write the real and imaginary parts of 16-bit complex data to memory in a single cycle.
  • CRC algorithms are used for verifying data integrity over large data blocks, communication packets, or code sections. The VCU can perform 8-bit, 16-bit, 24-bit, and 32-bit CRCs completely in the background, offloading the main C28x CPU. For example, the VCU can compute the CRC for a block length of 10 bytes in 10 cycles, as compared to approximately 250 cycles without the VCU. A CRC result register contains the current CRC and is updated each time a CRC instruction is executed. This simplifies the CRC calculations and access to the final CRC value.
GUID-C3DAA715-6CE0-4EA1-9CDB-8BDD71962B9E-low.gif Figure 6-1 VCU Performance Improvements Compared to Software-Only Implementations

Devices with the C28x+VCU add an extended set of registers and instructions to the standard C28x architecture, which are used to support the acceleration of communications-based algorithms. The additional registers are: nine result registers, two traceback registers, a configuration and status register, and a CRC result register. The VCU performs fixed-point operations using the same existing instruction set format, pipeline, and memory bus architecture as C28x.

Programming the VCU is made easy with TI’s C2000Ware software suite. TI provides a complete library of C-callable assembly functions. These functions are implemented using the VCU instruction set to optimize efficiency and minimize overhead. TI also provides higher-level functions to support PLC communications standards such as PRIME and G3.

Some devices utilize a dedicated cyclic redundancy check unit (VCRC) rather than the full featured VCU for applications not requiring Viterbi decoding or complex math support. This enhanced VCRC is an extension of the C28x CPU and it includes registers and instructions to support CRC algorithms. CRC algorithms provide a straightforward method for verifying data integrity over large data blocks, communication packets, or code sections. The VCRC can perform 8-bit, 16-bit, 24-bit, and 32-bit CRCs, and it is capable of computing the polynomial code checksum for a block length of 10 bytes in 10 cycles (a byte of data in a single cycle). For custom CRC polynomials the execution time increases to three cycles. A CRC result register contains the current CRC, which is updated whenever a CRC instruction is executed.