Bansal, Kunal2020-01-252020-01-252018-08-02vt_gsexam:16696http://hdl.handle.net/10919/96581In this thesis, we present a new register-transfer level (RTL) test generation method that makes use of two coverage metrics, Branch Coverage, and Mutation Coverage across two stages, to cover hard-to-reach points previously unreached. We start with a preprocessing stage by converting the RTL source to a C++ equivalent using a modified Verilator, which also automatically creates mutants and the corresponding mutated C++ design, based on arithmetic, logical and relational operators during conversion. With the help of extracted Data Dependency and Control Flow Graphs, in every <golden, mutation> pair, branches containing variables dependent on the mutated statement are instrumented to track them. The first stage uses Evolutionary algorithms with Ant Colony Optimization to generate test vectors with mutation coverage as the metric. Two new filtering techniques are also proposed which optimize the first stage by eliminating the need for generating tests for redundant mutants. The next stage is the original BEACON which now takes the generated mutation test vectors as the initial population unlike random vectors, and output final test vectors. These test vectors succeed in improving the coverage up to 70%, compared to the previous approaches for most of the ITC99 benchmarks. With the application of filtering techniques, we also observed a speedup by 85% in the test generation runtime and also up to 78% reduction in test vector size when compared with those generated by the previous techniques.ETDIn CopyrightBranchMutationCoverageMetricRTLIncreasing Branch Coverage with Dual Metric RTL Test GenerationThesis