2011 · 67 citations · 15 references
ComputingComputer EngineeringComputer ScienceCompilersFormal MethodsHardware Description LanguagesCode GenerationControl-flow AnalysisData-flow AnalysisLogic SynthesisSymbolic ExecutionAssertion CheckingControl Flow GraphsInformation Flow GraphsPath ExplosionRegister-transfer Level AssertionsRegister-transfer Level GenerationSymbolic Execution EnginesSymbolic Expression
We present HYBRO, an automatic methodology to generate high coverage input vectors for Register Transfer Level (RTL) designs based on branch-coverage directed approach. HYBRO uses dynamic simulation data and static analysis of RTL control flow graphs (CFGs). A concrete simulation is applied over a fixed number of cycles. Instrumented code records the branches covered. The corresponding symbolic trace is extracted from the CFG with an RTL symbolic execution engine. A guard in the symbolic expression is mutated. If the mutated guard has dependent branches that have not already been covered, it is mutated and passed to an SMT solver. A satisfiable assignment generates a valid input vector. We implement the Verilog RTL symbolic execution engine and show that the notion of branch-coverage directed exploration can avoid path explosion caused by previous path-based approach to input vector generation and achieve full branch and more than 90% functional (assertion) coverage quickly on ITC99 benchmark and several Openrisc designs. We also describe two types of optimizations a) dynamic UD chain slicing b) local conflict resolution to speed up HYBRO by 1.6-12 times on different benchmarks.
15
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Koushik Sen, Darko Marinov, Gul Agha · 2005 · 1.7K citations
Patrice Godefroid, Nils Klarlund, Koushik Sen · 2005 · 1.5K citations