posted on 1994-01-01, 00:00authored byEdmund 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.