LARD Questions and Answers

Why yet another hardware description language?

A good question. The simple answer is that none of the existing languages give us exactly the functionallity that we want - see below for details of some of their failings. We also have little investment in the existing HDLs so from the users' point of view there is no need to maintain compatibility.

Also by developing our own language from scratch we have much greater flexibility when it comes to tools development. With VHDL for example it is necessary to use an awkward foreign-language interface to add our own tools to the simulator. With our own language we have total flexibility to integrate our tools as we wish.

So what's wrong with Tangram?

Tangram is a very sucessful and effective language for asynchronous circuit synthesis. It does however suffer from a few problems:

Apart from these points Tangram is very close to what we want and some of its other features have found their way into LARD.

What about VHDL?

VHDL has many of the things that Tangram misses: it has a good type system, it models time, and it is available to us. But it suffers from two serious problems.

So how much smaller is a LARD model than an equivalent VHDL model?

We currently have two examples to compare. My SCALP instruction issuer code reduced from 1000 lines of VHDL to 300 lines of LARD. In this case the VHDL code was partly behavioural and partly structural in terms of macromodule components. Dave Gilbert has implemented his low-latency fifo model in both and took 150 lines in VHDL and 45 in LARD. This is a purely behavioural model.

Can LARD be used as a synthesis language?

No, LARD hasn't been designed for synthesis. In the AMULET1 and AMULET2 designs we found that building an implementation once the model was complete was relatively quick, so we don't feel that we need synthesis. Our problem area is getting an early feel for the behaviour and in particular the performance of our architectural ideas. LARD is designed to fill this gap. It is however a very flexible language and the idea of a synthesizable subset and an interface to a tool such as BALSA is a future possibility.