# CNN Plus Accelerator IP Core

## Description

The Lattice Semiconductor CNN Plus Accelerator IP Core is a calculation engine for Deep Neural Network with fix point weights. It calculates full layers of neural network including convolution layer, pooling layer, batch normalization layer and full connect layer by executing sequence code with weight values which is generated by the Lattice SensAI Neural Network Compiler tool. The engine is optimized for convolutional neural network, which is why it can be used for vision-based application such as classification or face detection and key phrase detection. The engine is not a simple accelerator which requires an extra processor; it can do all required calculations by itself.

Features:

- Selectable 2 implementation types: Compact CNN and Optimized CNN
- Selectable AXI4 or FIFO interface
- Support for convolution layer, max pooling layer, global average pooling layer, batch normalization layer, and full connect layer
- Configurable bit width of activation (16/8-bit)
- Configurable number of memory blocks for tradeoff between resource and performance
- Optimized for 3x3 2D convolution calculation
- Dynamic support for various 1D convolution from 1 to 9 taps
- Supports 2x2 max pooling
- Supports global average pooling by full connect engine
- Configurable input byte mode (signed, unsigned, disable – Compact CNN only)
- Partial DRAM access
- Configurable maximum burst length (32, 256) for AXI4 Interface
- Selectable AXI4 and FIFO via Embedded Mode option.
- Supports paired convolution engines to improve performance - Optimized CNN only
- Configurable Line Buffer Size (512, 1024, 2048) - Optimized CNN only
- Supports general purpose output signal for controlling external logic via command code

## Devices Supported

LIFCL-40, LIFCL-17, LFD2NX-40, LFD2NX-17

## References

- User Guide

## Revision History

1.1.0 | Added Embedded Mode option for selecting between AXI4 and FIFO interface. Added Use Paired Convolution Engine options for improving performance. Added General Purpose Output (gpo_o) signal. Added Line Buffer Size option for supporting VGA input. Added LFD2NX device support.
1.0.0 | Initial release.