scispace - formally typeset
Book ChapterDOI

Embedding a Hardware Description Language in Template Haskell

Reads0
Chats0
TLDR
A new solution to netlist generation and software logic probes, where the DSL does not fit exactly within the host functional language, is based on program transformations performed automatically by metaprograms in Template Haskell.
Abstract
Hydra is a domain-specific language for designing digital circuits, which is implemented by embedding within Haskell. Many features required for hardware specification fit well within functional languages, leading in many cases to a perfect embedding. There are some situations, including netlist generation and software logic probes, where the DSL does not fit exactly within the host functional language. A new solution to these problems is based on program transformations performed automatically by metaprograms in Template Haskell.

read more

Citations
More filters
Journal ArticleDOI

Synchronous digital circuits as functional programs

TL;DR: The systems and formal underpinnings that constitute theFunctional programming techniques with respect to other formal methods for hardware design are surveyed and the work yet to be done is discussed.
Book ChapterDOI

The Design of Hume: A High-Level Language for the Real-Time Embedded Systems Domain

TL;DR: Hume provides a number of high level features including higher-order functions, polymorphic types, arbitrary but sized user-defined data structures, asynchronous processes, lightweight exception handling, automatic memory management and domain-specific meta-programming features, whilst seeking to guarantee strong space/time behaviour and maintaining overall determinacy.
Journal ArticleDOI

A Short Historical Survey of Functional Hardware Languages

TL;DR: This short historical survey is about functional languages specifically created for hardware design and verification, which includes those hardware languages or formalisms which are strongly influenced by functional programming style.
Journal ArticleDOI

Types and associated type families for hardware simulation and synthesis

TL;DR: This article overviews the design and implementation of the second generation of Kansas Lava, which has retained its dual shallow/deep representation of signals in general, but now has a number of externally visible abstractions for combinatorial and sequential circuits, and enabled signals.
Journal Article

Exploiting purely functional programming to obtain bounded resource behaviour : The hume approach

TL;DR: This chapter describes Hume: a functionally-based language for programming with bounded resource usage, including time and space properties, based on a combination of λ-calculus and finite state machine notions.
References
More filters
Journal ArticleDOI

Constructing Induction Rules for Deductive Synthesis Proofs

TL;DR: It is shown that a combination of rippling and the use of meta-variables as a least-commitment device can provide novelty in induction rule construction techniques that can introduce novel recursive structures.
Book

Haskell 98 language and libraries : the revised report

Peyton Jones, +1 more
TL;DR: The Haskell 98 Language: Lexical structure, Declarations and bindings, Predefined types and classes, and Libraries.
Proceedings ArticleDOI

Template meta-programming for Haskell

TL;DR: A new extension to the purely functional programming language Haskell that supports compile-time meta-programming and the ability to generate code at compile time allows the programmer to implement such features as polytypic programs, macro-like expansion, user directed optimization, and the generation of supporting data structures and functions from existing data structure and functions.
Book

Synthesis of digital designs from recursion equations

TL;DR: This dissertation makes a formal connection between functional recursion and component connectivity that is pleasantly direct, suggesting that applicative notation is the appropriate basis for digital design, and suggests yet another way to implement "function recursion" with "data recursion."
Book ChapterDOI

Teaching functional circuit specification in Hydra

TL;DR: The Hydro project as discussed by the authors is a set of methods and software tools for carrying out digital circuit design using Haskell, which has been used successfully for three years in the third year course on Computer Architecture at the University of Glasgow, with plans to extend its use to the advanced fourth year course.
Related Papers (5)