field-programmable gate array

n. A logic chip that has thousands of internal gates and can be programmed. Abbreviated FPGA. FPGAs are especially popular for prototyping integrated circuit designs. However, once the design is finalized, hard-wired chips called ASICs are often used instead for their faster performance and lower cost. [more]

FPGA block diagram

The internal structure of an FPGA


n. Executable software that is stored within a ROM.

USAGE: This term is interchangeable with embedded software and sometimes is used even when the executable is not stored in ROM.


1. v. To download new firmware into a flash memory. A bootloader typically facilitates this process by communicating with a program on the host, erasing the flash memory, and writing the new code. The sector of the flash memory that contains the bootloader's code must not be overwritten in the process.

2. See flash memory.

flash memory

n. A RAM-ROM hybrid that can be erased and rewritten under software control. Abbreviated flash. Flash is an in-circuit programmable nonvolatile memory segmented into blocks called sectors. Each sector can be individually erased, then the data within it rewritten. Flash memory is common in systems that require nonvolatile data storage at very low cost. In some cases, a large flash device can be used instead of a disk drive. Although there is a theoretical limit to the number of times a flash memory can be erased and rewritten successfully, this limit is seldom reached in practice. [more]

USAGE: To capitalize or not to capitalize? That is indeed the question. Although it makes little sense to capitalize, the practice is quite widespread. We recommend against it.


N. A niche programming language originally designed for real-time control of telescopes. An ANSI standard since 1994 (X3.215). Forth has a simple syntax and many keywords, unlike C/C++ and similar languages, which are the opposite. Forth programs are made up of many small procedures, and math is via RPN. These procedures are compiled, though Forth has no compiler in the traditional sense. Forth is essentially just a collection of procedures, called words, and an interpreter.

Nowadays, Forth is used primarily to test and debug hardware and bring up systems. Only about 2% of the subscribers of Embedded Systems Programming reported using Forth regularly in a 2001 survey.

Interestingly, some Unix workstations boot a small Forth interpreter before the rest of the operating system. One such environment is Sun's Open Boot, which provides Forth programming capabilities right out of ROM and a small bootloader that enables the operating system to be manually or automatically loaded and run from a disk drive or over a network. IEEE 1275 defines a standard based on Open Boot. [more]


n. Shareware that is distributed without payment expectation. [more]

free software

n. Software that is distributed free of charge along with or as source code, so that users can modify the software as they wish. [more]

Contrast with open source.

fuzzy logic

1. n. A methodology that makes it possible to make decisions based only on ambiguous or imprecise input data. Fuzzy logic can be implemented in software or hardware. As a first step, the possible inputs are grouped into sets. Decisions are then made based on the partial membership of inputs in these sets (according to fuzzy set theory), rather than the specific values of the input signals. The overlap of these partial set memberships results is a specific decision.

2. n. A multivalued set theory. Contrast with Boolean logic.