• No results found

Instruction Set Processor Specification (ISPS) ISPS, an improved version of the earlier ISP language, is

the RT-CAD system cost $

2) Document generation — Automatic documentation generation is a very useful feature of specification

2.3 Hardware Description Languages 1 Introduction

2.3.4 Hardware Synthesis

2.3.5.1 Instruction Set Processor Specification (ISPS) ISPS, an improved version of the earlier ISP language, is

essentially a behavioural HDL[2.59]. It is intended that ISPS descriptions should be amenable to a wide range of design applications, rather than supporting a wide range of design levels. The language itself is designed to be both flexible and simple, and it incorporates many constructs that are usually found in high-level programming languages. An ISPS description of a hardware component comprises both an interface and a behavioural description. The interface gives the external structure of the component in terms of the number and type of registers which are used to transmit and receive data. The component's behaviour is described by procedures which specify the sequence of the control and data operations. Although ISPS is mainly intended as a behavioural HDL, it does allow some structural information to be included. This manifests itself in the need for

specifying the width of registers and data paths, and the connections between registers and functional units.

ISPS procedures may contain, together with control and data operations, declarations of local hardware units of

arbitrary complexity. This allows machine descriptions to be constructed in a hierarchical fashion. Specialised control constructs are included in the language to enable the clear expression of the decoding of machine

instructions, and to allow operations to take place concurrently. Procedures may be parameterised to allow

multiple invocations of the same component within a circuit description.

Complete ISPS descriptions are analysed and transformed into a formally defined intermediate representation known as the global data base. This intermediate format is

sufficiently generalised to enable it to be used for many diverse design applications. Such applications include simulation, fault analysis, architecture evaluation and design automation. By using this approach, the designers of ISPS hope to create a unified environment for research and development in multiple application areas. Thus ISPS

descriptions would serve as a common vehicle for

investigation into many aspects of the analysis and design of digital systems.

2.3.5.2 VHDL

VHDL has been developed as a standard HDL for the Very High Speed Integrated Circuit (VHSIC) project sponsored by the American Department of Defence[2.67]. VHDL supports the design, documentation and simulation of hardware from the digital system level to the gate level. VHDL is designed to be independent of any underlying technology or design

methodology. This feature should enable the very latest advances in technology to be quickly and easily

The primary abstraction mechanism in VHDL is the design entity, which is used to represent hardware components. Design entities are composed of an interface description and one or more bodies. The interface defines the external characteristics of a component, such as ports and generic parameters, and each body represents an alternative design approach consistent with those characteristics. Design

entity bodies may be either architectural or behavioural in nature. Architectural bodies contain essentially structural information, and are intended to convey details about

possible implementations of a component. Behavioural bodies give a control flow description of the desired behaviour of a component. They contain data structure definitions and define sequential algorithms that operate on the data

structures to determine the values of the output signals. Data structures and algorithms are specified using a

collection of common programming language constructs such as 'IF* and 'CASE' statements. A behavioural body may not contain any structural information about the component. One feature of VHDL which distinguishes it from most other languages is the provision of two types of time. These are referred to as macro and micro time respectively. The

macro-time scale represents real time units (e.g. microseconds), and is used to describe the temporal

interaction among all the components in the circuit. The micro-time scale is used to specify short delays through combinational circuitry and is essentially not measurable. Thus, when the time between two hypothetical events A and B is described in micro-time, the implication is merely that

'B happens shortly after A*, while macro-time is used to specify the time between events in a precise manner. Consequently, any number of micro-time units may exist between any two consecutive macro-time units.

VHDL provides a very specialised framework for the design of VLSI circuits. The overall organisation of the language reflects the hierarchical structure of hardware designs, and the design entity concept provides a suitable

abstraction for describing hardware components. The language allows all levels of hardware to be described independently of the the implementation technology or design methodology, and many circuit concepts, such as propagation delays and buses, are already built in. This gives a language which is initially straightforward to use, but which may lack a certain amount of generality and

flexibility[2.54]. 2.4 Discussion

In this chapter the most important and novel aspects of a number of experimental CAD systems have been presented, together with a general classification and examples of both software and hardware specification languages. Much

state-of-the-art research in CAD is aimed at the

behavioural specification and automatic synthesis of VLSI circuits. Many of the tools and techniques used in such systems are however applicable in a more general sense to other application areas in the wider realm of CAD for digital systems. It seems that this will especially apply to the adoption of expert system techniques. Expert systems can be used to reduce the complexity of CAD systems to a manageable scale, and mostly remove the need for

intervention from human designers.

It further appears that the major difficulty encountered in both hardware and software specification is similar. This is namely that different applications are often best

described by radically different specification notations. Also, if automatic synthesis is to be achieved, each of the intermediate levels of design description generated

requires its own notation, which is appropriate to the

level of abstraction needed at that particular stage of the synthesis process. This problem presents a significant

challenge to the designers of CAD systems. Specification languages need to be defined which enable the major aspects of a required system to be adequately and concisely

match the natural structure of the application to be

described, and the language should contain constructs which are of an appropriate level of abstraction. Intermediate design notations then need to be developed, together with consistency-preserving transformation techniques, which can automatically derive successively more detailed

descriptions of the application, until a complete implementation is reached.

The remainder of this thesis relates how some of these concepts and ideas have been applied to the specific area of a CAD system for single-board microprocessor

controllers. Many of the software and hardware

specification techniques described above are brought

together to form a behavioural specification language for control systems. A method of transforming behavioural specifications through an intermediate design description into software implementations is also presented. This process involves interaction with a knowledge-based hardware design system, which is under development in

another project. Finally the parallel programming language occam is used as a hardware description language to

construct a generalised simulation environment for

microprocessors. Such simulations can be used to validate designs which are produced by the CAD system.

References

2.1 Stefik,M.J. and Kleer,J.D.:'Prospects for Expert Systems in CAD1, Computer Design, pp 65-76,

vol 22, no 5, 1983

2.2 Newton,A.R. and Sangiovanni-Vincentelli,A.L. : 'Computer-Aided Design for VLSI Circuits',

IEEE Computer, pp 39-59, vol 19, no 4, April 1986 2.3 Carter,H. :'Computer-Aided Design of Integrated

Circuits', IEEE Computer, pp 19-36, vol 19, no 4, April 1986

2.4 Werner,J. :'The Silicon Compiler : Panacea, Wishful Thinking, or Old Hat?', VLSI Design, Sept/Oct, 1982, pp 46-52

2.5 Siewiorek,D.P. and Barbacci,M.R. :'CMU RT-CAD System: An innovative Approach to CAD', Procs AFIPS NCC, vol 45, 1976, pp 643-655

2.6 Darringer,J.A. :'The Description, Simulation and