TY - GEN
T1 - Using static analysis for coverage extraction from emulation/prototyping platforms
AU - Athavale, Viraj
AU - Hertz, Sam
AU - Jetly, Darshan
AU - Ganesan, Vijay
AU - Krysl, Jim
AU - Vasudevan, Shobha
PY - 2012
Y1 - 2012
N2 - Full-system emulation and prototyping is now being used widely in the industry for System-on-Chip (SoC) verification. Emulation/ prototyping platforms run tests in a fraction of time compared to the traditional simulation based verification. However, unlike simulation, they do not provide visibility into the hardware design source code. As a result, they fail to provide any information about code coverage achieved, which is an important metric to measure the completeness of the verification process. In this paper, we present a novel technique to extract code coverage from emulation/prototyping platforms. Through analysis of the source code for the hardware design, we relate the evaluation of branch conditions to other statements in the code. Evaluation of the branch conditions is recorded using additional logic during emulation, and mapped back to the code to obtain coverage information. We apply our technique to an industrial system, and show that it can efficiently provide code coverage statistics that are faithful to the coverage obtained from simulation. We also perform experiments on the publicly available OpenRISC processor and demonstrate similar results.
AB - Full-system emulation and prototyping is now being used widely in the industry for System-on-Chip (SoC) verification. Emulation/ prototyping platforms run tests in a fraction of time compared to the traditional simulation based verification. However, unlike simulation, they do not provide visibility into the hardware design source code. As a result, they fail to provide any information about code coverage achieved, which is an important metric to measure the completeness of the verification process. In this paper, we present a novel technique to extract code coverage from emulation/prototyping platforms. Through analysis of the source code for the hardware design, we relate the evaluation of branch conditions to other statements in the code. Evaluation of the branch conditions is recorded using additional logic during emulation, and mapped back to the code to obtain coverage information. We apply our technique to an industrial system, and show that it can efficiently provide code coverage statistics that are faithful to the coverage obtained from simulation. We also perform experiments on the publicly available OpenRISC processor and demonstrate similar results.
KW - Code coverage
KW - Emulation
KW - FPGA
KW - Static analysis
UR - http://www.scopus.com/inward/record.url?scp=84869067233&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84869067233&partnerID=8YFLogxK
U2 - 10.1145/2380445.2380481
DO - 10.1145/2380445.2380481
M3 - Conference contribution
AN - SCOPUS:84869067233
SN - 9781450314268
T3 - CODES+ISSS'12 - Proceedings of the 10th ACM International Conference on Hardware/Software-Codesign and System Synthesis, Co-located with ESWEEK
SP - 207
EP - 214
BT - CODES+ISSS'12 - Proceedings of the 10th ACM International Conference on Hardware/Software-Codesign and System Synthesis, Co-located with ESWEEK
T2 - 10th ACM International Conference on Hardware/Software-Codesign and System Synthesis, CODES+ISSS 2012, Co-located with 8th Embedded Systems Week, ESWEEK 2012
Y2 - 7 October 2012 through 12 October 2012
ER -