Algorithm engineering and VLSI design
Abstract
The task of producing a VLSI architecture that will solve a given problem contains many design decisions. The effects of these decisions on the final design are often difficult to quantify. We will compare three different implementations of a systolic architecture for solving the knapsack problem using the dynamic programming method. The design decisions involved and the engineering of the algorithm (altering the algorithm to improve its implementation) are highlighted and their effects on the resulting implementation are discussed. We will also relate the design area and timing to the parameters of the knapsack problem. We derive [??]) as estimations of area and circuit timing complexity of the memory control. We will eliminate the influence of the dominant knapsack parameter (the capacity c) and replace it by the maximum weight [??]. This is of crucial importance for a realistic and efficient VLSI implementation of this problem since in practice [??]2 c.