Glossary ======================== .. glossary:: Arc A programmable connection between two nodes. Most arcs are unidirectional buffers that connect in one direction only, a few are bidirectional switch transistors (however these are mostly used in situations where this is one useful direction anyway). ASIC An application-specific integrated circuit (ASIC) is a chip that is designed and used for a specific purpose, such as video acceleration, machine learning acceleration, and many more purposes. In contrast to :term:`FPGAs `, the programming of an ASIC is fixed at the time of manufacture. Bitstream Binary data that is directly loaded into an :term:`FPGA` to perform configuration. Contains configuration :term:`frames ` as well as programming sequences and other commands required to load and activate same. Database Contains information about programmable configuration bits, arc enable bits, and how wires are connected between tiles. FF Flip flop A flip flop (FF) is a logic element on the :term:`FPGA` that stores state. FPGA A field-programmable gate array (FPGA) is a reprogrammable integrated circuit, or chip. Reprogrammable means you can reconfigure the integrated circuit for different types of computing. You define the configuration via a hardware definition language (:term:`HDL`). The word "field" in *field-programmable gate array* means the circuit is programmable *in the field*, as opposed to during chip manufacture. Frame A frame contains a row of bits used to configure the FPGA, and is the basic unit that a bitstream is split into. The number of bits per frame, and frames per device varies for different ECP5 chips. Fuzzer Scripts and a makefile to generate one or more :term:`specimens ` and then convert the data from those specimens into a :term:`database`. General Routing Routing that connects together nearby :term:`tiles ` horizontally or vertically, spanning up to about 15 tiles at most. Called "shortwires" in Lattice Diamond, but this also refers to internal routing. Global Routing Routing that connects to all :term:`tiles ` in a quadrant for logic, and all tiles on an edge for IO. Normally used for routing clocks, or occasionally other high fanout signals. Called "longwires" in Lattice Diamond. Half Portion of a device defined by a virtual line dividing the two sets of global clock buffers present in a device. The two halves are referred to as the top and bottom halves. HDL You use a hardware definition language (HDL) to describe the behavior of an electronic circuit. Popular HDLs include Verilog (inspired by C) and VHDL (inspired by Ada). Internal Routing Routing that does not leave a single :term:`tile`. LUT A lookup table (LUT) is a logic element on the :term:`FPGA`. LUTs function as a ROM, apply combinatorial logic, and generate the output value for a given set of inputs. MUX A multiplexer (MUX) is a multi-input, single-output switch controled by logic. Node A routing node on the device. A node is a collection of :term:`wires ` spanning one or more :term:`tiles `. Nodes that are local to a tile map 1:1 to a wire. A node that spans multiple tiles maps to multiple wires, one in each tile it spans. PnR Place and route Place and route (PnR) is the process of taking logic and placing it into hardware logic elements on the :term:`FPGA`, and then routing the signals between the placed elements. Quadrant The ECP5 FPGAs are arranged into four quadrants for the purpose of global signal distribution, upper left (UL), upper right (UR), lower left (LL) and lower right (LR). Routing fabric The :term:`wires ` and programmable interconnects (:term:`arcs `) connecting the logic blocks in an :term:`FPGA`. Site Locations inside a tile that can contain an instance of a primitive. Specimen A :term:`bitstream` of a (usually auto-generated) design with additional files containing information about the placed and routed design. These additional files are usually generated using programs included with Diamond to create debugging outputs. Tile Fundamental unit of physical structure containing a single type of resource or function. The whole chip is a grid of tiles, however, multiple tiles may exist at one grid location. Wire Physical wire within a :term:`tile`.