Hardware Description with Recursion Equations
Abstract
Using a stream to represent the full history of the sequence of values
on a wire in a circuit makes it possible to treat components and their
ports as first-class objects in a hardware description program.
Therefore the program can directly operate on the systems of recursion
equations that define the inputs and outputs of components. This
provides the foundation for a simple, yet powerful, hardware
description methodology that can be implemented in many existing
programming languages simply by defining a library of basic functions.
A hardware designer doesn't need to write equations for all the
components in a circuit; it is often better to write higher order
functions that generate the lexically nested systems of recursion
equations that correspond to the levels of abstraction of the circuit.
Furthermore, a programming language implementation can directly
interpret the hardware description, using a set of function
definitions for the primitive components in the hardware. The
designer can extract alternative meanings from a single hardware
description --- such as a simulation function and a component/wiring
list --- simply by providing alternative sets of primitive function
definitions. Generation of geometric layouts requires additional
information, which can be specified by the designer or generated
automatically. The methodology will work in any programming language
that supports first class functions, recursive functions and data, and
streams or closures, and it has been implemented in Daisy and used in
several hardware designs.
The full paper
Related links
BibTeX citation
@InProceedings{1987-OD-HDRE-CHDL,
author = {John O'Donnell},
title = {Hardware description with recursion equations},
booktitle = {Proceedings of the IFIP 8th International Symposium on
Computer Hardware Description Languages
and their Applications},
pages = {363--382},
year = 1987,
address = {Amsterdam},
month = {April},
publisher = {North-Holland}
}
Page maintained by John
O'Donnell, jtod@dcs.gla.ac.uk