LARD Introduction

What is LARD?

LARD is a hardware description language developed for describing asynchronous systems - though little is specific to that purpose, so you could use it to descibe synchronous systems if you wanted, or even as a general purpose programming language.

The reason for LARD's development is the AMULET3 microprocessor project. AMULET3 is a fully self-timed implementation of the ARM architecture under development by the AMULET group at the University of Manchester. One of the bottlenecks in the AMULET1 and AMULET2 design processes was the time taken to develop a functional high-level model of the processor for architectural evaluation. An important contribution to overcoming this bottleneck is the adoption of a new more abstract modelling language.

The initial requirements for the language were:

The system that is now in place seems to meet those requirements, and initial results are encouraging. The AMULET3 model is currently able to execute ARM code after an order of magnitude less modelling effort than was required for the previous processors. We are now making LARD available to the wider community in the hope that others will find it useful.

How does LARD differ from VHDL?

VHDL has been used by the group, though not for the AMULET1 and AMULET2 processors. Our main problems with this language are:

How does LARD differ from Tangram?

Tangram solves all of the problems of VHDL described above. Unfortunately it does suffer from some problems of its own:

The other problems result from the fact tha Tangram is exclusively a synthesis language:

Why the silly name?

The answer to that is lost in the mists of time - but I'm pretty sure I thought of it in a pub...

On what basis is it available?

LARD is freely available by ftp to anyone. Of course there is no warranty and no garauntee that any bugs you find will get fixed - though I hope to keep users up to date with new versions if I can.