| 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 <FPGA>`, 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 <frame>` 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 <specimen>` |
| and then convert the data from those specimens into a :term:`database`. |
| |
| General Routing |
| Routing that connects together nearby :term:`tiles <tile>` 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 <tile>` 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 <wire>` |
| spanning one or more :term:`tiles <tile>`. |
| 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 <wire>` and programmable interconnects (:term:`arcs <arc>`) |
| 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`. |
| |