Logic Synthesis & Technology Mapping
The critical translation bridge from abstract behavioral code into physical silicon gates. Synthesis translates verified Verilog RTL into a technology-mapped gate-level netlist referencing the foundry's standard cell Liberty library (.lib) under strict Synopsys Design Constraints (SDC) โ iteratively optimizing area, timing slack (WNS/TNS), and dynamic power consumption.
What Happens in Logic Synthesis & Technology Mapping?
๐งฉ The Logic Synthesis Engineer's Job
RTL code describes what logical operations to perform, but provides zero information on which silicon transistors or standard cells to implement. Logic synthesis executes a multi-phase compilation pipeline: (1) Elaboration & Generic Technology (GTECH) โ parsing behavioral Verilog into abstract Boolean logic equations and multiplexers; (2) High-Level Optimization โ dead code elimination, constant folding, resource sharing across datapath ALUs, and state machine re-encoding; (3) Technology Mapping โ replacing generic operators with actual characterized silicon standard cells (NAND, NOR, AND-OR-Invert AOI, XOR, DFF) from the foundry's Liberty (.lib) library.
During technology mapping, the synthesis engine continuously interacts with a built-in Static Timing Analysis (STA) solver. Given the customer's Synopsys Design Constraints (.sdc) specifying target clock frequencies (e.g. 50 MHz / 20.0 ns period) and I/O delays, the engine iteratively restructures high-fanout logic cones, swaps cell drive strengths (e.g. replacing `nand2_1` with high-drive `nand2_4`), and inserts buffer repeaters to meet setup timing requirements without violating area budgets.
The output of logic synthesis is a verified, technology-mapped Gate-Level Netlist (synthesis.v) along with comprehensive Quality-of-Results (QoR) reports detailing standard cell count, total silicon area (ยตmยฒ), dynamic/leakage power dissipation, and pre-layout timing slack โ ready for Formal Logic Equivalence Checking (03a) and Scan DFT Insertion (03b).
๐ What RTL & Spec Provide
- Lint-clean, simulation-verified Verilog RTL
- Liberty standard cell timing models (.lib)
- Synopsys Design Constraints (.sdc)
- UPF power intent (voltage domains & switches)
- Foundry operating PVT corner definitions
- Target Area (ยตmยฒ) and Power (mW) budgets
๐ What the Synthesis Engineer Produces
- Synthesized gate-level netlist (synthesis.v)
- Synthesis Quality-of-Results (QoR) report
- Pre-layout gate-level area & cell count breakdown
- Pre-layout STA timing slack report (WNS/TNS)
- Synthesis power dissipation estimate report
- Netlist ready for Formal LEC (03a) & Scan (03b)
Files Flow: Stage 03 Inputs & Outputs
PicoRV32 on SKY130: Yosys Logic Synthesis
Yosys Synthesis TCL Script (synth_sky130.tcl)
# Yosys Synthesis Script for PicoRV32 on SkyWater 130nm
# 1. Read Verilog RTL Source
read_verilog -sv picorv32.v
hierarchy -check -top picorv32_top
# 2. Generic High-Level Boolean Optimization (GTECH)
proc; opt; fsm; opt; memory; opt
# 3. Technology Mapping to SkyWater 130nm Liberty Standard Cells
dfflibmap -liberty sky130_fd_sc_hd__tt_025C_1v80.lib
abc -liberty sky130_fd_sc_hd__tt_025C_1v80.lib \
-constr picorv32_constraints.sdc \
-D 20000
# 4. Clean up and export technology-mapped gate netlist
clean -purge
write_verilog -noattr picorv32_synthesis.v
stat -liberty sky130_fd_sc_hd__tt_025C_1v80.lib -json synth_stat.jsonOpenSTA Pre-Layout Timing Verification Script
# OpenSTA Pre-Layout Zero-Wireload Timing Verification
read_liberty sky130_fd_sc_hd__tt_025C_1v80.lib
read_verilog picorv32_synthesis.v
link_design picorv32_top
read_sdc picorv32_constraints.sdc
# Report Pre-Layout Setup & Hold Timing
report_checks -path_delay max -format full_clock_expanded
report_wns
report_tnsYosys Synthesis QoR & Cell Usage Report (synth_qor.rpt)
=== Yosys Synthesis Quality-of-Results: PicoRV32 ===
Target Technology : SkyWater SKY130 (sky130_fd_sc_hd)
Target Frequency : 50.0 MHz (Clock Period = 20.00 ns)
--- Standard Cell Usage Breakdown ---
sky130_fd_sc_hd__nand2_1 : 2,840 instances
sky130_fd_sc_hd__nor2_1 : 1,420 instances
sky130_fd_sc_hd__xor2_1 : 940 instances
sky130_fd_sc_hd__a21oi_1 : 3,210 instances (Complex AOI Gates)
sky130_fd_sc_hd__dfxtp_1 : 4,120 instances (Sequential DFFs)
sky130_fd_sc_hd__buf_2 : 2,290 instances (Repeaters & Drivers)
TOTAL STANDARD CELL COUNT : 14,820 gates
--- Area & Power Metrics ---
Total Standard Cell Area : 124,500 ยตmยฒ (0.1245 mmยฒ)
Estimated Dynamic Power : 3.84 mW @ 50 MHz / 1.8V
Estimated Leakage Power : 0.18 mW
--- Pre-Layout Timing Slack ---
Worst Negative Slack (WNS) : +4.12 ns (Setup PASS / 0 Violations)
Total Negative Slack (TNS) : 0.00 ns
STATUS: STAGE 03 LOGIC SYNTHESIS COMPLETE - PROCEED TO FORMAL LEC & SCANTools Used in Logic Synthesis Stage
Logic synthesis engines parse hardware description code, solve Boolean satisfaction equations, and optimize gate topologies for maximum performance and minimum silicon area.
| Task | ๐ญ Synopsys | ๐ท Cadence | ๐ง Siemens EDA | ๐ Open-Source |
|---|---|---|---|---|
| RTL Elaboration & Technology Mapping | Synopsys Design Compiler (DC / NXT) | Cadence Genus Synthesis Solution | Siemens Precision RTL Plus | Yosys Open SYnthesis Suite |
| Logic Cone Optimization & Gate Sizing | Synopsys DC Ultra / Topographical | Cadence Genus Optimizer | Siemens Precision Hi-Rel | ABC Logic Synthesis & Opt |
| Low-Power UPF Clock Gating Synthesis | Synopsys Power Compiler | Cadence Joules / Genus LP | Siemens PowerPro | Yosys (clock_gating pass) |
| Pre-Layout Zero-Wireload STA | Synopsys PrimeTime (Pre-Layout) | Cadence Tempus (Pre-Layout) | Siemens Questa Timing | OpenSTA |
| Physically-Aware Logic Synthesis | Synopsys Fusion Compiler | Cadence Genus Physical | Siemens Precision RTL Plus | OpenROAD Flow (Yosys+RePlAce) |