Lola (hardware description language)
Encyclopedia
Lola is designed to be a simple hardware description language
Hardware description language
In electronics, a hardware description language or HDL is any language from a class of computer languages, specification languages, or modeling languages for formal description and design of electronic circuits, and most-commonly, digital logic...

 for describing synchronous
Synchronous circuit
A synchronous circuit is a digital circuit in which the parts are synchronized by a clock signal.In an ideal synchronous circuit, every change in the logical levels of its storage components is simultaneous. These transitions follow the level change of a special signal called the clock...

, digital circuit
Digital circuit
Digital electronics represent signals by discrete bands of analog levels, rather than by a continuous range. All levels within a band represent the same signal state...

s. Niklaus Wirth
Niklaus Wirth
Niklaus Emil Wirth is a Swiss computer scientist, best known for designing several programming languages, including Pascal, and for pioneering several classic topics in software engineering. In 1984 he won the Turing Award for developing a sequence of innovative computer languages.-Biography:Wirth...

 developed the language to teach digital design on field-programmable gate arrays (FPGAs) to computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

 students while a professor at ETH Zürich
ETH Zurich
The Swiss Federal Institute of Technology Zurich or ETH Zürich is an engineering, science, technology, mathematics and management university in the City of Zurich, Switzerland....

.

The purpose of Lola is to statically describe the structure and functionality of hardware components and of the connections between them. A Lola text is composed of declarations and statements. It describes the hardware on the gate
Logic gate
A logic gate is an idealized or physical device implementing a Boolean function, that is, it performs a logical operation on one or more logic inputs and produces a single logic output. Depending on the context, the term may refer to an ideal logic gate, one that has for instance zero rise time and...

 level in the form of signal assignments. Signals are combined using operators and assigned to other signals. Signals and the respective assignments can be grouped together into types. An instance of a type is a hardware component. Types can be composed of instances of other types, thereby supporting a hierarchical
Hierarchy
A hierarchy is an arrangement of items in which the items are represented as being "above," "below," or "at the same level as" one another...

 design style and they can be generic
Generic programming
In a broad definition, generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters...

 (e.g. parametrizable with the word-width of a circuit).

All of the concepts mentioned above are demonstrated in the following example of a circuit for adding binary data. First, a fundamental building block (TYPE Cell) is defined, then
this Cell is used to declare a cascade of word-width 8, and finally the Cells are connected to each other. The MODULE Adder defined in this example can serve as a building block on a higher level of the design hierarchy.


MODULE Adder;

TYPE Cell; (* Composite Type *)
IN x,y,ci:BIT; (* input signals *)
OUT z,co:BIT; (* output signals *)
BEGIN
z:=x-y-ci;
co:=x*y+x*ci+y*ci;
END Cell;

CONST N:=8;
IN X,Y:[N]BIT; ci:BIT; (* input signals *)
OUT Z:[N]BIT; co:BIT; (* output signals *)
VAR S:[N]Cell; (* composite type instances *)
BEGIN
S.0(X.0, Y.0, ci); (* inputs in cell 0*)
FOR i:=1..N-1 DO
S.i(X.i,Y.i,S[i-1].co); (* inputs in cell i *)
END;
FOR i:=0..N-1 DO
Z.i:=S.i.z;
END;
co:=S.7.co;
END Adder.


Wirth describes Lola from a user's perspective in his book Digital Circuit Design. A complementary view on the details of the Lola compiler's implementation can be found in Wirth's technical report ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/236.ps.gz Lola System Notes. An overview of the whole system of tools for digital design is the technical report ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/2xx/215.ps.gz Tools for Digital Circuit Design using FPGAs (containing a copy of the report on the language Lola Lola: An Object-Oriented Logic Description Language).

External links

  • Lola language page at ETH Zürich
    ETH Zurich
    The Swiss Federal Institute of Technology Zurich or ETH Zürich is an engineering, science, technology, mathematics and management university in the City of Zurich, Switzerland....

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK