A transformational codesign methodology

We present a hardware/software codesign methodology using formal transformations. The goal is to refine a given function specification of a task to an operational structure involving both hardware and software components. The refinement process is separated into two levels, the algorithmic and the structural. Within each level, refinement is accomplished by applying sequences of transformations that preserve the functionality of an initial specification. This allows various 'correct' design alternatives to be generated and their costs analyzed. At the algorithmic level, different algorithm designs are explored, each producing a computational schedule that has a different performance cost. At the structural level, different spatial structures with different resources and performance costs are explored. These costs which characterize the designs are used to assist in the hardware/software partitioning. An example is used throughout to illustrate this methodology.

[1]  Bozena Kaminska,et al.  Functional synthesis of digital systems with TASS , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[2]  Wayne Luk,et al.  Hardware-software codesign of multidimensional programs , 1994, Proceedings of IEEE Workshop on FPGA's for Custom Computing Machines.

[3]  Steven D. Johnson,et al.  Circuits and Systems: Implementing Communication with Streams , 1982, IMACS World Congress.

[4]  Graham Reginald Hellestrand,et al.  A system for digital hardware description and simulation , 1981 .

[5]  Douglas R. Smith Automating the Design of Algorithm , 1993, Formal Program Development.

[6]  Prasert Kanthamanon,et al.  A multi-level transformation approach to HW/SW codesign: a case study , 1996, Proceedings of 4th International Workshop on Hardware/Software Co-Design. Codes/CASHE '96.

[7]  Graham R. Hellestrand,et al.  Multi-level equivalence in design transformation , 1995, Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.

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

[9]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[10]  Marina Chien-mei Chen Space-time Algorithms: Semantics and Methodology , 1983 .

[11]  V. Conclusion , .

[12]  Leon Stok,et al.  High-level synthesis in an industrial environment , 1995, IBM J. Res. Dev..

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