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
    • Cell Libraries and Liberty
      • What a Library Contains
      • Reading the Teaching Library
      • Delay Tables and Interpolation
      • Flops, Power, and Variants
      • Mapping Against the Library
    • 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

‹Cell Libraries and Liberty
  1. Topics
  2. Logic Synthesis
  3. Logic Optimisation and Mapping
  4. Cell Libraries and Liberty
  5. Reading the Teaching Library

Part 2 · Logic Optimisation and Mapping · Intermediate

Reading the Teaching Library

The course teaching library cell by cell, with an abridged Liberty excerpt.

On this page

    The teaching library

    The course library is a small fictional library called course, kept in course.lib. It holds fifteen cells with fixed EXAMPLE areas in library units.

    A second library, nand_only.lib, holds only INV, BUF, and NAND2. Comparing mappings across the two shows what cell choice costs.

    Cell

    Function

    Area

    INV

    !A

    1

    BUF

    A

    2

    NAND2

    !(A*B)

    2

    NOR2

    !(A+B)

    2

    AND2

    A*B

    3

    OR2

    A+B

    3

    NAND3

    !(A*B*C)

    3

    NOR3

    !(A+B+C)

    3

    XOR2

    A^B

    5

    XNOR2

    !(A^B)

    5

    AOI21

    !((A*B)+C)

    3

    OAI21

    !((A+B)*C)

    3

    MUX2

    (S*B)+(!S*A)

    5

    DFF

    Rising-edge flop

    8

    DFFR

    Rising-edge flop with reset

    10

    Abridged excerpt

    The text block below is an ABRIDGED excerpt from course.lib, with tables shortened to their shape and corner values. It is not the full file.

    Diagram
    ABRIDGED excerpt from course.lib (fictional teaching library, tables shortened)
    library(course) {
      delay_model : table_lookup;
      time_unit : "1ns";
      lu_table_template(dt) {
        variable_1 : input_net_transition;
        variable_2 : total_output_net_capacitance;
        index_1("0.01, 0.1");
        index_2("0.01, 0.1");
      }
      cell(INV) {
        area : 1;
        pin(A) { direction : input; capacitance : 0.01; }
        pin(Y) {
          direction : output; function : "!A"; max_capacitance : 1.0;
          timing() { related_pin : "A"; timing_sense : negative_unate;
            cell_rise(dt) { index_1("0.01, 0.1"); index_2("0.01, 0.1");
              values("0.05, ...", "0.07, ..."); } }
        }
      }
      cell(NAND2) {
        area : 2;
        pin(A) { direction : input; capacitance : 0.01; }
        pin(B) { direction : input; capacitance : 0.01; }
        pin(Y) {
          direction : output; function : "!(A*B)"; max_capacitance : 1.0;
          timing() { related_pin : "A"; timing_sense : negative_unate;
            cell_rise(dt) { index_1("0.01, 0.1"); index_2("0.01, 0.1");
              values("0.08, ...", "0.10, ..."); } }
        }
      }
    }

    Reading one cell

    Read a cell top to bottom: area first, then pin functions and capacitances, then one timing group per arc. Each delay table repeats the two index axes from the template.

    A second timing group with the other input pin holds the matching table. Flop cells replace output arcs with constraint and clock-to-output groups, covered in a later lesson.

    Common pitfall

    The excerpt shortens every table, so no delay can be read from it. Delay lookups need the full tables from the interpolation lesson.

    Interview

    Likely probes: naming each field of a cell entry.

    • Area 1 for INV and 2 for NAND2 are the costs the mapper compares.

    • Capacitance 0.01 per input pin is the load each fanout adds.

    • Timing sense says whether a rising input rises, falls, or either way moves the output.

    Check yourself What are the INV and NAND2 areas, and what does each input pin load its driver with?

    INV is 1 unit and NAND2 is 2 units. Each input pin adds 0.01 load units.

    Check yourself Why is the excerpt unsafe for delay lookup?

    Its tables are shortened to corner values. Only full tables give exact entries for interpolation.

    Related topics

    • Delay tables and interpolation

    • Technology Mapping

    Previous

    28 / 139

    Next: Delay Tables and Interpolation

    Up next

    Up nextDelay Tables and Interpolation

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Flops, Power, and Variants
    • Mapping Against the Library