Translation Validation of Code Generation from the SIGNAL Data-Flow Language to Verilog

M. A. Hafiz,L. Besnard,Jianwei Niu,Noor Khan,J. Talpin,Kai Hu
DOI: https://doi.org/10.1109/SKG49510.2019.00034
2019-09-01
Abstract:The SIGNAL is a high-level synchronous data-flowlanguage for the design and implementation of safety-criticalembedded systems. It provides a unified framework forspecification, modeling, formal analysis, and automatic codegeneration for different general-purpose languages like Java, C, and C++. However, fully implemented and verified open sourcetool for code generation from SIGNAL to Hardware DescriptionLanguage (HDL) is not available. This paper describes theformal verification of the generated Verilog code from theSIGNAL language. Proving the correctness of generated code isvery important when it is for safety-critical embedded systems. We use the translation validation technique for verifying thecorrectness of the generated code. In this approach, thePolychrony Toolset builds the models of source SIGNALprograms with its associated model checker SIGALI. The opensource tool Yosys generates models for target Verilog programsin the SMT-LIB standard format. We transform the modelgenerated by Yosys to the model accepted by the SIGALI modelchecker. Finally, we use the SIGALI model checker to validatethe translation by symbolic simulation between both source andtarget program models. The target program may have fewerbehaviors than the source program therefore if the model of thetarget program implies the model of the source program, itmeans the target program preserves the semantics of the sourceprogram, and the translation is correct.
Computer Science,Engineering
What problem does this paper attempt to address?