Dataflow/Actor-Oriented language for the design of complex signal processing systems

Signal processing algorithms become more and more complex and the algorithm architecture adaptation and design processes cannot any longer rely only on the intuition of the designers to build efficient systems. Specific tools and methods are needed to cope with the increasing complexity of both algorithms and platforms. This paper presents a new framework which allows the specification, design, simulation and implementation of a system operating at a higher level of abstraction compared to current approaches. The framework is base on the usage of a new actor/dataflow oriented language called CAL. Such language has been specifically designed for modelling complex signal processing systems. CAL data flow models expose the intrinsic concurrency of the algorithms by employing the notions of actor programming and dataflow. Concurrency and parallelism are very important aspects of embedded system design as we enter in the multicore era. The design framework is composed by a simulation platform and by Cal2C and CAL2HDL code generators. This paper described in details the principles on which such code generators are based and shows how efficient software (C) and hardware (VHDL and Verilog) code can be generated by appropriate CAL models. Results on a real design case, a MPEG-4 Simple Profile decoder, show that systems obtained with the hardware code generator outperform the hand written VHDL version both in terms of performance and resource usage. Concerning the C code generator results, the results show that the synthesized C-software mapped on a SystemC scheduler platform, is much faster than the simulated CAL dataflow program and approaches handwritten C versions.

[1]  Edward A. Lee,et al.  Synthesis of Embedded Software from Synchronous Dataflow Specifications , 1999, J. VLSI Signal Process..

[2]  Alberto L. Sangiovanni-Vincentelli,et al.  Quo Vadis, SLD? Reasoning About the Trends and Challenges of System Level Design , 2007, Proceedings of the IEEE.

[3]  Ghislain Roquier,et al.  Code generation for the MPEG Reconfigurable Video Coding framework: From CAL actions to C functions , 2008, 2008 IEEE International Conference on Multimedia and Expo.

[4]  Timo Hämäläinen,et al.  Implementing a WLAN Video Terminal Using UML and Fully Automated Design Flow , 2007, EURASIP J. Embed. Syst..

[5]  G.S. Moschytz,et al.  Practical fast 1-D DCT algorithms with 11 multiplications , 1989, International Conference on Acoustics, Speech, and Signal Processing,.

[6]  Giovanni De Micheli,et al.  The Olympus synthesis system , 1990, IEEE Design & Test of Computers.

[7]  George C. Necula,et al.  CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs , 2002, CC.

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

[9]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[10]  Edward A. Lee,et al.  Dataflow process networks , 1995, Proc. IEEE.

[11]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[12]  Christophe Lucarz,et al.  Reconfigurable Media Coding: A New Specification Model for Multimedia Coders , 2007, 2007 IEEE Workshop on Signal Processing Systems.

[13]  Ghislain Roquier,et al.  Translating dataflow programs to efficient hardware: an MPEG-4 Simple Profile decoder case study , 2008 .

[14]  Dave A. Thomas,et al.  MDA: revenge of the modelers or UML utopia? , 2004, IEEE Software.

[15]  Edward A. Lee,et al.  Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing , 1989, IEEE Transactions on Computers.