Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • Logic Synthesis Glossary
  • Logic Synthesis Cheatsheet
  • Synthesis Foundations14
  • Logic Optimisation and Mapping20
    • Boolean Optimisation
    • Technology Mapping
      • Covering a Network with Cells
      • Cuts and Matching
      • Area Against Delay
      • Inverters and Banned Cells
      • Mapping in Yosys
    • Cell Libraries and Liberty
    • Structuring and Buffering
  • Constraints and Timing15
  • Sequential, FSM and Memory19
  • Datapath Synthesis14
  • Area, Power and Test14
  • Verification, ECO and Handoff15
  • Flows and Debugging15
  • Interview and Judgment11
Loading lesson

‹Technology Mapping
  1. Topics
  2. Logic Synthesis
  3. Logic Optimisation and Mapping
  4. Technology Mapping
  5. Inverters and Banned Cells

Part 2 · Logic Optimisation and Mapping · Intermediate

Inverters and Banned Cells

Bubble pushing, polarity choice, and why some cells are banned.

On this page

    Bubbles move

    An inverter at a gate input is a bubble. De Morgan pushes bubbles through gates: NOT (a AND b) is (NOT a) OR (NOT b), and the dual holds for OR.

    The mapper slides bubbles until they merge: an inverter over an AND becomes a NAND2, and a leftover pair folds into an AOI or OAI cell.

    Diagram
    y = NOT ((NOT a) AND (NOT b)); areas in teaching-library area units
    before: INV (1) + INV (1) + NAND2 (2) = 4
    De Morgan: y = a OR b
    after: OR2 (3) = 3
    saving = 4 - 3 = 1 area unit

    Polarity is a choice

    For each output the mapper can build the function or its complement plus an inverter. It keeps whichever cover is cheaper.

    Function

    Direct

    Complement plus inverter

    Cheaper

    a XOR b

    XOR2 (5)

    XNOR2 (5) + INV (1) = 6

    XOR2

    NOT (a XOR b)

    XNOR2 (5)

    XOR2 (5) + INV (1) = 6

    Direct

    Banned cells

    Libraries mark some cells dont_use, and the mapper must skip them even when they match. A ban can come from several causes.

    Cause

    Effect on the cover

    Cell not characterised for this corner

    Mapper routes around it.

    Cell kept only for legacy netlists

    New logic never uses it.

    Footprint the block cannot route

    Local covers grow larger.

    Every ban shrinks the choice set, so area or delay can slip. Recheck both after each ban.

    Common mistakes

    Common pitfall

    Banning cells and walking away: each dont_use entry removes options the mapper may need. Recheck area and delay after every change to the ban list.

    Interview

    Likely probes: inverter and ban handling.

    • Bubbles push to the cheapest merge; pairs fold into NAND, NOR, AOI, or OAI.

    • Polarity is priced both ways; the cheaper cover wins.

    • A banned cell is skipped unconditionally, even as the only match.

    Check yourself Rewrite y above without inverters and state the saving.

    An OR2 implements y directly at 3 area units. The saving is 1 area unit.

    Check yourself The only matching cell for a cone is banned. What happens?

    The mapper must skip it and cover the cone another way. If no cover remains, the library setup needs fixing, not the rule.

    Related topics

    • Area Against Delay

    • Mapping in Yosys

    • See also: Structuring and Buffering

    Previous

    25 / 139

    Next: Mapping in Yosys

    Up next

    Up nextMapping in Yosys

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Covering a Network with Cells
    • Cuts and Matching