Engineering reference

Scripting for EDA Automation — Technical Glossary

Use this page when a term, acronym or engineering concept is unfamiliar. Understand the term, then return to the lesson where it is used.

See unfamiliar term→Check definition→Return to lesson
01

Automatic variable

A Make variable such as $@, $< or $^ that refers to the current target or its prerequisites.

02

C shell

csh and its extended version tcsh, an older Unix shell still used by many EDA site and tool setup scripts.

03

Dataclass

A Python class declared with @dataclass that stores fields and generates common methods automatically.

04

Environment module

A tool description loaded with module load that sets PATH and related variables for one tool version, in any shell.

05

Exit status

The number a process returns to its caller; 0 means success and any other value signals a specific failure.

06

Failure signature

An error message with run-specific values removed, used to group failures that share a cause.

07

File list

A text file of source paths, often with a .f extension, passed to a simulator or linter.

08

Hash

A Perl key-value table such as %count, read one value at a time with $count{key}.

09

Incremental build

Rebuilding only outputs whose inputs changed, based on file timestamps.

10

Liberty file

A .lib file that describes standard cells' function, timing and power for synthesis and timing tools.

11

Pattern rule

A Make rule using % to describe how to build a family of targets from matching prerequisites.

12

Phony target

A Make target that names an action rather than a file, declared with .PHONY so it always runs.

13

Random seed

The starting value for a pseudo-random generator; recording it makes a random test reproducible.

14

Regression

Repeated execution of a defined set of tests, often with several seeds, to detect behaviour that has broken.

15

Regular expression

A pattern language for matching text, used by grep, sed, awk, Python re and Tcl regexp.

16

SDC

Synopsys Design Constraints, a widely supported Tcl-based format for clocks, I/O delays and timing exceptions.

17

Shebang

The first line of a script, such as #!/usr/bin/env bash, that selects the interpreter.

18

Sigil

The symbol before a Perl name: $ for one value, @ for a list and % for a hash; it shows the kind of value being used.

19

Static timing analysis

Checking every timing path against constraints without simulation, as done by OpenSTA.

20

Strict mode

The Bash settings set -euo pipefail, which stop a script on failed commands, unset variables and failed pipeline stages.

21

Tcl dictionary

A Tcl value holding key-value pairs, managed with the dict command.

22

Tcl substitution

The single pass in which Tcl replaces $variables, [commands] and backslash escapes before running a command.

23

Timeout

A time limit after which a hung tool or simulation is stopped and reported.

24

Wait status

The raw value Perl stores in $? after system; the exit code is $? >> 8 and the low bits report a killing signal.

25

Waiver

A reviewed, narrowly matched exception that allows a known warning while any new warning still fails the check.

26

Worst negative slack

The most negative slack among all timing paths; a negative value means a constraint is violated.

27

argparse

The Python standard-library module that parses command-line options and generates help text.

28

getopts

A Bash built-in that parses short command-line options such as -t top -s seed.

29

pathlib

The Python standard-library module that represents file-system paths as objects.

30

setenv

The csh command that sets an environment variable, inherited by tools started from the shell; set creates a shell-only variable.