Embedded Design Handbook

ID 683689
Date 8/28/2023
Public
Document Table of Contents

7.1.1.2. Accelerating Cyclic Redundancy Checking (CRC)

CRC is significantly more efficient in hardware than software; consequently, you can improve the throughput of your system by implementing a hardware accelerator for CRC. In addition, by eliminating CRC from the tasks that the processor must run, the processor has more bandwidth to accomplish other tasks.

The figure below illustrates a system in which a Nios® II II processor offloads CRC processing to a hardware accelerator. In this system, the Nios® II processor reads and writes registers to control the CRC using its Avalon® Memory-Mapped ( Avalon® -MM) slave port. The CRC component’s Avalon® -MM master port reads data for the CRC check from memory.

Figure 268. A Hardware Accelerator for CRC

An alternative approach includes a dedicated DMA engine in addition to the Nios® II processor. The figure below illustrates this design. In this system, the Nios® II processor programs the DMA engine, which transfers data from memory to the CRC.

Figure 269. DMA and Hardware Accelerator for CRC

Although the figure above shows the DMA and CRC as separate blocks, you can combine them as a custom component which includes both an Avalon® -MM master and slave port. You can import this component into your Platform Designer system using the component editor.

To learn more about using component editor, refer to the "Component Editor" section in the Creating Platform Designer Components chapter of the Quartus Prime Handbook Volume 1: Design and Synthesis. You can find additional examples of hardware acceleration on the Intel IP: Reference Designs web page.