Standard library

The amaranth.lib module, also known as the standard library, provides modules that falls into one of the three categories:

  1. Modules that will used by essentially all idiomatic Amaranth code, and are necessary for interoperability. This includes amaranth.lib.enum (enumerations), amaranth.lib.data (data structures), and amaranth.lib.wiring (interfaces and components).

  2. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes amaranth.lib.cdc.

  3. Modules that have essentially one correct implementation and are of broad utility in digital designs. This includes amaranth.lib.coding, amaranth.lib.fifo, and amaranth.lib.crc.

The Amaranth standard library is separate from the Amaranth language: everything provided in it could have been implemented in a third-party library.