Higher-Level Hardware Synthesis

1. Introduction.- 1. Introduction.- 2. Related Work.- 3. The SAFL Language.- 4. Soft Scheduling.- 5. High-Level Synthesis of SAFL.- 6. Analysis and Optimisation of Intermediate Code.- 7. Dealing with I/O.- 8. Combining Behaviour and Structure.- 9. Transformation of SAFL Specifications.- 10. Case Study.- 11. Conclusions and Further Work.

[1]  Richard Sharp,et al.  A Higher-Level Language for Hardware Synthesis , 2001, CHARME.

[2]  John Van Tassel Femto-VHDL : the semantics of a subset of VHDL and its embedding in the HOL proof assistant , 1993 .

[3]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[4]  Steven M. Nowick,et al.  An introduction to asynchronous circuit design , 1998 .

[5]  John Hughes,et al.  Recursion and dynamic data-structures in bounded space: towards embedded ML programming , 1999, ICFP '99.

[6]  Vivek Sarkar,et al.  Parallel Program Graphs and their Classification , 1993, LCPC.

[7]  Philip A. Wilsey,et al.  Developing a Formal Semantic Definition of VHDL , 1992 .

[8]  S. Ramesh,et al.  Communicating reactive processes , 1993, POPL '93.

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

[10]  David C. Ku,et al.  HardwareC -- A Language for Hardware Design (Version 2.0) , 1990 .

[11]  Donald E. Thomas,et al.  Behavioral transformation for algorithmic level IC design , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[12]  E. M. Girczyc,et al.  Automatic generation of microsequenced data paths to realize ada circuit descriptions , 1984 .

[13]  Mary Sheeran,et al.  muFP, a language for VLSI design , 1984, LFP '84.

[14]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[15]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[16]  Ahmed Amine Jerraya,et al.  Transformational partitioning for co-design of multiprocessor systems , 1997, ICCAD 1997.

[17]  Richard Sharp,et al.  The FLaSH Compiler : Efficient Circuits from Functional Specifications , 2000 .

[18]  John W. Backus,et al.  The Algebra of Functional Programs: Function Level Reasoning, Linear Equations, and Extended Definitions , 1981, ICFPC.

[19]  Daniel Gajski,et al.  Introduction to high-level synthesis , 1994, IEEE Design & Test of Computers.

[20]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[21]  S. Moore,et al.  Statically-allocated languages for hardware stream processing ( extended abstract ) , 2002 .

[22]  Xiaowei Shen,et al.  Using term rewriting systems to design and verify processors , 1999, IEEE Micro.

[23]  James C. Hoe,et al.  Hardware Synthesis from Term Rewriting Systems , 1999, VLSI.

[24]  Luca Cardelli The Functional Abstract Machine , 1983 .

[25]  Emden R. Gansner,et al.  An open graph visualization system and its applications to software engineering , 2000, Softw. Pract. Exp..

[26]  Gérard Berry,et al.  Real Time Programming: Special Purpose or General Purpose Languages , 1989, IFIP Congress.

[27]  Jim D. Garside,et al.  AMULET3: a 100 MIPS asynchronous embedded processor , 2000, Proceedings 2000 International Conference on Computer Design.

[28]  Mary Sheeran,et al.  Lava: hardware design in Haskell , 1998, ICFP '98.

[29]  Stephen A. Edwards,et al.  Using a hardware model checker to verify software , 2001, ASICON 2001. 2001 4th International Conference on ASIC Proceedings (Cat. No.01TH8549).

[30]  Emin Gün Sirer,et al.  Static Analyses for Eliminating Unnecessary Synchronization from Java Programs , 1999, SAS.

[31]  Steven D. Johnson,et al.  DDD-FM9001: Derivation of a Verified Microprocessor , 1993, CHARME.

[32]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[33]  M. Hofmann A Type System for Bounded Space and Functional In-Place Update , 2000, Nord. J. Comput..

[34]  D. A. Edwards,et al.  The Balsa Asynchronous Circuit Synthesis System , 2000 .

[35]  Vivek Sarkar,et al.  A Concurrent Execution Semantics for Parallel Program Graphs and Program Dependence Graphs , 1992, LCPC.

[36]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[37]  José Manuel Colom,et al.  Toward a formal semantics of IEEE Std. VHDL 1076 , 1993, Proceedings of EURO-DAC 93 and EURO-VHDL 93- European Design Automation Conference.

