What are database units, and how do you convert DEF coordinates?
From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide
Short Answer
Database units (DBU) are just an integer scaling factor that lets DEF store every coordinate as a whole number instead of a floating-point micron value โ floating point invites rounding drift across a huge file, integers don't. The DEF header states the scale, e.g. UNITS DISTANCE MICRONS 2000 ; means 2000 DBU = 1 micron. So converting is simple division: microns = DBU_value / 2000. Going the other way, multiply microns by the scale factor to get DBU.
Technical Explanation
- Database units (DBU) are just an integer scaling factor that lets DEF store every coordinate as a whole number instead of a floating-point micron value โ floating point invites rounding drift across a huge file, integers don't.
- The DEF header states the scale, e.g.
UNITS DISTANCE MICRONS 2000 ;means 2000 DBU = 1 micron. So converting is simple division:microns = DBU_value / 2000. Going the other way, multiply microns by the scale factor to get DBU. - Concretely: a coordinate of 10000 DBU at a 2000 DBU/micron scale is 5 microns โ always carry the scale factor along with any number you're manually checking, because "10000" alone is meaningless.
- Here's the trap: DBU only tells you what coordinates can be represented, not what coordinates are legal. The database might resolve down to 0.0005 micron (5 nm) steps, but the actual manufacturing grid might only allow 1 nm steps, and placement sites are wider still. A number can be perfectly valid in the DEF file and still violate real placement/manufacturing rules.
- When you import a DEF into a new environment, don't assume the units auto-align โ verify that the DBU scale, site names, and technology grid data all agree with the receiving design before trusting any coordinate math.
- Also watch for rounding when converting between two different DBU scales (e.g. merging blocks built at different precision) โ if a coordinate can't be represented exactly at the destination's scale, you need a deliberate, documented conversion policy plus a geometry check afterward, not a silent truncation.
Visual Verification
Database Units (DBU) convert physical micron dimensions into high-precision integers (e.g. 2000 DBU = 1.0 ยตm) to eliminate floating-point rounding errors across placement, routing, and mask generation.
Command Checks & Actions
read_def -syntax_only block.defA check-only read that lets you inspect the DEF's own UNITS DISTANCE MICRONS header before committing the file to the design -- exactly the DBU-to-micron scale factor this question is about.
read_def block.defThe DBU-to-micron scale factor declared in the DEF header governs every coordinate imported from that file from this point on.
Common Mistake
The Trap: Equating DBU resolution with minimum wire width, the manufacturing grid, or a technology-node name.
Follow-up Question & Model Response
"Can two files encode the same physical location using different integers?"
Candidate Model Response: Yes. A 120 um location is 120000 at 1000 DBU/um and 240000 at 2000 DBU/um.
Practical Example
Tapeout Scenario: With 2000 DBU per um, a 0.048 um routing pitch becomes 96 DBU. A 120.024 um coordinate becomes 240048 DBU. Dividing either number by 1000 instead of 2000 doubles the interpreted physical distance.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
Read the complete 8-chapter PnR Flow Mentor Guide free on the web โ library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.
Offline PDF Bundle
Want all 1109 questions offline?
Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

Continue practising