A data path optimization element is used in a behavioral synthesis process
to optimize portions of an algorithmic description of a digital logic
circuit. Directives are provided in the algorithmic description to
identify subsets of the algorithmic description that can be extracted and
optimized. The optimization includes identification of certain operators,
function calls, conditional statements, or other relationships in the
subset, and then compression of the extracted subset into or more data
path components in a building block. The building block thus generated is
substituted back into the algorithmic description and used in subsequent
operations during the behavioral synthesis process, thereby leading to a
more optimum design in terms of area, performance, power characteristics,
or other characteristic(s).