An integrated framework for high-level synthesis of self-timed circuits

Asynchronous/self-timed designs are beginning to attract attention as promising means of dealing with the complexity of modern VLSI technology. They are characterized by absence of global clocking and concurrency limited only by the data and control dependencies. They offer the advantages of simpler timing, the absence of clock distribution related problems, composability, opportunities for incremental improvement, and robustness. This dissertation addresses the issues underlying automating specification-driven design of self-timed circuits. An integrated collection of tools called the hopCP Design Environment is developed that facilitates the specification, simulation, analysis, and performance-directed synthesis of self-timed circuits. hopCP is a process-oriented concurrent HDL for the specification of asynchronous systems. It is equipped with constructs for specifying communication, synchronization and concurrency explicitly. It supports multicast communication, a restricted form of distributed shared variables, and a functional sublanguage to specify computation. SHILPA is a high-level system for the automated synthesis of efficient self-timed circuits from hopCP. hopCP descriptions are translated into a graph-based intermediate form called HFG and hierarchically refined into a netlist of self-timed macromodules for an Actel FPGA realization. A flow analysis scheme is described for global optimizations such as efficient guard evaluation and resource sharing. An efficient compiled-code functional simulator for hopCP specifications, based on translating HFGs into Concurrent ML, is also developed.

[1]  Alain J. Martin The limitations to delay-insensitivity in asynchronous circuits , 1990 .

[2]  Kenneth Y. Yun,et al.  Practical asynchronous controller design , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[3]  Arthur Charlesworth,et al.  The multiway rendezvous , 1987, TOPL.

[4]  Paul Hudak,et al.  The aggregate update problem in functional programming systems , 1985, POPL.

[5]  Peter Radford,et al.  Petri Net Theory and the Modeling of Systems , 1982 .

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

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

[8]  David L. Dill,et al.  Trace theory for automatic hierarchical verification of speed-independent circuits , 1989, ACM distinguished dissertations.

[9]  Rajvir Singh,et al.  Digital Design with Verilog HDL , 1990 .

[10]  Frank Thomson Leighton,et al.  Trace Theory for Automatic Hierarchical Verification of Speed-Independent Circuits , 1988 .

[11]  Ganesh Gopalakrishnan,et al.  HOP: A process model for synchronous hardware; semantics and experiments in process composition , 1989, Integr..

[12]  Ganesh Gopalakrishnan,et al.  Implementing Functional Programs Using Mutable Abstract Data Types , 1988, Inf. Process. Lett..

[13]  Cornelis Hermanus Vanberkel,et al.  Handshake circuits: An intermediary between communicating processes and VLSI , 1992 .

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

[15]  Erik Brunvand A cell set for self-timed design using actel FPGAs , 1991 .

[16]  Alain J. Martin Programming in VLSI: from communicating processes to delay-insensitive circuits , 1991 .

[17]  Alain J. Martin The Probe: An Addition to Communication Primitives , 1985, Inf. Process. Lett..

[18]  John H. Reppy,et al.  CML: A Higher-Order Concurrent Language , 1991, PLDI.

[19]  Ganesh Gopalakrishnan,et al.  High Level Test Generation via Process Composition , 1991 .

[20]  Hon Fung Li,et al.  Using Partial-Order Semantics to Avoid the State Explosion Problem in Asynchronous Systems , 1990, CAV.

[21]  Teresa H. Meng,et al.  Synchronization Design for Digital Systems , 1991 .

[22]  Wayne Wolf,et al.  High-Level VLSI Synthesis , 1991 .

[23]  Donald E. Thomas,et al.  Algorithmic and Register-Transfer Level Synthesis: The System Architect's Workbench , 1989 .

[24]  Kenneth L. McMillan,et al.  Using Unfoldings to Avoid the State Explosion Problem in the Verification of Asynchronous Circuits , 1992, CAV.

[25]  John H. Reppy,et al.  Higher-Order Concurrency , 1992 .

[26]  Antti Valmari,et al.  Stubborn sets for reduced state space generation , 1991, Applications and Theory of Petri Nets.

[27]  Robert M. Keller,et al.  Towards a Theory of Universal Speed-Independent Modules , 1974, IEEE Transactions on Computers.

[28]  Thomas J. Chaney,et al.  Q-Modules: Internally Clocked Delay-Insensitive Modules , 1988, IEEE Trans. Computers.

[29]  Lynn Conway,et al.  Introduction to VLSI systems , 1978 .

[30]  Tam-Anh Chu,et al.  Automatic synthesis and verification of hazard-free control circuits from asynchronous finite state machine specifications , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[31]  Matthew Hennessy,et al.  Semantics of programming languages - an elementary introduction using structural operational semantics , 1990 .

[32]  Robert K. Brayton,et al.  Synthesis of hazard-free asynchronous circuits from graphical specifications , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[33]  Paul Hudak,et al.  Conception, evolution, and application of functional programming languages , 1989, CSUR.

[34]  Frits Feldbrugge Petri net tool overview 1989 , 1988, European Workshop on Applications and Theory in Petri Nets.

[35]  Rance Cleaveland,et al.  The concurrency workbench: a semantics-based tool for the verification of concurrent systems , 1993, TOPL.

[36]  J. C. Ebergen Translating programs into delay-insensitive circuits , 1989 .

[37]  C. V. Ramamoorthy,et al.  Performance Evaluation of Asynchronous Concurrent Systems Using Petri Nets , 1980, IEEE Transactions on Software Engineering.

[38]  Steven M. Burns,et al.  The design of an asynchronous microprocessor , 1989, CARN.

[39]  Teresa H. Y. Meng,et al.  Automatic synthesis of asynchronous circuits from high-level specifications , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[40]  Tam-Anh Chu,et al.  Synthesis of self-timed VLSI circuits from graph-theoretic specifications , 1987 .

[41]  David L. Dill,et al.  Synthesis of asynchronous state machines using a local clock , 1991, [1991 Proceedings] IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[42]  Steven M. Burns Automated Compilation of Concurrent Programs into Self-Timed Circuits , 1988 .

[43]  Luciano Lavagno,et al.  Algorithms for synthesis of hazard-free asynchronous circuits , 1991, 28th ACM/IEEE Design Automation Conference.

[44]  David C. Ku Constrained synthesis and optimization of digital integrated circuits from behavioral specifications , 1992 .

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

[46]  Erik Brunvand Translating concurrent communicating programs into asynchronous circuits , 1992 .