Overview of hydra: a concurrent language for synchronous digital circuit design

Hydra is a computer hardware description language that integrates several kinds of software tool (simulation, netlist generation and timing analysis) within a single circuit specification. The design language is inherently concurrent, and it offers black box abstraction and general design patterns that simplify the design of circuits with regular structure. Hydra specifications are concise, allowing the complete design of a computer system as a digital circuit within a few pages. This paper discusses the motivations behind Hydra, and illustrates the system with a significant portion of the design of a basic RISC processor.

[1]  Michael E. Papka,et al.  The web page , 2000 .

[2]  John T. O'Donnell,et al.  Hardware Description with Recursion Equations , 1987 .

[3]  L. J. Herbst Integrated Circuit Engineering: Establishing a Foundation , 1996 .

[4]  John T. O'Donnell,et al.  Generating Netlists from Executable Circuit Specifications , 1992, Functional Programming.

[5]  Mary Sheeran,et al.  Designing Arithmetic Circuits by Refinement in Ruby , 1994, Sci. Comput. Program..

[6]  Martyn Edwards Automatic Logic Synthesis Techniques for Digital Systems , 1992 .

[7]  Ralf Hinze,et al.  Haskell 98 — A Non−strict‚ Purely Functional Language , 1999 .

[8]  Gudula Rünger,et al.  Derivation of a logarithmic time carry lookahead addition circuit , 2004, J. Funct. Program..

[9]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[10]  Nicolas Halbwachs,et al.  LUSTRE: a declarative language for real-time programming , 1987, POPL '87.

[11]  Thomas F. Melham Higher Order Logic and Hardware Verification , 1993, Cambridge Tracts in Theoretical Computer Science.

[12]  C. A. R. Hoare,et al.  A model for synchronous switching circuits and its theory of correctness , 1992, Formal Methods Syst. Des..

[13]  Mary Sheeran,et al.  A Tutorial on Lava: A Hardware Description and Verification System , 2000 .

[14]  Sudhakar Yalamanchili Introductory VHDL: From Simulation to Synthesis , 2000 .

[15]  Koen Claessen,et al.  Observable Sharing for Functional Circuit Description , 1999, ASIAN.

[16]  Daniel Pilaud,et al.  Using the Declarative Language LUSTRE for Circuit Verification , 1991 .

[17]  Steven D. Johnson Synthesis of digital designs from recursion equations , 1983 .

[18]  Tom Melham,et al.  Hardware Verification using Higher−Order Logic , 1986 .

[19]  John Launchbury,et al.  Specifying superscalar microprocessors in Hawk , 1998 .

[20]  John Launchbury,et al.  Microprocessor specification in Hawk , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[21]  Hans-Wolfgang Loidl,et al.  Algorithm + strategy = parallelism , 1998, Journal of Functional Programming.

[22]  P. J. Spreadbury,et al.  Simulation in the Design of Digital Electronic Systems , 1993 .

[23]  Koen Claessen Embedded Languages for Describing and Verifying Hardware , 2001 .

[24]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[25]  Carl-Johan H. Seger,et al.  Practical Formal Verification in Microprocessor Design , 2001, IEEE Des. Test Comput..

[26]  John J. O'Donnell From Transistors to Computer Architecture: Teaching Functional Circuit Specification in Hydra , 1995, FPLE.

[27]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .