Number splitting , which can be additive or multiplicative, is a numerical transformation that can be used to reduce the hardware complexity or power consumption of linear circuits. Additive number splitting is another form of subexpression elimination in multiple constant multiplication. Typically number splitting is performed on the infinite precision version of the constant coefficients before they are reduced to binary representation. This leads to strength reduction at a higher level. Additive number splitting can be either row based or column based.
Number splitting is an iterative technique used within the framework of an optimization algorithm. The optimization algorithm guides the number splitting algorithm through the use of a cost function. At each iteration, the number splitting that leads to the largest reduction in the cost function is chosen. The process is repeated until no further optimizations can be achieved through the use of number splitting. This section describes the basic principles of number splitting. The process of generating optimal solutions is not discussed (see ,,).
Before we examine how number splitting is performed, the notion of a linear circuit must be defined. The linear circuit is defined as
It should be noted that M = J + K. Notice that this definition of a linear circuit ...