Synthesis of hardware systems from very high level behavioural specifications
Richard M. Marshall · ERA · 1986
Electronics are now in wide use replacing mechanical controllers in products such as consumer goods and cars.Typically these electronic controllers consist of a microprocessor and some interfaces, such as digital-to-analogue converters, connected to the system being controlled.The design of the hardware and software is disjoint, with both being specified at a low level.Control software can be very complex, involving the handling of a number of concurrent tasks; consequently it is very difficult to write, and many revisions must be made before it is correct.As these controllers become single chips, mistakes in software become extremely expensive to rectify.This thesis presents a novel system which simulates and synthesises complete processor-based controllers from the software they are to run.The programming language OCCAM is used to describe both the structure and behaviour of the controller system at an extremely high level.The structure is expressed by declaring interface circuits as imported procedures, which are executed in parallel with the behaviour of the controller, specified as OCCAM code.The interface circuits are described in libraries.Associated with each is a number of OCCAM subprogram bodies.One of these is always a behavioural model of the circuit, for use in simulation, while the others are for different implementation technologies, communicating with the hardware and presenting a consistent interface to the control program.In this way a single design document can be used without change for simulation and synthesis.An expert system, the artificial engineer, uses the structural information extracted from the control program to design the required controller hardware.It consults the designer over issues such as performance and cost, and designs within these constraints.To demonstrate the practicality of the approach, a prototype has been built which can simulate designs and synthesise board-level controllers based on Z80 processors.Several complete examples are given.An architecture based on customised processors is proposed for VLSI implementation. work it describes -is -entirely-my-own napier L. liLroaucvloIlTo demonstrate the validity of these ideas a prototype implementation of USHER has been developed.This includes the simulator and a back-end that designs board-level controllers using Z80 microprocessors.A Z80 microcomputer fitted with a number of common interfaces has been built as a test-bed.The interface circuits from this test-bed machine are used as the foundation for the Artificial Engineer knowledge-base.Three examples have been developed to test the prototype.A structural description of this thesis might be as follows:Chapter 2 examines other work in the field of compiling high-level languages to hardware in particular, and behavioural description and synthesis systems in general.Chapter 3 describes the concepts behind the USHER system in detail.It gives a rationale for choosing OCCAM, describes the minor extensions to the syntax of the language, outlines the overall structure of the software, and overviews the steps involved in the making of a design.Chapter 4 describes the USHER simulator and its environment.Various techniques for simulating interfaces are discussed.Chapter 5 describes the implementation of the Z80 compiler and test-bed machine.Chapter 6 introduces the Artificial Engineer.A limited defence of expert sys- tems is presented, and the operation of this one described.Details of the prototype interface-designers are given.Chapter T describes the three test programs.It shows the various stages in their development and demonstrates both simulation and synthesis.The simplest example is a stopwatch, another is a digital voltmeter and the largest a cash register.Chapter 8 charts the successes and identifies the weaknesses of the USHER system, concept and implementation.It then discusses alternative backends for USHER, including an appropriate VLSI architecture.