What is Multi-Bit Flip-Flop (MBFF) Banking, and why is it performed during placement?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Multi-Bit Flip-Flop (MBFF) banking merges multiple independent single-bit registers (e.g., 2-bit, 4-bit, or 8-bit) into a single standard cell that shares an internal clock inverter and power structure, reducing clock tree pin capacitance by 40% to 50% and cutting total CTS dynamic power.
Technical Explanation
- Multi-Bit Flip-Flop (MBFF) Banking is an advanced power and area optimization technique that merges multiple independent single-bit registers into unified multi-bit standard cell macros (e.g., 2-bit, 4-bit, or 8-bit cells).
- Internal Architecture & Power Savings: In single-bit flip-flops, each instance contains its own local clock inverter/buffer. A 4-bit MBFF shares a single internal clock inverter across all four internal bit-slices, slashing clock pin capacitance by 40% to 50% and reducing dynamic clock switching power (P_dyn = C V^2 f).
- CTS Simplification: Merging 4 single-bit registers into one 4-bit cell reduces the total clock sink count by 4x. This substantially lowers clock tree insertion delay, reduces CTS buffer tree depth, and minimizes overall clock skew.
- Placement Clustering Constraints: Registers can only be banked if they share identical clock domains, identical asynchronous reset/set signals, and are physically placed in close proximity.
- De-Banking for Timing Recovery: If banking causes datapath routing detours that degrade setup slack on critical timing paths,
place_optautomatically de-banks the multi-bit cell back into individual single-bit flip-flops to preserve timing closure.
Common Mistake
The Trap: Banking registers across different asynchronous reset nets or power domains. This causes logic functional failure and formal verification mismatches.
Follow-up Question & Model Response
"What is de-banking in placement optimization?"
Candidate Model Response: De-banking splits a multi-bit flop back into individual single-bit registers when datapath routing delays cause setup timing violations on a critical bit.
Practical Example
Executing MBFF Banking in Placement:
# Synopsys ICC2: Identify multibit candidates and bank during placement
identify_multibit -naming_rule {u_mbff_%d}
set_app_options -name place_opt.flow.enable_multibit -value true
create_placement -timing_drivenPhysical Design & Planning Handbook
Master ASIC Physical Design Planning & Floorplanning
Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.
Continue practising