Engineering reference

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

Archive

A file that groups other files; compression is a separate operation.

02

Associative array

A sparse collection that stores only written entries, indexed by a key of any type.

03

Automatic variable

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

04

C shell

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

05

Class

A user-defined type that bundles properties and methods and is created at run time.

06

Clocking block

A block that defines when a testbench samples and drives signals relative to a clock.

07

Concurrent assertion

An assertion sampled on a clock that checks a temporal property over cycles.

08

Constraint

A Boolean rule that random values must satisfy when randomize() is called.

09

Coverage closure

The process of finding and closing coverage holes until the plan goal is met.

10

Covergroup

A construct that defines coverpoints, bins and crosses for functional coverage.

11

Cross coverage

Coverage of combinations of bins from two or more coverpoints.

12

Dataclass

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

13

Deep copy

A copy that also creates new copies of nested objects instead of sharing them.

14

Dynamic array

An unpacked array whose size is set at run time with new[].

15

Enumeration

A user-defined type with named values, declared with enum.

16

Environment module

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

17

Environment variable

A named value inherited by child processes when exported.

18

Exit status

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

19

Exit status

A numeric result returned by a process; zero normally indicates success.

20

Failure signature

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

21

File list

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

22

Four-state type

A type whose bits can hold 0, 1, x or z, such as logic or integer.

23

Handle

A variable that refers to a class object, or holds null.

24

Hash

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

25

Implication

A property operator (|-> or |=>) that checks a consequent only after an antecedent matches.

26

Incremental build

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

27

Inheritance

Creating a derived class with extends so that it reuses and extends a base class.

28

Inode

Filesystem metadata object referenced by one or more names.

29

Interface

A named bundle of signals, modports and clocking blocks passed as a single port.

30

Kernel

The privileged core that manages processes, memory, devices and filesystems.

31

Liberty file

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

32

Mailbox

A FIFO channel for passing items between threads, optionally bounded.

33

Modport

A list of interface signals with directions for one user of the interface.

34

Mount point

A directory at which a filesystem is attached to the directory tree.

35

PATH

An ordered list of directories used by a shell to find executables.

36

Packed array

An array whose dimensions are declared before the name and stored as one contiguous vector.

37

Pattern rule

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

38

Phony target

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

39

Polymorphism

Using base-class handles to operate on objects of different derived classes.

40

Process

A running program with a PID, state and resource use.

41

Queue

An ordered, variable-size collection that can be pushed and popped at either end.

42

Random seed

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

43

Regression

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

44

Regular expression

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

45

Reproducibility

The ability to rerun a documented command with known inputs, tool versions and expected evidence.

46

SDC

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

47

SHA-256

A cryptographic hash used to compare artifact integrity against a trusted checksum.

48

SSH host key

A server identity key whose fingerprint should be verified through a trusted channel.

49

Scoreboard

A component that compares observed results with predicted results.

50

Semaphore

A set of keys used to control access to a shared resource between threads.

51

Shebang

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

52

Shell

A program that interprets command input and starts other programs.

53

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.

54

Soft constraint

A default constraint that is dropped if it conflicts with a hard constraint.

55

Standard error

File descriptor 2, conventionally used for diagnostics.

56

Static timing analysis

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

57

Strict mode

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

58

Structure

A user-defined type that groups named fields; a packed struct is also a vector.

59

Symbolic link

A filesystem entry that stores a path to another entry.

60

Tcl dictionary

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

61

Tcl substitution

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

62

Timeout

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

63

Transaction

An object describing one operation, such as a bus write, independent of pin timing.

64

Two-state type

A type whose bits hold only 0 or 1, such as bit, int or byte.

65

Umask

A mask that removes permissions from new files and directories.

66

Unpacked array

An array whose dimensions are declared after the name, holding separate elements.

67

User space

Programs outside the kernel that request operating-system services.

68

Virtual interface

A handle to an interface instance, used by classes to reach DUT signals.

69

Virtual method

A method whose body is selected at run time by the object type, not the handle type.

70

Wait status

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

71

Waiver

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

72

Worst negative slack

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

73

argparse

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

74

getopts

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

75

pathlib

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

76

setenv

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

77

systemd unit

A systemd configuration object such as a service or timer.