Automatic Register Balancing in Model-based High-level Synthesis

Chandan Karfa


The designer sometimes wants to insert register(s) in specific location(s) of a design in order to break critical paths. To do so, the designer has to manually insert registers in all parallel paths as well to balance registers in all paths to keep the functionality of the design intact. This task is known as `register balancing in the design community. The design size, complexity and hierarchy make manual register balancing in parallel paths task complex and error prone. The method presented here automatically inserts register(s) in the user specified location(s) and also automatically balances registers in all parallel paths. The register balancing problem has been suitably mapped to global retiming problem and solved using standard global retiming algorithm. The proposed method has been implemented in a model based high-level synthesis tool and tested on several Simulink designs.