Abstract
Identifying properties (features) of circuits and applying proper algorithms are helpful for solving various computer-aided design problems. For hardware security inspection, there is a demand for reverse engineering, the process of extracting high-level components from bit-level designs. Given a suspected circuit block, a common approach is to find a set of candidate functions and then to apply formal methods to identify it. Identifying useful features of high-level functions and collecting suggested candidates of an unknown block are important steps. Convolutional neural networks (CNNs) have been used extensively in machine learning because often pre-defined features are not required. Deep networks with multiple processing layers have been shown to be capable of learning concealed structures of objects during a training process. This paper discusses requirements for representing logic circuits for CNN processing. A new circuit representation (data format) is developed for the proposed circuit-based convolution operation with dynamic pooling. Based on this data format, a deep learning framework using CNNs to recognize circuit functionalities was built. Compared to reference methods based on support vector machines (SVM), experiments demonstrate the effectiveness of the proposed CNN method for both circuit classification as well as function detection and location. With proper training data, e.g. a set of circuits with hidden Trojans, the proposed framework can be used to train a model to help detect and locate malware in hardware designs.