Formal Verification for High-Assurance Behavioral Synthesis
نویسندگان
چکیده
We present a framework for certifying hardware designs generated through behavioral synthesis, by using formal verification to certify the associated synthesis transformations. We show how to decompose this certification into two components, which can be respectively handled by the complementary verification techniques, theorem proving and model checking. The approach produces a certified reference flow, composed of transformations distilled from production synthesis tools but represented as transformations on graphs with an associated formal semantics. This tool-independent abstraction disentangles our framework from the inner workings of specific synthesis tools while permitting certification of hardware designs generated from a broad class of behavioral descriptions. We provide experimental results suggesting the scalability on practical designs.
منابع مشابه
Towards Semantics-directed System Design and Synthesis
High assurance systems have been defined as systems “you would bet your life on.” This article discusses the application of a form of functional programming— what we call “monadic programming”—to the generation of high assurance and secure systems. Monadic programming languages leverage algebraic structures from denotational semantics and functional programming—monads—as a flexible, modular org...
متن کاملPosition Paper: A Roadmap for High Assurance Cryptography
Although an active area of research for years, formal verification has still not yet reached widespread deployment. We outline the steps needed to move from low-assurance cryptography, as given by libraries such as OpenSSL, to high assurance cryptography in deployment. In detail, we outline the need for a suite of high-assurance cryptographic software with per-microarchitecture optimizations th...
متن کاملAutomated Correctness Condition Generation for Formal Verification of Synthesized RTL Designs
High-level synthesis tools generate register-transfer level designs from algorithmic behavioral speciications. High-level synthesis process typically consists of dependency graph scheduling, functional unit allocation, register allocation, interconnect allocation and controller generation tasks. Widely used algorithms for these tasks retain the overall control ow structure of the behavioral spe...
متن کاملAutomatic Synthesis of High-Assurance Device Drivers
Device drivers are hard to develop and are notoriously unreliable [13,20]. While constant innovation in the area of electronic design automation has led to dramatic improvements in the IC design process, device driver development practices have not changed much since the days of mainframe computers. As a result, it is common nowadays for a product release to be delayed by driver rather than sil...
متن کاملMacro and Micro Perspectives on Strategic Software Quality Assurance in Resource Constrained Environments
Software quality assurance (SQA) plays a key role in software development process. Software quality assurance methods include testing, inspection, formal method (program verification, model checking, etc.), static code analysis, and runtime verification, etc. A disciplined approach to meeting benefit, cost, schedule, and quality constraints is in need. In this paper, we propose two perspectives...
متن کامل