Results 1  10
of
15
DDD: A System for Mechanized Digital Design Derivation
, 1997
"... Our research group at Indiana University is investigating a formalization of digital system design that is based on functional algebra. We have developed a transformation system called DDD to facilitate this study. DDD stands for digital design derivation; the system is used interactively to trans ..."
Abstract

Cited by 28 (10 self)
 Add to MetaCart
Our research group at Indiana University is investigating a formalization of digital system design that is based on functional algebra. We have developed a transformation system called DDD to facilitate this study. DDD stands for digital design derivation; the system is used interactively to translate higher level speci cations into hierarchical boolean systems, to which logic synthesis tools are then applied. In this paper, we take a detailed look at how the system is used. In two examples, we examine the sequence of intermediate expressions produced as an implementation is derived. We discuss how these expressions are used at strategic levels of thinking. We illustrate how the choice of target technology in uences the tactical course of derivation. Throughout, we try to give a sense of how functional abstractions are
Embedded Languages for Describing and Verifying Hardware
, 2001
"... Abstract Lava is a system for designing, specifying, verifying and implementing hardware. It is embedded in the functional programming language Haskell, which means that hardware descriptions are firstclass objects in Haskell. We are thus able to use modern programming language features, such as hi ..."
Abstract

Cited by 23 (2 self)
 Add to MetaCart
Abstract Lava is a system for designing, specifying, verifying and implementing hardware. It is embedded in the functional programming language Haskell, which means that hardware descriptions are firstclass objects in Haskell. We are thus able to use modern programming language features, such as higherorder functions, polymorphism, type classes and laziness, in hardware descriptions. We present two rather different versions of Lava. One version realises the embedding by using monads to keep track of the information specified in a hardware description. The other version uses a new language construct, called observable sharing, which eliminates the need for monads so that descriptions are much cleaner. Adding observable sharing to Haskell is a nonconservative extension, meaning that some properties of Haskell are lost. We thus investigate to what extent we are still allowed to use a normal Haskell compiler or interpreter. We also introduce an embedded language for specifying properties. The use of this language is twofold. On the one hand, we can use it to specify and later formally verify properties of the described circuits. On the other hand, we can use it to specify and randomly test properties of normal Haskell programs. As a bonus, since hardware descriptions are embedded in Haskell, we can also use it to test our circuit descriptions.
Relations and Refinement in Circuit Design
 Proc. BCS FACS Workshop on Refinement, Workshops in Computing
, 1991
"... A language of relations and combining forms is presented in which to describe both the behaviour of circuits and the specifications which they must meet. We illustrate a design method that starts by selecting representations for the values on which a circuit operates, and derive the circuit from the ..."
Abstract

Cited by 21 (1 self)
 Add to MetaCart
A language of relations and combining forms is presented in which to describe both the behaviour of circuits and the specifications which they must meet. We illustrate a design method that starts by selecting representations for the values on which a circuit operates, and derive the circuit from these representations by a process of refinement entirely within the language. Formal methods have always been used in circuit design. It would be unthinkable to attempt to design combinational circuits without using Boolean algebra. This means that circuit designers, unlike programmers, already use mathematical tools as a matter of course. It also means that we have a good basis on which to build higher level formal design methods. Encouraged by these observations, we have been investigating the application of formal program development techniques to circuit design. We view circuit design as the transformation of a program describing the required behaviour into an equivalent program that is s...
DDDFM9001: Derivation of a Verified Microprocessor
, 1994
"... Derivation and verification represent alternate approaches to design. Derivation aims at deriving a "correct by construction" design while verification aims at constructing a post factum "proof of correctness" for a design. However, as researchers and engineers gain design experience in a formal fra ..."
Abstract

Cited by 21 (6 self)
 Add to MetaCart
Derivation and verification represent alternate approaches to design. Derivation aims at deriving a "correct by construction" design while verification aims at constructing a post factum "proof of correctness" for a design. However, as researchers and engineers gain design experience in a formal framework, both approaches are emerging as interdependent facets of design. The thesis of this work is that alternate forms of formal reasoning must be integrated if formal methods are to support the natural analytical and generative reasoning that takes place in engineering practice. As a vehicle for this research, the DDD digital design derivation system was implemented to study formal hardware design in an algebraic framework. DDD is a firstorder transformation system which mechanizes a basic design algebra for synthesizing digital circuit descriptions from highlevel functional specifications. The system is a collection of correctness preserving transformations that promote a topdown desig...
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...
Hardware Description with Recursion Equations
 In Proceedings of the IFIP 8th International Symposium on Computer Hardware Description Languages and their Applications
, 1987
"... this paper develops such a scheme, called "hardware description with recursion equations" (abbreviated HDRE and pronounced as hydra). A designer using HDRE may describe a circuit using a simple set of primitive functions written in an underlying general purpose programming language, and the descript ..."
Abstract

Cited by 10 (3 self)
 Add to MetaCart
