Common sub-expression elimination (CSE) serves as a useful optimization technique in the synthesis of arithmetic datapaths described at RTL. However, CSE has a limited potential for optimization when many common sub-expressions are not exposed. Given a suitable transformation of the polynomial system representation, which exposes many common sub-expressions, subsequent CSE can offer a higher degree of optimization. The objective of this paper is to develop algebraic techniques that perform such a transformation, and present a methodology to integrate it with CSE to further enhance the potential for optimization. In our experiments, we show that this integrated approach outperforms conventional methods in deriving areaefficient hardware implementations of polynomial systems.
I. IntroductionHigh-level descriptions of arithmetic datapaths that perform polynomial computations over bit-vectors are found in many practical applications, such as in Digital Signal Processing (DSP) for multi-media applications and embedded systems. These polynomial designs are initially specified using behavioural or Register-Transfer-Level (RTL) descriptions, which are subsequently synthesized into hardware using high-level/logic synthesis tools [1]. The growing market for such applications requires sophisticated CAD support for their design, optimization and synthesis.The general area of high-level synthesis has seen extensive research over the years. Various algorithmic techniques have been devised, and CAD tools have been developed that are quite adept at capturing hardware description language (HDL) models and mapping them into control/data-flow graphs (CDFGs), performing scheduling, resource allocation and sharing, binding, retiming, etc., [2]. However, these tools lack the mathematical wherewithal to perform sophisticated algebraic manipulation for arithmetic datapath-intensive designs. Such designs implement a sequence of add, mult type of algebraic computations over bit-vectors; they are generally modeled at RTL or behavioral-level as systems of multi-variate polynomials of finite degree [3] [4]. Hence, there has been increasing interest in exploring the use of algebraic manipulation of polynomial expressions, for RTL synthesis of arithmetic datapaths. Several techniques such as Horner decomposition, factoring with common sub-expression elimination [5], term-rewriting [6], etc., have been proposed. Symbolic computer algebra [3] [4] [7] has also been employed for