Operation-centric hardware description and synthesis

The operation-centric hardware abstraction is useful for describing systems whose behavior exhibits a high degree of concurrency. In the operation-centric style, the behavior of a system is described as a collection of operations on a set of state elements. Each operation is specified as a predicate and a set of simultaneous state-element updates, which may only take effect in case the predicate is true on the current state values. The effect of an operation's state updates is atomic, that is, the legal behaviors of the system constitute some sequential interleaving of the operations. This atomic and sequential execution semantics permits each operation to be formulated as if the rest of the system were frozen and thus simplifies the description of concurrent systems. This paper presents an approach to synthesize an efficient synchronous digital implementation from an operation-centric hardware-design description. The resulting implementation carries out multiple operations per clock cycle and yet maintains the semantics that is consistent with the atomic and sequential execution of operations. The paper defines, and then gives algorithms to identify, conflict-free and sequentially composable operations that can be performed in the same clock cycle. The paper further gives an algorithm to generate the hardwired arbitration logic to coordinate the concurrent execution of conflict-free and sequentially composable operations. Lastly, the paper evaluates synthesis results based on the TRAC compiler for the TRSPEC operation-centric hardware-description language. The results from a pipelined processor example show that an operation-centric framework offers a significant reduction in design time, while achieving comparable implementation quality as traditional register-transfer-level design flows.

[1]  Donald E. Thomas,et al.  Peer-based multithreaded executable co-specification , 1999, CODES '99.

[2]  James C. Hoe,et al.  Synthesis of operation-centric hardware descriptions , 2000, IEEE/ACM International Conference on Computer Aided Design. ICCAD - 2000. IEEE/ACM Digest of Technical Papers (Cat. No.00CH37140).

[3]  Larry Rudolph,et al.  CACHET: an adaptive cache coherence protocol for distributed shared-memory systems , 1999, ICS '99.

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

[5]  Martin C. Rinard,et al.  A Synthesis Algorithm for Modular Design of Pipelined Circuits , 1999, VLSI.

[6]  Stephen A. Edwards,et al.  The Synchronous Languages Twelve Years Later , 1997 .

[7]  Csaba Andras Moritz,et al.  Parallelizing applications into silicon , 1999, Seventh Annual IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00375).

[8]  David R. Galloway The Transmogrifier C hardware description language and compiler for FPGAs , 1995, Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.

[9]  Maya Gokhale,et al.  High level compilation for fine grained FPGAs , 1997, Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No.97TB100186).

[10]  Donald E. Thomas,et al.  The Verilog® Hardware Description Language , 1990 .

[11]  John Launchbury,et al.  Elementary Microarchitecture Algebra , 1999, CAV.

[12]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[13]  Mieszko N. Lis Superscalar processors via automatic microarchitecture transformations , 2000 .

[14]  Soha Hassoun,et al.  A 200-MHz 64-bit Dual-Issue CMOS Microprocessor , 1992, Digit. Tech. J..

[15]  V. K. Raj DAGAR: an automatic pipelined microarchitecture synthesis system , 1989, Proceedings 1989 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[16]  P. J. Windley,et al.  Verifying pipelined microprocessors , 1995, Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.

[17]  Gerry Kane,et al.  MIPS R2000 RISC architecture , 1987 .

[18]  Giovanni De Micheli Hardware synthesis from C/C++ models , 1999, DATE '99.

[19]  Mike Johnson,et al.  Superscalar microprocessor design , 1991, Prentice Hall series in innovative technology.

[20]  Daniel D. Gajski,et al.  High ― Level Synthesis: Introduction to Chip and System Design , 1992 .

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

[22]  Srinivas Devadas,et al.  ISDL: an instruction set description language for retargetability , 1997, DAC.

[23]  G. De Micheli,et al.  SpC: synthesis of pointers in C application of pointer analysis to the behavioral synthesis from C , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[24]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[25]  I. Pyo,et al.  Application-driven design automation for microprocessor design , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[26]  Luciano Lavagno,et al.  ECL: a specification environment for system-level design , 1999, DAC '99.

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

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

[29]  Daniel D. Gajski,et al.  SPECC: Specification Language and Methodology , 2000 .

[30]  Mark Shand,et al.  Programmable active memories: reconfigurable systems come of age , 1996, IEEE Trans. Very Large Scale Integr. Syst..

[31]  Mark R. Greenstreet,et al.  From high-level descriptions to vlsi circuits , 1988, BIT Comput. Sci. Sect..

[32]  M. Gokhale,et al.  FPGA computing in a data parallel C , 1993, [1993] Proceedings IEEE Workshop on FPGAs for Custom Computing Machines.

[33]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

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

[35]  Stan Y. Liao,et al.  An efficient implementation of reactivity for modeling hardware in the scenic design environment , 1997, DAC.

[36]  Edmund M. Clarke,et al.  Automatic Verification of Asynchronous Circuits , 1983, Logic of Programs.

[37]  Jean-Pierre Banâtre,et al.  Parallel Program Design , 1991, Research Directions in High-Level Parallel Programming Languages.

[38]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[39]  Markus Freericks,et al.  Describing instruction set processors using nML , 1995, Proceedings the European Design and Test Conference. ED&TC 1995.

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

[41]  Larry Rudolph,et al.  Commit-reconcile & fences (CRF): a new memory model for architects and compiler writers , 1999, ISCA.

[42]  Bernard Pottier,et al.  Global control synthesis for an MIMD/FPGA machine , 1994, Proceedings of IEEE Workshop on FPGA's for Custom Computing Machines.