[38]  Paul Havlak,et al.  Construction of Thinned Gated Single-Assignment Form , 1993, LCPC.

[39]  Richard L. Rudell Tutorial: Design of a Logic Synthesis System , 1996, DAC.

[40]  Donald E. Thomas,et al.  The system architect's workbench , 1988, DAC '88.

[41]  Luciano Lavagno,et al.  Hardware-software co-design of embedded systems: the POLIS approach , 1997 .

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

[43]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[44]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[45]  Wayne Luk,et al.  Compiling Ruby into FPGAs , 1995, FPL.

[46]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[47]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[48]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[49]  Roger Lipsett,et al.  VHDL: hardware description and design , 1989 .

[50]  A. D. Brown,et al.  Source level optimisation of VHDL for behavioural synthesis , 1997 .

[51]  Steven D. Johnson,et al.  DDD: A System for Mechanized Digital Design Derivation , 1991 .

[52]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[53]  Alberto Pettorossi,et al.  Istituto Di Analisi Dei Sistemi Ed Informatica Consiglio Nazionale Delle Ricerche New Approaches for Optimizing over the Semimetric Polytope R. 561 Maggio 2004 , 2012 .

[54]  Donald E. Thomas,et al.  Exploiting the special structure of conflict and compatibility graphs in high-level synthesis , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[55]  Emden R. Gansner,et al.  An open graph visualization system and its applications to software engineering , 2000 .

[56]  Simon L. Peyton Jones,et al.  Strictness Analysis - A Practical Approach , 1985, FPCA.

[57]  Ian Page,et al.  Compiling occam into Field-Programmable Gate Arrays , 2001 .

[58]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[59]  Alan Mycroft,et al.  Stream processing hardware from functional language specifications , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[60]  Ian Page,et al.  Parameterised processor generation , 1994 .

[61]  Zheng Zhu,et al.  An Example of Interactive Hardware Transformation , 1991 .

[62]  Gaetano Borriello,et al.  The Chinook hardware/software co-synthesis system , 1995 .

[63]  Richard Sharp,et al.  Soft Scheduling for Hardware , 2001, SAS.

[64]  Daniel W. Dobberpuhl,et al.  The design and analysis of VLSI circuits , 1985 .

[65]  Pierre G. Paulin,et al.  Force-directed scheduling for the behavioral synthesis of ASICs , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[66]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[67]  Richard Sharp,et al.  Hardware/Software Co-Design Using Functional Languages , 2001, TACAS.

[68]  Giovanni De Micheli,et al.  Constrained resource sharing and conflict resolution in Hebe , 1991, Integr..

[69]  Giovanni De Micheli,et al.  HERCULES-a system for high-level synthesis , 1988, 25th ACM/IEEE, Design Automation Conference.Proceedings 1988..

[70]  Juris Hartmanis,et al.  The Programming Language Ada , 1983, Lecture Notes in Computer Science.

[71]  Robert Cartwright,et al.  Soft typing , 1991, PLDI '91.

[72]  Wolfgang Fichtner,et al.  Practical design of globally-asynchronous locally-synchronous systems , 2000, Proceedings Sixth International Symposium on Advanced Research in Asynchronous Circuits and Systems (ASYNC 2000) (Cat. No. PR00586).

[73]  Ñ Blockinðº,et al.  A Statically Allocated Parallel Functional Language , 2000 .

[74]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .

[75]  Amir Pnueli,et al.  On the Development of Reactive Systems , 1989, Logics and Models of Concurrent Systems.

[76]  Alice C. Parker,et al.  The high-level synthesis of digital systems , 1990, Proc. IEEE.

[77]  Simon L. Peyton Jones,et al.  Asynchronous exceptions in Haskell , 2001, PLDI '01.

[78]  Arvind,et al.  Implicit parallel programming in pH , 2001 .

[79]  Bernard P. Zajac Applied cryptography: Protocols, algorithms, and source code in C , 1994 .

[80]  Andrew W. Appel,et al.  Standard ML of New Jersey , 1991, PLILP.

[81]  Barry M. Pangre Splicer: a heuristic approach to connectivity binding , 1988, DAC '88.

[82]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[83]  M.C. McFarland Using Bottom-Up Design Techniques in the Synthesis of Digital Hardware from Abstract Behavioral Descriptions , 1986, 23rd ACM/IEEE Design Automation Conference.

