Application of symbolic computer algebra in high-level data-flow synthesis

The growing market of multimedia applications has required the development of complex application-specified integrated circuits with significant data-path portions. Unfortunately, most high-level synthesis tools and methods cannot automatically synthesize data paths such that complex arithmetic library blocks are intelligently used. Namely, most arithmetic-level optimizations are not supported and they are left to the designer's ingenuity. In this paper, we show how symbolic algebra can be used to construct arithmetic-level decomposition algorithms. We introduce our tool, SymSyn, that optimizes and maps data flow descriptions into data paths using complex arithmetic components. SymSyn uses two new algorithms to find either minimal component mapping or minimal critical path delay (CPD) mapping of the data flow. In this paper, we give an overview of the proposed algorithms. We also show how symbolic manipulations such as tree-height-reduction, factorization, expansion, and Horner transformation are incorporated in the preprocessing step. Such manipulations are used as guidelines in initial library element selection to accelerate the proposed algorithms. Furthermore, we demonstrate how substitution can be used for multiexpression component sharing and CPD optimization.

[1]  Bruno Buchberger,et al.  Some properties of Gröbner-bases for polynomial ideals , 1976, SIGS.

[2]  David L. Kuck,et al.  The Structure of Computers and Computations , 1978 .

[3]  François Charot,et al.  Automatic floating-point to fixed-point conversion for DSP code generation , 2002, CASES '02.

[4]  Keith O. Geddes,et al.  Algorithms for computer algebra , 1992 .

[5]  Giovanni De Micheli,et al.  Polynomial circuit models for component matching in high-level synthesis , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[6]  Giovanni De Micheli,et al.  Polynomial methods for allocating complex components , 1999, DATE '99.

[7]  Peter C. Jurs,et al.  Mathematica , 2019, J. Chem. Inf. Comput. Sci..

[8]  S. Moshier,et al.  Computer approximations , 1986 .

[9]  Alexandru Nicolau,et al.  Incremental tree height reduction for high level synthesis , 1991, 28th ACM/IEEE Design Automation Conference.

[10]  Alexandru Nicolau,et al.  The Strict Time Lower Bound and Optimal Schedules for Parallel Prefix with Resource Constraints , 1996, IEEE Trans. Computers.

[11]  David A. Cox,et al.  Ideals, Varieties, and Algorithms , 1997 .

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

[13]  Wayne Luk,et al.  Heuristic datapath allocation for multiple wordlength systems , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[14]  Nikil D. Dutt,et al.  Integrating Program Transformations In The Memory-based Synthesis Of Image And Video Algorithms , 1994, IEEE/ACM International Conference on Computer-Aided Design.

[15]  G. de Micheli,et al.  Polynomial methods for component matching and verification , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[16]  Yoichi Muraoka,et al.  On the Number of Operations Simultaneously Executable in Fortran-Like Programs and Their Resulting Speedup , 1972, IEEE Transactions on Computers.