this paper develops such a scheme, called "hardware description with recursion equations" (abbreviated HDRE and pronounced as hydra). A designer using HDRE may describe a circuit using a simple set of primitive functions written in an underlying general purpose programming language, and the description itself is just a function written in that language. Executing a circuit description function provides its meaning  its semantic content.
Derivation of Parallel Algorithms from Functional Specifications to CSP Processes
 Mathematics of Program Construction, LNCS947
, 1995
"... Abstract. A transformational programming approach is proposed as a means for developing a class of parallel algorithms from clear functional speci cations to e cientnetworks of communicating sequential processes (CSP). A foundation for the systematic re nement of functional speci cations into CSP pr ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
Abstract. A transformational programming approach is proposed as a means for developing a class of parallel algorithms from clear functional speci cations to e cientnetworks of communicating sequential processes (CSP). A foundation for the systematic re nement of functional speci cations into CSP processes is established. Techniques for exhibiting implicit parallelism in functional speci cation are developed. Their use is illustrated by deriving new e cient parallel algorithms to several problems. Derivation and reasoning are conducted in an equational style using the calculus for program synthesis developed by Bird and Meertens. 1
The Implementation of a System Description Language and its Semantic Functions
, 1991
"... Contents 1 Introduction 9 1.1 Current system description languages . . . . . . . . . . . . . . . . . 9 1.2 Formal function theory . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Interpretation of formal functions . . . . . . . . . . . . . . . . . . . . 11 1.4 Semantic functions . . . . . . ..."
Abstract

Cited by 7 (6 self)
 Add to MetaCart
Contents 1 Introduction 9 1.1 Current system description languages . . . . . . . . . . . . . . . . . 9 1.2 Formal function theory . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Interpretation of formal functions . . . . . . . . . . . . . . . . . . . . 11 1.4 Semantic functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5 System semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6 Adirectional systems . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7 Applications of system semantics . . . . . . . . . . . . . . . . . . . . 14 1.8 The ESPRIT project FORFUN . . . . . . . . . . . . . . . . . . . . . 14 1.9 The contents of this thesis . . . . . . . . . . . . . . . . . . . . . . . . 16 2 Mathematical background 17 2.1 Overview of mathematical notation used . . . . . . . . . . . . . . . . 18 2.2 Formal function theory . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Formal language theory . . . . . . . . . . . . . . . . . . . . .
A functional HDL in reFLect
 Sixth International Workshop on Designing Correct Circuits: Vienna, 25–26 March 2006: Participants’ Proceedings. ETAPS 2006
, 2006
"... ReFLect [4] is a functional programming language designed and implemented at Intel’s Strategic CAD Labs under the direction of Jim Grundy. The language is strongly typed and similar to ML, but provides certain reflection features intended for applications in industrial hardware design and verificati ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
ReFLect [4] is a functional programming language designed and implemented at Intel’s Strategic CAD Labs under the direction of Jim Grundy. The language is strongly typed and similar to ML, but provides certain reflection features intended for applications in industrial hardware design and verification. Like LISP, reFLect has quotation and antiquotation constructs that may be used to construct and decompose expressions in the language itself. Unlike LISP, these mechanisms are typed. The language also provides a primitive mechanism for patternmatching, and in particular for defining functions over code by patternmatching on the structure of reFLect expressions. The design of reFLect draws on the experience of applying an earlier reflective language called FL [1] to largescale formal verification problems within Intel’s Forte framework [8]. One of the intended roles of reFLect is to be the host language for a functional HDL. As with other work based on Haskell [2, 7] or LISP [5, 6], a key requirement is the ability to simulate hardware models by program execution. Circuit descriptions are just functional programs, which we can simply run to simulate the circuits on test case inputs. But in addition to this simulation capability, we also wish to execute various operations on the abstract syntax of circuit descriptions written in the language. We want to be able to write programs that ‘see ’ the code of a circuit description.
The Formalization of a Simple Hardware Description Language
 Applied Formal Methods For Correct VLSI Design
, 1989
"... . A hierarchical, occurrenceoriented, combinational hardware description language has been formalized using the BoyerMoore logic. Instead of representing circuits as formulas of a particular logic, combinational circuits are represented by list constants in the BoyerMoore logic. A goodcircuit pr ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
. A hierarchical, occurrenceoriented, combinational hardware description language has been formalized using the BoyerMoore logic. Instead of representing circuits as formulas of a particular logic, combinational circuits are represented by list constants in the BoyerMoore logic. A goodcircuit predicate recognizes wellformed circuit descriptions; an interpreter provides the semantics of the language. This approach allows the direct verification of circuit specifications, as well as allowing the verification of circuit generating functions. A circuit generating function for a family of ALUs has been verified using these techniques. 1. Introduction The formalization of a hierarchical, occurrenceoriented, combinational hardware description language (HDL) has been employed to prove the correctness of functions which generate circuits. This formalization was carried out with the BoyerMoore logic and its associated mechanical theorem prover [Boyer & Moore 88]. HDL statements are forma...