[84]  Daniel P. Siewiorek,et al.  Automated exploration of the design space for register transfer (RT) systems , 1973, ISCA '73.

[85]  van Ch Kees Berkel Handshake circuits : an intermediary between communicating processes and VLSI , 1992 .

[86]  Richard Sharp,et al.  Hardware Synthesis Using SAFL and Application to Processor Design , 2001, CHARME.

[87]  Jianwei Liu,et al.  A hybrid asynchronous system design environment , 1995, Proceedings Second Working Conference on Asynchronous Design Methodologies.

[88]  Ian Page,et al.  Reconfigurable processor architectures , 1996, Microprocess. Microsystems.

[89]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[90]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[91]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[92]  Christof Paar,et al.  Fast DES Implementation for FPGAs and Its Application to a Universal Key-Search Machine , 1998, Selected Areas in Cryptography.

[93]  Theodore D. Friedman,et al.  Methods Used in an Automatic Logic Design Generator (ALERT) , 1969, IEEE Transactions on Computers.

[94]  Joseph De Kerf Introduction à APL , 1979, APLQ.

[95]  Amr Sabry,et al.  Proving the correctness of reactive systems using sized types , 1996, POPL '96.

[96]  Alice C. Parker,et al.  Sehwa: a software package for synthesis of pipelines from behavioral specifications , 1988, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[97]  Jean P. Mermet VHDL for Simulation, Synthesis, and Formal Proofs of Hardware , 1992 .

[98]  R. Burgess,et al.  An error decoder for the Compact Disc player as an example of VLSI programming , 1992, [1992] Proceedings The European Conference on Design Automation.

[99]  P. Six,et al.  Cathedral-II: A Silicon Compiler for Digital Signal Processing , 1986, IEEE Design & Test of Computers.

[100]  Giovanni De Micheli,et al.  Relative scheduling under timing constraints: algorithms for high-level synthesis of digital circuits , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[101]  Kees van Berkel,et al.  Handshake Circuits: An Asynchronous Architecture for VLSI Programming , 1993 .

[102]  Kamran Eshraghian,et al.  Principles of CMOS VLSI Design: A Systems Perspective , 1985 .

[103]  Martin S. Feather,et al.  A system for developing programs by transformation , 1979 .

[104]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[105]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[106]  Ton Vullinghs,et al.  System Support for the Interactive Transformation of Functional Programs , 1999 .

[107]  Gregory J. Chaitin,et al.  Register allocation & spilling via graph coloring , 1982, SIGPLAN '82.

[108]  Philip Wadler,et al.  Monads for functional programming , 1995, NATO ASI PDC.

[109]  Mary Sheeran,et al.  The Design and Verification of a Sorter Core , 2001, CHARME.

[110]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[111]  Daniel P. Siewiorek,et al.  Automated Synthesis of Data Paths in Digital Systems , 1986, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[112]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[113]  Inmos Limited,et al.  OCCAM 2 reference manual , 1988 .

[114]  Ad M. G. Peeters,et al.  An asynchronous low-power 80C51 microcontroller , 1998, Proceedings Fourth International Symposium on Advanced Research in Asynchronous Circuits and Systems.

[115]  G. De Micheli,et al.  The Olympus Synthesis System for Digital Design , 1990 .

[116]  Samir Palnitkar,et al.  Verilog HDL: a guide to digital design and synthesis , 1996 .

[117]  Peter Sestoft,et al.  Globalization and Live Variables , 1991, PEPM.

[118]  Gerhard Zimmermann Eine Methode zum Entwurf von Digitalrechnern mit der Programmiersprache MIMOLA , 1976, GI Jahrestagung.

[119]  P. Marwedel,et al.  A New Synthesis Algorithm for the MIMOLA Software System , 1986, 23rd ACM/IEEE Design Automation Conference.

[120]  Richard Sharp,et al.  Higher-level techniques for hardware description and synthesis , 2003, International Journal on Software Tools for Technology Transfer.

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

[122]  Brian W. Kernighan,et al.  The C Programming Language, Second Edition , 1988 .

[123]  Richard Chapman,et al.  A Process-Algebraic Semantics for VHDL , 1996 .

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

[125]  G. De Micheli,et al.  High-level synthesis and optimization strategies in Hercules and Hebe , 1990, [Proceedings] EURO ASIC `90.

[126]  A. Hugo A Hardware Implementation of Pure Esterel , 1991 .