Skip to Main Content
The ever increasing complexity of signal processing applications and the desire to reduce the time to market demands efficient compilation techniques for programmable digital signal processors (DSPs). The paper describes constraint analysis based operation assignment techniques intended to deal with processors with distributed register files and partially connected networks. The assignment techniques have been implemented in our code generation tool FACTS (K. van Eijk et al., 2000). This tool is intended for the generation of an operation assignment, a register binding and a schedule of folded loops that satisfy the specified timing constraints. Our approach is based on satisfaction of constraints which makes it different from optimisation based operation assignment techniques. The operation assignment technique is based on the modeling of the assignment search space in a conflict graph. Pruning of this conflict graph prevents decisions that inevitably lead to solutions that do not satisfy the timing constraints. If after pruning, infeasibility is detected, backtracking of assignment decisions is performed. In order to obtain a tight coupling between the assignment phase and the schedule phase, information is derived from the conflict graph which is used to prune the schedule search space, and information from the schedule search space is incorporated in the conflict graph. Automatic insertion of copy operations for moving intermediate values from one register file to another register file is not supported. However the use of a shared global bus in the processor guarantees that at least one direct communication path from a producing functional unit to a consuming functional unit exists and therefore the use of copy operations is not necessary.