A non-transitory computer readable medium comprising stored instructions, which when executed by a processor, cause the processor to:
- perform placement of a netlist associated with a first circuit design;
- receive a first list of features associated with the placed netlist;
- perform a global route of the first circuit design;
- receive a second list of features;
- perform a detailed route of the first circuit design by a detailed router;
- receive a label associated with each of a plurality of library cells in the first circuit design;
- predict a number of design rules violations of the first circuit design in accordance with the received first and second lists and the labels;
- select features, from one or more of the first list and the second list, whose degree of correlations with the design rules violations is greater than a first value.