Results 1 - 10
of
11
Special Purpose Parallel Computing
- Lectures on Parallel Computation
, 1993
"... A vast amount of work has been done in recent years on the design, analysis, implementation and verification of special purpose parallel computing systems. This paper presents a survey of various aspects of this work. A long, but by no means complete, bibliography is given. 1. Introduction Turing ..."
Abstract
-
Cited by 77 (5 self)
- Add to MetaCart
A vast amount of work has been done in recent years on the design, analysis, implementation and verification of special purpose parallel computing systems. This paper presents a survey of various aspects of this work. A long, but by no means complete, bibliography is given. 1. Introduction Turing [365] demonstrated that, in principle, a single general purpose sequential machine could be designed which would be capable of efficiently performing any computation which could be performed by a special purpose sequential machine. The importance of this universality result for subsequent practical developments in computing cannot be overstated. It showed that, for a given computational problem, the additional efficiency advantages which could be gained by designing a special purpose sequential machine for that problem would not be great. Around 1944, von Neumann produced a proposal [66, 389] for a general purpose storedprogram sequential computer which captured the fundamental principles of...
A Tutorial on Lava: A Hardware Description and Verification System
, 2000
"... Contents 1 Introduction 4 2 Getting Started 6 2.1 Your First Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 The Lava Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Your Second Circuit . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Generating VHDL . . ..."
Abstract
-
Cited by 20 (6 self)
- Add to MetaCart
Contents 1 Introduction 4 2 Getting Started 6 2.1 Your First Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 The Lava Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Your Second Circuit . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Generating VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 Bigger Circuits 12 3.1 Recursion over Lists . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Connection Patterns . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.4 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4 Verification 18 4.1 Simple Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Quanti
Between Functions and Relations in Calculating Programs
, 1992
"... This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made ..."
Abstract
-
Cited by 15 (4 self)
- Add to MetaCart
This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made using Ruby. The first is that the notion of a program being an implementation of a specification has never been made precise. The second is to do with types. Fundamental to the use of type information in deriving programs is the idea of having types as special kinds of programs. In Ruby, types are partial equivalence relations (pers). Unfortunately, manipulating some formulae involving types has proved difficult within Ruby. In particular, the preconditions of the `induction' laws that are much used within program derivation often work out to be assertions about types; such assertions have typically been verified either by informal arguments or by using predicate calculus, rather than by ap...
Allegories of Circuits
- Proc. Logical Foundations of Computer Science
, 1994
"... This paper presents three paradigms for circuit design, and investigates the relationships between them. These paradigms are syntactic (based on Freyd and Scedrov's unitary pre-tabular allegories (upas)), pictorial (based on the net list model of circuit connectivity), and relational (based on Sheer ..."
Abstract
-
Cited by 12 (0 self)
- Add to MetaCart
This paper presents three paradigms for circuit design, and investigates the relationships between them. These paradigms are syntactic (based on Freyd and Scedrov's unitary pre-tabular allegories (upas)), pictorial (based on the net list model of circuit connectivity), and relational (based on Sheeran's relational model of circuit design Ruby). We show that net lists over a given signature \Sigma constitute the free upa on \Sigma. Our proof demonstrates that nets and upas are equally expressive, and that nets provide a normal form for both upas and pictures. We use Freyd and Scedrov's representation theorem for upas to show that our relational interpretations constitute a sound and complete class of models for the upa axioms. Thus we can reason about circuits using either the upa axioms, pictures or relations. By considering garbage collection, we show that there is no faithful representation of nets in Rel: we conjecture that a semantics for nets which takes garbage collection into ac...
The Ruby Interpreter
, 1994
"... Ruby is a relational language developed by Jones and Sheeran for describing and designing circuits. This document is a guide to the Ruby interpreter, which allows Ruby programs to be executed. Contents 1 Introduction 2 2 Ruby 3 3 Executable terms 10 4 Worked examples 14 5 Reference material 24 5.1 ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Ruby is a relational language developed by Jones and Sheeran for describing and designing circuits. This document is a guide to the Ruby interpreter, which allows Ruby programs to be executed. Contents 1 Introduction 2 2 Ruby 3 3 Executable terms 10 4 Worked examples 14 5 Reference material 24 5.1 LML syntax for Ruby terms : : : : : : : : : : : : : : : : : : : : : 24 5.2 Logical and arithmetic primitives : : : : : : : : : : : : : : : : : : 25 5.3 Wiring primitives : : : : : : : : : : : : : : : : : : : : : : : : : : : 25 5.4 Combining forms : : : : : : : : : : : : : : : : : : : : : : : : : : : 27 1 Chapter 1 Introduction Ruby is a relational language developed by Jones and Sheeran for describing and designing circuits [6, 3, 4]. Ruby programs denote binary relations, and programs are built-up inductively from primitive relations using a pre-defined set of relational operators. Ruby programs also have a geometric interpretation as networks of primitive relations connected by wires,...
Analysing Parametrised Designs By Non-Standard Interpretation
, 1990
"... . We examine the use of non-standard interpretation to analyse parametrised circuit descriptions, in particular for array-based architectures. Various metrics are employed to characterise the performance trade-offs of generic designs. The objective is to facilitate the evaluation of such metrics for ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
. We examine the use of non-standard interpretation to analyse parametrised circuit descriptions, in particular for array-based architectures. Various metrics are employed to characterise the performance trade-offs of generic designs. The objective is to facilitate the evaluation of such metrics for estimating design quality, so that feasible design alternatives can be compared at an early stage of development. INTRODUCTION Constructing digital systems involves two challenges: to develop one or more circuits that perform the desired function, and to analyse design alternatives in order to select the optimal design. Our previous work [3], [4], [5] has described an algebraic framework and the associated computer-based tools for developing array-based architectures. We have shown how such a framework can be used to simplify the parametrisation, structuring and refinement of designs. This paper builds on this algebraic framework and examines the analysis of parametrised descriptions by n...
A Relational Derivation of a Functional Program
- In Proc. STOP Summer School on Constructive Algorithmics, Ameland, The
, 1992
"... This article is an introduction to the use of relational calculi in deriving programs. We present a derivation in a relational language of a functional program that adds one bit to a binary number. The resulting program is unsurprising, being the standard `column of half--adders', but the derivation ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
This article is an introduction to the use of relational calculi in deriving programs. We present a derivation in a relational language of a functional program that adds one bit to a binary number. The resulting program is unsurprising, being the standard `column of half--adders', but the derivation illustrates a number of points about working with relations rather than functions. 1 Ruby Our derivation is made within the relational calculi developed by Jones and Sheeran [14, 15]. Their language, called Ruby , is designed specifically for the derivation of `hardware--like' programs that denote finite networks of simple primitives. Ruby has been used to derive a number of different kinds of hardware--like programs [13, 22, 23, 16]. Programs in Ruby are built piecewise from smaller programs using a simple set of combining forms. Ruby is not meant as a programming language in its own right, but as a tool for developing and explaining algorithms. Fundamental to Ruby is the use of terse not...
A Tutorial on Lava: A Hardware Description and Verification System
, 2000
"... Contents 1 Introduction 4 2 Getting Started 6 2.1 Your First Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 The Lava Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Your Second Circuit . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Generating VHDL . . ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Contents 1 Introduction 4 2 Getting Started 6 2.1 Your First Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 The Lava Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Your Second Circuit . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 Generating VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 Bigger Circuits 12 3.1 Recursion over Lists . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Connection Patterns . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.4 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4 Verification 18 4.1 Simple Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Quanti
The Circuit That Was Too Lazy to Fail
- in ‘Proceedings of the Glasgow Functional Programming Workshop
, 1997
"... This paper describes a translation of a relational hardware description language into a functional language in such a way that the user does not have to decide the direction of the data flow in the functional language. This approach relies on laziness, making the translation hard to analyse. The use ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This paper describes a translation of a relational hardware description language into a functional language in such a way that the user does not have to decide the direction of the data flow in the functional language. This approach relies on laziness, making the translation hard to analyse. The use of a theorem prover that supports reasoning about laziness and undefined elements allows the investigation of the validity of the translation.
An Introduction to Ruby
, 1995
"... ion and Conjugation : : : : : : : : : : : : : : : : : 8 2.3 Equivalences : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.4 Simple Wiring Relations and Combinators : : : : : : : : : : : : : : 12 2.5 Definitions in T-Ruby : : : : : : : : : : : : : : : : : : : : : : : : : 17 2.6 Hard ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
ion and Conjugation : : : : : : : : : : : : : : : : : 8 2.3 Equivalences : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.4 Simple Wiring Relations and Combinators : : : : : : : : : : : : : : 12 2.5 Definitions in T-Ruby : : : : : : : : : : : : : : : : : : : : : : : : : 17 2.6 Hardware Implementation of Relations : : : : : : : : : : : : : : : : 20 3 Orthogonal Structures 23 3.1 Beside and Below : : : : : : : : : : : : : : : : : : : : : : : : : : : : 23 3.2 Repeated Serial Composition : : : : : : : : : : : : : : : : : : : : : : 26 3.3 Repeated Parallel Composition : : : : : : : : : : : : : : : : : : : : 28 3.4 Triangles : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 33 3.5 Rows and Columns : : : : : : : : : : : : : : : : : : : : : : : : : : : 35 3.6 Reduced Rows and Columns : : : : : : : : : : : : : : : : : : : : : : 38 3.6.1 Horner's Rule : : : : : : : : : : : : : : : : : : : : : : : : : : 40 s g ii CONTENTS 4 Rewriting 43 4.1 Basic Concepts of...

