This paper describes the T-Ruby language for specifying VLSI circuits in terms of relational abstractions of their behaviour. The language is based on a typed lambda calculus with a type system closely related to that of Edinburgh LF. Terms in the language may have simple, non-parameterised types or types which are constructed from other types, possibly together with terms. The dependent types which can be constructed in this way are useful for describing parameterised regular structures which commonly appear in VLSI circuits. The language forms the basis for a tool which permits term rewriting in a user-directed transformational style according to a set of proved term equivalences. Terms which describe causal relations may then be translated into a VLSI specification in a standard VLSI description language. The rewriting process is illustrated by the derivation of a relation describing a circuit for 2-dimensional convolution.
[1]
Per Martin-Löf,et al.
Constructive mathematics and computer programming
,
1984
.
[2]
Ole Rasmussen.
A Ruby Proof System
,
1996
.
[3]
Lars Rossen,et al.
Proving (facts about) Ruby
,
1991
.
[4]
Furio Honsell,et al.
A framework for defining logics
,
1993,
JACM.
[5]
Daniel Weise.
Constraints, Abstraction and Verification
,
1989,
Hardware Specification, Verification and Synthesis.
[6]
Robin Sharp,et al.
Transformational Rewriting with Ruby
,
1993,
CHDL.
[7]
Graham Hutton,et al.
Between functions and relations in calculating programs
,
1992
.