Results 1  10
of
15
The TRuby Design System
, 1997
"... This paper describes the TRuby system for designing VLSI circuits, starting from formal specifications in which they are described in terms of relational abstractions of their behaviour. The design process involves correctnesspreserving transformations based on proved equivalences between relation ..."
Abstract

Cited by 20 (2 self)
 Add to MetaCart
This paper describes the TRuby system for designing VLSI circuits, starting from formal specifications in which they are described in terms of relational abstractions of their behaviour. The design process involves correctnesspreserving transformations based on proved equivalences between relations, together with the addition of constraints. A class of implementable relations is defined. The tool enables such relations to be simulated or translated into a circuit description in VHDL. The design process is illustrated by the derivation of a circuit for 2dimensional convolution.
Architectural Descriptions for FPGA Circuits
 IEEE Computer Society
, 1995
"... FPGAbased synthesis tools require information about behaviour and architectural to make effective use of the limited number of cells typically available. A hardware description language which models layout and behaviour is used to elegantly specify circuit architecture. This source level informatio ..."
Abstract

Cited by 20 (9 self)
 Add to MetaCart
FPGAbased synthesis tools require information about behaviour and architectural to make effective use of the limited number of cells typically available. A hardware description language which models layout and behaviour is used to elegantly specify circuit architecture. This source level information is used to efficiently translate circuit descriptions onto FPGA devices. 1 Introduction FPGAs offer many advantages for many kinds of applications and present new opportunities for system design [DeHon 94], but their main disadvantages are the limited number of cells available on a single chip and the difficulty of performing global communication. It is important that the available cells are utilized efficiently . One way to do this is to design circuits with a low level schematic editor and manually configure the cells and routing elements. Although this method allows the realization of highly optimised hardware, it has several shortcomings. Design at the gate level is error prone, and c...
Categories, Allegories and Circuit Design
 In Ninth Annual IEEE Symposium on Logic in Computer Science
, 1994
"... Relational languages such as Ruby are used to derive hardware circuits from abstract specifications of their behaviour. Much reasoning is done informally in Ruby using pictorial representations of relational terms. We formalise this use of pictures in circuit design. We show that pictures naturally ..."
Abstract

Cited by 18 (1 self)
 Add to MetaCart
Relational languages such as Ruby are used to derive hardware circuits from abstract specifications of their behaviour. Much reasoning is done informally in Ruby using pictorial representations of relational terms. We formalise this use of pictures in circuit design. We show that pictures naturally form a unitary pretabular allegory. Homomorphisms of pictures correspond to adding new wires or circuit components. Two pictures are mutually homomorphic if and only if they represent equal allegorical terms. We prove soundness and completeness results which guarantee that deriving circuits using pictures does not lead to errors. We illustrate the use of pictures by deriving the ripple adder implementation from a high level, behavioural specification. 1: Introduction Hardware circuit design involves translating abstract specifications of programs into efficient circuits which compute those programs. Pictures are widely used as an informal means of translating a specification into an imple...
Using a Language of Functions and Relations for VLSI Specification
 In Functional programming and Computer Architecture, FPCA'95
, 1995
"... This paper describes the TRuby 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, nonparameterised types or ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
This paper describes the TRuby 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, nonparameterised 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 userdirected 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 2dimensional convolution. 1 Introduction Ruby [3] is a language intended for specif...
Back to Basics: Deriving Representations Changers Without Relations
, 1994
"... A representation changer is a function that can be specified in a particular way in terms of two other functions. Examples of representation changers include binary addition and multiplication, base conversion, and compilers. There has been much recent work in using a relational language, namely ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
A representation changer is a function that can be specified in a particular way in terms of two other functions. Examples of representation changers include binary addition and multiplication, base conversion, and compilers. There has been much recent work in using a relational language, namely Jones and Sheerans' Ruby, to derive representation changers from their specifications using equational reasoning. In this paper
Compositional Logic Programming
 In Proceedings of the JICSLP'96 postconference workshop: Multiparadigm logic programming, Report 9628. Technische Universitat
, 2000
"... Relational program derivation has gathered momentum over the last decade with the development of many specification logics. However, before such relational specifications can be executed in existing programming languages, they must be carefully phrased to respect the evaluation order of the langu ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Relational program derivation has gathered momentum over the last decade with the development of many specification logics. However, before such relational specifications can be executed in existing programming languages, they must be carefully phrased to respect the evaluation order of the language. In turn, this requirement inhibits the rapid prototyping of specifications in a relational notation. The aim of this thesis is to bridge the gap between the methodology and practice of relational program derivation by realising a compositional style of logic programming that permits specifications to be phrased naturally and executed declaratively.
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 builtup inductively from primitive relations using a predefined set of relational operators. Ruby programs also have a geometric interpretation as networks of primitive relations connected by wires,...
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 halfadders', but the deriv ..."
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 halfadders', 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 `hardwarelike' programs that denote finite networks of simple primitives. Ruby has been used to derive a number of different kinds of hardwarelike 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...
Algebraic Formalisations of Fuzzy Relations and Their Representation Theorems
, 1998
"... The aim of this thesis is to develop the fuzzy relational calculus. To develop this calculus, we study four algebraic formalisations of fuzzy relations which are called fuzzy relation algebras, Zadeh categories, relation algebras and Dedekind categories, and we strive to arrive at their representati ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
The aim of this thesis is to develop the fuzzy relational calculus. To develop this calculus, we study four algebraic formalisations of fuzzy relations which are called fuzzy relation algebras, Zadeh categories, relation algebras and Dedekind categories, and we strive to arrive at their representation theorems. The calculus of relations has been investigated since the middle of the nineteenth century. The modern algebraic study of (binary) relations, namely relational calculus, was begun by Tarski. The categorical approach to relational calculus was initiated by Mac Lane and Puppe, and Dedekind categories were introduced by Olivier and Serrato. The representation problem for Boolean relation algebras was proposed by Tarski as the question whether every Boolean relation algebra is isomorphic to an algebra of ordinary homogeneous relations. There are many sufficient conditions that guarantee representability for Boolean relation algebras. Schmidt and Strohlein gave a simple proof of the...
Implementing Ruby in a HigherOrder Logic Programming Language
, 1995
"... Ruby is a relational language for describing hardware circuits. In the past, programming tools existed which only catered for the execution of functional Ruby expressions rather than the complete set of relational ones. In this paper, we develop an implementation of Ruby in Prologa higherorder l ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Ruby is a relational language for describing hardware circuits. In the past, programming tools existed which only catered for the execution of functional Ruby expressions rather than the complete set of relational ones. In this paper, we develop an implementation of Ruby in Prologa higherorder logic programming languageallowing the execution of arbitrary, relational Ruby programs. 1 Introduction Programming problems can be tackled by specifying a program's behaviour in an abstract mathematical specification and then, through the application of some appropriate calculus, converting this into an efficient and implementable program. Until recently, the art of deriving computer programs from specification has been performed equationally in a functional calculus [Bir87]. However, it has become evident that a relational calculus affords us a greater degree of expression and flexibility in both specification and proof since a relational calculus naturally captures the notions of nond...