Executable Protocol Specification in ESL
journal contributionposted on 1994-01-01, 00:00 authored by Edmund M Clarke, S German, Y Lu, H Veith, D Wang
Hardware specifications in English are frequently ambiguous and often selfcontradictory. We propose a new logic ESL which facilitates formal specification of hardware protocols. Our logic is closely related to LTL but can express all regular safety properties. We have developed a protocol synthesis methodology which generates Mealy machines from ESL specifications. The Mealy machines can be automatically translated into executable code either in Verilog or SMV. Our methodology exploits the observation that protocols are naturally composed of many semantically distinct components. This structure is reflected in the syntax of ESL specifications. We use a modified LTL tableau construction to build a Mealy machine for each component. The Mealy machines are connected together in a Verilog or SMV framework. In many cases this makes it possible to circumvent the state explosion problem during code generation and to identify conflicts between components during simulation or model checking.We have implemented a tool based on the logic and used it to specify and verify a significant part of the PCI bus protocol.