Synthesis for mixed arithmetic
The primary goal of this paper is to show that a clever use of redundant number systems in some parts of designs can significantly increase their speed, without noticeably increasing their area and power consumption. This can be achieved by automatically using, in the same design, redundant (e.g., carry save or borrow save) as well as non-redundant (i.e., conventional) number systems: this approach can be called mixed arithmetic. This implies specific constraints in the scheduling process. We propose an integer linear programming (ILP) formulation. It finds an optimal solution for examples of reasonable sizes. In some cases, the ILP computational delay may become huge. To solve this problem, we introduce a general solution, based on a constraint graph partitioning. This leads to an ILP formulation partitioning. This partitioning approach can be used for other similar problems in synthesis, also formulated as ILPs.
redundant number systems scheduling ilp partitioning computer arithmetic