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

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
Skip to lesson

Course contents

  • Logic Synthesis Glossary
  • Logic Synthesis Cheatsheet
  • Synthesis Foundations14
    • Synthesis Flow Overview
    • Synthesizable RTL and Inference
    • Reading Netlists and Reports
      • Cell Counts from stat
      • Area by Cell Type
      • Hierarchy, Fanout and Net Names
      • Longest Path, Write and Read Back
  • Logic Optimisation and Mapping20
  • 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

←Synthesis Foundations
  1. Topics
  2. Logic Synthesis
  3. Synthesis Foundations
  4. Reading Netlists and Reports

Part 1 of 9Part 1 of 9/Synthesis FoundationsIntermediate

Reading Netlists and Reports

Cell counts, area by cell type, fanout, and the longest path from real reports.

  • 4topics
  • 4lessons

Every later topic quotes a report. Without a reading method, stat totals get compared across libraries and ltp gets quoted as timing, and both mistakes survive into reviews.

After this lesson you can: pick the report that answers a question about a netlist, and read its lines without inventing numbers.

A netlist and its reports answer three questions: what cells were used, how much area they take, and where the longest path runs. The running example is a 4-bit adder that maps to 18 library cells against course.lib. This topic reads each report line by line on small designs with checked counts, and every number on the four lessons comes from a recorded Yosys run rather than a sketch.

Report

What it answers

stat

How many cells of each type the design holds, and how many wires connect them.

stat -liberty

How much area each cell type contributes, in library units of the named teaching library.

ltp

How many gates sit on the longest topological path of a generic netlist, or of a mapped one once read_liberty loads the library. A bare mapped run reports zero: missing visibility, not an empty design.

write_verilog plus read_verilog

Whether a structural netlist survives a write and read-back round trip with identical cell counts.

Decision flowchart. Cell counts lead to stat, area leads to stat -liberty with the library named, longest path leads to ltp on the generic netlist or past read_liberty on the mapped one, and file survival leads to write then read-back with a recount.
Which report answers which question: stat for cell counts, stat -liberty for area, ltp for depth, write plus read-back for the file round trip.

What you can do after this topic

You can open any stat report and read every line: wires, public wires, cells, the per-type rows and the chip area. You can build an area total from stat -liberty rows as count times cell area, and you know the total only compares within one library. You can count fanout from a netlist instead of guessing it from the RTL, and you flatten a hierarchy knowing the gates stay put. You read a mapped ltp zero as missing library visibility and reload with read_liberty before quoting a mapped depth, and you round-trip a written netlist before trusting the file.

Lesson

What it covers

Cell counts from stat

Cell counts by type and wire counts on a checked 4-bit adder, word-level to mapped.

Area by cell type

Area in library units from real stat -liberty rows, course.lib against nand_only.lib.

Hierarchy, fanout and net names

Flattening, fanout counted from the recorded netlist, generated names, and constant pins.

Longest path, write and read back

Longest topological path with ltp on the generic netlist, the read_liberty fix for the mapped zero, and a delay ranking from recorded ABC runs, plus a write, read-back and recount loop.

Check yourself An area report totals some library units for a mapped adder. What can it tell you, and what can it not?

It tells cell area by type in library units of the named library, which the area lesson builds row by row. It tells nothing about wire area or placement, which appear only later in the flow.

Carry one sentence per lesson: stat gives cells by type and wires, area is count times cell area in library units, flatten keeps gate totals while dissolving instances, and ltp counts gates on the longest generic path while ignoring delay, with a mapped zero meaning the library is not loaded.

A strong answer names the library and the netlist stage before any number, and says what the report cannot show.

  • stat counts cells by type; stat -liberty adds area in library units of the named library.

  • ltp counts gates on the longest topological path and ignores delay; a bare mapped run reports zero until read_liberty loads the library, and even then it reports a mapped depth, not delay.

  • A written netlist that reads back with identical cell counts proves the file round trip, not the synthesis result.

Rule of thumb: name the library and the netlist stage before quoting any report number.

How this was checked

This hub shows no new run. Every number on the four lessons below comes from a Yosys 0.69 run recorded by the course checker (scripts/tools/run-rtl-testbenches.mjs with COURSE=synth); the libraries are fictional, so absolute values are teaching units and only the reading method transfers.

  • Interview: run a mock interview on this topic

Related topics

  • Up: Synthesis Foundations

  • Previous: Synthesizable RTL and Inference

  • See also: Technology Mapping

PreviousNext: Cell Counts from stat

Up next

Up nextCell Counts from stat

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • Synthesis Flow Overview
  • Synthesizable RTL and Inference