Did you check Characterization in DC?.
The allocated budgets can be used to drive the synthesis of individual blocks. The budget generation and allocation process is iterative.
You use the RTL budgeting flow to allocate initial budgets, then use the initial budgets to synthesize lowerlevel blocks. You can apply the synthesis results to the budgeter to derive more accurate budgets by using the gate-level or refinement budgeting flow, repeating this process until design goals are achieved.