Deep Learning HDL Toolbox™ supports code generation for series convolutional neural networks (CNNs or ConvNets). You can generate code for any trained convolutional neural network whose computational layers are supported for code generation. See Supported Layers. You can use one of the pretrained networks listed in the table and generate code for your target Intel® or Xilinx® FPGA boards.
Network | Network Description | Type | Single Data Type (with Shipping Bitstreams) | INT8 data type (with Shipping Bitstreams) | Application Area | ||||
ZCU102 | ZC706 | Arria10 SoC | ZCU102 | ZC706 | Arria10 SoC | Classification | |||
AlexNet | AlexNet convolutional neural network. | Series Network | Yes | Yes | Yes | Yes | Yes | Yes | Classification |
LogoNet | Logo recognition network (LogoNet) is a MATLAB® developed logo identification network. For more information, see Logo Recognition Network. | Series Network | Yes | Yes | Yes | Yes | Yes | Yes | Classification |
MNIST | MNIST Digit Classification. See Create Simple Deep Learning Network for Classification | Series Network | Yes | Yes | Yes | Yes | Yes | Yes | Classification |
Lane detection | LaneNet convolutional neural network. For more information, see Deploy Transfer Learning Network for Lane Detection | Series Network | Yes | Yes | Yes | Yes | Yes | Yes | Classification |
VGG-16 | VGG-16 convolutional neural network. For the pretrained VGG-16 model, see
| Series Network | No. Network exceeds PL DDR memory size | No. Network exceeds FC module memory size. | Yes | Yes | No. Network exceeds FC module memory size. | Yes | Classification |
VGG-19 | VGG-19 convolutional neural network. For the pretrained VGG-19 model, see
| Series Network | No. Network exceeds PL DDR memory size | No. Network exceeds FC module memory size. | Yes | Yes | No. Network exceeds FC module memory size. | Yes | Classification |
Darknet-19 | Darknet-19 convolutional neural network. For the pretrained darknet-19
model, see | Series Network | Yes | Yes | Yes | Yes | Yes | Yes | Classification |
Radar Classification | Convolutional neural network that uses micro-Doppler signatures to identify and classify the object. For more information, see Bicyclist and Pedestrian Classification by Using FPGA. | Series Network | Yes | Yes | Yes | Yes | Yes | Yes | Classification and Software Defined Radio (SDR) |
Defect Detection snet_defnet | snet_defnet is a custom AlexNet network used to identify and
classify defects. For more information, see Defect Detection. | Series Network | Yes | Yes | Yes | Yes | Yes | Yes | Classification |
Defect Detection snet_blemdetnet | snet_blemdetnet is a custom convolutional neural network
used to identify and classify defects. For more information, see Defect Detection. | Series Network | Yes | Yes | Yes | Yes | Yes | Yes | Classification |
YOLO v2 Vehicle Detection | You look only once (YOLO) is an object detector that decodes the predictions from a convolutional neural network and generates bounding boxes around the objects. For more information, see Vehicle Detection Using YOLO v2 Deployed to FPGA | Series Network based | Yes | Yes | Yes | Yes | Yes | Yes | Object detection |
DarkNet-53 | Darknet-53 convolutional neural network. For the pretrained DarkNet-53 model,
see darknet53 . | Directed acyclic graph (DAG) network based | No. Network exceeds PL DDR memory size. | No. Network exceeds PL DDR memory size. | Yes | Yes | Yes | Yes | Classification |
ResNet-18 | ResNet-18 convolutional neural network. For the pretrained ResNet-18 model, see
resnet18 . | Directed acyclic graph (DAG) network based | Yes | Yes | Yes | Yes | Yes | Classification | |
ResNet-50 | ResNet-50 convolutional neural network. For the pretrained ResNet-50 model, see
resnet50 . | Directed acyclic graph (DAG) network based | No. Network exceeds PL DDR memory size. | No. Network exceeds PL DDR memory size. | Yes | Yes | Yes | Yes | Classification |
ResNet-based YOLO v2 | You look only once (YOLO) is an object detector that decodes the predictions from a convolutional neural network and generates bounding boxes around the objects. For more information, see Vehicle Detection Using DAG Network Based YOLO v2 Deployed to FPGA. | Directed acyclic graph (DAG) network based | Yes | Yes | Yes | Yes | Yes | Yes | Object detection |
MobileNetV2 | MobileNet-v2 convolutional neural network. For the pretrained MobileNet-v2
model, see mobilenetv2 . | Directed acyclic graph (DAG) network based | Yes | Yes | Yes | No | No | No | Classification |
The following layers are supported by Deep Learning HDL Toolbox.
Layer | Layer Type Hardware (HW) or Software(SW) | Description and Limitations | INT8 Compatible |
SW | An image input layer inputs 2-D images to a network and applies data normalization. | Yes. Runs as single datatype in SW. |
Layer | Layer Type Hardware (HW) or Software(SW) | Layer Output Format | Description and Limitations | INT8 Compatible |
HW | Convolution (Conv) | A 2-D convolutional layer applies sliding convolutional filters to the input. These limitations apply when generating code for a network using this layer:
| Yes | |
HW | Convolution (Conv) | A 2-D grouped convolutional layer separates the input channels into groups and applies sliding convolutional filters. Use grouped convolutional layers for channel-wise separable (also known as depth-wise separable) convolution. Code generation is now supported for a 2-D grouped
convolution layer that has the These limitations apply when generating code for a network using this layer:
| Yes | |
HW | Fully Connected (FC) | A fully connected layer multiplies the input by a weight matrix, and then adds a bias vector. These limitations apply when generating code for a network using this layer:
| Yes |
Layer | Layer Type Hardware (HW) or Software(SW) | Layer Output Format | Description and Limitations | INT8 Compatible |
HW | Layer is fused. | A ReLU layer performs a threshold operation to each element of the input where any value less than zero is set to zero. A ReLU layer is supported only when it is preceded by any of these layers:
| Yes | |
HW | Layer is fused. | A leaky ReLU layer performs a threshold operation where any input value less than zero is multiplied by a fixed scalar. A leaky ReLU layer is supported only when it is preceded by any of these layers:
| Yes | |
HW | Layer is fused. | A clipped ReLU layer performs a threshold operation where any input value less than zero is set to zero and any value above the clipping ceiling is set to that clipping ceiling value. A clipped ReLU layer is supported only when it is preceded by any of these layers:
| Yes |
Layer | Layer Type Hardware (HW) or Software(SW) | Layer Output Format | Description and Limitations | INT8 Compatible |
HW | Layer is fused. | A batch normalization layer normalizes each input channel across a mini-batch. A batch normalization layer is only supported only when it is preceded by a convolution layer. | Yes | |
HW | Convolution (Conv) | A channel-wise local response (cross-channel) normalization layer carries out channel-wise normalization. The
| Yes. Runs as single datatype in HW. | |
NoOP on inference | NoOP on inference | A dropout layer randomly sets input elements to zero with a given probability. | Yes |
Layer | Layer Type Hardware (HW) or Software(SW) | Layer Output Format | Description and Limitations | INT8 Compatible |
HW | Convolution (Conv) | A max pooling layer performs down sampling by dividing the input into rectangular pooling regions and computing the maximum of each region. These limitations apply when generating code for a network using this layer:
| Yes | |
HW | Convolution (Conv) | An average pooling layer performs down sampling by dividing the input into rectangular pooling regions and computing the average values of each region. These limitations apply when generating code for a network using this layer:
| Yes | |
HW | Convolution (Conv) or Fully Connected (FC). When the input activation size is lower than the memory threshold, the layer output format is FC. | A global average pooling layer performs down sampling by computing the mean of the height and width dimensions of the input. These limitations apply when generating code for a network using this layer:
| Yes |
Layer | Layer Type Hardware (HW) or Software(SW) | Layer Output Format | Description and Limitations | INT8 Compatible |
HW | Inherit from input. | An addition layer adds inputs from multiple neural network layers element-wise. These limitations apply when generating code for a network using this layer:
| Yes | |
HW | Inherit from input. | A depth concatenation layer takes inputs that have the same height and width and concatenates them along the third dimension (the channel dimension). These limitations apply when generating code for a network using this layer:
| No |
Layer | Layer Type Hardware (HW) or Software(SW) | Description and Limitations | INT8 Compatible |
SW | A softmax layer applies a softmax function to the input. | Yes. Runs as single datatype in SW. | |
SW | A classification layer computes the cross-entropy loss for multi class classification issues with mutually exclusive classes. | Yes | |
SW | A regression layer computes the half-mean-squared-error loss for regression problems. | Yes |
Layer | Layer Type Hardware (HW) or Software(SW) | Layer Output Format | Description and Limitations | INT8 Compatible |
nnet.keras.layer.FlattenCStyleLayer | HW | Layer will be fused | Flatten activations into 1-D layers assuming C-style (row-major) order. A | Yes |
nnet.keras.layer.ZeroPadding2dLayer | HW | Layer will be fused. | Zero padding layer for 2-D input. A
| Yes |
These boards are supported by Deep Learning HDL Toolbox:
Xilinx Zynq®-7000 ZC706.
Intel Arria® 10 SoC.
Xilinx Zynq UltraScale+™ MPSoC ZCU102.
Deep Learning HDL Toolbox has been tested with:
Xilinx Vivado Design Suite 2020.1
Intel Quartus Prime 18.1