Back to Interview Prep

Tcl Reference Guide: Part 10 — Verification Commands

June 2, 2026 HDL2Chips Team Tcl Reference

Part 10 of the Tcl command reference covering Verification commands used to check and verify the design at every stage of the physical design flow. Verification commands ensure correctness of placement, clock tree, routing, timing, power, and connectivity before tape-out signoff.

The complete physical design flow follows this order:

  • Design & Database Setup
  • Floorplanning
  • Power Planning
  • Placement
  • Clock Tree Synthesis
  • Routing
  • Optimization
  • Signoff & Reports

Quick Reference: Verification Commands for EDA Tools

Verification commands are broadly categorized into check commands (fast incremental checks) and verify commands (comprehensive signoff verification). Checks are run after each major step, while verification runs are the final signoff gate before tape-out in ICC2 and Innovus.

CommandDescription
check_designChecks design for consistency and errors
check_timingChecks timing constraints completeness
check_drcChecks design rule violations
check_powerChecks power network connectivity and integrity
check_placementChecks placement legality and site alignment
check_routeChecks routing completeness and connectivity
check_floorplanChecks floorplan consistency and site alignment
check_clock_treeChecks clock tree structure and skew
verify_connectivityVerifies all net connections are correct
verify_pgVerifies power grid connectivity and EM
verify_timingVerifies timing closure across all corners
verify_drcVerifies zero DRC violations at signoff

Typical Verification Flow Script

# === Typical Verification Flow ===
# After floorplan
check_floorplan > reports/floorplan_check.rpt

# After placement
check_placement > reports/placement_check.rpt

# After CTS
check_clock_tree > reports/cts_check.rpt

# After routing
check_route > reports/route_check.rpt
check_drc > reports/drc_check.rpt

# Final signoff verification
check_design > reports/design_check.rpt
check_timing > reports/timing_check.rpt
verify_connectivity > reports/connectivity.rpt
verify_pg > reports/pg_verify.rpt
verify_drc > reports/drc_signoff.rpt
verify_timing > reports/timing_signoff.rpt

Command Deep-Dive: Understanding Each Command

check_design Checks design for consistency

What it is: check_design runs a comprehensive consistency check on the entire design database. It detects issues like unconnected pins, floating nets, missing libraries, hierarchy mismatches, and other structural problems that could cause downstream failures.

Where we use it: At the start of the flow after linking the design, and before every major step. Running check_design early catches problems before they waste compute time in later stages.

Syntax: check_design [-verbose] [-output <file>]

# Basic design check
check_design > reports/design_check.rpt

# Verbose design check
check_design -verbose > reports/design_check_detailed.rpt
check_timing Checks timing constraints

What it is: check_timing validates the completeness and consistency of timing constraints. It identifies missing clock definitions, unconstrained paths, clock domain crossing (CDC) issues, and conflicting timing exceptions.

Where we use it: Before running STA to ensure constraints are complete. Unconstrained paths can hide real timing violations. This check ensures all registers have proper clock definitions and all I/O ports have delay constraints.

Syntax: check_timing [-verbose] [-include <checks>] [-output <file>]

# Full timing check
check_timing > reports/timing_check.rpt

# Check specific items
check_timing -include {no_clock unconstrained} > reports/timing_issues.rpt
verify_connectivity Verifies net connectivity

What it is: verify_connectivity performs a comprehensive connectivity verification to ensure all nets are properly connected as specified in the netlist. It detects opens, shorts, and incorrect connections in the routed design.

Where we use it: After routing completion and before signoff. This is the equivalent of an LVS (Layout vs Schematic) check within the P&R tool. Connectivity violations must be resolved before tape-out.

Syntax: verify_connectivity [-type <type>] [-output <file>]

# Standard connectivity verification
verify_connectivity > reports/connectivity.rpt

# Detailed connectivity for specific nets
verify_connectivity -type all > reports/connectivity_detail.rpt
verify_pg Verifies power grid

What it is: verify_pg verifies the power delivery network integrity including connectivity from pads to every cell, electromigration (EM) compliance, and IR drop analysis. It ensures all cells receive correct voltage levels.

Where we use it: After power grid creation and at signoff. PG verification catches missing power connections, insufficient via stacking, and current density violations that could cause chip failure.

Syntax: verify_pg [-net <net>] [-output <file>]

# Full PG verification
verify_pg > reports/pg_verify.rpt

# Verify specific power net
verify_pg -net VDD > reports/pg_vdd.rpt
verify_pg -net VSS > reports/pg_vss.rpt
verify_drc Verifies DRC cleanliness

What it is: verify_drc is the final signoff DRC verification that checks the routed design against all foundry design rules including spacing, width, minimum area, via enclosure, antenna, and metal density rules.

Where we use it: At final signoff after all DRC fixes are complete. Zero DRC violations are mandatory for tape-out. This command is more comprehensive than check_drc and uses foundry-certified rule decks.

Syntax: verify_drc [-waive <rules>] [-output <file>]

# Full DRC signoff verification
verify_drc > reports/drc_signoff.rpt

# DRC with specific rule waivers
verify_drc -waive {density_rule} > reports/drc_signoff.rpt

Mastering these Verification commands is essential for achieving signoff quality. A design that passes all checks and verifications is ready for tape-out with confidence. Continue to Part 11: Miscellaneous Commands →