Skip to content
forked from zshi0616/DeepTPI

This is an official implementation for "DeepTPI: Test Point Insertion with Deep Reinforcement Learning".

Notifications You must be signed in to change notification settings

cure-lab/DeepTPI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeepTPI: Test Point Insertion with Deep Reinforcement Learning

Code repository for the paper:
DeepTPI: Test Point Insertion with Deep Reinforcement Learning
Zhengyuan Shi, Min Li, Sadaf Khan, Liuzheng Wang, Naixing Wang, Yu Huang and Qiang Xu

Abstract

Test point insertion (TPI) is a widely used technique for testability enhancement, especially for logic built-in self-test (LBIST) due to its relatively low fault coverage. In this paper, we propose a novel TPI approach based on deep reinforcement learning (DRL), named \emph{DeepTPI}. Unlike previous learning-based solutions that formulate the TPI task as a supervised-learning problem, we train a novel DRL agent with the Deep Q-learning algorithm. Specifically, we model circuits as directed graphs and embed a graph neural networks (GNNs) into the value network to predict the action value. Meanwhile, we leverage the general node embedding from a pre-trained model as a partial node feature and design a dedicated testability-aware attention mechanism for the value network. The ablation studies prove that our agent can learn a better policy with the above two methods. Experimental results on circuits with different scale show that DeepTPI significantly improves test coverage compared to existing solutions.

Installation

The experiments are conducted on Linux, with Python version 3.7.4, PyTorch version 1.8.1, and Pytorch Geometric version 2.0.1.

To set up the environment:

conda create -n deepgate python=3.7.4
conda activate deepgate
pip install -r requirements.txt

Running training code

To train the RL Value Network (Graph-DQN),

bash run/ITC22/train.sh

For settings of experiments, run the scripts in directory ./exp.

Running testing code

To test the RL agent,

bash run/ITC22/test.sh

About

This is an official implementation for "DeepTPI: Test Point Insertion with Deep Reinforcement Learning".

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 93.6%
  • Shell 6.4%