RUS  ENG
Full version
JOURNALS // Proceedings of the Institute for System Programming of the RAS // Archive

Proceedings of ISP RAS, 2019 Volume 31, Issue 3, Pages 135–144 (Mi tisp428)

This article is cited in 3 papers

Extracting assertions for conflicts in HDL descriptions

A. S. Kamkinabcd, M. S. Lebedevd, S. A. Smolovd

a National Research University Higher School of Economics
b Moscow State University
c Moscow Institute of Physics and Technology
d Ivannikov Institute for System Programming of the Russian Academy of Sciences

Abstract: Data access conflicts may arise in hardware designs. One of the ways of detecting such conflicts is static analysis of hardware descriptions in HDL. We propose a static analysis-based approach to data conflicts extraction from HDL descriptions. This approach has been implemented in the Retrascope tool. The following types of conflicts are considered: simultaneous reads and writes, simultaneous writes, reading of uninitialized data, no reads between two writes. Conflict assertions are formulated as conditions on variables. HDL descriptions are automatically translated into formal models suitable for the nuXmv model checker. The translation process consists of the following steps: 1) preliminary processing; 2) Control Flow Graph (CFG) building; 3) CFG transformation into a Guarded Actions Decision Diagram (GADD); 4) GADD translation into a nuXmv format. Conflict assertions are automatically built using static analysis of the GADD model and passed to the nuXmv model checker. Bounded model checking is used to check whether these assertions are satisfiable. If true, counterexamples are generated and then translated to HDL testbenches by the Retrascope tool. The proposed approach was applied to several open source HDL benchmarks like Texas-97, Verilog2SMV, VCEGAR and mips16 modules. Potential conflicts have been detected for all of these benchmarks. Future work includes propagation of conflict assertions to the interface level (thus getting assertions on modules’ communication protocols) and generation of built-in HDL checkers.

Keywords: hardware design, hardware description language, functional verification, static analysis, test generation, data access conflict, control flow graph, guarded action, guarded actions decision diagram, model checking.

Language: English

DOI: 10.15514/ISPRAS-2019-31(3)-11



Bibliographic databases:


© Steklov Math. Inst. of RAS, 2024