Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Glossary #858

Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
194 changes: 194 additions & 0 deletions docs/Glossary
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
Glossary
========

**Amaranth**
| An open-source toolchain that uses the Python programming language.
| Amaranth makes developing hardware definitions, based on synchronous
digital logic, more intuitive by using the popular Python programming
language. The toolchain consists of the Amaranth language, the
standard library, the simulator, and the build system, covering all
steps of a typical FPGA development workflow.

**ASIC (Application-specific integrated circuit)**
| A non-standard integrated circuit chip made for a specific task or
product.
| The term *application* refers to the function the circuit will
perform, not to a software application.
| ASICs can be configured to be more power efficient and have better
performance than an off-the-shelf general purpose integrated circuit.
However, unlike FPGAs, ASICs cannot be reprogrammed and are expensive
to produce so design and testing are critical to the success of ASIC
development.
| Rather than designing and building them from the ground up, ASICs can
be created by interconnecting functional components from cell
libraries. The resulting system can then be verified via simulation.

**CLB (Configurable logic block)**
| The basic repeating logic block on an FPGA, the purpose of CLBs is to
implement combinational and sequential logic on an FPGA.
| Each FPGA contains many logic blocks that are surrounded by a system
of programmable interconnects (I/O blocks), called a fabric, that
routes signals between the CLBs.
| The three essential components of a logic block are flip-flops, LUTs,
and multiplexers.

**Clock signal**
| An electronic logic signal that oscillates between a high and a low
state at a constant frequency, used to synchronise the actions of
digital circuits
| The clock signal enters the FPGA system through a single physical
connecting pin and is responsible for the speed at which an FPGA can
run and process data.
| A wave at a particular frequency is distributed across the FPGA to
produce a synchronised response from all the flip-flops in the design.
Performance of the system will be affected if the flip-flops do not
all receive the clock signal at the same time. It’s possible to use
more than one clock in an FPGA design but it is complicated and
requires a degree of skill in circuit design.

**DUT (Device under test)**
| A manufactured device that is being tested for performance and
proficiency.
| The device fails testing as soon the first out-of-tolerance value is
identified. The aim is to ensure damaged devices don’t enter the
market.

**Finite state machine**
| A mathematical model describing a system with a limited number of
conditional states of being.
| A finite state machine reads a series of inputs. For each input, it
will transition to a different state. Each state specifies which state
to transition to next, for the given input. When the processing is
complete, a ‘then’ action is taken. The abstract machine can process
only one state at a time.
| This approach enables engineers to study and test each input and
output scenario.

**Flip-flop**
| The basic memory element for storing a single bit of information.
| An edge-triggered device, it reacts to the edge of a pulse. Flip-flops
synchronise logic and save logical states between clock cycles within
an FPGA circuit. On every rising or falling clock edge, a flip-flop
latches the 1 or 0 (TRUE or FALSE) value on its input and holds that
value constant until the next clock edge.

**FPGA (Field Programmable Gate Array)**
| A reconfigurable integrated circuit containing internal hardware
blocks with user-programmable interconnects to create a customised
application.
| The device’s physical attributes are programmed using a hardware
definition language. I /O blocks interface between the FPGA and
external devices.
| FPGAs combine speed, programmability, and flexibility: FPGAs don't
jump between memory and programming in the way ASICSs and CPUs do, so
storing and retrieving data is more efficient. In addition, they can
process very large volumes of data by duplicating circuits and running
them in parallel.

**Hardware register**
| Circuits, typically composed of flip flops, often with characteristics
similar to memory and having additional hardware-related functions.
| Hardware registers are used in the interface between software and
peripherals.

**HDL (Hardware description language)**
| Hardware description languages describe the structure, behaviour, and
timing of electronic circuits and digital logic circuits.
| HDLs describe behavioural, register transfer, gate, and switch-level
logic. Behavioural level logic enables the sequential execution of
instructions; and register transfer logic enables the transfer of data
between registers. These actions are driven by an explicit clock and
gate level logic that defines the individual gate level logic. HDLs
can also be used to simulate a circuit and verify its response.

**IC (Integrated circuit)**
| An integrated circuit is a computer chip that has an electronic
circuit embedded in it.
| The circuit is a small wafer, usually made of silicon, that can hold
anywhere from hundreds to millions of transistors, resistors, and
capacitors. These components can perform calculations and store data
using either digital or analog technology.
| Digital ICs use logic gates that work only with values of 1s and 0s. A
low signal sent to a component on a digital IC will result in a value
of 0, while a high signal creates a value of 1.

**Logic gate**
| An elementary building block of integrated circuits, logic gates
perform logical operations on binary inputs and outputs.
| Based on a Boolean function that computes TRUE or FALSE, each output
is based on the input or combination of inputs supplied to it.
| **LUT (Look up table)**

| An elementary building block of integrated circuits, a LUT is a truth
table that defines how combinatorial logic behaves: the output for
every combination of inputs.
| The computation is very fast because the function requires only a
single memory lookup regardless of the complexity of the function.

**MCU (Microcontroller unit)**
| A compact integrated circuit designed to govern a specific operation
in an embedded system.
| An MCU typically comprises a processor unit, memory modules,
communication interfaces, and peripherals.

**Multiplexer**
| A combinational logic circuit designed to switch one of several inputs
through to a single common output by the application of a control
signal.
| A multiplexer makes it possible for several input signals to share one
device or resource instead of having one device per input signal. They
use high speed logic gates to switch digital or binary data through to
a single output.

**Propagation delay**
| The time required to change the output from one logic state to another
logic state after input is applied.
| In simplified terms, the time it takes for a signal to move from
source to destination. The timing begins when the input to a logic
gate becomes stable and valid to change and ends when the output of
that logic gate is stable and valid to change.
| The propagation delay of a complete circuit is calculated by
identifying the longest path of propagation delay from input to output
and adding each propagation delay along the path.

**RTL (Register transfer level)**
| RTL is used to create high-level representations of a circuit, from
which lower-level representations and wiring can be derived.
| It models a synchronous digital circuit in terms of the flow of
digital signals between hardware registers, and the logical operations
performed on those signals.

**Simulation**
| A process in which a model of an electronic circuit is replicated and
analysed to verify its functionality.
| Simulation is an invaluable tool for ensuring a circuit works the way
it was intended to by checking accuracy, capacity, and performance. It
also enables designers to rapidly iterate designs and test them to
find the optimal configuration.

**SoC (System on Chip)**
| An integrated circuit, containing all the circuitry and components an
electronic system requires.
| In contrast to a traditional computer system that is made up of many
distinct components, an SoC integrates the required resources — CPU,
memory interfaces, I/O devices, I/O interfaces, secondary storage
interfaces — into a single chip. SoCs are typically built around a
microprocessor, microcontroller, or specialised integrated circuit.
This increases performance, reduces power consumption, and requires a
smaller semiconductor die area.

**Wave form**
| A visual representation of the variation of a voltage or current over
time.
| Periodic waveforms vary at a given frequency, for example, the voltage
or current of a signal is amplified or reduced to provide a clock
signal for an FPGA.
| Waveforms have three main characteristics: period, the length of time
the waveform takes to repeat; frequency, the number of times the
waveform repeats within a one second time period; and amplitude, the
magnitude or intensity of the signal waveform measured in volts or
amps.
| The waveform of an electrical signal can be visualised in an
oscilloscope or similar instrument that can capture and plot the
variations in the signal. The square waveform is commonly used to
represent digital information.