  In the context of various application scenarios and/or for the sake of
strengthening field-programmable gate array (FPGA) security, the system
functions of an FPGA design need to be analyzed, which can be achieved by
systematically partitioning the FPGA's bitstream into manageable functional
blocks and detecting their functionalities thereafter. In this paper, we
propose a novel deep learning-based FPGA function block detection method with
three major steps. In specific, we first analyze the format of the bitstream to
obtain the mapping relationship between the configuration bits and configurable
logic blocks because of the discontinuity of the configuration bits in the
bitstream for one element. In order to reap the maturity of object detection
techniques based on deep learning, our next step is to convert an FPGA
bitstream to an image, following the proposed transformation method that takes
account of both the adjacency nature of the programmable logic and the high
degree of redundancy of configuration information. Once the image is obtained,
a deep learning-based object detection algorithm is applied to this transformed
image, and the objects detected can be reflected back to determine the function
blocks of the original FPGA design. The deep neural network used for function
block detection is trained and validated with a specially crafted
bitstream/image dataset. Experiments have confirmed high detection accuracy of
the proposed function detection method, showing a 98.11% of mean Average
Precision (IoU=0.5) for 10 function blocks within a YOLOv3 detector implemented
on Xilinx Zynq-7000 SoCs and Zynq UltraScale+ MPSoCs.
