04/05/2026
Performing Multibit Register Optimization
Combining (Banking) and splitting (Debanking)
-> Tool can combine (Banking) single-bit registers or smaller multibit registers
and replace them with equivalent larger multibit registers.
Example:
-> the tool can combine eight 1-bit registers or four 2-bit register banks and replace them with one 8- bit register bank or two 4-bit register banks.
-> The tool merges single-bit registers only if, they have the same timing constraints.
->Replacing single-bit registers with multibit registers reduces
• Area due to shared transistors and optimized transistor-level layout
• The total clock tree net length
• The number of clock tree buffers and clock tree power
Splitting ( debanking)
-> The tool can also split (debank) large multibit registers into smaller multibit registers or single-bit registers, if it improves the total negative slack.
To perform multibit register optimization during the place_opt command
1. set_app_options -name place_opt.flow.enable_multibit_banking -value true
2. Enable multibit register rewiring by setting the
set_app_options -name place_opt.flow.enable_multibit_rewiring -value true
3. Specify settings for multibit register banking by using the set_multibit_options command.
4. place_opt
5. report_multibit
-> Identify the groups of cells that can be replaced by multibit cells by using the identify_multibit command,
identify_multibit -apply -register -mv_cell
-> If multibit banking does not improve QoR, split specific multibit banks into individual registers or smaller multibit banks by using the split_multibit command.
split_multibit reg_gr0 -lib_cells {lib1/MREG2 lib1/MREG2}
analysis report_multibit
a) single-bit flip flop
b) single-bit latches
c) Multi-bit flip flop
d) Multi-bit latches
**** Sequential cell banking ratio = (c + d) / (a + b + c + d)
**** Flip flop cell banking ratio = (c) / (a + c)