Find an engineering answer

VLSI reference library

Look up a concept, code symbol or debugging topic. Continue into the lesson for examples, practice and the next step in your learning path.

Learning references

146 references

Clear filters
Lesson

A Python regression runner

Run EDA tools from Python with `subprocess.run`, using argument lists, timeouts and `check`; run many test-and-seed combinations in parallel with `concurrent.futures`; keep each run isolated in its own folder; make random seeds reproducible; and return an exit status that a…

Open reference →
Lesson

Tcl fundamentals

Read and write Tcl, the command language used inside many EDA tools; explain Tcl's substitution rules; use variables, lists, dictionaries, `proc`, `foreach`, `if` and `while`; match text with `string` and `regexp`; read and write files; and handle errors with `catch`.

Open reference →
Lesson

Tcl in EDA tools

Drive Yosys synthesis from a Tcl script with `yosys -c` and `yosys -import`; write timing constraints as Tcl in SDC form with `create_clock`, `set_input_delay` and `set_output_delay`; run static timing with an OpenSTA-style script; make synthesis runs reproducible; and extract the…

Open reference →
Lesson

C shell for EDA environments

Read the csh and tcsh setup scripts that many EDA sites and tool vendors still ship; explain the difference between `set` and `setenv`; extend the search path with the `path` array; test for variables with `$?name` and read exit status…

Open reference →
Lesson

Perl fundamentals

Read and write the Perl found in EDA flows: run one-liners that filter and edit files; start every script with `use strict` and `use warnings`; use scalars, arrays and hashes and their sigils; match and capture with regular expressions and…

Open reference →
Lesson

Perl in EDA flows

Read and maintain the Perl scripts that run older chip-design flows: recognise common legacy idioms; parse options with `Getopt::Long`; run tools with `system` using a list of arguments and decode `$?` into an exit code; capture tool output safely; generate…

Open reference →
Lesson

Number systems and binary representation

Explain the digital abstraction and logic levels; convert among binary, octal, decimal, and hexadecimal; explain positional notation; determine the range of an unsigned value; and recognize extension, truncation, overflow, and wraparound.

Open reference →
Lesson

Finite state machines and safe control

Translate requirements into Moore or Mealy state machines; build transition and output tables; compare state encodings; define reachability, recovery, timeout, and safe defaults; and distinguish registered from combinational outputs.

Open reference →
Lesson

Timing, reset and clock-domain crossings

Calculate setup slack; distinguish propagation and contamination delay, setup and hold, recovery and removal; explain skew, jitter, uncertainty, and critical paths; and select appropriate reset and clock-domain crossing structures.

Open reference →
Lesson

Memories, FIFOs and arbitration

Compare memory technologies and port arrangements; define read latency and read-during-write behavior; calculate FIFO occupancy and flags; prevent overflow and underflow; and compare fixed-priority with round-robin arbitration.

Open reference →
Lesson

Arithmetic datapaths and interfaces

Size signed and unsigned arithmetic; reason about fixed-point rounding, saturation, accumulation, resource sharing, and pipelining; apply request/acknowledge and ready/valid protocols; and calculate latency, throughput, bandwidth, and buffer needs.

Open reference →
Lesson

ASIC, FPGA and RTL-to-silicon foundations

Define gates, cells, macros, netlists, libraries, PDKs, dies, packages, and PCBs; compare ASIC and FPGA implementation; trace requirements through bring-up; distinguish functional verification from physical sign-off; and explain PVT, power, area, performance, and implementation limits.

Open reference →
Lesson

Verilog purpose and tool flow

Explain what Verilog models; distinguish design RTL from testbench code; follow preprocess, compile, elaborate, simulate, synthesize, and timing stages; and run a small design with Icarus Verilog.

Open reference →

Build on what you find

Follow the eight-week programme to connect individual concepts with design decisions, simulation, debugging and verification evidence.

Open the training plan