From d1c775567f82520ab54b24812d0d6f3dea8ee12f Mon Sep 17 00:00:00 2001 From: AllysonProlisko <137875383+AllysonProlisko@users.noreply.github.com> Date: Mon, 7 Aug 2023 11:08:05 +0100 Subject: [PATCH 1/2] Create Glossary First draft of Glossary document --- docs/Glossary | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs/Glossary diff --git a/docs/Glossary b/docs/Glossary new file mode 100644 index 000000000..bec2830f1 --- /dev/null +++ b/docs/Glossary @@ -0,0 +1,42 @@ +Glossary +======== + ++-----------------------+----------------------------------------------+ +| .. rubric:: Term | .. rubric:: Definition | +| :name: term | :name: definition | ++=======================+==============================================+ ++-----------------------+----------------------------------------------+ + ++-------------------+--------------------------------------------------+ +| Amaranth | An open-source toolchain for developing hardware | +| | based on synchronous digital logic using the | +| | Python programming language | ++===================+==================================================+ +| ASIC | Application-specific integrated circuit | ++-------------------+--------------------------------------------------+ +| Domain | A group of logic elements | ++-------------------+--------------------------------------------------+ +| DUT | Device under test | ++-------------------+--------------------------------------------------+ +| Finite state | A mathematical model for a system that has a | +| machine | limited number of conditional states of being | ++-------------------+--------------------------------------------------+ +| FPGA | Field Programmable Gate Array — a design, | +| | blueprint, template | ++-------------------+--------------------------------------------------+ +| HDL | Hardware definition language | ++-------------------+--------------------------------------------------+ +| IC | Integrated circuit | ++-------------------+--------------------------------------------------+ +| Logic gate | A basic circuit with at least one — usually more | +| | — inputs and one output | ++-------------------+--------------------------------------------------+ +| LUT | Look up table | ++-------------------+--------------------------------------------------+ +| MCU | Microcontroller unit | ++-------------------+--------------------------------------------------+ +| Propagation delay | The time it takes for a signal to move from | +| | source to destination | ++-------------------+--------------------------------------------------+ +| RTL | Register transfer language | ++-------------------+--------------------------------------------------+ From b4b81cab94780184c3041271331b66b4a8c51ff1 Mon Sep 17 00:00:00 2001 From: AllysonProlisko <137875383+AllysonProlisko@users.noreply.github.com> Date: Mon, 14 Aug 2023 09:56:14 +0100 Subject: [PATCH 2/2] Update Glossary A re-write of the original content. --- docs/Glossary | 230 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 191 insertions(+), 39 deletions(-) diff --git a/docs/Glossary b/docs/Glossary index bec2830f1..c81408e5a 100644 --- a/docs/Glossary +++ b/docs/Glossary @@ -1,42 +1,194 @@ Glossary ======== -+-----------------------+----------------------------------------------+ -| .. rubric:: Term | .. rubric:: Definition | -| :name: term | :name: definition | -+=======================+==============================================+ -+-----------------------+----------------------------------------------+ - -+-------------------+--------------------------------------------------+ -| Amaranth | An open-source toolchain for developing hardware | -| | based on synchronous digital logic using the | -| | Python programming language | -+===================+==================================================+ -| ASIC | Application-specific integrated circuit | -+-------------------+--------------------------------------------------+ -| Domain | A group of logic elements | -+-------------------+--------------------------------------------------+ -| DUT | Device under test | -+-------------------+--------------------------------------------------+ -| Finite state | A mathematical model for a system that has a | -| machine | limited number of conditional states of being | -+-------------------+--------------------------------------------------+ -| FPGA | Field Programmable Gate Array — a design, | -| | blueprint, template | -+-------------------+--------------------------------------------------+ -| HDL | Hardware definition language | -+-------------------+--------------------------------------------------+ -| IC | Integrated circuit | -+-------------------+--------------------------------------------------+ -| Logic gate | A basic circuit with at least one — usually more | -| | — inputs and one output | -+-------------------+--------------------------------------------------+ -| LUT | Look up table | -+-------------------+--------------------------------------------------+ -| MCU | Microcontroller unit | -+-------------------+--------------------------------------------------+ -| Propagation delay | The time it takes for a signal to move from | -| | source to destination | -+-------------------+--------------------------------------------------+ -| RTL | Register transfer language | -+-------------------+--------------------------------------------------+ +**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.