diff --git a/docs/amaranth/latest/.buildinfo b/docs/amaranth/latest/.buildinfo index e802b3a9..5a3c7f24 100644 --- a/docs/amaranth/latest/.buildinfo +++ b/docs/amaranth/latest/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: ec934dcc5541e90b41a2758566e8ca54 +config: c57ac3108071e8d47c15c8720cd8f69e tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/amaranth/latest/.doctrees/changes.doctree b/docs/amaranth/latest/.doctrees/changes.doctree index d9296a75..2991f59f 100644 Binary files a/docs/amaranth/latest/.doctrees/changes.doctree and b/docs/amaranth/latest/.doctrees/changes.doctree differ diff --git a/docs/amaranth/latest/.doctrees/environment.pickle b/docs/amaranth/latest/.doctrees/environment.pickle index 76b1bb37..23760123 100644 Binary files a/docs/amaranth/latest/.doctrees/environment.pickle and b/docs/amaranth/latest/.doctrees/environment.pickle differ diff --git a/docs/amaranth/latest/.doctrees/stdlib/fifo.doctree b/docs/amaranth/latest/.doctrees/stdlib/fifo.doctree index 7927da76..40865b5b 100644 Binary files a/docs/amaranth/latest/.doctrees/stdlib/fifo.doctree and b/docs/amaranth/latest/.doctrees/stdlib/fifo.doctree differ diff --git a/docs/amaranth/latest/_sources/changes.rst.txt b/docs/amaranth/latest/_sources/changes.rst.txt index 6986ddb0..c982a5f2 100644 --- a/docs/amaranth/latest/_sources/changes.rst.txt +++ b/docs/amaranth/latest/_sources/changes.rst.txt @@ -33,6 +33,7 @@ Apply the following changes to code written against Amaranth 0.3 to migrate it t * Replace uses of ``Record`` with :mod:`amaranth.lib.data` and :mod:`amaranth.lib.wiring`. The appropriate replacement depends on the use case. If ``Record`` was being used for data storage and accessing the bit-level representation, use :mod:`amaranth.lib.data`. If ``Record`` was being used for connecting design components together, use :mod:`amaranth.lib.wiring`. * Ensure the ``Pin`` instance returned by ``platform.request`` is not cast to value directly, but used for its fields. Replace code like ``leds = Cat(platform.request(led, n) for n in range(4))`` with ``leds = Cat(platform.request(led, n).o for n in range(4))`` (note the ``.o``). * Remove uses of ``amaranth.lib.scheduler.RoundRobin`` by inlining or copying the implementation of that class. +* Remove uses of ``amaranth.lib.fifo.SyncFIFO(fwft=False)`` and ``amaranth.lib.fifo.FIFOInterface(fwft=False)`` by converting code to use ``fwft=True`` FIFOs or copying the implementation of those classes. While code that uses the features listed as deprecated below will work in Amaranth 0.4, they will be removed in the next version. @@ -52,6 +53,7 @@ Implemented RFCs .. _RFC 15: https://amaranth-lang.org/rfcs/0015-lifting-shape-castables.html .. _RFC 18: https://amaranth-lang.org/rfcs/0018-reorganize-vendor-platforms.html .. _RFC 19: https://amaranth-lang.org/rfcs/0019-remove-scheduler.html +.. _RFC 20: https://amaranth-lang.org/rfcs/0020-deprecate-non-fwft-fifos.html .. _RFC 22: https://amaranth-lang.org/rfcs/0022-valuecastable-shape.html @@ -67,6 +69,7 @@ Implemented RFCs * `RFC 18`_: Reorganize vendor platforms * `RFC 19`_: Remove ``amaranth.lib.scheduler`` * `RFC 15`_: Lifting shape-castable objects +* `RFC 20`_: Deprecate non-FWFT FIFOs * `RFC 22`_: Define ``ValueCastable.shape()`` @@ -103,6 +106,8 @@ Standard library changes * Added: :mod:`amaranth.lib.data`. (`RFC 1`_) * Added: :mod:`amaranth.lib.crc`. (`RFC 6`_) * Deprecated: :mod:`amaranth.lib.scheduler`. (`RFC 19`_) +* Deprecated: :class:`amaranth.lib.fifo.FIFOInterface` with ``fwft=False``. (`RFC 20`_) +* Deprecated: :class:`amaranth.lib.fifo.SyncFIFO` with ``fwft=False``. (`RFC 20`_) Toolchain changes diff --git a/docs/amaranth/latest/_static/documentation_options.js b/docs/amaranth/latest/_static/documentation_options.js index e89e5839..2ecfd28e 100644 --- a/docs/amaranth/latest/_static/documentation_options.js +++ b/docs/amaranth/latest/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.4.dev224', + VERSION: '0.4.dev227', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/amaranth/latest/changes.html b/docs/amaranth/latest/changes.html index 30a402d0..ddb3e90e 100644 --- a/docs/amaranth/latest/changes.html +++ b/docs/amaranth/latest/changes.html @@ -4,7 +4,7 @@ - Changelog — Amaranth HDL toolchain 0.4.dev224 documentation + Changelog — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
- 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
@@ -132,6 +132,7 @@

Migrating from version 0.3Record with amaranth.lib.data and amaranth.lib.wiring. The appropriate replacement depends on the use case. If Record was being used for data storage and accessing the bit-level representation, use amaranth.lib.data. If Record was being used for connecting design components together, use amaranth.lib.wiring.

  • Ensure the Pin instance returned by platform.request is not cast to value directly, but used for its fields. Replace code like leds = Cat(platform.request(led, n) for n in range(4)) with leds = Cat(platform.request(led, n).o for n in range(4)) (note the .o).

  • Remove uses of amaranth.lib.scheduler.RoundRobin by inlining or copying the implementation of that class.

  • +
  • Remove uses of amaranth.lib.fifo.SyncFIFO(fwft=False) and amaranth.lib.fifo.FIFOInterface(fwft=False) by converting code to use fwft=True FIFOs or copying the implementation of those classes.

  • While code that uses the features listed as deprecated below will work in Amaranth 0.4, they will be removed in the next version.

    @@ -150,6 +151,7 @@

    Implemented RFCsRFC 18: Reorganize vendor platforms

  • RFC 19: Remove amaranth.lib.scheduler

  • RFC 15: Lifting shape-castable objects

  • +
  • RFC 20: Deprecate non-FWFT FIFOs

  • RFC 22: Define ValueCastable.shape()

  • @@ -182,6 +184,8 @@

    Standard library changesamaranth.lib.data. (RFC 1)

  • Added: amaranth.lib.crc. (RFC 6)

  • Deprecated: amaranth.lib.scheduler. (RFC 19)

  • +
  • Deprecated: amaranth.lib.fifo.FIFOInterface with fwft=False. (RFC 20)

  • +
  • Deprecated: amaranth.lib.fifo.SyncFIFO with fwft=False. (RFC 20)

  • diff --git a/docs/amaranth/latest/changes.rst b/docs/amaranth/latest/changes.rst index 6986ddb0..c982a5f2 100644 --- a/docs/amaranth/latest/changes.rst +++ b/docs/amaranth/latest/changes.rst @@ -33,6 +33,7 @@ Apply the following changes to code written against Amaranth 0.3 to migrate it t * Replace uses of ``Record`` with :mod:`amaranth.lib.data` and :mod:`amaranth.lib.wiring`. The appropriate replacement depends on the use case. If ``Record`` was being used for data storage and accessing the bit-level representation, use :mod:`amaranth.lib.data`. If ``Record`` was being used for connecting design components together, use :mod:`amaranth.lib.wiring`. * Ensure the ``Pin`` instance returned by ``platform.request`` is not cast to value directly, but used for its fields. Replace code like ``leds = Cat(platform.request(led, n) for n in range(4))`` with ``leds = Cat(platform.request(led, n).o for n in range(4))`` (note the ``.o``). * Remove uses of ``amaranth.lib.scheduler.RoundRobin`` by inlining or copying the implementation of that class. +* Remove uses of ``amaranth.lib.fifo.SyncFIFO(fwft=False)`` and ``amaranth.lib.fifo.FIFOInterface(fwft=False)`` by converting code to use ``fwft=True`` FIFOs or copying the implementation of those classes. While code that uses the features listed as deprecated below will work in Amaranth 0.4, they will be removed in the next version. @@ -52,6 +53,7 @@ Implemented RFCs .. _RFC 15: https://amaranth-lang.org/rfcs/0015-lifting-shape-castables.html .. _RFC 18: https://amaranth-lang.org/rfcs/0018-reorganize-vendor-platforms.html .. _RFC 19: https://amaranth-lang.org/rfcs/0019-remove-scheduler.html +.. _RFC 20: https://amaranth-lang.org/rfcs/0020-deprecate-non-fwft-fifos.html .. _RFC 22: https://amaranth-lang.org/rfcs/0022-valuecastable-shape.html @@ -67,6 +69,7 @@ Implemented RFCs * `RFC 18`_: Reorganize vendor platforms * `RFC 19`_: Remove ``amaranth.lib.scheduler`` * `RFC 15`_: Lifting shape-castable objects +* `RFC 20`_: Deprecate non-FWFT FIFOs * `RFC 22`_: Define ``ValueCastable.shape()`` @@ -103,6 +106,8 @@ Standard library changes * Added: :mod:`amaranth.lib.data`. (`RFC 1`_) * Added: :mod:`amaranth.lib.crc`. (`RFC 6`_) * Deprecated: :mod:`amaranth.lib.scheduler`. (`RFC 19`_) +* Deprecated: :class:`amaranth.lib.fifo.FIFOInterface` with ``fwft=False``. (`RFC 20`_) +* Deprecated: :class:`amaranth.lib.fifo.SyncFIFO` with ``fwft=False``. (`RFC 20`_) Toolchain changes diff --git a/docs/amaranth/latest/contrib.html b/docs/amaranth/latest/contrib.html index ae8eabc1..ea40dd54 100644 --- a/docs/amaranth/latest/contrib.html +++ b/docs/amaranth/latest/contrib.html @@ -4,7 +4,7 @@ - Contributing — Amaranth HDL toolchain 0.4.dev224 documentation + Contributing — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -37,7 +37,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/cover.html b/docs/amaranth/latest/cover.html index 56de823a..6723f598 100644 --- a/docs/amaranth/latest/cover.html +++ b/docs/amaranth/latest/cover.html @@ -4,7 +4,7 @@ - Amaranth HDL documentation — Amaranth HDL toolchain 0.4.dev224 documentation + Amaranth HDL documentation — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -37,7 +37,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/genindex.html b/docs/amaranth/latest/genindex.html index 0b0a1de9..900e1703 100644 --- a/docs/amaranth/latest/genindex.html +++ b/docs/amaranth/latest/genindex.html @@ -3,7 +3,7 @@ - Index — Amaranth HDL toolchain 0.4.dev224 documentation + Index — Amaranth HDL toolchain 0.4.dev227 documentation @@ -14,7 +14,7 @@ - + @@ -35,7 +35,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/index.html b/docs/amaranth/latest/index.html index 6bd3a18b..78ef81b4 100644 --- a/docs/amaranth/latest/index.html +++ b/docs/amaranth/latest/index.html @@ -4,7 +4,7 @@ - Language & toolchain — Amaranth HDL toolchain 0.4.dev224 documentation + Language & toolchain — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/install.html b/docs/amaranth/latest/install.html index ec529c13..533c9fe8 100644 --- a/docs/amaranth/latest/install.html +++ b/docs/amaranth/latest/install.html @@ -4,7 +4,7 @@ - Installation — Amaranth HDL toolchain 0.4.dev224 documentation + Installation — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/intro.html b/docs/amaranth/latest/intro.html index 8b743948..1f4f407a 100644 --- a/docs/amaranth/latest/intro.html +++ b/docs/amaranth/latest/intro.html @@ -4,7 +4,7 @@ - Introduction — Amaranth HDL toolchain 0.4.dev224 documentation + Introduction — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/lang.html b/docs/amaranth/latest/lang.html index f1303809..2b86b9e0 100644 --- a/docs/amaranth/latest/lang.html +++ b/docs/amaranth/latest/lang.html @@ -4,7 +4,7 @@ - Language guide — Amaranth HDL toolchain 0.4.dev224 documentation + Language guide — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/objects.inv b/docs/amaranth/latest/objects.inv index 9d555904..95a89c92 100644 Binary files a/docs/amaranth/latest/objects.inv and b/docs/amaranth/latest/objects.inv differ diff --git a/docs/amaranth/latest/platform.html b/docs/amaranth/latest/platform.html index f4d0ab8a..d60ff941 100644 --- a/docs/amaranth/latest/platform.html +++ b/docs/amaranth/latest/platform.html @@ -4,7 +4,7 @@ - Platform integration — Amaranth HDL toolchain 0.4.dev224 documentation + Platform integration — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/platform/gowin.html b/docs/amaranth/latest/platform/gowin.html index a3ffb818..3c314f2b 100644 --- a/docs/amaranth/latest/platform/gowin.html +++ b/docs/amaranth/latest/platform/gowin.html @@ -4,7 +4,7 @@ - Gowin — Amaranth HDL toolchain 0.4.dev224 documentation + Gowin — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/platform/intel.html b/docs/amaranth/latest/platform/intel.html index 96ed8c0f..c70cc993 100644 --- a/docs/amaranth/latest/platform/intel.html +++ b/docs/amaranth/latest/platform/intel.html @@ -4,7 +4,7 @@ - Intel — Amaranth HDL toolchain 0.4.dev224 documentation + Intel — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/platform/lattice-ecp5.html b/docs/amaranth/latest/platform/lattice-ecp5.html index 07792cf4..522c5e44 100644 --- a/docs/amaranth/latest/platform/lattice-ecp5.html +++ b/docs/amaranth/latest/platform/lattice-ecp5.html @@ -4,7 +4,7 @@ - Lattice ECP5 — Amaranth HDL toolchain 0.4.dev224 documentation + Lattice ECP5 — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/platform/lattice-ice40.html b/docs/amaranth/latest/platform/lattice-ice40.html index 257ef854..5d09a0fd 100644 --- a/docs/amaranth/latest/platform/lattice-ice40.html +++ b/docs/amaranth/latest/platform/lattice-ice40.html @@ -4,7 +4,7 @@ - Lattice iCE40 — Amaranth HDL toolchain 0.4.dev224 documentation + Lattice iCE40 — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/platform/lattice-machxo-2-3l.html b/docs/amaranth/latest/platform/lattice-machxo-2-3l.html index 13672f98..b9500b88 100644 --- a/docs/amaranth/latest/platform/lattice-machxo-2-3l.html +++ b/docs/amaranth/latest/platform/lattice-machxo-2-3l.html @@ -4,7 +4,7 @@ - Lattice MachXO2 and MachXO3L — Amaranth HDL toolchain 0.4.dev224 documentation + Lattice MachXO2 and MachXO3L — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/platform/quicklogic.html b/docs/amaranth/latest/platform/quicklogic.html index fd63b7fa..223d58ac 100644 --- a/docs/amaranth/latest/platform/quicklogic.html +++ b/docs/amaranth/latest/platform/quicklogic.html @@ -4,7 +4,7 @@ - Quicklogic — Amaranth HDL toolchain 0.4.dev224 documentation + Quicklogic — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/platform/xilinx.html b/docs/amaranth/latest/platform/xilinx.html index c3c7a9b2..8d96cfa3 100644 --- a/docs/amaranth/latest/platform/xilinx.html +++ b/docs/amaranth/latest/platform/xilinx.html @@ -4,7 +4,7 @@ - Xilinx — Amaranth HDL toolchain 0.4.dev224 documentation + Xilinx — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/py-modindex.html b/docs/amaranth/latest/py-modindex.html index 1a8cb173..7d7249bc 100644 --- a/docs/amaranth/latest/py-modindex.html +++ b/docs/amaranth/latest/py-modindex.html @@ -3,7 +3,7 @@ - Python Module Index — Amaranth HDL toolchain 0.4.dev224 documentation + Python Module Index — Amaranth HDL toolchain 0.4.dev227 documentation @@ -14,7 +14,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/search.html b/docs/amaranth/latest/search.html index d792a052..659f0c32 100644 --- a/docs/amaranth/latest/search.html +++ b/docs/amaranth/latest/search.html @@ -3,7 +3,7 @@ - Search — Amaranth HDL toolchain 0.4.dev224 documentation + Search — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/searchindex.js b/docs/amaranth/latest/searchindex.js index 46d6fd69..c32042fe 100644 --- a/docs/amaranth/latest/searchindex.js +++ b/docs/amaranth/latest/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["changes", "contrib", "cover", "index", "install", "intro", "lang", "platform", "platform/gowin", "platform/intel", "platform/lattice-ecp5", "platform/lattice-ice40", "platform/lattice-machxo-2-3l", "platform/quicklogic", "platform/xilinx", "start", "stdlib", "stdlib/cdc", "stdlib/coding", "stdlib/crc", "stdlib/crc/catalog", "stdlib/data", "stdlib/enum", "stdlib/fifo", "tutorial"], "filenames": ["changes.rst", "contrib.rst", "cover.rst", "index.rst", "install.rst", "intro.rst", "lang.rst", "platform.rst", "platform/gowin.rst", "platform/intel.rst", "platform/lattice-ecp5.rst", "platform/lattice-ice40.rst", "platform/lattice-machxo-2-3l.rst", "platform/quicklogic.rst", "platform/xilinx.rst", "start.rst", "stdlib.rst", "stdlib/cdc.rst", "stdlib/coding.rst", "stdlib/crc.rst", "stdlib/crc/catalog.rst", "stdlib/data.rst", "stdlib/enum.rst", "stdlib/fifo.rst", "tutorial.rst"], "titles": ["Changelog", "Contributing", "Amaranth HDL documentation", "Language & toolchain", "Installation", "Introduction", "Language guide", "Platform integration", "Gowin", "Intel", "Lattice ECP5", "Lattice iCE40", "Lattice MachXO2 and MachXO3L", "Quicklogic", "Xilinx", "Getting started", "Standard library", "Clock domain crossing", "Code conversion", "Cyclic redundancy checks", "Predefined CRC Algorithms", "Data structures", "Enumerations", "First-in first-out queues", "Tutorial"], "terms": {"thi": [0, 1, 3, 5, 6, 7, 11, 15, 16, 17, 19, 20, 21, 22, 23], "document": [0, 5, 15, 19], "describ": [0, 1, 15, 21], "public": [0, 1], "interfac": [0, 5, 6, 15, 21, 23], "amaranth": [0, 1, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24], "It": [0, 1, 5, 6, 15, 19, 21], "doe": [0, 4, 5, 6, 17, 21, 23], "includ": [0, 1, 4, 5, 6, 15, 19], "most": [0, 4, 5, 6, 15, 17, 19, 21], "bug": [0, 1, 4, 5, 6], "fix": [0, 3, 4, 6, 15, 19], "support": [0, 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 23], "ha": [0, 1, 5, 6, 15, 19, 21, 22, 23], "been": [0, 4, 19, 23], "ad": [0, 4, 5, 6, 15, 21], "new": [0, 3, 4, 5, 19, 21, 23], "improv": [0, 1, 21, 23], "wai": [0, 1, 6, 21, 22], "defin": [0, 5, 6, 15, 17, 19], "data": [0, 3, 16, 17, 19, 23], "structur": [0, 1, 3, 15, 16], "lib": [0, 6, 17, 18, 19, 20, 21, 22, 23], "compon": [0, 5, 21], "wire": [0, 6, 15], "record": [0, 1, 15], "deprec": 0, "In": [0, 6, 21, 22, 23], "departur": 0, "usual": [0, 1, 5, 6, 17, 21], "polici": 0, "give": [0, 6, 21], "design": [0, 1, 4, 5, 6, 14, 15, 17, 19, 21, 24], "addit": [0, 1, 4, 5, 6, 21, 23], "time": [0, 1, 4, 5, 6, 11, 15, 17, 21, 23], "remov": [0, 1, 6, 19], "6": [0, 6, 15, 20, 21], "one": [0, 1, 6, 15, 17, 18, 19, 21, 23, 24], "releas": [0, 17], "later": [0, 1], "than": [0, 4, 5, 6, 17, 21, 22], "normal": 0, "enumer": [0, 3, 16, 21], "extend": [0, 5, 6, 22], "A": [0, 1, 3, 4, 5, 6, 17, 19, 21, 22, 24], "shape": [0, 3, 21, 22], "member": [0, 21, 22], "can": [0, 1, 4, 5, 6, 15, 19, 21, 22, 23], "provid": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23], "an": [0, 1, 4, 5, 6, 15, 17, 19, 20, 21, 22, 23], "class": [0, 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23], "The": [0, 1, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24], "sever": [0, 1], "extens": [0, 15], "point": [0, 11, 21], "valu": [0, 3, 15, 17, 19, 21, 22], "base": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 19, 21], "outsid": 0, "core": [0, 5, 9], "particular": [0, 5, 21], "signal": [0, 3, 5, 15, 17, 18, 19, 21, 23], "mai": [0, 1, 4, 6, 17, 19, 21, 22], "now": 0, "return": [0, 15, 19, 21, 22], "object": [0, 6, 9, 19, 21], "wrap": [0, 21], "anoth": [0, 21], "call": [0, 6, 19, 20, 21, 22], "protocol": [0, 22], "15": [0, 15, 20], "issu": [0, 1, 5, 6], "infer": [0, 5, 6, 21], "have": [0, 1, 4, 6, 21, 23], "resolv": 0, "notabl": [0, 4], "b": [0, 6, 19], "where": [0, 1, 6, 17, 19, 21], "both": [0, 1, 5, 6, 19, 21], "ar": [0, 1, 5, 6, 8, 9, 10, 11, 14, 15, 17, 18, 19, 20, 21, 23], "unsign": [0, 6, 21, 22], "sign": [0, 1, 6, 21], "python": [0, 1, 4, 5, 6, 11, 15, 21, 22], "7": [0, 4, 5, 6, 20, 21], "11": [0, 20, 21], "12": [0, 6, 20], "featur": [0, 3, 17], "nmigen": [0, 24], "namespac": [0, 6], "i": [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24], "annot": [0, 21], "recogn": 0, "nmigen_": 0, "envron": 0, "variabl": [0, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 21, 23], "us": [0, 1, 4, 5, 6, 9, 15, 17, 19, 20, 21, 22, 23, 24], "appli": [0, 6, 19, 21], "follow": [0, 1, 4, 5, 6, 10, 12, 15, 17, 19, 21, 24], "code": [0, 1, 3, 4, 5, 6, 15, 16, 21], "written": [0, 5, 6, 15, 23, 24], "against": 0, "updat": [0, 1, 4, 6, 15, 19], "shell": 0, "environ": [0, 5, 8, 9, 10, 11, 12, 13, 14], "amaranth_": 0, "instead": [0, 6, 21], "amaranth_env_": 0, "all": [0, 1, 5, 6, 9, 15, 19, 20, 21, 22], "uppercas": 0, "name": [0, 5, 8, 9, 10, 11, 12, 14, 17, 21], "nmigen_env_": 0, "mix": [0, 6], "case": [0, 6, 15, 19, 21, 23], "import": [0, 1, 6, 15, 19, 21, 22], "form": [0, 6, 19], "vendor": [0, 5, 8, 9, 10, 11, 12, 13, 14, 15], "some_vendor": 0, "somevendorplatform": 0, "reduc": [0, 5, 6, 17, 21], "futur": [0, 5, 6], "churn": 0, "replac": [0, 22], "const": [0, 6, 21], "repl": 0, "count": [0, 6, 15], "replic": [0, 6], "appropri": 0, "depend": [0, 1, 4, 5, 21, 23], "If": [0, 1, 4, 6, 15, 17, 18, 19, 21, 22, 23], "wa": [0, 19, 21], "being": [0, 1, 6, 21, 23, 24], "storag": 0, "access": [0, 20, 23], "bit": [0, 4, 10, 12, 14, 15, 18, 19, 21, 23], "level": [0, 5, 6, 15, 21, 23], "represent": [0, 6], "connect": [0, 15, 17], "togeth": [0, 1, 6], "ensur": [0, 6], "pin": [0, 5], "instanc": [0, 10, 12, 19, 21, 22], "request": [0, 1, 6, 15, 18], "cast": [0, 3, 21, 22], "directli": [0, 5, 6, 17, 19, 21, 23], "its": [0, 1, 6, 15, 17, 19, 21, 22], "field": [0, 21], "like": [0, 1, 4, 5, 6, 17, 21], "led": [0, 3], "cat": [0, 6, 22], "n": [0, 6, 17, 18, 21], "rang": [0, 15, 18, 21, 23], "o": [0, 5, 14, 17, 18], "note": [0, 6, 17, 19, 21], "schedul": 0, "roundrobin": 0, "inlin": 0, "copi": [0, 1], "while": [0, 1, 5, 6, 19, 21], "list": [0, 1, 6, 19], "below": [0, 6, 15, 17], "work": [0, 3, 4, 5, 6, 10, 12, 15, 21], "thei": [0, 1, 6, 15, 19, 21], "next": [0, 4, 15, 23], "aggreg": [0, 6, 21], "definit": [0, 2, 3, 15], "constant": [0, 3, 21, 22], "castabl": [0, 6, 21, 22], "express": [0, 6, 21, 22], "5": [0, 6, 15, 20, 21, 22], "crc": [0, 16, 19], "gener": [0, 5, 6, 15, 19], "8": [0, 4, 6, 19, 20, 21], "9": [0, 6], "initi": [0, 17, 19, 21], "10": [0, 4, 6, 20, 21], "move": 0, "18": 0, "reorgan": 0, "19": 0, "lift": 0, "22": 0, "valuecast": [0, 21], "shapecast": [0, 21, 22], "similar": [0, 1, 6, 15, 19, 21], "as_sign": [0, 6], "as_unsign": [0, 6], "left": [0, 6, 19], "hand": 0, "side": [0, 6], "assign": [0, 15, 21], "differ": [0, 1, 5, 6, 17, 18, 21, 23], "behavior": [0, 1, 5, 6, 15, 21], "match": [0, 5, 6], "m": [0, 6, 15, 19, 20, 21], "accept": [0, 1, 6, 21, 22], "ani": [0, 1, 4, 6, 15, 17, 18, 19, 21, 22, 23], "supersed": 0, "memori": [0, 5, 15, 23], "transpar": [0, 6], "read": [0, 6, 21, 23], "port": [0, 15], "enabl": [0, 5, 9, 10, 11, 15, 21], "creat": [0, 1, 6, 19, 20], "__call__": [0, 19, 21], "method": [0, 1, 6, 15, 17, 19, 21, 22], "recurs": [0, 21], "treat": [0, 6, 19], "deriv": [0, 5, 6, 15, 21], "enum": [0, 6, 21, 22], "int": [0, 6, 15, 17, 18, 19, 21, 23], "intenum": [0, 6, 22], "rather": [0, 6], "integ": [0, 19, 21], "empti": [0, 6, 23], "pattern": 0, "warn": 0, "without": [0, 1, 5, 19, 21], "explicitli": [0, 6, 15, 19, 21, 22], "specifi": [0, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 22, 23], "width": [0, 18, 19, 21, 23], "tupl": [0, 6], "ast": 0, "uservalu": 0, "linter": 0, "instruct": [0, 15], "begin": [0, 15], "file": [0, 3, 5, 6, 9, 10, 11, 12, 13, 14, 15], "text": 0, "lf": 0, "line": [0, 15], "end": [0, 5, 6, 9, 10, 11, 12, 15], "window": [0, 4, 5, 10, 12], "other": [0, 1, 4, 5, 6, 15, 17, 19, 21, 22], "debug_verilog": 0, "overrid": [0, 9, 10, 11, 12, 13, 14, 17, 21], "build": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 15, 17, 18, 23], "templatedplatform": 0, "env": 0, "argument": [0, 6, 22], "run": [0, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15], "buildplan": 0, "execute_loc": 0, "nmigen_env_diamond": 0, "amaranth_env_diamond": [0, 10, 12], "upper": 0, "sim": [0, 15], "simul": [0, 3, 4, 6, 15], "step": [0, 1, 4, 5, 6, 15], "back": [0, 15], "pysim": 0, "invok": [0, 6], "rtlil": 0, "convert": [0, 5, 6, 21], "verilog": [0, 5, 6, 15], "explicit": [0, 5, 6, 19], "test": [0, 1, 5, 23], "icepack_opt": 0, "latticeice40platform": [0, 7, 11], "osch": 0, "default_clk": 0, "clock": [0, 3, 5, 6, 15, 16, 19, 23], "sourc": [0, 1, 4, 5, 6, 15, 21], "latticemachxo2platform": [0, 7, 12], "latticemachxo3lplatform": [0, 7, 12], "xrai": [0, 14], "xilinxplatform": [0, 7, 14], "gowinplatform": [0, 7, 8], "intel": [0, 3, 7], "lattice_ecp5": 0, "lattice_ice40": 0, "lattice_machxo2_3l": 0, "quicklog": [0, 3, 7], "xilinx": [0, 3, 7], "lattice_machxo2": 0, "lattice_machxo_2_3l": 0, "latticemachxo2or3lplatform": [0, 7, 12], "svf": [0, 10, 12], "program": [0, 1, 5, 6, 10, 12, 15], "vector": [0, 10, 12], "xilinx_spartan_3_6": 0, "xilinxspartan3aplatform": 0, "xilinxspartan6platform": 0, "xilinx_7seri": 0, "xilinx7seriesplatform": 0, "xilinx_ultrascal": 0, "xilinxultrascaleplatform": 0, "project": [0, 1, 5, 22], "renam": [0, 6], "nm": 0, "prelud": [0, 3], "am": [0, 6], "adjust": 0, "nmigen_board": 0, "amaranth_board": [0, 15], "board": [0, 2, 3, 15], "switch": [0, 6, 21], "hdl": [0, 4, 5, 6, 15, 24], "inherit": [0, 6, 21, 23], "add": [0, 1, 5, 6, 9, 10, 11, 14, 19, 22], "miss": [0, 1], "util": [0, 19], "fhdltestcas": 0, "assertform": 0, "necessari": [0, 1, 5, 6, 11, 15, 21, 23], "ab": [0, 6], "rotate_left": [0, 6], "rotate_right": [0, 6], "shift_left": [0, 6], "shift_right": [0, 6], "divis": [0, 6], "modulo": [0, 6], "oper": [0, 3, 5, 21], "neg": [0, 6, 17], "divisor": [0, 15], "cdc": [0, 5, 17], "pulsesynchron": [0, 16, 17], "asyncffsynchron": [0, 16, 17], "fifo": [0, 5, 23], "asyncfifo": [0, 16, 23], "reset": [0, 5, 15, 17, 19, 21, 23], "when": [0, 1, 5, 6, 15, 17, 19, 21, 23], "write": [0, 6, 7, 15, 16, 23], "domain": [0, 3, 5, 15, 16, 23], "r_rst": [0, 23], "assert": [0, 6, 15, 17, 18, 19, 23], "fifointerfac": [0, 16, 23], "r_level": [0, 23], "w_level": [0, 23], "backend": [0, 6, 15], "reject": [0, 6], "larger": [0, 6, 19], "65536": 0, "emit": [0, 6], "yosi": [0, 1, 4, 5, 8, 9, 10, 11, 14], "attribut": [0, 5, 6, 15, 21], "compat": [0, 4], "instal": [0, 1, 3, 11, 15], "fall": 0, "pypi": [0, 4, 5], "packag": [0, 1, 4], "builtin": [0, 4], "avail": [0, 4, 9, 10, 11, 12, 13, 14, 15, 19, 23], "cxxrtl": 0, "multipl": [0, 5, 6, 18], "fragment": 0, "add_process": 0, "advanc": [0, 5, 15], "execute_remote_ssh": 0, "vcd": [0, 15], "output": [0, 1, 6, 11, 15, 17, 18, 19, 23], "top": [0, 6, 15], "bench": [0, 5, 15], "modul": [0, 3, 15, 17, 18, 19, 20, 21, 22, 23], "contain": [0, 1, 5, 6, 15, 19, 20, 21], "testbench": 0, "onli": [0, 4, 5, 6, 15, 17, 18, 19, 21, 23], "sb_lfosc": 0, "sb_hfosc": 0, "binari": [0, 4, 6, 8, 9, 10, 11, 12, 14, 18], "bitstream": [0, 8, 9, 10, 11, 12, 14, 15], "grade": [0, 24], "famili": [0, 4, 5, 21], "temperatur": 0, "part": [0, 1, 6, 15, 21], "speed": [0, 5], "symbiflow": [0, 13, 14], "separ": 0, "flash": [0, 5, 12, 15], "sram": [0, 9, 12], "_flash": [0, 12], "_sram": [0, 12], "quicklogicplatform": [0, 7, 13], "cyclonev_oscil": 0, "intelplatform": [0, 7, 9], "add_set": [0, 9], "add_constraint": [0, 9, 10, 11, 12, 13, 14], "mistral": [0, 9], "synth_design_opt": [0, 14], "No": 0, "were": [0, 6], "publish": 0, "under": [0, 6, 21], "collect": [1, 5, 6], "mani": [1, 5, 6, 15, 19], "peopl": 1, "collabor": 1, "over": [1, 19, 21], "year": 1, "would": [1, 6, 19, 21], "same": [1, 5, 6, 15, 19, 21, 22, 23], "everyon": 1, "": [1, 4, 5, 6, 15, 17, 19, 21, 23, 24], "uniqu": [1, 6], "perspect": 1, "we": 1, "re": [1, 19, 22], "glad": 1, "you": [1, 4, 17, 19], "consid": [1, 5, 6, 15, 17, 21, 24], "join": 1, "u": 1, "page": 1, "guid": [1, 3, 15, 19], "through": [1, 5, 6, 21], "some": [1, 5, 6, 15], "best": 1, "tool": [1, 5, 6, 8, 9, 10, 11, 12, 13, 14], "hear": 1, "about": [1, 6], "encount": 1, "crucial": 1, "do": [1, 6, 15, 21], "care": 1, "lot": 1, "correct": [1, 6], "result": [1, 6, 15, 21, 22], "experi": [1, 6], "just": [1, 6, 21], "much": 1, "meant": 1, "comfort": 1, "fewer": 1, "sharp": 1, "edg": [1, 6, 15, 17], "matter": [1, 21], "how": [1, 4, 6, 19, 21], "technolog": 1, "appeal": 1, "might": 1, "more": [1, 5, 6, 15, 21], "guardrail": 1, "pleas": 1, "To": [1, 4, 5, 6, 15, 19, 20, 21], "go": [1, 5], "beyond": [1, 6], "see": [1, 6, 15, 17], "error": [1, 5, 6, 9, 10, 11, 19, 21], "messag": [1, 6, 9, 10, 11, 15], "hard": [1, 5, 21], "understand": [1, 6], "mislead": 1, "even": [1, 6, 17], "especi": [1, 5], "think": 1, "did": [1, 4], "someth": 1, "wrong": [1, 6], "inform": [1, 9, 10, 11, 15], "exact": [1, 21], "version": [1, 3, 4, 6], "which": [1, 5, 6, 11, 15, 17, 19, 20, 21, 23], "find": 1, "c": [1, 6, 10, 12], "print": [1, 6], "__version__": 1, "complet": [1, 19], "self": [1, 5, 6, 15, 21], "minim": [1, 15], "demonstr": [1, 15], "feasibl": 1, "sequenc": [1, 17, 21], "reproduc": [1, 5], "what": [1, 19], "expect": [1, 21], "happen": [1, 6], "actual": 1, "possibl": [1, 5, 6], "verbatim": 1, "log": [1, 9, 10, 11, 12, 14], "termin": 1, "For": [1, 4, 6, 19, 20, 21, 23], "usabl": [1, 5], "reason": 1, "e": [1, 6, 17, 23], "why": 1, "There": 1, "person": 1, "who": 1, "should": [1, 4, 6, 15, 17, 21, 23], "submit": [1, 21], "valuabl": 1, "own": [1, 6, 21], "right": [1, 6, 21], "appreci": 1, "open": [1, 5, 6, 15], "commun": [1, 5, 21, 24], "tend": 1, "opportun": 1, "enjoi": 1, "pull": [1, 4], "howev": [1, 4, 6, 17, 21], "unless": [1, 6, 23], "ve": 1, "few": [1, 6, 15, 21], "befor": [1, 4, 6, 10, 12, 14], "truli": 1, "trivial": 1, "discuss": 1, "maintain": [1, 5, 17], "first": [1, 3, 4, 5, 6, 15, 16, 17, 19, 21], "doesn": 1, "t": [1, 6, 21], "take": [1, 5, 6, 19], "sometim": [1, 5, 6], "save": [1, 10, 12], "unnecessari": 1, "frustrat": 1, "languag": [1, 2, 15], "toolchain": [1, 2, 4, 8, 9, 10, 11, 12, 13, 14, 15], "from": [1, 4, 5, 15, 17, 19, 20, 21, 22, 23], "kind": [1, 6, 21], "everi": [1, 5, 6, 15, 17, 19, 21], "unavoid": 1, "tightli": [1, 6], "coupl": 1, "seemingli": 1, "obviou": 1, "appar": 1, "minor": 1, "decis": [1, 6], "dramat": 1, "consequ": [1, 5], "make": [1, 4, 5, 6, 22, 23], "sure": [1, 4], "undergo": 1, "scrutini": 1, "commit": [1, 4], "impact": 1, "chanc": 1, "voic": 1, "heard": 1, "substanti": 1, "must": [1, 6, 11, 17, 21], "formal": [1, 24], "comment": 1, "process": [1, 5, 6, 19, 21], "well": [1, 4, 5, 6, 15, 21], "here": [1, 21], "typic": [1, 5], "after": [1, 4, 6, 9, 10, 11, 12, 14, 17, 19, 23], "round": [1, 23], "review": 1, "achiev": [1, 5], "unanim": 1, "consensu": 1, "pdm": 1, "manag": [1, 6, 21], "develop": [1, 15, 21], "workflow": [1, 4, 5, 15], "download": [1, 4, 5, 15, 19], "latest": 1, "onc": [1, 6, 15, 17, 21], "done": [1, 6, 21], "so": [1, 5, 6, 15, 17, 19, 21], "dev": 1, "command": [1, 4, 5, 9, 10, 11, 12, 13, 14, 15, 21], "virtual": 1, "locat": [1, 4, 15, 21], "venv": 1, "runtim": 1, "itself": [1, 6, 10, 12, 15, 19, 21], "edit": [1, 15], "mode": 1, "mean": [1, 6, 19], "immedi": [1, 4, 6, 17], "reflect": [1, 19], "pick": 1, "up": [1, 6, 15, 21, 23, 24], "good": [1, 6, 10, 12], "habit": 1, "each": [1, 5, 6, 19, 21], "tree": [1, 5, 6], "frontend": 1, "yices2": 1, "smt": 1, "solver": 1, "These": [1, 5, 21], "distribut": [1, 4], "oss": 1, "cad": 1, "suit": 1, "reli": [1, 5], "verif": [1, 5, 24], "skip": 1, "index": [1, 6, 21], "doc": 1, "_build": 1, "html": 1, "involv": 1, "small": [1, 6, 15], "iter": [1, 6, 19, 21], "labor": [1, 5, 21], "rebuild": 1, "manual": [1, 3, 4, 19, 21], "start": [1, 3, 5, 6, 19, 21], "automat": [1, 6, 15], "live": 1, "brows": 1, "http": [1, 4, 19], "127": [1, 6], "0": [1, 3, 4, 6, 15, 18, 19, 21, 22], "1": [1, 3, 6, 15, 17, 19, 21, 22, 23], "8000": 1, "browser": 1, "short": [1, 6], "delai": [1, 17, 23], "keep": 1, "ey": 1, "syntact": 1, "refer": [1, 6, 19], "occasion": [1, 6], "builder": 1, "persist": 1, "render": 1, "incorrect": 1, "outdat": 1, "content": 1, "our": 1, "style": [1, 5], "guidelin": 1, "evolv": 1, "eventu": 1, "them": [1, 6, 15, 19, 21], "At": [1, 5, 6], "moment": [1, 5, 6, 15], "ask": 1, "effort": [1, 5, 15], "modifi": 1, "spirit": 1, "surround": 1, "dure": [1, 5, 6, 17, 21], "doubt": 1, "mondai": 1, "17": [1, 20, 22], "00": 1, "utc": 1, "irc": 1, "channel": [1, 21], "lang": [1, 4], "libera": 1, "chat": 1, "matrix": 1, "org": 1, "bridg": 1, "appear": [1, 6, 21, 23], "user": [1, 4, 6, 15, 21], "contributor": 1, "newli": 1, "warrant": 1, "broad": 1, "attent": 1, "primari": 1, "avenu": 1, "want": [1, 19, 24], "interest": 1, "evolut": 1, "simpli": 1, "view": [1, 6, 16], "feel": 1, "free": 1, "attend": 1, "abl": [1, 6], "publicli": 1, "summari": 1, "post": 1, "relev": 1, "github": [1, 4], "thread": 1, "progress": [3, 6], "serious": [3, 6], "incomplet": [3, 6], "introduct": [3, 6, 15, 16], "standard": [3, 6, 9, 10, 11, 15, 19, 22], "librari": [3, 6, 17], "system": [3, 15], "requir": [3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 19, 21], "prerequisit": 3, "get": [3, 4, 5, 6, 21], "counter": [3, 6], "blink": 3, "tutori": [3, 6, 15], "convers": [3, 5, 16], "cross": [3, 5, 16], "cyclic": [3, 16], "redund": [3, 16], "check": [3, 15, 16], "out": [3, 4, 5, 15, 16, 17, 18, 19], "queue": [3, 16], "platform": [3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 17], "integr": [3, 15, 24], "gowin": [3, 7], "lattic": [3, 7, 15], "ecp5": [3, 7], "ice40": [3, 7, 15], "machxo2": [3, 7], "machxo3l": [3, 7], "changelog": 3, "4": [3, 6, 15, 20, 21, 22], "unreleas": 3, "3": [3, 4, 6, 15, 20, 21], "2": [3, 6, 15, 17, 22, 23], "contribut": 3, "problem": [3, 6], "report": [3, 5, 9, 11, 14], "propos": 3, "codebas": 3, "your": [3, 4, 17], "chang": [3, 4, 5, 6, 21], "weekli": 3, "meet": 3, "newer": 4, "cpython": 4, "faster": [4, 17], "pypy3": 4, "pip": 4, "23": [4, 21], "via": [4, 5, 6, 21], "popular": 4, "softwar": [4, 19], "waveform": [4, 6, 15], "viewer": [4, 6], "gtkwave": 4, "invalu": 4, "debug": [4, 5, 15], "synthes": [4, 5, 6, 10, 11, 14, 15], "place": [4, 5, 6, 14, 15, 22], "rout": [4, 5, 6, 14, 15], "fpga": [4, 15, 17, 23, 24], "specif": [4, 5, 6, 17, 21], "x86_64": 4, "aarch64": 4, "continu": [4, 24], "either": [4, 6, 17, 18, 21], "store": [4, 6, 21], "full": [4, 19], "64": [4, 20], "win32": 4, "win64": 4, "need": [4, 5, 6, 17, 21, 23], "unpack": 4, "conveni": [4, 6], "upgrad": 4, "maco": 4, "homebrew": 4, "Then": 4, "brew": 4, "debian": 4, "sudo": 4, "apt": 4, "python3": [4, 15], "On": [4, 10, 12, 17], "architectur": [4, 19], "pip3": 4, "arch": 4, "linux": [4, 10, 12], "pacman": 4, "repositori": [4, 5], "applic": [4, 5, 15, 21], "main": 4, "branch": [4, 6], "similarli": [4, 6], "reliabl": [4, 5], "experiment": 4, "api": 4, "flux": 4, "until": [4, 6, 17, 21, 24], "With": [4, 15, 19], "mind": 4, "try": [4, 6], "function": [4, 5, 6, 15, 19, 21], "avoid": [4, 5, 6], "sinc": [4, 6, 15, 19, 21], "last": [4, 6, 21], "previou": [4, 19, 21], "git": 4, "com": 4, "made": 4, "directori": 4, "affect": [4, 6], "otherwis": [4, 6, 15, 17, 18, 21, 23], "crash": 4, "becaus": [4, 6, 21], "mismatch": [4, 6], "clone": 4, "cd": 4, "ff": 4, "origin": 4, "omit": [4, 6], "explain": [4, 6], "hardwar": [5, 6, 19], "synchron": [5, 15, 17, 23], "digit": [5, 6], "logic": [5, 15, 23], "aim": 5, "easi": 5, "learn": [5, 24], "elimin": [5, 6, 17], "common": [5, 15, 16], "mistak": 5, "simplifi": [5, 6], "complex": [5, 6, 21], "reusabl": [5, 15], "consist": [5, 17], "cover": 5, "restrict": [5, 21, 22], "choic": 5, "exist": [5, 6, 19, 23], "industri": 5, "vhdl": 5, "flow": [5, 6], "descript": [5, 6, 19, 21], "regist": [5, 6, 19, 23], "transfer": [5, 17], "model": [5, 16, 19], "ordinari": [5, 6], "construct": [5, 6, 15, 19, 21, 23], "netlist": [5, 11, 14], "circuit": [5, 6], "human": 5, "readabl": [5, 6], "By": 5, "flexibl": [5, 21], "rich": [5, 6], "widespread": 5, "adopt": 5, "focus": 5, "singl": [5, 6, 15, 21], "task": [5, 6], "block": [5, 6, 15, 17, 18, 23], "finit": [5, 6], "state": [5, 6, 15, 17], "machin": [5, 6], "simpl": [5, 15, 21], "rule": [5, 21], "arithmet": 5, "close": 5, "semant": [5, 6], "loop": [5, 6], "condit": [5, 6, 15, 23], "organ": 5, "seamlessli": 5, "principl": 5, "also": [5, 6, 15, 19, 21, 23], "accident": 5, "misus": [5, 6], "unexpect": [5, 6], "undesir": 5, "synthesi": [5, 6, 11, 14], "often": [5, 6, 21], "expens": 5, "signific": [5, 6, 18, 19, 21], "safe": [5, 17], "third": [5, 21], "parti": 5, "lint": 5, "lack": [5, 6], "non": [5, 6, 17, 23], "synthesiz": [5, 15], "prone": [5, 21], "favor": 5, "instanti": [5, 6, 15, 17, 21], "diagnost": [5, 6, 15], "regularli": 5, "ones": [5, 21], "highlight": 5, "potenti": [5, 6], "importantli": 5, "come": [5, 11], "essenti": [5, 6], "primit": [5, 6], "asynchron": [5, 6, 17, 23], "buffer": [5, 23], "box": [5, 15], "allow": [5, 6, 17], "focu": 5, "subtl": [5, 6], "between": [5, 6, 17, 18, 21, 23], "special": [5, 6], "treatment": 5, "devic": [5, 6, 10, 11, 12], "overridden": [5, 21], "recommend": 5, "high": [5, 18, 21], "gear": 5, "peripher": 5, "implement": [5, 6, 17, 19, 21, 22, 23], "least": [5, 6, 18, 19, 21, 23], "amount": [5, 6, 15, 21], "migrat": 5, "option": [5, 6, 9, 10, 11, 14, 15, 17, 20, 22], "limit": [5, 6, 15], "Of": 5, "cours": 5, "alwai": [5, 6, 15, 17, 19, 23], "known": [5, 6, 10, 12, 19, 21], "icaru": 5, "veril": 5, "event": 5, "driven": [5, 6, 17], "although": [5, 6, 15], "slower": 5, "compil": 5, "ahead": 5, "remark": 5, "perform": [5, 19, 21], "pure": 5, "nativ": 5, "co": [5, 15], "major": 5, "commerci": 5, "easili": 5, "constraint": [5, 14, 15, 17], "power": [5, 6, 17, 23], "final": [5, 6], "script": [5, 8, 9, 10, 11, 12, 13, 14], "placement": 5, "analysi": 5, "custom": [5, 15, 19, 23], "insert": [5, 9, 10, 11, 12, 13, 14], "produc": [5, 6, 15, 17], "portabl": 5, "present": [5, 8, 9, 10, 11, 12, 13, 14], "easier": [5, 6], "remot": 5, "nix": 5, "configur": [5, 15, 17, 19, 23], "suppli": 5, "everyth": [5, 21, 22], "direct": [5, 6, 21], "connector": 5, "pinout": [5, 15], "built": [5, 15, 21], "probe": 5, "invoc": [5, 15], "show": 5, "whether": [5, 6, 15, 19], "programm": 5, "correctli": [5, 15, 23], "establish": 5, "convent": [5, 6], "segment": 5, "displai": 5, "spi": 5, "sdram": 5, "reus": 5, "unmodifi": 5, "further": [5, 6, 17], "polar": 5, "control": [5, 15], "unifi": 5, "activ": 5, "invers": 5, "trace": 5, "low": [5, 18, 21], "invert": 5, "introduc": 6, "depth": [6, 23], "assum": 6, "familiar": 6, "prior": 6, "regular": 6, "root": [6, 11, 15], "carefulli": 6, "curat": 6, "export": [6, 10, 12, 22], "nearli": 6, "dedic": 6, "practic": 6, "glob": 6, "frown": 6, "upon": 6, "alia": [6, 12], "exampl": [6, 15, 19, 20, 21], "two": [6, 11, 19, 21], "fals": [6, 17, 19, 20, 23], "true": [6, 15, 17, 19, 20, 23], "signed": [6, 21], "alias": 6, "v": [6, 15], "retriev": [6, 21], "len": [6, 21], "basic": [6, 15], "term": [6, 19], "number": [6, 9, 17, 18, 21, 23], "anywher": [6, 21], "repres": 6, "interpret": 6, "complement": 6, "simplest": 6, "ten": 6, "minus_two": 6, "abov": [6, 15], "posit": [6, 19, 21], "smallest": 6, "As": [6, 15, 21], "truncat": 6, "fit": 6, "rare": [6, 21], "permit": 6, "360": 6, "104": 6, "129": 6, "indirectli": 6, "implicit": [6, 19], "shorthand": 6, "r": 6, "larg": [6, 21, 23], "enough": [6, 21], "min": 6, "max": 6, "whose": [6, 21], "set": [6, 9, 10, 11, 12, 14, 17, 19, 23, 24], "100": [6, 17], "item": [6, 19], "exclus": 6, "half": 6, "stop": 6, "element": [6, 21, 23], "wide": 6, "fencepost": 6, "256": [6, 21], "syntaxwarn": 6, "equal": [6, 19, 21], "inclus": 6, "off": [6, 10, 12], "detect": [6, 19], "bound": 6, "subclass": [6, 21, 22], "multiplex": 6, "distinct": 6, "bottom": 6, "funct4": 6, "sub": [6, 22], "mul": [6, 22], "prevent": 6, "unwant": 6, "equival": [6, 21], "d5": 6, "type": [6, 19, 21, 22, 23], "d1": 6, "subset": [6, 21], "operand": 6, "numer": 6, "d26": 6, "funct": [6, 22], "op": [6, 22], "reg": [6, 15, 22], "imm": [6, 22], "instr": [6, 22], "addi": [6, 22], "expand": 6, "vari": 6, "respect": 6, "cannot": [6, 21, 23], "uniniti": 6, "undefin": 6, "default": [6, 14, 15, 17, 19, 20], "foo": 6, "bar": 6, "paramet": [6, 15, 16, 17, 18, 19, 21, 23], "foo2": 6, "second_foo": 6, "prepar": 6, "ambigu": 6, "zero": [6, 21, 23], "none": [6, 14, 15, 17, 18], "never": [6, 21, 22], "resett": [6, 17], "reset_less": [6, 17], "resetinsert": 6, "combin": [6, 21], "arrai": [6, 21], "themselv": 6, "concret": [6, 21], "goal": 6, "calcul": 6, "contrast": 6, "abstract": [6, 21], "sig": [6, 15, 21], "syntax": [6, 15, 21], "rememb": 6, "higher": [6, 17], "traceback": [6, 21], "recent": [6, 19, 21], "typeerror": [6, 21, 22], "attempt": 6, "boolean": 6, "therefor": [6, 19], "statement": [6, 22], "execut": 6, "decid": 6, "bodi": 6, "fact": 6, "long": [6, 19], "finish": [6, 15], "solv": 6, "manipul": [6, 21], "OR": 6, "select": 6, "regardless": 6, "too": 6, "unlimit": 6, "precis": [6, 21], "overflow": [6, 15], "suffici": [6, 21], "128": 6, "382": 6, "tabl": 6, "negat": 6, "subtract": 6, "floor": 6, "absolut": 6, "due": 6, "chain": [6, 17], "g": [6, 14, 17], "inequ": 6, "greater": 6, "effici": 6, "NOT": 6, "AND": 6, "xor": [6, 19], "impli": 6, "revers": [6, 19], "exponenti": 6, "wider": 6, "intermedi": 6, "stress": 6, "32": [6, 20, 21], "4294967296": 6, "break": 6, "veri": [6, 21], "sidewai": 6, "pair": 6, "unari": 6, "sole": 6, "odd": 6, "bool": [6, 17, 19, 23], "conceptu": 6, "unlik": 6, "clariti": [6, 15], "p": 6, "q": 6, "preced": 6, "bind": 6, "wherea": 6, "parenthes": 6, "around": 6, "en": [6, 15], "addr": [6, 21], "d0": [6, 21], "stb": 6, "use_stb": 6, "msb": 6, "sd": 6, "detail": [6, 15, 17, 19], "apart": 6, "act": [6, 22, 23], "slice": [6, 21], "concaten": 6, "clash": 6, "except": [6, 21], "subscript": 6, "offset": [6, 21], "notat": 6, "length": [6, 21], "j": 6, "k": 6, "bit_select": 6, "w": [6, 15], "overlap": 6, "word_select": 6, "word": [6, 19, 23], "talk": 6, "convention": 6, "variat": 6, "occupi": 6, "0th": 6, "expon": [6, 21], "caus": [6, 17], "confus": 6, "0b1001": 6, "0b1010": 6, "0b1010_1001": 6, "val": [6, 15], "Such": 6, "seem": 6, "natur": [6, 18], "alon": 6, "could": [6, 17, 21], "ye": 6, "deliber": 6, "reinterpret": 6, "pc": 6, "mux": 6, "sel": 6, "val1": 6, "val0": 6, "unit": 6, "hierarchi": [6, 21], "independ": 6, "associ": [6, 21], "submodul": [6, 19, 20], "fresh": 6, "group": [6, 21], "ident": [6, 18, 19, 23], "predefin": [6, 16, 19], "comb": [6, 15, 21], "reserv": [6, 21], "occur": 6, "sync": [6, 15, 21], "feedback": 6, "hold": [6, 15], "eq": [6, 15, 21], "effect": 6, "0b11": 6, "d3": 6, "d": [6, 15, 19, 21], "entir": [6, 15, 19], "upfront": 6, "def": [6, 15, 21], "add_toggl": 6, "num": 6, "f": [6, 8, 15], "sync_": 6, "becom": [6, 19, 23], "undriven": 6, "exactli": [6, 21, 22], "dsl": 6, "syntaxerror": 6, "driver": 6, "conflict": 6, "drive": [6, 15], "alreadi": [6, 15, 23], "clearli": 6, "meaning": 6, "inher": 6, "answer": 6, "greatli": 6, "analyz": 6, "snippet": 6, "determin": 6, "tailor": 6, "fsm": 6, "context": 6, "timer": [6, 15], "els": [6, 15, 17], "superfici": 6, "imper": 6, "insid": 6, "observ": 6, "satisfi": 6, "given": [6, 19, 21], "uncondition": 6, "account": 6, "whenev": [6, 19], "shorten": 6, "stabl": 6, "latch": [6, 23], "unstabl": 6, "ring": 6, "oscil": [6, 15], "prohibit": 6, "current": [6, 19], "assumpt": 6, "aren": 6, "silent": 6, "miscompil": 6, "though": 6, "hazard": 6, "exceedingli": 6, "desir": 6, "technologi": 6, "lut": 6, "transit": 6, "section": [7, 15, 16, 21], "latticeecp5platform": [7, 10], "apicula": 8, "nextpnr": [8, 9, 10, 11, 14], "gowin_pack": 8, "popul": [8, 9, 10, 11, 12, 13, 14, 21], "amaranth_env_apicula": 8, "product": [8, 9, 10, 11, 12, 14], "gw_sh": 8, "amaranth_env_gowin": 8, "quartu": 9, "quartus_map": 9, "quartus_fit": 9, "quartus_asm": 9, "quartus_sta": 9, "amaranth_env_quartu": 9, "qsf": 9, "sdc": [9, 11], "nproc": 9, "quartus_map_opt": 9, "extra": [9, 10, 11, 14], "quartus_fit_opt": 9, "quartus_asm_opt": 9, "quartus_sta_opt": 9, "rpt": [9, 10, 11, 14], "sof": 9, "rbf": 9, "raw": [9, 14], "amaranth_env_mistr": 9, "verbos": [9, 10, 11, 15], "read_verilog_opt": [9, 10, 11], "read_verilog": [9, 10, 11], "synth_opt": [9, 10, 11], "synth_intel_alm": 9, "script_after_read": [9, 10, 11, 14], "read_ilang": [9, 10, 11], "script_after_synth": [9, 10, 11, 14], "yosys_opt": [9, 10, 11], "nextpnr_opt": [9, 10, 11], "trelli": 10, "diamond": [10, 12], "ecppack": 10, "amaranth_env_trelli": 10, "synth_ecp5": 10, "ecppack_opt": 10, "add_prefer": [10, 12], "lpf": [10, 12], "json": [10, 11], "rtl": [10, 11, 14], "tim": [10, 11], "config": 10, "ascii": [10, 11], "jtag": [10, 12], "pnmainc": [10, 12], "ddtcmd": [10, 12], "diamond_env": [10, 12], "candid": [10, 12], "bat": [10, 12], "echo": [10, 12], "path": [10, 12], "lscc": [10, 12], "diamond_vers": [10, 12], "bin": [10, 11, 12, 14], "nt64": [10, 12], "script_project": [10, 12], "prj_project": [10, 12], "tcl": [10, 11, 12, 14], "script_after_export": [10, 12], "prj_run": [10, 12], "xdc": [10, 12, 13, 14], "_impl": [10, 12], "htm": [10, 11, 12], "consolid": [10, 12], "icestorm": 11, "icecube2": 11, "icepack": 11, "amaranth_env_icestorm": 11, "synth_ice40": 11, "add_pre_pack": 11, "pre": [11, 19], "pack": 11, "pcf": [11, 14], "asc": 11, "variant": 11, "lse": 11, "synplifi": 11, "tclsh": 11, "amaranth_env_icecube2": 11, "lse_opt": 11, "script_after_add": 11, "add_fil": 11, "script_after_opt": 11, "set_opt": 11, "script_after_flow": 11, "run_sbt_backend_auto": 11, "sbt": 11, "_lse": 11, "_design": 11, "router": 11, "_time": [11, 14], "edf": 11, "edif": 11, "_lattice_machxo_2_3l": 12, "jed": 12, "jedec": 12, "fuse": 12, "symbiflow_synth": [13, 14], "symbiflow_pack": [13, 14], "symbiflow_plac": [13, 14], "symbiflow_rout": [13, 14], "symbiflow_write_fasm": [13, 14], "symbiflow_write_bitstream": [13, 14], "amaranth_env_qlsymbiflow": 13, "ISE": 14, "vivado": 14, "amaranth_env_vivado": 14, "read_xdc": 14, "synth_design": 14, "script_after_plac": 14, "place_design": 14, "script_after_rout": 14, "route_design": 14, "script_before_bitstream": 14, "write_bitstream": 14, "script_after_bitstream": 14, "vivado_opt": 14, "_timing_synth": 14, "_utilization_hierarchical_synth": 14, "_utilization_synth": 14, "_utilization_hierarchical_plac": 14, "_utilization_plac": 14, "_io": 14, "_control_set": 14, "_clock_util": 14, "_route_statu": 14, "_drc": 14, "_methodologi": 14, "_power": 14, "_rout": 14, "dcp": 14, "checkpoint": 14, "metadata": 14, "xst": 14, "ngdbuild": 14, "map": [14, 21], "par": 14, "bitgen": 14, "amaranth_env_is": 14, "script_after_run": 14, "ucf": 14, "xst_opt": 14, "ngdbuild_opt": 14, "map_opt": 14, "par_opt": 14, "bitgen_opt": 14, "compress": 14, "srp": 14, "ngc": 14, "bld": 14, "ngd": 14, "databas": 14, "_map": 14, "mrp": 14, "ncd": 14, "physic": 14, "_par": 14, "_par_pad": 14, "txt": [14, 19], "usag": 14, "drc": 14, "bgn": 14, "amaranth_env_symbiflow": 14, "fasm2fram": 14, "xc7frames2bit": 14, "amaranth_env_xrai": 14, "cursori": 15, "overview": 15, "explan": 15, "shown": 15, "up_count": 15, "py": 15, "16": [15, 19, 20, 21], "input": [15, 17, 18, 19, 23], "upcount": 15, "elaborat": 15, "increment": 15, "retain": 15, "ovf": 15, "reach": [15, 21], "__init__": [15, 21], "elabor": [15, 17], "helper": 15, "combinatori": 15, "elif": 15, "black": [15, 21], "verifi": 15, "dut": 15, "25": [15, 20], "disabl": 15, "yield": [15, 21], "_": 15, "30": [15, 20], "cycl": [15, 17, 19, 23], "clear": 15, "add_clock": 15, "1e": 15, "mhz": 15, "add_sync_process": 15, "write_vcd": 15, "inspect": 15, "successfulli": 15, "still": [15, 17, 24], "de": 15, "facto": 15, "interoper": 15, "correspond": [15, 19, 21], "rise": [15, 23], "lightli": 15, "clk": 15, "rst": 15, "src": 15, "ir": 15, "526": 15, "26": 15, "27": 15, "h0000": 15, "35": 15, "41": 15, "h19": 15, "h1": 15, "posedg": 15, "37": 15, "casez": 15, "38": 15, "40": [15, 20], "endcas": 15, "xfrm": 15, "518": 15, "endmodul": 15, "aid": 15, "unfortun": 15, "standalon": 15, "adapt": 15, "frequenc": [15, 17], "hz": 15, "ledblink": 15, "half_freq": 15, "default_clk_frequ": 15, "icestick": 15, "evalu": 15, "link": 15, "foss": 15, "probabl": 15, "icestickplatform": 15, "do_program": 15, "choos": 15, "benefit": 15, "turnkei": 15, "abil": [15, 22], "metaclass": 16, "layout": 16, "One": [16, 21], "hot": 16, "prioriti": 16, "grai": 16, "ffsynchron": [16, 17], "resetsynchron": [16, 17], "algorithm": [16, 19], "processor": [16, 19], "syncfifo": [16, 23], "syncfifobuff": [16, 23], "asyncfifobuff": [16, 23], "resynchronis": 17, "flip": 17, "flop": 17, "metast": 17, "guarante": 17, "synchronis": 17, "o_domain": 17, "str": [17, 21, 23], "unaffect": 17, "stage": 17, "lowest": 17, "mtbf": 17, "cost": 17, "increas": [17, 23], "latenc": [17, 19, 23], "max_input_delai": 17, "float": [17, 21], "maximum": 17, "second": [17, 21], "fail": 17, "safest": 17, "load": 17, "valid": [17, 19, 21, 23], "target": [17, 21], "asic": 17, "arbitrari": [17, 21], "warm": 17, "insuffici": 17, "deassert": 17, "get_ff_sync": 17, "cell": 17, "primarili": 17, "async_edg": 17, "po": 17, "get_async_ff_sync": 17, "gate": 17, "yet": 17, "promptli": 17, "arst": 17, "get_reset_sync": 17, "puls": 17, "duti": 17, "ratio": 17, "drop": [17, 22], "i_domain": 17, "encod": 18, "indic": [18, 19, 21], "invalid": 18, "decod": 18, "th": 18, "priorityencod": 18, "prioritydecod": 18, "grayencod": 18, "graydecod": 18, "comput": 19, "polynomi": [19, 20], "commonli": 19, "catalog": [19, 20], "accommod": [19, 21], "data_width": [19, 20], "obtain": 19, "fulli": 19, "crc16": 19, "ccitt": 19, "byte": [19, 21], "crc16_ccitt": [19, 20], "algo": 19, "crc_width": [19, 20], "0x1021": [19, 20], "initial_crc": [19, 20], "0xffff": [19, 20], "reflect_input": [19, 20], "reflect_output": [19, 20], "xor_output": [19, 20], "0x0000": [19, 20], "123456789": 19, "0x29b1": 19, "exclud": 19, "william": 19, "painless": 19, "www": 19, "ross": 19, "net": 19, "crc_v3": 19, "reveng": [19, 20], "catalogu": 19, "parameteris": 19, "crcmod": 19, "lead": 19, "polynomin": 19, "init": [19, 21], "zoo": 19, "entri": [19, 20, 23], "x": 19, "highest": 19, "order": [19, 21], "transmiss": 19, "littl": 19, "endian": 19, "multi": 19, "0x4e4c": 19, "transmit": 19, "octet": 19, "0x4c": 19, "0x4e": 19, "addition": 19, "properti": [19, 21], "residu": 19, "codeword": 19, "bitwidth": 19, "arg": 19, "src_loc_at": 19, "kwarg": 19, "stream": 19, "handl": [19, 23], "subsequ": 19, "throughput": 19, "per": 19, "classic": 19, "serial": 19, "galoi": 19, "shift": 19, "parallel": 19, "match_detect": 19, "trail": 19, "initialis": 19, "simultan": 19, "receiv": 19, "crc3_gsm": [19, 20], "crc3_rohc": [19, 20], "crc4_g_704": [19, 20], "crc4_itu": [19, 20], "crc4_interlaken": [19, 20], "crc5_epc_c1g2": [19, 20], "crc5_epc": [19, 20], "crc5_g_704": [19, 20], "crc5_itu": [19, 20], "crc5_usb": [19, 20], "crc6_cdma2000_a": [19, 20], "crc6_cdma2000_b": [19, 20], "crc6_darc": [19, 20], "crc6_g_704": [19, 20], "crc6_itu": [19, 20], "crc6_gsm": [19, 20], "crc7_mmc": [19, 20], "crc7_rohc": [19, 20], "crc7_umt": [19, 20], "crc8_autosar": [19, 20], "crc8_bluetooth": [19, 20], "crc8_cdma2000": [19, 20], "crc8_darc": [19, 20], "crc8_dvb_s2": [19, 20], "crc8_gsm_a": [19, 20], "crc8_gsm_b": [19, 20], "crc8_hitag": [19, 20], "crc8_i_432_1": [19, 20], "crc8_itu": [19, 20], "crc8_i_cod": [19, 20], "crc8_lte": [19, 20], "crc8_maxim_dow": [19, 20], "crc8_maxim": [19, 20], "crc8_mifare_mad": [19, 20], "crc8_nrsc_5": [19, 20], "crc8_opensafeti": [19, 20], "crc8_rohc": [19, 20], "crc8_sae_j1850": [19, 20], "crc8_smbu": [19, 20], "crc8_tech_3250": [19, 20], "crc8_ae": [19, 20], "crc8_etu": [19, 20], "crc8_wcdma": [19, 20], "crc10_atm": [19, 20], "crc10_i_610": [19, 20], "crc10_cdma2000": [19, 20], "crc10_gsm": [19, 20], "crc11_flexrai": [19, 20], "crc11_umt": [19, 20], "crc12_cdma2000": [19, 20], "crc12_dect": [19, 20], "crc12_gsm": [19, 20], "crc12_umt": [19, 20], "crc12_3gpp": [19, 20], "crc13_bbc": [19, 20], "crc14_darc": [19, 20], "crc14_gsm": [19, 20], "crc15_can": [19, 20], "crc15_mpt1327": [19, 20], "crc16_arc": [19, 20], "crc16_ibm": [19, 20], "crc16_cdma2000": [19, 20], "crc16_cm": [19, 20], "crc16_dds_110": [19, 20], "crc16_dect_r": [19, 20], "crc16_dect_x": [19, 20], "crc16_dnp": [19, 20], "crc16_en_13757": [19, 20], "crc16_genibu": [19, 20], "crc16_darc": [19, 20], "crc16_epc": [19, 20], "crc16_epc_c1g2": [19, 20], "crc16_i_cod": [19, 20], "crc16_gsm": [19, 20], "crc16_ibm_3740": [19, 20], "crc16_autosar": [19, 20], "crc16_ccitt_fals": [19, 20], "crc16_ibm_sdlc": [19, 20], "crc16_iso_hdlc": [19, 20], "crc16_iso_iec_14443_3_b": [19, 20], "crc16_x25": [19, 20], "crc16_iso_iec_14443_3_a": [19, 20], "crc16_kermit": [19, 20], "crc16_bluetooth": [19, 20], "crc16_ccitt_tru": [19, 20], "crc16_v_41_lsb": [19, 20], "crc16_lj1200": [19, 20], "crc16_m17": [19, 20], "crc16_maxim_dow": [19, 20], "crc16_maxim": [19, 20], "crc16_mcrf4xx": [19, 20], "crc16_modbu": [19, 20], "crc16_nrsc_5": [19, 20], "crc16_opensafety_a": [19, 20], "crc16_opensafety_b": [19, 20], "crc16_profibu": [19, 20], "crc16_iec_61158_2": [19, 20], "crc16_riello": [19, 20], "crc16_spi_fujitsu": [19, 20], "crc16_aug_ccitt": [19, 20], "crc16_t10_dif": [19, 20], "crc16_teledisk": [19, 20], "crc16_tms37157": [19, 20], "crc16_umt": [19, 20], "crc16_buypass": [19, 20], "crc16_verifon": [19, 20], "crc16_usb": [19, 20], "crc16_xmodem": [19, 20], "crc16_acorn": [19, 20], "crc16_lte": [19, 20], "crc16_v_41_msb": [19, 20], "crc16_zmodem": [19, 20], "crc17_can_fd": [19, 20], "crc21_can_fd": [19, 20], "crc24_ble": [19, 20], "crc24_flexray_a": [19, 20], "crc24_flexray_b": [19, 20], "crc24_interlaken": [19, 20], "crc24_lte_a": [19, 20], "crc24_lte_b": [19, 20], "crc24_openpgp": [19, 20], "crc24_os_9": [19, 20], "crc30_cdma": [19, 20], "crc31_philip": [19, 20], "crc32_aixm": [19, 20], "crc32_autosar": [19, 20], "crc32_base91_d": [19, 20], "crc32_bzip2": [19, 20], "crc32_aal5": [19, 20], "crc32_dect_b": [19, 20], "crc32_cd_rom_edc": [19, 20], "crc32_cksum": [19, 20], "crc32_posix": [19, 20], "crc32_iscsi": [19, 20], "crc32_base91_c": [19, 20], "crc32_castagnoli": [19, 20], "crc32_interlaken": [19, 20], "crc32_iso_hdlc": [19, 20], "crc32_adccp": [19, 20], "crc32_v_42": [19, 20], "crc32_xz": [19, 20], "crc32_pkzip": [19, 20], "crc32_ethernet": [19, 20], "crc32_jamcrc": [19, 20], "crc32_mef": [19, 20], "crc32_mpeg_2": [19, 20], "crc32_xfer": [19, 20], "crc40_gsm": [19, 20], "crc64_ecma_182": [19, 20], "crc64_go_iso": [19, 20], "crc64_m": [19, 20], "crc64_redi": [19, 20], "crc64_we": [19, 20], "crc64_xz": [19, 20], "crc64_ecma": [19, 20], "crc82_darc": [19, 20], "2023": 20, "05": 20, "crc8": 20, "0x3": 20, "0x0": [20, 21], "0x7": 20, "0xf": 20, "0x9": 20, "0x15": 20, "0x5": 20, "0x1f": 20, "0x27": 20, "0x3f": 20, "0x19": 20, "0x2f": 20, "0x4f": 20, "0x7f": [20, 21], "0x45": 20, "0xff": 20, "0xa7": 20, "0x00": 20, "0x9b": 20, "0x39": 20, "0xd5": 20, "0x1d": 20, "0x49": 20, "0x07": 20, "0x55": 20, "0xfd": 20, "0x31": 20, "0xc7": 20, "0x233": 20, "0x3d9": 20, "0x3ff": 20, "0x175": 20, "0x385": 20, "0x1a": 20, "0x307": 20, "0xf13": 20, "0xfff": 20, "0x000": 20, "0x80f": 20, "0xd31": 20, "13": 20, "0x1cf5": 20, "14": [20, 21], "0x805": 20, "0x202d": 20, "0x3fff": 20, "0x4599": 20, "0x6815": 20, "0x001": 20, "0x8005": 20, "0xc867": 20, "0x800d": 20, "0x0589": 20, "0x0001": 20, "0x3d65": 20, "0xc6c6": 20, "0x6f63": 20, "0x5935": 20, "0x080b": 20, "0x755b": 20, "0x1dcf": 20, "0xb2aa": 20, "0x1d0f": 20, "0x8bb7": 20, "0xa097": 20, "0x89ec": 20, "0x1685b": 20, "21": 20, "0x102899": 20, "0x00000": 20, "24": [20, 21], "0x00065b": 20, "0x555555": 20, "0x000000": 20, "0x5d6dcb": 20, "0xfedcba": 20, "0xabcdef": 20, "0x328b63": 20, "0xffffff": 20, "0x864cfb": 20, "0x800063": 20, "0xb704ce": 20, "0x2030b9c7": 20, "0x3fffffff": 20, "31": [20, 21], "0x4c11db7": 20, "0x7fffffff": 20, "0x814141ab": 20, "0x00000000": 20, "0xf4acfb13": 20, "0xffffffff": 20, "0xa833982b": 20, "0x04c11db7": 20, "0x8001801b": 20, "0x1edc6f41": 20, "0x741b8cd7": 20, "0x000000af": 20, "0x0004820009": 20, "0x0000000000": 20, "0xffffffffff": 20, "0x42f0e1eba9ea3693": 20, "0x0000000000000000": 20, "0x000000000000001b": 20, "0xffffffffffffffff": 20, "0x259c84cba6426349": 20, "0xad93d23594c935a9": 20, "82": 20, "0x308c0111011401440411": 20, "0x00000000000000000000": 20, "bitwis": 21, "proxi": 21, "four": 21, "relat": 21, "facil": 21, "foundat": 21, "introspect": 21, "structlayout": 21, "unionlayout": 21, "arraylayout": 21, "flexiblelayout": 21, "plain": 21, "struct": 21, "fundament": 21, "intern": 21, "pixel": 21, "rgb": 21, "grayscal": 21, "color": 21, "format": 21, "rgb565": 21, "fast": 21, "approxim": 21, "i_color": 21, "o_grai": 21, "repetit": 21, "referenc": 21, "rgb565_layout": 21, "red": 21, "green": 21, "blue": 21, "accumul": 21, "averag": 21, "intens": 21, "input_layout": 21, "i_stream": 21, "r_accum": 21, "sum": 21, "interchang": 21, "rgb_layout": 21, "r_bit": 21, "g_bit": 21, "b_bit": 21, "rgb24_layout": 21, "transform": 21, "rgblayout": 21, "super": 21, "rgbview": 21, "bright": 21, "as_valu": 21, "static": 21, "boilerpl": 21, "ieee754singl": 21, "fraction": 21, "is_subnorm": 21, "set_addr": 21, "send_data": 21, "param": 21, "biggest": 21, "cmd": 21, "0x00001234": 21, "react": 21, "immut": 21, "__eq__": 21, "compar": [21, 23], "kei": 21, "string": 21, "identifi": 21, "span": 21, "preserv": 21, "invari": 21, "obj": 21, "as_shap": [21, 22], "rais": [21, 22], "recursionerror": 21, "__iter__": 21, "__getitem__": 21, "keyerror": 21, "size": 21, "underli": 21, "had": 21, "gap": 21, "pad": 21, "altern": 21, "_1": 21, "_2": 21, "won": 21, "dictionari": 21, "plu": [21, 23], "largest": 21, "elem_shap": 21, "multipli": 21, "individu": 21, "arbitrarili": 21, "chosen": 21, "dynam": 21, "leav": 21, "rest": 21, "concis": 21, "look": 21, "repeatedli": 21, "latter": 21, "unspecifi": 21, "inout": 21, "__getattr__": 21, "attributeerror": 21, "underscor": 21, "kept": 21, "ieee": 21, "754": 21, "flt": 21, "hex": 21, "0x3f800000": 21, "0xbf800000": 21, "share": 21, "haschecksum": 21, "checksum": 21, "barehead": 21, "address": 21, "headerwithparam": 21, "bare": 21, "varint": 21, "int8": 21, "int16": 21, "0x100": 21, "flag": 22, "intflag": 22, "keyword": 22, "subi": 22, "behav": 22, "likewis": 22, "normalenum": 22, "spam": 22, "ham": 22, "enummeta": 22, "neither": 22, "nor": 22, "fwft": 23, "w_data": 23, "w_rdy": 23, "w_en": 23, "r_data": 23, "r_rdy": 23, "r_en": 23, "fallthrough": 23, "strobe": 23, "space": 23, "noth": 23, "unread": 23, "substitut": 23, "incompat": 23, "ram": 23, "exchang": 23, "r_domain": 23, "w_domain": 23, "exact_depth": 23, "remain": 23, "offici": 24, "readi": 24, "vivonomicon": 24, "kbob": 24, "robert": 24, "baruch": 24, "exercis": 24, "my": 24, "journei": 24, "david": 24, "sporn": 24, "focuss": 24, "workstat": 24}, "objects": {"amaranth.lib": [[17, 0, 0, "-", "cdc"], [18, 0, 0, "-", "coding"], [19, 0, 0, "-", "crc"], [21, 0, 0, "-", "data"], [22, 0, 0, "-", "enum"], [23, 0, 0, "-", "fifo"]], "amaranth.lib.cdc": [[17, 1, 1, "", "AsyncFFSynchronizer"], [17, 1, 1, "", "FFSynchronizer"], [17, 1, 1, "", "PulseSynchronizer"], [17, 1, 1, "", "ResetSynchronizer"]], "amaranth.lib.coding": [[18, 1, 1, "", "Decoder"], [18, 1, 1, "", "Encoder"], [18, 1, 1, "", "GrayDecoder"], [18, 1, 1, "", "GrayEncoder"], [18, 1, 1, "", "PriorityDecoder"], [18, 1, 1, "", "PriorityEncoder"]], "amaranth.lib.crc": [[19, 1, 1, "", "Algorithm"], [19, 1, 1, "", "Parameters"], [19, 1, 1, "", "Processor"], [20, 0, 0, "-", "catalog"]], "amaranth.lib.crc.Algorithm": [[19, 2, 1, "", "__call__"]], "amaranth.lib.crc.Parameters": [[19, 3, 1, "", "algorithm"], [19, 2, 1, "", "compute"], [19, 2, 1, "", "create"], [19, 2, 1, "", "residue"]], "amaranth.lib.crc.catalog": [[20, 4, 1, "", "CRC10_ATM"], [20, 4, 1, "", "CRC10_CDMA2000"], [20, 4, 1, "", "CRC10_GSM"], [20, 4, 1, "", "CRC10_I_610"], [20, 4, 1, "", "CRC11_FLEXRAY"], [20, 4, 1, "", "CRC11_UMTS"], [20, 4, 1, "", "CRC12_3GPP"], [20, 4, 1, "", "CRC12_CDMA2000"], [20, 4, 1, "", "CRC12_DECT"], [20, 4, 1, "", "CRC12_GSM"], [20, 4, 1, "", "CRC12_UMTS"], [20, 4, 1, "", "CRC13_BBC"], [20, 4, 1, "", "CRC14_DARC"], [20, 4, 1, "", "CRC14_GSM"], [20, 4, 1, "", "CRC15_CAN"], [20, 4, 1, "", "CRC15_MPT1327"], [20, 4, 1, "", "CRC16_ACORN"], [20, 4, 1, "", "CRC16_ARC"], [20, 4, 1, "", "CRC16_AUG_CCITT"], [20, 4, 1, "", "CRC16_AUTOSAR"], [20, 4, 1, "", "CRC16_BLUETOOTH"], [20, 4, 1, "", "CRC16_BUYPASS"], [20, 4, 1, "", "CRC16_CCITT"], [20, 4, 1, "", "CRC16_CCITT_FALSE"], [20, 4, 1, "", "CRC16_CCITT_TRUE"], [20, 4, 1, "", "CRC16_CDMA2000"], [20, 4, 1, "", "CRC16_CMS"], [20, 4, 1, "", "CRC16_DARC"], [20, 4, 1, "", "CRC16_DDS_110"], [20, 4, 1, "", "CRC16_DECT_R"], [20, 4, 1, "", "CRC16_DECT_X"], [20, 4, 1, "", "CRC16_DNP"], [20, 4, 1, "", "CRC16_EN_13757"], [20, 4, 1, "", "CRC16_EPC"], [20, 4, 1, "", "CRC16_EPC_C1G2"], [20, 4, 1, "", "CRC16_GENIBUS"], [20, 4, 1, "", "CRC16_GSM"], [20, 4, 1, "", "CRC16_IBM"], [20, 4, 1, "", "CRC16_IBM_3740"], [20, 4, 1, "", "CRC16_IBM_SDLC"], [20, 4, 1, "", "CRC16_IEC_61158_2"], [20, 4, 1, "", "CRC16_ISO_HDLC"], [20, 4, 1, "", "CRC16_ISO_IEC_14443_3_A"], [20, 4, 1, "", "CRC16_ISO_IEC_14443_3_B"], [20, 4, 1, "", "CRC16_I_CODE"], [20, 4, 1, "", "CRC16_KERMIT"], [20, 4, 1, "", "CRC16_LJ1200"], [20, 4, 1, "", "CRC16_LTE"], [20, 4, 1, "", "CRC16_M17"], [20, 4, 1, "", "CRC16_MAXIM"], [20, 4, 1, "", "CRC16_MAXIM_DOW"], [20, 4, 1, "", "CRC16_MCRF4XX"], [20, 4, 1, "", "CRC16_MODBUS"], [20, 4, 1, "", "CRC16_NRSC_5"], [20, 4, 1, "", "CRC16_OPENSAFETY_A"], [20, 4, 1, "", "CRC16_OPENSAFETY_B"], [20, 4, 1, "", "CRC16_PROFIBUS"], [20, 4, 1, "", "CRC16_RIELLO"], [20, 4, 1, "", "CRC16_SPI_FUJITSU"], [20, 4, 1, "", "CRC16_T10_DIF"], [20, 4, 1, "", "CRC16_TELEDISK"], [20, 4, 1, "", "CRC16_TMS37157"], [20, 4, 1, "", "CRC16_UMTS"], [20, 4, 1, "", "CRC16_USB"], [20, 4, 1, "", "CRC16_VERIFONE"], [20, 4, 1, "", "CRC16_V_41_LSB"], [20, 4, 1, "", "CRC16_V_41_MSB"], [20, 4, 1, "", "CRC16_X25"], [20, 4, 1, "", "CRC16_XMODEM"], [20, 4, 1, "", "CRC16_ZMODEM"], [20, 4, 1, "", "CRC17_CAN_FD"], [20, 4, 1, "", "CRC21_CAN_FD"], [20, 4, 1, "", "CRC24_BLE"], [20, 4, 1, "", "CRC24_FLEXRAY_A"], [20, 4, 1, "", "CRC24_FLEXRAY_B"], [20, 4, 1, "", "CRC24_INTERLAKEN"], [20, 4, 1, "", "CRC24_LTE_A"], [20, 4, 1, "", "CRC24_LTE_B"], [20, 4, 1, "", "CRC24_OPENPGP"], [20, 4, 1, "", "CRC24_OS_9"], [20, 4, 1, "", "CRC30_CDMA"], [20, 4, 1, "", "CRC31_PHILIPS"], [20, 4, 1, "", "CRC32_AAL5"], [20, 4, 1, "", "CRC32_ADCCP"], [20, 4, 1, "", "CRC32_AIXM"], [20, 4, 1, "", "CRC32_AUTOSAR"], [20, 4, 1, "", "CRC32_BASE91_C"], [20, 4, 1, "", "CRC32_BASE91_D"], [20, 4, 1, "", "CRC32_BZIP2"], [20, 4, 1, "", "CRC32_CASTAGNOLI"], [20, 4, 1, "", "CRC32_CD_ROM_EDC"], [20, 4, 1, "", "CRC32_CKSUM"], [20, 4, 1, "", "CRC32_DECT_B"], [20, 4, 1, "", "CRC32_ETHERNET"], [20, 4, 1, "", "CRC32_INTERLAKEN"], [20, 4, 1, "", "CRC32_ISCSI"], [20, 4, 1, "", "CRC32_ISO_HDLC"], [20, 4, 1, "", "CRC32_JAMCRC"], [20, 4, 1, "", "CRC32_MEF"], [20, 4, 1, "", "CRC32_MPEG_2"], [20, 4, 1, "", "CRC32_PKZIP"], [20, 4, 1, "", "CRC32_POSIX"], [20, 4, 1, "", "CRC32_V_42"], [20, 4, 1, "", "CRC32_XFER"], [20, 4, 1, "", "CRC32_XZ"], [20, 4, 1, "", "CRC3_GSM"], [20, 4, 1, "", "CRC3_ROHC"], [20, 4, 1, "", "CRC40_GSM"], [20, 4, 1, "", "CRC4_G_704"], [20, 4, 1, "", "CRC4_INTERLAKEN"], [20, 4, 1, "", "CRC4_ITU"], [20, 4, 1, "", "CRC5_EPC"], [20, 4, 1, "", "CRC5_EPC_C1G2"], [20, 4, 1, "", "CRC5_G_704"], [20, 4, 1, "", "CRC5_ITU"], [20, 4, 1, "", "CRC5_USB"], [20, 4, 1, "", "CRC64_ECMA"], [20, 4, 1, "", "CRC64_ECMA_182"], [20, 4, 1, "", "CRC64_GO_ISO"], [20, 4, 1, "", "CRC64_MS"], [20, 4, 1, "", "CRC64_REDIS"], [20, 4, 1, "", "CRC64_WE"], [20, 4, 1, "", "CRC64_XZ"], [20, 4, 1, "", "CRC6_CDMA2000_A"], [20, 4, 1, "", "CRC6_CDMA2000_B"], [20, 4, 1, "", "CRC6_DARC"], [20, 4, 1, "", "CRC6_GSM"], [20, 4, 1, "", "CRC6_G_704"], [20, 4, 1, "", "CRC6_ITU"], [20, 4, 1, "", "CRC7_MMC"], [20, 4, 1, "", "CRC7_ROHC"], [20, 4, 1, "", "CRC7_UMTS"], [20, 4, 1, "", "CRC82_DARC"], [20, 4, 1, "", "CRC8_AES"], [20, 4, 1, "", "CRC8_AUTOSAR"], [20, 4, 1, "", "CRC8_BLUETOOTH"], [20, 4, 1, "", "CRC8_CDMA2000"], [20, 4, 1, "", "CRC8_DARC"], [20, 4, 1, "", "CRC8_DVB_S2"], [20, 4, 1, "", "CRC8_ETU"], [20, 4, 1, "", "CRC8_GSM_A"], [20, 4, 1, "", "CRC8_GSM_B"], [20, 4, 1, "", "CRC8_HITAG"], [20, 4, 1, "", "CRC8_ITU"], [20, 4, 1, "", "CRC8_I_432_1"], [20, 4, 1, "", "CRC8_I_CODE"], [20, 4, 1, "", "CRC8_LTE"], [20, 4, 1, "", "CRC8_MAXIM"], [20, 4, 1, "", "CRC8_MAXIM_DOW"], [20, 4, 1, "", "CRC8_MIFARE_MAD"], [20, 4, 1, "", "CRC8_NRSC_5"], [20, 4, 1, "", "CRC8_OPENSAFETY"], [20, 4, 1, "", "CRC8_ROHC"], [20, 4, 1, "", "CRC8_SAE_J1850"], [20, 4, 1, "", "CRC8_SMBUS"], [20, 4, 1, "", "CRC8_TECH_3250"], [20, 4, 1, "", "CRC8_WCDMA"]], "amaranth.lib.data": [[21, 1, 1, "", "ArrayLayout"], [21, 1, 1, "", "Field"], [21, 1, 1, "", "FlexibleLayout"], [21, 1, 1, "", "Layout"], [21, 1, 1, "", "Struct"], [21, 1, 1, "", "StructLayout"], [21, 1, 1, "", "Union"], [21, 1, 1, "", "UnionLayout"], [21, 1, 1, "", "View"]], "amaranth.lib.data.ArrayLayout": [[21, 3, 1, "", "size"]], "amaranth.lib.data.Field": [[21, 2, 1, "", "__eq__"], [21, 3, 1, "", "width"]], "amaranth.lib.data.Layout": [[21, 2, 1, "", "__call__"], [21, 2, 1, "", "__eq__"], [21, 2, 1, "", "__getitem__"], [21, 2, 1, "", "__iter__"], [21, 2, 1, "", "as_shape"], [21, 2, 1, "", "cast"], [21, 2, 1, "", "const"], [21, 3, 1, "", "size"]], "amaranth.lib.data.StructLayout": [[21, 3, 1, "", "size"]], "amaranth.lib.data.UnionLayout": [[21, 2, 1, "", "const"], [21, 3, 1, "", "size"]], "amaranth.lib.data.View": [[21, 2, 1, "", "__getattr__"], [21, 2, 1, "", "__getitem__"], [21, 2, 1, "", "as_value"], [21, 2, 1, "", "eq"], [21, 2, 1, "", "shape"]], "amaranth.lib.enum": [[22, 1, 1, "", "Enum"], [22, 1, 1, "", "EnumMeta"], [22, 1, 1, "", "Flag"], [22, 1, 1, "", "IntEnum"], [22, 1, 1, "", "IntFlag"]], "amaranth.lib.enum.EnumMeta": [[22, 2, 1, "", "as_shape"]], "amaranth.lib.fifo": [[23, 1, 1, "", "AsyncFIFO"], [23, 1, 1, "", "AsyncFIFOBuffered"], [23, 1, 1, "", "FIFOInterface"], [23, 1, 1, "", "SyncFIFO"], [23, 1, 1, "", "SyncFIFOBuffered"]], "amaranth.vendor": [[8, 1, 1, "", "GowinPlatform"], [9, 1, 1, "", "IntelPlatform"], [10, 1, 1, "", "LatticeECP5Platform"], [11, 1, 1, "", "LatticeICE40Platform"], [12, 5, 1, "", "LatticeMachXO2Platform"], [12, 5, 1, "", "LatticeMachXO3LPlatform"], [13, 1, 1, "", "QuicklogicPlatform"], [14, 1, 1, "", "XilinxPlatform"]], "amaranth.vendor._lattice_machxo_2_3l": [[12, 1, 1, "", "LatticeMachXO2Or3LPlatform"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:data", "5": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "data", "Python data"], "5": ["py", "attribute", "Python attribute"]}, "titleterms": {"changelog": 0, "version": 0, "0": 0, "4": 0, "unreleas": 0, "migrat": 0, "from": [0, 6], "3": 0, "implement": [0, 15], "rfc": 0, "languag": [0, 3, 5, 6], "chang": [0, 1], "standard": [0, 5, 16], "librari": [0, 5, 16], "toolchain": [0, 3, 5], "platform": [0, 7], "integr": [0, 5, 7], "2": 0, "1": 0, "contribut": 1, "file": 1, "problem": 1, "report": 1, "fix": 1, "propos": 1, "new": 1, "featur": 1, "work": 1, "codebas": 1, "prepar": 1, "environ": 1, "run": 1, "testsuit": 1, "build": [1, 5], "document": [1, 2], "your": 1, "weekli": 1, "meet": 1, "amaranth": [2, 4, 5], "hdl": 2, "instal": 4, "system": [4, 5], "requir": 4, "prerequisit": 4, "latest": 4, "releas": 4, "develop": [4, 5], "snapshot": 4, "edit": 4, "board": [4, 5], "definit": [4, 5], "todo": [4, 7, 15, 16, 24], "introduct": [5, 21], "The": [5, 6], "simul": 5, "fpga": 5, "guid": 6, "prelud": 6, "shape": 6, "valu": 6, "constant": 6, "cast": 6, "integ": 6, "rang": 6, "enumer": [6, 22], "member": 6, "signal": 6, "name": 6, "initi": 6, "reset": 6, "less": 6, "data": [6, 21], "structur": [6, 21], "oper": 6, "perform": 6, "describ": 6, "comput": 6, "width": 6, "extens": 6, "arithmet": 6, "comparison": 6, "bitwis": 6, "shift": 6, "rotat": 6, "reduct": 6, "logic": 6, "bit": 6, "sequenc": 6, "convers": [6, 18], "choic": 6, "modul": 6, "control": 6, "domain": [6, 17], "assign": 6, "target": 6, "order": 6, "activ": 6, "inact": 6, "combinatori": 6, "evalu": 6, "synchron": 6, "gowin": 8, "intel": 9, "lattic": [10, 11, 12], "ecp5": 10, "ice40": 11, "machxo2": 12, "machxo3l": 12, "quicklog": 13, "xilinx": 14, "get": 15, "start": 15, "A": 15, "counter": 15, "test": 15, "convert": 15, "blink": 15, "led": 15, "clock": 17, "cross": 17, "code": 18, "One": 18, "hot": 18, "prioriti": 18, "grai": 18, "cyclic": 19, "redund": 19, "check": 19, "predefin": 20, "crc": 20, "algorithm": 20, "overview": 21, "motiv": 21, "compos": 21, "layout": 21, "defin": 21, "discrimin": 21, "union": 21, "model": 21, "common": 21, "view": 21, "creat": 21, "access": 21, "custom": 21, "class": [21, 22], "metaclass": 22, "base": 22, "first": 23, "out": 23, "queue": 23, "tutori": 24}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 58}, "alltitles": {"Changelog": [[0, "changelog"]], "Version 0.4 (unreleased)": [[0, "version-0-4-unreleased"]], "Migrating from version 0.3": [[0, "migrating-from-version-0-3"]], "Implemented RFCs": [[0, "implemented-rfcs"]], "Language changes": [[0, "language-changes"], [0, "id1"]], "Standard library changes": [[0, "standard-library-changes"], [0, "id2"]], "Toolchain changes": [[0, "toolchain-changes"], [0, "id3"]], "Platform integration changes": [[0, "platform-integration-changes"], [0, "id4"]], "Version 0.3": [[0, "version-0-3"]], "Migrating from version 0.2": [[0, "migrating-from-version-0-2"]], "Versions 0.1, 0.2": [[0, "versions-0-1-0-2"]], "Contributing": [[1, "contributing"]], "Filing problem reports": [[1, "filing-problem-reports"]], "Fixing problems": [[1, "fixing-problems"]], "Proposing new features": [[1, "proposing-new-features"]], "Working with the codebase": [[1, "working-with-the-codebase"]], "Preparing the environment": [[1, "preparing-the-environment"]], "Running the testsuite": [[1, "running-the-testsuite"]], "Building the documentation": [[1, "building-the-documentation"]], "Contributing your changes": [[1, "contributing-your-changes"]], "Weekly meetings": [[1, "weekly-meetings"]], "Amaranth HDL documentation": [[2, "amaranth-hdl-documentation"]], "Language & toolchain": [[3, "language-toolchain"]], "Installation": [[4, "installation"]], "System requirements": [[4, "system-requirements"]], "Installing prerequisites": [[4, "installing-prerequisites"]], "Installing Amaranth": [[4, "installing-amaranth"]], "Latest release": [[4, "latest-release"]], "Development snapshot": [[4, "development-snapshot"]], "Editable development snapshot": [[4, "editable-development-snapshot"]], "Installing board definitions": [[4, "installing-board-definitions"]], "Todo": [[4, "id1"], [7, "id1"], [15, "id1"], [16, "id1"], [24, "id1"]], "Introduction": [[5, "introduction"], [21, "introduction"]], "The Amaranth language": [[5, "the-amaranth-language"]], "The Amaranth standard library": [[5, "the-amaranth-standard-library"]], "The Amaranth simulator": [[5, "the-amaranth-simulator"]], "The Amaranth build system": [[5, "the-amaranth-build-system"]], "FPGA toolchain integration": [[5, "fpga-toolchain-integration"]], "Development board definitions": [[5, "development-board-definitions"]], "Language guide": [[6, "language-guide"]], "The prelude": [[6, "the-prelude"]], "Shapes": [[6, "shapes"]], "Shapes of values": [[6, "shapes-of-values"]], "Values": [[6, "values"]], "Constants": [[6, "constants"]], "Shape casting": [[6, "shape-casting"]], "Shapes from integers": [[6, "shapes-from-integers"]], "Shapes from ranges": [[6, "shapes-from-ranges"]], "Shapes from enumerations": [[6, "shapes-from-enumerations"]], "Value casting": [[6, "value-casting"]], "Values from integers": [[6, "values-from-integers"]], "Values from enumeration members": [[6, "values-from-enumeration-members"]], "Constant casting": [[6, "constant-casting"]], "Signals": [[6, "signals"]], "Signal shapes": [[6, "signal-shapes"]], "Signal names": [[6, "signal-names"]], "Initial signal values": [[6, "initial-signal-values"]], "Reset-less signals": [[6, "reset-less-signals"]], "Data structures": [[6, "data-structures"], [21, "module-amaranth.lib.data"]], "Operators": [[6, "operators"]], "Performing or describing computations?": [[6, "performing-or-describing-computations"]], "Width extension": [[6, "width-extension"]], "Arithmetic operators": [[6, "arithmetic-operators"]], "Comparison operators": [[6, "comparison-operators"]], "Bitwise, shift, and rotate operators": [[6, "bitwise-shift-and-rotate-operators"]], "Reduction operators": [[6, "reduction-operators"]], "Logical operators": [[6, "logical-operators"]], "Bit sequence operators": [[6, "bit-sequence-operators"]], "Conversion operators": [[6, "conversion-operators"]], "Choice operator": [[6, "choice-operator"]], "Modules": [[6, "modules"]], "Control domains": [[6, "control-domains"]], "Assigning to signals": [[6, "assigning-to-signals"]], "Assignment targets": [[6, "assignment-targets"]], "Assignment domains": [[6, "assignment-domains"]], "Assignment order": [[6, "assignment-order"]], "Control structures": [[6, "control-structures"]], "Active and inactive assignments": [[6, "active-and-inactive-assignments"]], "Combinatorial evaluation": [[6, "combinatorial-evaluation"]], "Synchronous evaluation": [[6, "synchronous-evaluation"]], "Platform integration": [[7, "platform-integration"]], "Gowin": [[8, "gowin"]], "Intel": [[9, "intel"]], "Lattice ECP5": [[10, "lattice-ecp5"]], "Lattice iCE40": [[11, "lattice-ice40"]], "Lattice MachXO2 and MachXO3L": [[12, "lattice-machxo2-and-machxo3l"]], "Quicklogic": [[13, "quicklogic"]], "Xilinx": [[14, "xilinx"]], "Getting started": [[15, "getting-started"]], "A counter": [[15, "a-counter"]], "Implementing a counter": [[15, "implementing-a-counter"]], "Testing a counter": [[15, "testing-a-counter"]], "Converting a counter": [[15, "converting-a-counter"]], "A blinking LED": [[15, "a-blinking-led"]], "Standard library": [[16, "standard-library"]], "Clock domain crossing": [[17, "module-amaranth.lib.cdc"]], "Code conversion": [[18, "module-amaranth.lib.coding"]], "One-hot coding": [[18, "one-hot-coding"]], "Priority coding": [[18, "priority-coding"]], "Gray coding": [[18, "gray-coding"]], "Cyclic redundancy checks": [[19, "module-amaranth.lib.crc"]], "Predefined CRC Algorithms": [[20, "module-amaranth.lib.crc.catalog"]], "Overview": [[21, "overview"]], "Motivation": [[21, "motivation"]], "Composing layouts": [[21, "composing-layouts"]], "Defining layouts": [[21, "defining-layouts"]], "Discriminated unions": [[21, "discriminated-unions"]], "Modeling structured data": [[21, "modeling-structured-data"]], "Common data layouts": [[21, "common-data-layouts"]], "Data views": [[21, "data-views"]], "Creating a view": [[21, "creating-a-view"]], "Accessing a view": [[21, "accessing-a-view"]], "Custom view classes": [[21, "custom-view-classes"]], "Data classes": [[21, "data-classes"]], "Enumerations": [[22, "module-amaranth.lib.enum"]], "Metaclass": [[22, "metaclass"]], "Base classes": [[22, "base-classes"]], "First-in first-out queues": [[23, "module-amaranth.lib.fifo"]], "Tutorial": [[24, "tutorial"]]}, "indexentries": {"gowinplatform (class in amaranth.vendor)": [[8, "amaranth.vendor.GowinPlatform"]], "intelplatform (class in amaranth.vendor)": [[9, "amaranth.vendor.IntelPlatform"]], "latticeecp5platform (class in amaranth.vendor)": [[10, "amaranth.vendor.LatticeECP5Platform"]], "latticeice40platform (class in amaranth.vendor)": [[11, "amaranth.vendor.LatticeICE40Platform"]], "latticemachxo2or3lplatform (class in amaranth.vendor._lattice_machxo_2_3l)": [[12, "amaranth.vendor._lattice_machxo_2_3l.LatticeMachXO2Or3LPlatform"]], "latticemachxo2platform (in module amaranth.vendor)": [[12, "amaranth.vendor.LatticeMachXO2Platform"]], "latticemachxo3lplatform (in module amaranth.vendor)": [[12, "amaranth.vendor.LatticeMachXO3LPlatform"]], "quicklogicplatform (class in amaranth.vendor)": [[13, "amaranth.vendor.QuicklogicPlatform"]], "xilinxplatform (class in amaranth.vendor)": [[14, "amaranth.vendor.XilinxPlatform"]], "asyncffsynchronizer (class in amaranth.lib.cdc)": [[17, "amaranth.lib.cdc.AsyncFFSynchronizer"]], "ffsynchronizer (class in amaranth.lib.cdc)": [[17, "amaranth.lib.cdc.FFSynchronizer"]], "pulsesynchronizer (class in amaranth.lib.cdc)": [[17, "amaranth.lib.cdc.PulseSynchronizer"]], "resetsynchronizer (class in amaranth.lib.cdc)": [[17, "amaranth.lib.cdc.ResetSynchronizer"]], "amaranth.lib.cdc": [[17, "module-amaranth.lib.cdc"]], "module": [[17, "module-amaranth.lib.cdc"], [18, "module-amaranth.lib.coding"], [19, "module-amaranth.lib.crc"], [20, "module-amaranth.lib.crc.catalog"], [21, "module-amaranth.lib.data"], [22, "module-amaranth.lib.enum"], [23, "module-amaranth.lib.fifo"]], "decoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.Decoder"]], "encoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.Encoder"]], "graydecoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.GrayDecoder"]], "grayencoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.GrayEncoder"]], "prioritydecoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.PriorityDecoder"]], "priorityencoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.PriorityEncoder"]], "amaranth.lib.coding": [[18, "module-amaranth.lib.coding"]], "algorithm (class in amaranth.lib.crc)": [[19, "amaranth.lib.crc.Algorithm"]], "parameters (class in amaranth.lib.crc)": [[19, "amaranth.lib.crc.Parameters"]], "processor (class in amaranth.lib.crc)": [[19, "amaranth.lib.crc.Processor"]], "__call__() (amaranth.lib.crc.algorithm method)": [[19, "amaranth.lib.crc.Algorithm.__call__"]], "algorithm (amaranth.lib.crc.parameters property)": [[19, "amaranth.lib.crc.Parameters.algorithm"]], "amaranth.lib.crc": [[19, "module-amaranth.lib.crc"]], "compute() (amaranth.lib.crc.parameters method)": [[19, "amaranth.lib.crc.Parameters.compute"]], "create() (amaranth.lib.crc.parameters method)": [[19, "amaranth.lib.crc.Parameters.create"]], "residue() (amaranth.lib.crc.parameters method)": [[19, "amaranth.lib.crc.Parameters.residue"]], "crc10_atm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC10_ATM"]], "crc10_cdma2000 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC10_CDMA2000"]], "crc10_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC10_GSM"]], "crc10_i_610 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC10_I_610"]], "crc11_flexray (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC11_FLEXRAY"]], "crc11_umts (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC11_UMTS"]], "crc12_3gpp (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_3GPP"]], "crc12_cdma2000 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_CDMA2000"]], "crc12_dect (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_DECT"]], "crc12_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_GSM"]], "crc12_umts (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_UMTS"]], "crc13_bbc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC13_BBC"]], "crc14_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC14_DARC"]], "crc14_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC14_GSM"]], "crc15_can (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC15_CAN"]], "crc15_mpt1327 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC15_MPT1327"]], "crc16_acorn (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ACORN"]], "crc16_arc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ARC"]], "crc16_aug_ccitt (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_AUG_CCITT"]], "crc16_autosar (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_AUTOSAR"]], "crc16_bluetooth (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_BLUETOOTH"]], "crc16_buypass (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_BUYPASS"]], "crc16_ccitt (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CCITT"]], "crc16_ccitt_false (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CCITT_FALSE"]], "crc16_ccitt_true (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CCITT_TRUE"]], "crc16_cdma2000 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CDMA2000"]], "crc16_cms (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CMS"]], "crc16_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DARC"]], "crc16_dds_110 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DDS_110"]], "crc16_dect_r (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DECT_R"]], "crc16_dect_x (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DECT_X"]], "crc16_dnp (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DNP"]], "crc16_en_13757 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_EN_13757"]], "crc16_epc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_EPC"]], "crc16_epc_c1g2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_EPC_C1G2"]], "crc16_genibus (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_GENIBUS"]], "crc16_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_GSM"]], "crc16_ibm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_IBM"]], "crc16_ibm_3740 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_IBM_3740"]], "crc16_ibm_sdlc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_IBM_SDLC"]], "crc16_iec_61158_2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_IEC_61158_2"]], "crc16_iso_hdlc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ISO_HDLC"]], "crc16_iso_iec_14443_3_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ISO_IEC_14443_3_A"]], "crc16_iso_iec_14443_3_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ISO_IEC_14443_3_B"]], "crc16_i_code (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_I_CODE"]], "crc16_kermit (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_KERMIT"]], "crc16_lj1200 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_LJ1200"]], "crc16_lte (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_LTE"]], "crc16_m17 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_M17"]], "crc16_maxim (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_MAXIM"]], "crc16_maxim_dow (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_MAXIM_DOW"]], "crc16_mcrf4xx (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_MCRF4XX"]], "crc16_modbus (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_MODBUS"]], "crc16_nrsc_5 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_NRSC_5"]], "crc16_opensafety_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_OPENSAFETY_A"]], "crc16_opensafety_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_OPENSAFETY_B"]], "crc16_profibus (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_PROFIBUS"]], "crc16_riello (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_RIELLO"]], "crc16_spi_fujitsu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_SPI_FUJITSU"]], "crc16_t10_dif (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_T10_DIF"]], "crc16_teledisk (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_TELEDISK"]], "crc16_tms37157 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_TMS37157"]], "crc16_umts (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_UMTS"]], "crc16_usb (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_USB"]], "crc16_verifone (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_VERIFONE"]], "crc16_v_41_lsb (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_V_41_LSB"]], "crc16_v_41_msb (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_V_41_MSB"]], "crc16_x25 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_X25"]], "crc16_xmodem (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_XMODEM"]], "crc16_zmodem (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ZMODEM"]], "crc17_can_fd (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC17_CAN_FD"]], "crc21_can_fd (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC21_CAN_FD"]], "crc24_ble (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_BLE"]], "crc24_flexray_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_FLEXRAY_A"]], "crc24_flexray_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_FLEXRAY_B"]], "crc24_interlaken (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_INTERLAKEN"]], "crc24_lte_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_LTE_A"]], "crc24_lte_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_LTE_B"]], "crc24_openpgp (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_OPENPGP"]], "crc24_os_9 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_OS_9"]], "crc30_cdma (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC30_CDMA"]], "crc31_philips (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC31_PHILIPS"]], "crc32_aal5 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_AAL5"]], "crc32_adccp (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_ADCCP"]], "crc32_aixm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_AIXM"]], "crc32_autosar (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_AUTOSAR"]], "crc32_base91_c (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_BASE91_C"]], "crc32_base91_d (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_BASE91_D"]], "crc32_bzip2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_BZIP2"]], "crc32_castagnoli (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_CASTAGNOLI"]], "crc32_cd_rom_edc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_CD_ROM_EDC"]], "crc32_cksum (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_CKSUM"]], "crc32_dect_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_DECT_B"]], "crc32_ethernet (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_ETHERNET"]], "crc32_interlaken (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_INTERLAKEN"]], "crc32_iscsi (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_ISCSI"]], "crc32_iso_hdlc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_ISO_HDLC"]], "crc32_jamcrc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_JAMCRC"]], "crc32_mef (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_MEF"]], "crc32_mpeg_2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_MPEG_2"]], "crc32_pkzip (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_PKZIP"]], "crc32_posix (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_POSIX"]], "crc32_v_42 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_V_42"]], "crc32_xfer (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_XFER"]], "crc32_xz (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_XZ"]], "crc3_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC3_GSM"]], "crc3_rohc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC3_ROHC"]], "crc40_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC40_GSM"]], "crc4_g_704 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC4_G_704"]], "crc4_interlaken (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC4_INTERLAKEN"]], "crc4_itu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC4_ITU"]], "crc5_epc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_EPC"]], "crc5_epc_c1g2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_EPC_C1G2"]], "crc5_g_704 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_G_704"]], "crc5_itu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_ITU"]], "crc5_usb (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_USB"]], "crc64_ecma (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_ECMA"]], "crc64_ecma_182 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_ECMA_182"]], "crc64_go_iso (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_GO_ISO"]], "crc64_ms (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_MS"]], "crc64_redis (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_REDIS"]], "crc64_we (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_WE"]], "crc64_xz (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_XZ"]], "crc6_cdma2000_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_CDMA2000_A"]], "crc6_cdma2000_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_CDMA2000_B"]], "crc6_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_DARC"]], "crc6_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_GSM"]], "crc6_g_704 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_G_704"]], "crc6_itu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_ITU"]], "crc7_mmc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC7_MMC"]], "crc7_rohc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC7_ROHC"]], "crc7_umts (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC7_UMTS"]], "crc82_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC82_DARC"]], "crc8_aes (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_AES"]], "crc8_autosar (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_AUTOSAR"]], "crc8_bluetooth (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_BLUETOOTH"]], "crc8_cdma2000 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_CDMA2000"]], "crc8_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_DARC"]], "crc8_dvb_s2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_DVB_S2"]], "crc8_etu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_ETU"]], "crc8_gsm_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_GSM_A"]], "crc8_gsm_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_GSM_B"]], "crc8_hitag (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_HITAG"]], "crc8_itu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_ITU"]], "crc8_i_432_1 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_I_432_1"]], "crc8_i_code (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_I_CODE"]], "crc8_lte (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_LTE"]], "crc8_maxim (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_MAXIM"]], "crc8_maxim_dow (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_MAXIM_DOW"]], "crc8_mifare_mad (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_MIFARE_MAD"]], "crc8_nrsc_5 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_NRSC_5"]], "crc8_opensafety (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_OPENSAFETY"]], "crc8_rohc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_ROHC"]], "crc8_sae_j1850 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_SAE_J1850"]], "crc8_smbus (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_SMBUS"]], "crc8_tech_3250 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_TECH_3250"]], "crc8_wcdma (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_WCDMA"]], "amaranth.lib.crc.catalog": [[20, "module-amaranth.lib.crc.catalog"]], "arraylayout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.ArrayLayout"]], "field (class in amaranth.lib.data)": [[21, "amaranth.lib.data.Field"]], "flexiblelayout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.FlexibleLayout"]], "layout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.Layout"]], "struct (class in amaranth.lib.data)": [[21, "amaranth.lib.data.Struct"]], "structlayout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.StructLayout"]], "union (class in amaranth.lib.data)": [[21, "amaranth.lib.data.Union"]], "unionlayout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.UnionLayout"]], "view (class in amaranth.lib.data)": [[21, "amaranth.lib.data.View"]], "__call__() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.__call__"]], "__eq__() (amaranth.lib.data.field method)": [[21, "amaranth.lib.data.Field.__eq__"]], "__eq__() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.__eq__"]], "__getattr__() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.__getattr__"]], "__getitem__() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.__getitem__"]], "__getitem__() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.__getitem__"]], "__iter__() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.__iter__"]], "amaranth.lib.data": [[21, "module-amaranth.lib.data"]], "as_shape() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.as_shape"]], "as_value() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.as_value"]], "cast() (amaranth.lib.data.layout static method)": [[21, "amaranth.lib.data.Layout.cast"]], "const() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.const"]], "const() (amaranth.lib.data.unionlayout method)": [[21, "amaranth.lib.data.UnionLayout.const"]], "eq() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.eq"]], "shape() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.shape"]], "size (amaranth.lib.data.arraylayout property)": [[21, "amaranth.lib.data.ArrayLayout.size"]], "size (amaranth.lib.data.layout property)": [[21, "amaranth.lib.data.Layout.size"]], "size (amaranth.lib.data.structlayout property)": [[21, "amaranth.lib.data.StructLayout.size"]], "size (amaranth.lib.data.unionlayout property)": [[21, "amaranth.lib.data.UnionLayout.size"]], "width (amaranth.lib.data.field property)": [[21, "amaranth.lib.data.Field.width"]], "enum (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.Enum"]], "enummeta (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.EnumMeta"]], "flag (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.Flag"]], "intenum (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.IntEnum"]], "intflag (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.IntFlag"]], "amaranth.lib.enum": [[22, "module-amaranth.lib.enum"]], "as_shape() (amaranth.lib.enum.enummeta method)": [[22, "amaranth.lib.enum.EnumMeta.as_shape"]], "asyncfifo (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.AsyncFIFO"]], "asyncfifobuffered (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.AsyncFIFOBuffered"]], "fifointerface (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.FIFOInterface"]], "syncfifo (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.SyncFIFO"]], "syncfifobuffered (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.SyncFIFOBuffered"]], "amaranth.lib.fifo": [[23, "module-amaranth.lib.fifo"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["changes", "contrib", "cover", "index", "install", "intro", "lang", "platform", "platform/gowin", "platform/intel", "platform/lattice-ecp5", "platform/lattice-ice40", "platform/lattice-machxo-2-3l", "platform/quicklogic", "platform/xilinx", "start", "stdlib", "stdlib/cdc", "stdlib/coding", "stdlib/crc", "stdlib/crc/catalog", "stdlib/data", "stdlib/enum", "stdlib/fifo", "tutorial"], "filenames": ["changes.rst", "contrib.rst", "cover.rst", "index.rst", "install.rst", "intro.rst", "lang.rst", "platform.rst", "platform/gowin.rst", "platform/intel.rst", "platform/lattice-ecp5.rst", "platform/lattice-ice40.rst", "platform/lattice-machxo-2-3l.rst", "platform/quicklogic.rst", "platform/xilinx.rst", "start.rst", "stdlib.rst", "stdlib/cdc.rst", "stdlib/coding.rst", "stdlib/crc.rst", "stdlib/crc/catalog.rst", "stdlib/data.rst", "stdlib/enum.rst", "stdlib/fifo.rst", "tutorial.rst"], "titles": ["Changelog", "Contributing", "Amaranth HDL documentation", "Language & toolchain", "Installation", "Introduction", "Language guide", "Platform integration", "Gowin", "Intel", "Lattice ECP5", "Lattice iCE40", "Lattice MachXO2 and MachXO3L", "Quicklogic", "Xilinx", "Getting started", "Standard library", "Clock domain crossing", "Code conversion", "Cyclic redundancy checks", "Predefined CRC Algorithms", "Data structures", "Enumerations", "First-in first-out queues", "Tutorial"], "terms": {"thi": [0, 1, 3, 5, 6, 7, 11, 15, 16, 17, 19, 20, 21, 22, 23], "document": [0, 5, 15, 19], "describ": [0, 1, 15, 21], "public": [0, 1], "interfac": [0, 5, 6, 15, 21, 23], "amaranth": [0, 1, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24], "It": [0, 1, 5, 6, 15, 19, 21], "doe": [0, 4, 5, 6, 17, 21, 23], "includ": [0, 1, 4, 5, 6, 15, 19], "most": [0, 4, 5, 6, 15, 17, 19, 21], "bug": [0, 1, 4, 5, 6], "fix": [0, 3, 4, 6, 15, 19], "support": [0, 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 23], "ha": [0, 1, 5, 6, 15, 19, 21, 22, 23], "been": [0, 4, 19, 23], "ad": [0, 4, 5, 6, 15, 21], "new": [0, 3, 4, 5, 19, 21, 23], "improv": [0, 1, 21, 23], "wai": [0, 1, 6, 21, 22], "defin": [0, 5, 6, 15, 17, 19], "data": [0, 3, 16, 17, 19, 23], "structur": [0, 1, 3, 15, 16], "lib": [0, 6, 17, 18, 19, 20, 21, 22, 23], "compon": [0, 5, 21], "wire": [0, 6, 15], "record": [0, 1, 15], "deprec": 0, "In": [0, 6, 21, 22, 23], "departur": 0, "usual": [0, 1, 5, 6, 17, 21], "polici": 0, "give": [0, 6, 21], "design": [0, 1, 4, 5, 6, 14, 15, 17, 19, 21, 24], "addit": [0, 1, 4, 5, 6, 21, 23], "time": [0, 1, 4, 5, 6, 11, 15, 17, 21, 23], "remov": [0, 1, 6, 19], "6": [0, 6, 15, 20, 21], "one": [0, 1, 6, 15, 17, 18, 19, 21, 23, 24], "releas": [0, 17], "later": [0, 1], "than": [0, 4, 5, 6, 17, 21, 22], "normal": 0, "enumer": [0, 3, 16, 21], "extend": [0, 5, 6, 22], "A": [0, 1, 3, 4, 5, 6, 17, 19, 21, 22, 24], "shape": [0, 3, 21, 22], "member": [0, 21, 22], "can": [0, 1, 4, 5, 6, 15, 19, 21, 22, 23], "provid": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23], "an": [0, 1, 4, 5, 6, 15, 17, 19, 20, 21, 22, 23], "class": [0, 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23], "The": [0, 1, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24], "sever": [0, 1], "extens": [0, 15], "point": [0, 11, 21], "valu": [0, 3, 15, 17, 19, 21, 22], "base": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 19, 21], "outsid": 0, "core": [0, 5, 9], "particular": [0, 5, 21], "signal": [0, 3, 5, 15, 17, 18, 19, 21, 23], "mai": [0, 1, 4, 6, 17, 19, 21, 22], "now": 0, "return": [0, 15, 19, 21, 22], "object": [0, 6, 9, 19, 21], "wrap": [0, 21], "anoth": [0, 21], "call": [0, 6, 19, 20, 21, 22], "protocol": [0, 22], "15": [0, 15, 20], "issu": [0, 1, 5, 6], "infer": [0, 5, 6, 21], "have": [0, 1, 4, 6, 21, 23], "resolv": 0, "notabl": [0, 4], "b": [0, 6, 19], "where": [0, 1, 6, 17, 19, 21], "both": [0, 1, 5, 6, 19, 21], "ar": [0, 1, 5, 6, 8, 9, 10, 11, 14, 15, 17, 18, 19, 20, 21, 23], "unsign": [0, 6, 21, 22], "sign": [0, 1, 6, 21], "python": [0, 1, 4, 5, 6, 11, 15, 21, 22], "7": [0, 4, 5, 6, 20, 21], "11": [0, 20, 21], "12": [0, 6, 20], "featur": [0, 3, 17], "nmigen": [0, 24], "namespac": [0, 6], "i": [0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24], "annot": [0, 21], "recogn": 0, "nmigen_": 0, "envron": 0, "variabl": [0, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 21, 23], "us": [0, 1, 4, 5, 6, 9, 15, 17, 19, 20, 21, 22, 23, 24], "appli": [0, 6, 19, 21], "follow": [0, 1, 4, 5, 6, 10, 12, 15, 17, 19, 21, 24], "code": [0, 1, 3, 4, 5, 6, 15, 16, 21], "written": [0, 5, 6, 15, 23, 24], "against": 0, "updat": [0, 1, 4, 6, 15, 19], "shell": 0, "environ": [0, 5, 8, 9, 10, 11, 12, 13, 14], "amaranth_": 0, "instead": [0, 6, 21], "amaranth_env_": 0, "all": [0, 1, 5, 6, 9, 15, 19, 20, 21, 22], "uppercas": 0, "name": [0, 5, 8, 9, 10, 11, 12, 14, 17, 21], "nmigen_env_": 0, "mix": [0, 6], "case": [0, 6, 15, 19, 21, 23], "import": [0, 1, 6, 15, 19, 21, 22], "form": [0, 6, 19], "vendor": [0, 5, 8, 9, 10, 11, 12, 13, 14, 15], "some_vendor": 0, "somevendorplatform": 0, "reduc": [0, 5, 6, 17, 21], "futur": [0, 5, 6], "churn": 0, "replac": [0, 22], "const": [0, 6, 21], "repl": 0, "count": [0, 6, 15], "replic": [0, 6], "appropri": 0, "depend": [0, 1, 4, 5, 21, 23], "If": [0, 1, 4, 6, 15, 17, 18, 19, 21, 22, 23], "wa": [0, 19, 21], "being": [0, 1, 6, 21, 23, 24], "storag": 0, "access": [0, 20, 23], "bit": [0, 4, 10, 12, 14, 15, 18, 19, 21, 23], "level": [0, 5, 6, 15, 21, 23], "represent": [0, 6], "connect": [0, 15, 17], "togeth": [0, 1, 6], "ensur": [0, 6], "pin": [0, 5], "instanc": [0, 10, 12, 19, 21, 22], "request": [0, 1, 6, 15, 18], "cast": [0, 3, 21, 22], "directli": [0, 5, 6, 17, 19, 21, 23], "its": [0, 1, 6, 15, 17, 19, 21, 22], "field": [0, 21], "like": [0, 1, 4, 5, 6, 17, 21], "led": [0, 3], "cat": [0, 6, 22], "n": [0, 6, 17, 18, 21], "rang": [0, 15, 18, 21, 23], "o": [0, 5, 14, 17, 18], "note": [0, 6, 17, 19, 21], "schedul": 0, "roundrobin": 0, "inlin": 0, "copi": [0, 1], "fifo": [0, 5, 23], "syncfifo": [0, 16, 23], "fwft": [0, 23], "fals": [0, 6, 17, 19, 20, 23], "fifointerfac": [0, 16, 23], "convert": [0, 5, 6, 21], "true": [0, 6, 15, 17, 19, 20, 23], "those": 0, "while": [0, 1, 5, 6, 19, 21], "list": [0, 1, 6, 19], "below": [0, 6, 15, 17], "work": [0, 3, 4, 5, 6, 10, 12, 15, 21], "thei": [0, 1, 6, 15, 19, 21], "next": [0, 4, 15, 23], "aggreg": [0, 6, 21], "definit": [0, 2, 3, 15], "constant": [0, 3, 21, 22], "castabl": [0, 6, 21, 22], "express": [0, 6, 21, 22], "5": [0, 6, 15, 20, 21, 22], "crc": [0, 16, 19], "gener": [0, 5, 6, 15, 19], "8": [0, 4, 6, 19, 20, 21], "9": [0, 6], "initi": [0, 17, 19, 21], "10": [0, 4, 6, 20, 21], "move": 0, "18": 0, "reorgan": 0, "19": 0, "lift": 0, "20": 0, "non": [0, 5, 6, 17, 23], "22": 0, "valuecast": [0, 21], "shapecast": [0, 21, 22], "similar": [0, 1, 6, 15, 19, 21], "as_sign": [0, 6], "as_unsign": [0, 6], "left": [0, 6, 19], "hand": 0, "side": [0, 6], "assign": [0, 15, 21], "differ": [0, 1, 5, 6, 17, 18, 21, 23], "behavior": [0, 1, 5, 6, 15, 21], "match": [0, 5, 6], "m": [0, 6, 15, 19, 20, 21], "accept": [0, 1, 6, 21, 22], "ani": [0, 1, 4, 6, 15, 17, 18, 19, 21, 22, 23], "supersed": 0, "memori": [0, 5, 15, 23], "transpar": [0, 6], "read": [0, 6, 21, 23], "port": [0, 15], "enabl": [0, 5, 9, 10, 11, 15, 21], "creat": [0, 1, 6, 19, 20], "__call__": [0, 19, 21], "method": [0, 1, 6, 15, 17, 19, 21, 22], "recurs": [0, 21], "treat": [0, 6, 19], "deriv": [0, 5, 6, 15, 21], "enum": [0, 6, 21, 22], "int": [0, 6, 15, 17, 18, 19, 21, 23], "intenum": [0, 6, 22], "rather": [0, 6], "integ": [0, 19, 21], "empti": [0, 6, 23], "pattern": 0, "warn": 0, "without": [0, 1, 5, 19, 21], "explicitli": [0, 6, 15, 19, 21, 22], "specifi": [0, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 22, 23], "width": [0, 18, 19, 21, 23], "tupl": [0, 6], "ast": 0, "uservalu": 0, "linter": 0, "instruct": [0, 15], "begin": [0, 15], "file": [0, 3, 5, 6, 9, 10, 11, 12, 13, 14, 15], "text": 0, "lf": 0, "line": [0, 15], "end": [0, 5, 6, 9, 10, 11, 12, 15], "window": [0, 4, 5, 10, 12], "other": [0, 1, 4, 5, 6, 15, 17, 19, 21, 22], "debug_verilog": 0, "overrid": [0, 9, 10, 11, 12, 13, 14, 17, 21], "build": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 15, 17, 18, 23], "templatedplatform": 0, "env": 0, "argument": [0, 6, 22], "run": [0, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15], "buildplan": 0, "execute_loc": 0, "nmigen_env_diamond": 0, "amaranth_env_diamond": [0, 10, 12], "upper": 0, "sim": [0, 15], "simul": [0, 3, 4, 6, 15], "step": [0, 1, 4, 5, 6, 15], "back": [0, 15], "pysim": 0, "invok": [0, 6], "rtlil": 0, "verilog": [0, 5, 6, 15], "explicit": [0, 5, 6, 19], "test": [0, 1, 5, 23], "icepack_opt": 0, "latticeice40platform": [0, 7, 11], "osch": 0, "default_clk": 0, "clock": [0, 3, 5, 6, 15, 16, 19, 23], "sourc": [0, 1, 4, 5, 6, 15, 21], "latticemachxo2platform": [0, 7, 12], "latticemachxo3lplatform": [0, 7, 12], "xrai": [0, 14], "xilinxplatform": [0, 7, 14], "gowinplatform": [0, 7, 8], "intel": [0, 3, 7], "lattice_ecp5": 0, "lattice_ice40": 0, "lattice_machxo2_3l": 0, "quicklog": [0, 3, 7], "xilinx": [0, 3, 7], "lattice_machxo2": 0, "lattice_machxo_2_3l": 0, "latticemachxo2or3lplatform": [0, 7, 12], "svf": [0, 10, 12], "program": [0, 1, 5, 6, 10, 12, 15], "vector": [0, 10, 12], "xilinx_spartan_3_6": 0, "xilinxspartan3aplatform": 0, "xilinxspartan6platform": 0, "xilinx_7seri": 0, "xilinx7seriesplatform": 0, "xilinx_ultrascal": 0, "xilinxultrascaleplatform": 0, "project": [0, 1, 5, 22], "renam": [0, 6], "nm": 0, "prelud": [0, 3], "am": [0, 6], "adjust": 0, "nmigen_board": 0, "amaranth_board": [0, 15], "board": [0, 2, 3, 15], "switch": [0, 6, 21], "hdl": [0, 4, 5, 6, 15, 24], "inherit": [0, 6, 21, 23], "add": [0, 1, 5, 6, 9, 10, 11, 14, 19, 22], "miss": [0, 1], "util": [0, 19], "fhdltestcas": 0, "assertform": 0, "necessari": [0, 1, 5, 6, 11, 15, 21, 23], "ab": [0, 6], "rotate_left": [0, 6], "rotate_right": [0, 6], "shift_left": [0, 6], "shift_right": [0, 6], "divis": [0, 6], "modulo": [0, 6], "oper": [0, 3, 5, 21], "neg": [0, 6, 17], "divisor": [0, 15], "cdc": [0, 5, 17], "pulsesynchron": [0, 16, 17], "asyncffsynchron": [0, 16, 17], "asyncfifo": [0, 16, 23], "reset": [0, 5, 15, 17, 19, 21, 23], "when": [0, 1, 5, 6, 15, 17, 19, 21, 23], "write": [0, 6, 7, 15, 16, 23], "domain": [0, 3, 5, 15, 16, 23], "r_rst": [0, 23], "assert": [0, 6, 15, 17, 18, 19, 23], "r_level": [0, 23], "w_level": [0, 23], "backend": [0, 6, 15], "reject": [0, 6], "larger": [0, 6, 19], "65536": 0, "emit": [0, 6], "yosi": [0, 1, 4, 5, 8, 9, 10, 11, 14], "attribut": [0, 5, 6, 15, 21], "compat": [0, 4], "instal": [0, 1, 3, 11, 15], "fall": 0, "pypi": [0, 4, 5], "packag": [0, 1, 4], "builtin": [0, 4], "avail": [0, 4, 9, 10, 11, 12, 13, 14, 15, 19, 23], "cxxrtl": 0, "multipl": [0, 5, 6, 18], "fragment": 0, "add_process": 0, "advanc": [0, 5, 15], "execute_remote_ssh": 0, "vcd": [0, 15], "output": [0, 1, 6, 11, 15, 17, 18, 19, 23], "top": [0, 6, 15], "bench": [0, 5, 15], "modul": [0, 3, 15, 17, 18, 19, 20, 21, 22, 23], "contain": [0, 1, 5, 6, 15, 19, 20, 21], "testbench": 0, "onli": [0, 4, 5, 6, 15, 17, 18, 19, 21, 23], "sb_lfosc": 0, "sb_hfosc": 0, "binari": [0, 4, 6, 8, 9, 10, 11, 12, 14, 18], "bitstream": [0, 8, 9, 10, 11, 12, 14, 15], "grade": [0, 24], "famili": [0, 4, 5, 21], "temperatur": 0, "part": [0, 1, 6, 15, 21], "speed": [0, 5], "symbiflow": [0, 13, 14], "separ": 0, "flash": [0, 5, 12, 15], "sram": [0, 9, 12], "_flash": [0, 12], "_sram": [0, 12], "quicklogicplatform": [0, 7, 13], "cyclonev_oscil": 0, "intelplatform": [0, 7, 9], "add_set": [0, 9], "add_constraint": [0, 9, 10, 11, 12, 13, 14], "mistral": [0, 9], "synth_design_opt": [0, 14], "No": 0, "were": [0, 6], "publish": 0, "under": [0, 6, 21], "collect": [1, 5, 6], "mani": [1, 5, 6, 15, 19], "peopl": 1, "collabor": 1, "over": [1, 19, 21], "year": 1, "would": [1, 6, 19, 21], "same": [1, 5, 6, 15, 19, 21, 22, 23], "everyon": 1, "": [1, 4, 5, 6, 15, 17, 19, 21, 23, 24], "uniqu": [1, 6], "perspect": 1, "we": 1, "re": [1, 19, 22], "glad": 1, "you": [1, 4, 17, 19], "consid": [1, 5, 6, 15, 17, 21, 24], "join": 1, "u": 1, "page": 1, "guid": [1, 3, 15, 19], "through": [1, 5, 6, 21], "some": [1, 5, 6, 15], "best": 1, "tool": [1, 5, 6, 8, 9, 10, 11, 12, 13, 14], "hear": 1, "about": [1, 6], "encount": 1, "crucial": 1, "do": [1, 6, 15, 21], "care": 1, "lot": 1, "correct": [1, 6], "result": [1, 6, 15, 21, 22], "experi": [1, 6], "just": [1, 6, 21], "much": 1, "meant": 1, "comfort": 1, "fewer": 1, "sharp": 1, "edg": [1, 6, 15, 17], "matter": [1, 21], "how": [1, 4, 6, 19, 21], "technolog": 1, "appeal": 1, "might": 1, "more": [1, 5, 6, 15, 21], "guardrail": 1, "pleas": 1, "To": [1, 4, 5, 6, 15, 19, 20, 21], "go": [1, 5], "beyond": [1, 6], "see": [1, 6, 15, 17], "error": [1, 5, 6, 9, 10, 11, 19, 21], "messag": [1, 6, 9, 10, 11, 15], "hard": [1, 5, 21], "understand": [1, 6], "mislead": 1, "even": [1, 6, 17], "especi": [1, 5], "think": 1, "did": [1, 4], "someth": 1, "wrong": [1, 6], "inform": [1, 9, 10, 11, 15], "exact": [1, 21], "version": [1, 3, 4, 6], "which": [1, 5, 6, 11, 15, 17, 19, 20, 21, 23], "find": 1, "c": [1, 6, 10, 12], "print": [1, 6], "__version__": 1, "complet": [1, 19], "self": [1, 5, 6, 15, 21], "minim": [1, 15], "demonstr": [1, 15], "feasibl": 1, "sequenc": [1, 17, 21], "reproduc": [1, 5], "what": [1, 19], "expect": [1, 21], "happen": [1, 6], "actual": 1, "possibl": [1, 5, 6], "verbatim": 1, "log": [1, 9, 10, 11, 12, 14], "termin": 1, "For": [1, 4, 6, 19, 20, 21, 23], "usabl": [1, 5], "reason": 1, "e": [1, 6, 17, 23], "why": 1, "There": 1, "person": 1, "who": 1, "should": [1, 4, 6, 15, 17, 21, 23], "submit": [1, 21], "valuabl": 1, "own": [1, 6, 21], "right": [1, 6, 21], "appreci": 1, "open": [1, 5, 6, 15], "commun": [1, 5, 21, 24], "tend": 1, "opportun": 1, "enjoi": 1, "pull": [1, 4], "howev": [1, 4, 6, 17, 21], "unless": [1, 6, 23], "ve": 1, "few": [1, 6, 15, 21], "befor": [1, 4, 6, 10, 12, 14], "truli": 1, "trivial": 1, "discuss": 1, "maintain": [1, 5, 17], "first": [1, 3, 4, 5, 6, 15, 16, 17, 19, 21], "doesn": 1, "t": [1, 6, 21], "take": [1, 5, 6, 19], "sometim": [1, 5, 6], "save": [1, 10, 12], "unnecessari": 1, "frustrat": 1, "languag": [1, 2, 15], "toolchain": [1, 2, 4, 8, 9, 10, 11, 12, 13, 14, 15], "from": [1, 4, 5, 15, 17, 19, 20, 21, 22, 23], "kind": [1, 6, 21], "everi": [1, 5, 6, 15, 17, 19, 21], "unavoid": 1, "tightli": [1, 6], "coupl": 1, "seemingli": 1, "obviou": 1, "appar": 1, "minor": 1, "decis": [1, 6], "dramat": 1, "consequ": [1, 5], "make": [1, 4, 5, 6, 22, 23], "sure": [1, 4], "undergo": 1, "scrutini": 1, "commit": [1, 4], "impact": 1, "chanc": 1, "voic": 1, "heard": 1, "substanti": 1, "must": [1, 6, 11, 17, 21], "formal": [1, 24], "comment": 1, "process": [1, 5, 6, 19, 21], "well": [1, 4, 5, 6, 15, 21], "here": [1, 21], "typic": [1, 5], "after": [1, 4, 6, 9, 10, 11, 12, 14, 17, 19, 23], "round": [1, 23], "review": 1, "achiev": [1, 5], "unanim": 1, "consensu": 1, "pdm": 1, "manag": [1, 6, 21], "develop": [1, 15, 21], "workflow": [1, 4, 5, 15], "download": [1, 4, 5, 15, 19], "latest": 1, "onc": [1, 6, 15, 17, 21], "done": [1, 6, 21], "so": [1, 5, 6, 15, 17, 19, 21], "dev": 1, "command": [1, 4, 5, 9, 10, 11, 12, 13, 14, 15, 21], "virtual": 1, "locat": [1, 4, 15, 21], "venv": 1, "runtim": 1, "itself": [1, 6, 10, 12, 15, 19, 21], "edit": [1, 15], "mode": 1, "mean": [1, 6, 19], "immedi": [1, 4, 6, 17], "reflect": [1, 19], "pick": 1, "up": [1, 6, 15, 21, 23, 24], "good": [1, 6, 10, 12], "habit": 1, "each": [1, 5, 6, 19, 21], "tree": [1, 5, 6], "frontend": 1, "yices2": 1, "smt": 1, "solver": 1, "These": [1, 5, 21], "distribut": [1, 4], "oss": 1, "cad": 1, "suit": 1, "reli": [1, 5], "verif": [1, 5, 24], "skip": 1, "index": [1, 6, 21], "doc": 1, "_build": 1, "html": 1, "involv": 1, "small": [1, 6, 15], "iter": [1, 6, 19, 21], "labor": [1, 5, 21], "rebuild": 1, "manual": [1, 3, 4, 19, 21], "start": [1, 3, 5, 6, 19, 21], "automat": [1, 6, 15], "live": 1, "brows": 1, "http": [1, 4, 19], "127": [1, 6], "0": [1, 3, 4, 6, 15, 18, 19, 21, 22], "1": [1, 3, 6, 15, 17, 19, 21, 22, 23], "8000": 1, "browser": 1, "short": [1, 6], "delai": [1, 17, 23], "keep": 1, "ey": 1, "syntact": 1, "refer": [1, 6, 19], "occasion": [1, 6], "builder": 1, "persist": 1, "render": 1, "incorrect": 1, "outdat": 1, "content": 1, "our": 1, "style": [1, 5], "guidelin": 1, "evolv": 1, "eventu": 1, "them": [1, 6, 15, 19, 21], "At": [1, 5, 6], "moment": [1, 5, 6, 15], "ask": 1, "effort": [1, 5, 15], "modifi": 1, "spirit": 1, "surround": 1, "dure": [1, 5, 6, 17, 21], "doubt": 1, "mondai": 1, "17": [1, 20, 22], "00": 1, "utc": 1, "irc": 1, "channel": [1, 21], "lang": [1, 4], "libera": 1, "chat": 1, "matrix": 1, "org": 1, "bridg": 1, "appear": [1, 6, 21, 23], "user": [1, 4, 6, 15, 21], "contributor": 1, "newli": 1, "warrant": 1, "broad": 1, "attent": 1, "primari": 1, "avenu": 1, "want": [1, 19, 24], "interest": 1, "evolut": 1, "simpli": 1, "view": [1, 6, 16], "feel": 1, "free": 1, "attend": 1, "abl": [1, 6], "publicli": 1, "summari": 1, "post": 1, "relev": 1, "github": [1, 4], "thread": 1, "progress": [3, 6], "serious": [3, 6], "incomplet": [3, 6], "introduct": [3, 6, 15, 16], "standard": [3, 6, 9, 10, 11, 15, 19, 22], "librari": [3, 6, 17], "system": [3, 15], "requir": [3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 19, 21], "prerequisit": 3, "get": [3, 4, 5, 6, 21], "counter": [3, 6], "blink": 3, "tutori": [3, 6, 15], "convers": [3, 5, 16], "cross": [3, 5, 16], "cyclic": [3, 16], "redund": [3, 16], "check": [3, 15, 16], "out": [3, 4, 5, 15, 16, 17, 18, 19], "queue": [3, 16], "platform": [3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 17], "integr": [3, 15, 24], "gowin": [3, 7], "lattic": [3, 7, 15], "ecp5": [3, 7], "ice40": [3, 7, 15], "machxo2": [3, 7], "machxo3l": [3, 7], "changelog": 3, "4": [3, 6, 15, 20, 21, 22], "unreleas": 3, "3": [3, 4, 6, 15, 20, 21], "2": [3, 6, 15, 17, 22, 23], "contribut": 3, "problem": [3, 6], "report": [3, 5, 9, 11, 14], "propos": 3, "codebas": 3, "your": [3, 4, 17], "chang": [3, 4, 5, 6, 21], "weekli": 3, "meet": 3, "newer": 4, "cpython": 4, "faster": [4, 17], "pypy3": 4, "pip": 4, "23": [4, 21], "via": [4, 5, 6, 21], "popular": 4, "softwar": [4, 19], "waveform": [4, 6, 15], "viewer": [4, 6], "gtkwave": 4, "invalu": 4, "debug": [4, 5, 15], "synthes": [4, 5, 6, 10, 11, 14, 15], "place": [4, 5, 6, 14, 15, 22], "rout": [4, 5, 6, 14, 15], "fpga": [4, 15, 17, 23, 24], "specif": [4, 5, 6, 17, 21], "x86_64": 4, "aarch64": 4, "continu": [4, 24], "either": [4, 6, 17, 18, 21], "store": [4, 6, 21], "full": [4, 19], "64": [4, 20], "win32": 4, "win64": 4, "need": [4, 5, 6, 17, 21, 23], "unpack": 4, "conveni": [4, 6], "upgrad": 4, "maco": 4, "homebrew": 4, "Then": 4, "brew": 4, "debian": 4, "sudo": 4, "apt": 4, "python3": [4, 15], "On": [4, 10, 12, 17], "architectur": [4, 19], "pip3": 4, "arch": 4, "linux": [4, 10, 12], "pacman": 4, "repositori": [4, 5], "applic": [4, 5, 15, 21], "main": 4, "branch": [4, 6], "similarli": [4, 6], "reliabl": [4, 5], "experiment": 4, "api": 4, "flux": 4, "until": [4, 6, 17, 21, 24], "With": [4, 15, 19], "mind": 4, "try": [4, 6], "function": [4, 5, 6, 15, 19, 21], "avoid": [4, 5, 6], "sinc": [4, 6, 15, 19, 21], "last": [4, 6, 21], "previou": [4, 19, 21], "git": 4, "com": 4, "made": 4, "directori": 4, "affect": [4, 6], "otherwis": [4, 6, 15, 17, 18, 21, 23], "crash": 4, "becaus": [4, 6, 21], "mismatch": [4, 6], "clone": 4, "cd": 4, "ff": 4, "origin": 4, "omit": [4, 6], "explain": [4, 6], "hardwar": [5, 6, 19], "synchron": [5, 15, 17, 23], "digit": [5, 6], "logic": [5, 15, 23], "aim": 5, "easi": 5, "learn": [5, 24], "elimin": [5, 6, 17], "common": [5, 15, 16], "mistak": 5, "simplifi": [5, 6], "complex": [5, 6, 21], "reusabl": [5, 15], "consist": [5, 17], "cover": 5, "restrict": [5, 21, 22], "choic": 5, "exist": [5, 6, 19, 23], "industri": 5, "vhdl": 5, "flow": [5, 6], "descript": [5, 6, 19, 21], "regist": [5, 6, 19, 23], "transfer": [5, 17], "model": [5, 16, 19], "ordinari": [5, 6], "construct": [5, 6, 15, 19, 21, 23], "netlist": [5, 11, 14], "circuit": [5, 6], "human": 5, "readabl": [5, 6], "By": 5, "flexibl": [5, 21], "rich": [5, 6], "widespread": 5, "adopt": 5, "focus": 5, "singl": [5, 6, 15, 21], "task": [5, 6], "block": [5, 6, 15, 17, 18, 23], "finit": [5, 6], "state": [5, 6, 15, 17], "machin": [5, 6], "simpl": [5, 15, 21], "rule": [5, 21], "arithmet": 5, "close": 5, "semant": [5, 6], "loop": [5, 6], "condit": [5, 6, 15, 23], "organ": 5, "seamlessli": 5, "principl": 5, "also": [5, 6, 15, 19, 21, 23], "accident": 5, "misus": [5, 6], "unexpect": [5, 6], "undesir": 5, "synthesi": [5, 6, 11, 14], "often": [5, 6, 21], "expens": 5, "signific": [5, 6, 18, 19, 21], "safe": [5, 17], "third": [5, 21], "parti": 5, "lint": 5, "lack": [5, 6], "synthesiz": [5, 15], "prone": [5, 21], "favor": 5, "instanti": [5, 6, 15, 17, 21], "diagnost": [5, 6, 15], "regularli": 5, "ones": [5, 21], "highlight": 5, "potenti": [5, 6], "importantli": 5, "come": [5, 11], "essenti": [5, 6], "primit": [5, 6], "asynchron": [5, 6, 17, 23], "buffer": [5, 23], "box": [5, 15], "allow": [5, 6, 17], "focu": 5, "subtl": [5, 6], "between": [5, 6, 17, 18, 21, 23], "special": [5, 6], "treatment": 5, "devic": [5, 6, 10, 11, 12], "overridden": [5, 21], "recommend": 5, "high": [5, 18, 21], "gear": 5, "peripher": 5, "implement": [5, 6, 17, 19, 21, 22, 23], "least": [5, 6, 18, 19, 21, 23], "amount": [5, 6, 15, 21], "migrat": 5, "option": [5, 6, 9, 10, 11, 14, 15, 17, 20, 22], "limit": [5, 6, 15], "Of": 5, "cours": 5, "alwai": [5, 6, 15, 17, 19, 23], "known": [5, 6, 10, 12, 19, 21], "icaru": 5, "veril": 5, "event": 5, "driven": [5, 6, 17], "although": [5, 6, 15], "slower": 5, "compil": 5, "ahead": 5, "remark": 5, "perform": [5, 19, 21], "pure": 5, "nativ": 5, "co": [5, 15], "major": 5, "commerci": 5, "easili": 5, "constraint": [5, 14, 15, 17], "power": [5, 6, 17, 23], "final": [5, 6], "script": [5, 8, 9, 10, 11, 12, 13, 14], "placement": 5, "analysi": 5, "custom": [5, 15, 19, 23], "insert": [5, 9, 10, 11, 12, 13, 14], "produc": [5, 6, 15, 17], "portabl": 5, "present": [5, 8, 9, 10, 11, 12, 13, 14], "easier": [5, 6], "remot": 5, "nix": 5, "configur": [5, 15, 17, 19, 23], "suppli": 5, "everyth": [5, 21, 22], "direct": [5, 6, 21], "connector": 5, "pinout": [5, 15], "built": [5, 15, 21], "probe": 5, "invoc": [5, 15], "show": 5, "whether": [5, 6, 15, 19], "programm": 5, "correctli": [5, 15, 23], "establish": 5, "convent": [5, 6], "segment": 5, "displai": 5, "spi": 5, "sdram": 5, "reus": 5, "unmodifi": 5, "further": [5, 6, 17], "polar": 5, "control": [5, 15], "unifi": 5, "activ": 5, "invers": 5, "trace": 5, "low": [5, 18, 21], "invert": 5, "introduc": 6, "depth": [6, 23], "assum": 6, "familiar": 6, "prior": 6, "regular": 6, "root": [6, 11, 15], "carefulli": 6, "curat": 6, "export": [6, 10, 12, 22], "nearli": 6, "dedic": 6, "practic": 6, "glob": 6, "frown": 6, "upon": 6, "alia": [6, 12], "exampl": [6, 15, 19, 20, 21], "two": [6, 11, 19, 21], "signed": [6, 21], "alias": 6, "v": [6, 15], "retriev": [6, 21], "len": [6, 21], "basic": [6, 15], "term": [6, 19], "number": [6, 9, 17, 18, 21, 23], "anywher": [6, 21], "repres": 6, "interpret": 6, "complement": 6, "simplest": 6, "ten": 6, "minus_two": 6, "abov": [6, 15], "posit": [6, 19, 21], "smallest": 6, "As": [6, 15, 21], "truncat": 6, "fit": 6, "rare": [6, 21], "permit": 6, "360": 6, "104": 6, "129": 6, "indirectli": 6, "implicit": [6, 19], "shorthand": 6, "r": 6, "larg": [6, 21, 23], "enough": [6, 21], "min": 6, "max": 6, "whose": [6, 21], "set": [6, 9, 10, 11, 12, 14, 17, 19, 23, 24], "100": [6, 17], "item": [6, 19], "exclus": 6, "half": 6, "stop": 6, "element": [6, 21, 23], "wide": 6, "fencepost": 6, "256": [6, 21], "syntaxwarn": 6, "equal": [6, 19, 21], "inclus": 6, "off": [6, 10, 12], "detect": [6, 19], "bound": 6, "subclass": [6, 21, 22], "multiplex": 6, "distinct": 6, "bottom": 6, "funct4": 6, "sub": [6, 22], "mul": [6, 22], "prevent": 6, "unwant": 6, "equival": [6, 21], "d5": 6, "type": [6, 19, 21, 22, 23], "d1": 6, "subset": [6, 21], "operand": 6, "numer": 6, "d26": 6, "funct": [6, 22], "op": [6, 22], "reg": [6, 15, 22], "imm": [6, 22], "instr": [6, 22], "addi": [6, 22], "expand": 6, "vari": 6, "respect": 6, "cannot": [6, 21, 23], "uniniti": 6, "undefin": 6, "default": [6, 14, 15, 17, 19, 20], "foo": 6, "bar": 6, "paramet": [6, 15, 16, 17, 18, 19, 21, 23], "foo2": 6, "second_foo": 6, "prepar": 6, "ambigu": 6, "zero": [6, 21, 23], "none": [6, 14, 15, 17, 18], "never": [6, 21, 22], "resett": [6, 17], "reset_less": [6, 17], "resetinsert": 6, "combin": [6, 21], "arrai": [6, 21], "themselv": 6, "concret": [6, 21], "goal": 6, "calcul": 6, "contrast": 6, "abstract": [6, 21], "sig": [6, 15, 21], "syntax": [6, 15, 21], "rememb": 6, "higher": [6, 17], "traceback": [6, 21], "recent": [6, 19, 21], "typeerror": [6, 21, 22], "attempt": 6, "boolean": 6, "therefor": [6, 19], "statement": [6, 22], "execut": 6, "decid": 6, "bodi": 6, "fact": 6, "long": [6, 19], "finish": [6, 15], "solv": 6, "manipul": [6, 21], "OR": 6, "select": 6, "regardless": 6, "too": 6, "unlimit": 6, "precis": [6, 21], "overflow": [6, 15], "suffici": [6, 21], "128": 6, "382": 6, "tabl": 6, "negat": 6, "subtract": 6, "floor": 6, "absolut": 6, "due": 6, "chain": [6, 17], "g": [6, 14, 17], "inequ": 6, "greater": 6, "effici": 6, "NOT": 6, "AND": 6, "xor": [6, 19], "impli": 6, "revers": [6, 19], "exponenti": 6, "wider": 6, "intermedi": 6, "stress": 6, "32": [6, 20, 21], "4294967296": 6, "break": 6, "veri": [6, 21], "sidewai": 6, "pair": 6, "unari": 6, "sole": 6, "odd": 6, "bool": [6, 17, 19, 23], "conceptu": 6, "unlik": 6, "clariti": [6, 15], "p": 6, "q": 6, "preced": 6, "bind": 6, "wherea": 6, "parenthes": 6, "around": 6, "en": [6, 15], "addr": [6, 21], "d0": [6, 21], "stb": 6, "use_stb": 6, "msb": 6, "sd": 6, "detail": [6, 15, 17, 19], "apart": 6, "act": [6, 22, 23], "slice": [6, 21], "concaten": 6, "clash": 6, "except": [6, 21], "subscript": 6, "offset": [6, 21], "notat": 6, "length": [6, 21], "j": 6, "k": 6, "bit_select": 6, "w": [6, 15], "overlap": 6, "word_select": 6, "word": [6, 19, 23], "talk": 6, "convention": 6, "variat": 6, "occupi": 6, "0th": 6, "expon": [6, 21], "caus": [6, 17], "confus": 6, "0b1001": 6, "0b1010": 6, "0b1010_1001": 6, "val": [6, 15], "Such": 6, "seem": 6, "natur": [6, 18], "alon": 6, "could": [6, 17, 21], "ye": 6, "deliber": 6, "reinterpret": 6, "pc": 6, "mux": 6, "sel": 6, "val1": 6, "val0": 6, "unit": 6, "hierarchi": [6, 21], "independ": 6, "associ": [6, 21], "submodul": [6, 19, 20], "fresh": 6, "group": [6, 21], "ident": [6, 18, 19, 23], "predefin": [6, 16, 19], "comb": [6, 15, 21], "reserv": [6, 21], "occur": 6, "sync": [6, 15, 21], "feedback": 6, "hold": [6, 15], "eq": [6, 15, 21], "effect": 6, "0b11": 6, "d3": 6, "d": [6, 15, 19, 21], "entir": [6, 15, 19], "upfront": 6, "def": [6, 15, 21], "add_toggl": 6, "num": 6, "f": [6, 8, 15], "sync_": 6, "becom": [6, 19, 23], "undriven": 6, "exactli": [6, 21, 22], "dsl": 6, "syntaxerror": 6, "driver": 6, "conflict": 6, "drive": [6, 15], "alreadi": [6, 15, 23], "clearli": 6, "meaning": 6, "inher": 6, "answer": 6, "greatli": 6, "analyz": 6, "snippet": 6, "determin": 6, "tailor": 6, "fsm": 6, "context": 6, "timer": [6, 15], "els": [6, 15, 17], "superfici": 6, "imper": 6, "insid": 6, "observ": 6, "satisfi": 6, "given": [6, 19, 21], "uncondition": 6, "account": 6, "whenev": [6, 19], "shorten": 6, "stabl": 6, "latch": [6, 23], "unstabl": 6, "ring": 6, "oscil": [6, 15], "prohibit": 6, "current": [6, 19], "assumpt": 6, "aren": 6, "silent": 6, "miscompil": 6, "though": 6, "hazard": 6, "exceedingli": 6, "desir": 6, "technologi": 6, "lut": 6, "transit": 6, "section": [7, 15, 16, 21], "latticeecp5platform": [7, 10], "apicula": 8, "nextpnr": [8, 9, 10, 11, 14], "gowin_pack": 8, "popul": [8, 9, 10, 11, 12, 13, 14, 21], "amaranth_env_apicula": 8, "product": [8, 9, 10, 11, 12, 14], "gw_sh": 8, "amaranth_env_gowin": 8, "quartu": 9, "quartus_map": 9, "quartus_fit": 9, "quartus_asm": 9, "quartus_sta": 9, "amaranth_env_quartu": 9, "qsf": 9, "sdc": [9, 11], "nproc": 9, "quartus_map_opt": 9, "extra": [9, 10, 11, 14], "quartus_fit_opt": 9, "quartus_asm_opt": 9, "quartus_sta_opt": 9, "rpt": [9, 10, 11, 14], "sof": 9, "rbf": 9, "raw": [9, 14], "amaranth_env_mistr": 9, "verbos": [9, 10, 11, 15], "read_verilog_opt": [9, 10, 11], "read_verilog": [9, 10, 11], "synth_opt": [9, 10, 11], "synth_intel_alm": 9, "script_after_read": [9, 10, 11, 14], "read_ilang": [9, 10, 11], "script_after_synth": [9, 10, 11, 14], "yosys_opt": [9, 10, 11], "nextpnr_opt": [9, 10, 11], "trelli": 10, "diamond": [10, 12], "ecppack": 10, "amaranth_env_trelli": 10, "synth_ecp5": 10, "ecppack_opt": 10, "add_prefer": [10, 12], "lpf": [10, 12], "json": [10, 11], "rtl": [10, 11, 14], "tim": [10, 11], "config": 10, "ascii": [10, 11], "jtag": [10, 12], "pnmainc": [10, 12], "ddtcmd": [10, 12], "diamond_env": [10, 12], "candid": [10, 12], "bat": [10, 12], "echo": [10, 12], "path": [10, 12], "lscc": [10, 12], "diamond_vers": [10, 12], "bin": [10, 11, 12, 14], "nt64": [10, 12], "script_project": [10, 12], "prj_project": [10, 12], "tcl": [10, 11, 12, 14], "script_after_export": [10, 12], "prj_run": [10, 12], "xdc": [10, 12, 13, 14], "_impl": [10, 12], "htm": [10, 11, 12], "consolid": [10, 12], "icestorm": 11, "icecube2": 11, "icepack": 11, "amaranth_env_icestorm": 11, "synth_ice40": 11, "add_pre_pack": 11, "pre": [11, 19], "pack": 11, "pcf": [11, 14], "asc": 11, "variant": 11, "lse": 11, "synplifi": 11, "tclsh": 11, "amaranth_env_icecube2": 11, "lse_opt": 11, "script_after_add": 11, "add_fil": 11, "script_after_opt": 11, "set_opt": 11, "script_after_flow": 11, "run_sbt_backend_auto": 11, "sbt": 11, "_lse": 11, "_design": 11, "router": 11, "_time": [11, 14], "edf": 11, "edif": 11, "_lattice_machxo_2_3l": 12, "jed": 12, "jedec": 12, "fuse": 12, "symbiflow_synth": [13, 14], "symbiflow_pack": [13, 14], "symbiflow_plac": [13, 14], "symbiflow_rout": [13, 14], "symbiflow_write_fasm": [13, 14], "symbiflow_write_bitstream": [13, 14], "amaranth_env_qlsymbiflow": 13, "ISE": 14, "vivado": 14, "amaranth_env_vivado": 14, "read_xdc": 14, "synth_design": 14, "script_after_plac": 14, "place_design": 14, "script_after_rout": 14, "route_design": 14, "script_before_bitstream": 14, "write_bitstream": 14, "script_after_bitstream": 14, "vivado_opt": 14, "_timing_synth": 14, "_utilization_hierarchical_synth": 14, "_utilization_synth": 14, "_utilization_hierarchical_plac": 14, "_utilization_plac": 14, "_io": 14, "_control_set": 14, "_clock_util": 14, "_route_statu": 14, "_drc": 14, "_methodologi": 14, "_power": 14, "_rout": 14, "dcp": 14, "checkpoint": 14, "metadata": 14, "xst": 14, "ngdbuild": 14, "map": [14, 21], "par": 14, "bitgen": 14, "amaranth_env_is": 14, "script_after_run": 14, "ucf": 14, "xst_opt": 14, "ngdbuild_opt": 14, "map_opt": 14, "par_opt": 14, "bitgen_opt": 14, "compress": 14, "srp": 14, "ngc": 14, "bld": 14, "ngd": 14, "databas": 14, "_map": 14, "mrp": 14, "ncd": 14, "physic": 14, "_par": 14, "_par_pad": 14, "txt": [14, 19], "usag": 14, "drc": 14, "bgn": 14, "amaranth_env_symbiflow": 14, "fasm2fram": 14, "xc7frames2bit": 14, "amaranth_env_xrai": 14, "cursori": 15, "overview": 15, "explan": 15, "shown": 15, "up_count": 15, "py": 15, "16": [15, 19, 20, 21], "input": [15, 17, 18, 19, 23], "upcount": 15, "elaborat": 15, "increment": 15, "retain": 15, "ovf": 15, "reach": [15, 21], "__init__": [15, 21], "elabor": [15, 17], "helper": 15, "combinatori": 15, "elif": 15, "black": [15, 21], "verifi": 15, "dut": 15, "25": [15, 20], "disabl": 15, "yield": [15, 21], "_": 15, "30": [15, 20], "cycl": [15, 17, 19, 23], "clear": 15, "add_clock": 15, "1e": 15, "mhz": 15, "add_sync_process": 15, "write_vcd": 15, "inspect": 15, "successfulli": 15, "still": [15, 17, 24], "de": 15, "facto": 15, "interoper": 15, "correspond": [15, 19, 21], "rise": [15, 23], "lightli": 15, "clk": 15, "rst": 15, "src": 15, "ir": 15, "526": 15, "26": 15, "27": 15, "h0000": 15, "35": 15, "41": 15, "h19": 15, "h1": 15, "posedg": 15, "37": 15, "casez": 15, "38": 15, "40": [15, 20], "endcas": 15, "xfrm": 15, "518": 15, "endmodul": 15, "aid": 15, "unfortun": 15, "standalon": 15, "adapt": 15, "frequenc": [15, 17], "hz": 15, "ledblink": 15, "half_freq": 15, "default_clk_frequ": 15, "icestick": 15, "evalu": 15, "link": 15, "foss": 15, "probabl": 15, "icestickplatform": 15, "do_program": 15, "choos": 15, "benefit": 15, "turnkei": 15, "abil": [15, 22], "metaclass": 16, "layout": 16, "One": [16, 21], "hot": 16, "prioriti": 16, "grai": 16, "ffsynchron": [16, 17], "resetsynchron": [16, 17], "algorithm": [16, 19], "processor": [16, 19], "syncfifobuff": [16, 23], "asyncfifobuff": [16, 23], "resynchronis": 17, "flip": 17, "flop": 17, "metast": 17, "guarante": 17, "synchronis": 17, "o_domain": 17, "str": [17, 21, 23], "unaffect": 17, "stage": 17, "lowest": 17, "mtbf": 17, "cost": 17, "increas": [17, 23], "latenc": [17, 19, 23], "max_input_delai": 17, "float": [17, 21], "maximum": 17, "second": [17, 21], "fail": 17, "safest": 17, "load": 17, "valid": [17, 19, 21, 23], "target": [17, 21], "asic": 17, "arbitrari": [17, 21], "warm": 17, "insuffici": 17, "deassert": 17, "get_ff_sync": 17, "cell": 17, "primarili": 17, "async_edg": 17, "po": 17, "get_async_ff_sync": 17, "gate": 17, "yet": 17, "promptli": 17, "arst": 17, "get_reset_sync": 17, "puls": 17, "duti": 17, "ratio": 17, "drop": [17, 22], "i_domain": 17, "encod": 18, "indic": [18, 19, 21], "invalid": 18, "decod": 18, "th": 18, "priorityencod": 18, "prioritydecod": 18, "grayencod": 18, "graydecod": 18, "comput": 19, "polynomi": [19, 20], "commonli": 19, "catalog": [19, 20], "accommod": [19, 21], "data_width": [19, 20], "obtain": 19, "fulli": 19, "crc16": 19, "ccitt": 19, "byte": [19, 21], "crc16_ccitt": [19, 20], "algo": 19, "crc_width": [19, 20], "0x1021": [19, 20], "initial_crc": [19, 20], "0xffff": [19, 20], "reflect_input": [19, 20], "reflect_output": [19, 20], "xor_output": [19, 20], "0x0000": [19, 20], "123456789": 19, "0x29b1": 19, "exclud": 19, "william": 19, "painless": 19, "www": 19, "ross": 19, "net": 19, "crc_v3": 19, "reveng": [19, 20], "catalogu": 19, "parameteris": 19, "crcmod": 19, "lead": 19, "polynomin": 19, "init": [19, 21], "zoo": 19, "entri": [19, 20, 23], "x": 19, "highest": 19, "order": [19, 21], "transmiss": 19, "littl": 19, "endian": 19, "multi": 19, "0x4e4c": 19, "transmit": 19, "octet": 19, "0x4c": 19, "0x4e": 19, "addition": 19, "properti": [19, 21], "residu": 19, "codeword": 19, "bitwidth": 19, "arg": 19, "src_loc_at": 19, "kwarg": 19, "stream": 19, "handl": [19, 23], "subsequ": 19, "throughput": 19, "per": 19, "classic": 19, "serial": 19, "galoi": 19, "shift": 19, "parallel": 19, "match_detect": 19, "trail": 19, "initialis": 19, "simultan": 19, "receiv": 19, "crc3_gsm": [19, 20], "crc3_rohc": [19, 20], "crc4_g_704": [19, 20], "crc4_itu": [19, 20], "crc4_interlaken": [19, 20], "crc5_epc_c1g2": [19, 20], "crc5_epc": [19, 20], "crc5_g_704": [19, 20], "crc5_itu": [19, 20], "crc5_usb": [19, 20], "crc6_cdma2000_a": [19, 20], "crc6_cdma2000_b": [19, 20], "crc6_darc": [19, 20], "crc6_g_704": [19, 20], "crc6_itu": [19, 20], "crc6_gsm": [19, 20], "crc7_mmc": [19, 20], "crc7_rohc": [19, 20], "crc7_umt": [19, 20], "crc8_autosar": [19, 20], "crc8_bluetooth": [19, 20], "crc8_cdma2000": [19, 20], "crc8_darc": [19, 20], "crc8_dvb_s2": [19, 20], "crc8_gsm_a": [19, 20], "crc8_gsm_b": [19, 20], "crc8_hitag": [19, 20], "crc8_i_432_1": [19, 20], "crc8_itu": [19, 20], "crc8_i_cod": [19, 20], "crc8_lte": [19, 20], "crc8_maxim_dow": [19, 20], "crc8_maxim": [19, 20], "crc8_mifare_mad": [19, 20], "crc8_nrsc_5": [19, 20], "crc8_opensafeti": [19, 20], "crc8_rohc": [19, 20], "crc8_sae_j1850": [19, 20], "crc8_smbu": [19, 20], "crc8_tech_3250": [19, 20], "crc8_ae": [19, 20], "crc8_etu": [19, 20], "crc8_wcdma": [19, 20], "crc10_atm": [19, 20], "crc10_i_610": [19, 20], "crc10_cdma2000": [19, 20], "crc10_gsm": [19, 20], "crc11_flexrai": [19, 20], "crc11_umt": [19, 20], "crc12_cdma2000": [19, 20], "crc12_dect": [19, 20], "crc12_gsm": [19, 20], "crc12_umt": [19, 20], "crc12_3gpp": [19, 20], "crc13_bbc": [19, 20], "crc14_darc": [19, 20], "crc14_gsm": [19, 20], "crc15_can": [19, 20], "crc15_mpt1327": [19, 20], "crc16_arc": [19, 20], "crc16_ibm": [19, 20], "crc16_cdma2000": [19, 20], "crc16_cm": [19, 20], "crc16_dds_110": [19, 20], "crc16_dect_r": [19, 20], "crc16_dect_x": [19, 20], "crc16_dnp": [19, 20], "crc16_en_13757": [19, 20], "crc16_genibu": [19, 20], "crc16_darc": [19, 20], "crc16_epc": [19, 20], "crc16_epc_c1g2": [19, 20], "crc16_i_cod": [19, 20], "crc16_gsm": [19, 20], "crc16_ibm_3740": [19, 20], "crc16_autosar": [19, 20], "crc16_ccitt_fals": [19, 20], "crc16_ibm_sdlc": [19, 20], "crc16_iso_hdlc": [19, 20], "crc16_iso_iec_14443_3_b": [19, 20], "crc16_x25": [19, 20], "crc16_iso_iec_14443_3_a": [19, 20], "crc16_kermit": [19, 20], "crc16_bluetooth": [19, 20], "crc16_ccitt_tru": [19, 20], "crc16_v_41_lsb": [19, 20], "crc16_lj1200": [19, 20], "crc16_m17": [19, 20], "crc16_maxim_dow": [19, 20], "crc16_maxim": [19, 20], "crc16_mcrf4xx": [19, 20], "crc16_modbu": [19, 20], "crc16_nrsc_5": [19, 20], "crc16_opensafety_a": [19, 20], "crc16_opensafety_b": [19, 20], "crc16_profibu": [19, 20], "crc16_iec_61158_2": [19, 20], "crc16_riello": [19, 20], "crc16_spi_fujitsu": [19, 20], "crc16_aug_ccitt": [19, 20], "crc16_t10_dif": [19, 20], "crc16_teledisk": [19, 20], "crc16_tms37157": [19, 20], "crc16_umt": [19, 20], "crc16_buypass": [19, 20], "crc16_verifon": [19, 20], "crc16_usb": [19, 20], "crc16_xmodem": [19, 20], "crc16_acorn": [19, 20], "crc16_lte": [19, 20], "crc16_v_41_msb": [19, 20], "crc16_zmodem": [19, 20], "crc17_can_fd": [19, 20], "crc21_can_fd": [19, 20], "crc24_ble": [19, 20], "crc24_flexray_a": [19, 20], "crc24_flexray_b": [19, 20], "crc24_interlaken": [19, 20], "crc24_lte_a": [19, 20], "crc24_lte_b": [19, 20], "crc24_openpgp": [19, 20], "crc24_os_9": [19, 20], "crc30_cdma": [19, 20], "crc31_philip": [19, 20], "crc32_aixm": [19, 20], "crc32_autosar": [19, 20], "crc32_base91_d": [19, 20], "crc32_bzip2": [19, 20], "crc32_aal5": [19, 20], "crc32_dect_b": [19, 20], "crc32_cd_rom_edc": [19, 20], "crc32_cksum": [19, 20], "crc32_posix": [19, 20], "crc32_iscsi": [19, 20], "crc32_base91_c": [19, 20], "crc32_castagnoli": [19, 20], "crc32_interlaken": [19, 20], "crc32_iso_hdlc": [19, 20], "crc32_adccp": [19, 20], "crc32_v_42": [19, 20], "crc32_xz": [19, 20], "crc32_pkzip": [19, 20], "crc32_ethernet": [19, 20], "crc32_jamcrc": [19, 20], "crc32_mef": [19, 20], "crc32_mpeg_2": [19, 20], "crc32_xfer": [19, 20], "crc40_gsm": [19, 20], "crc64_ecma_182": [19, 20], "crc64_go_iso": [19, 20], "crc64_m": [19, 20], "crc64_redi": [19, 20], "crc64_we": [19, 20], "crc64_xz": [19, 20], "crc64_ecma": [19, 20], "crc82_darc": [19, 20], "2023": 20, "05": 20, "crc8": 20, "0x3": 20, "0x0": [20, 21], "0x7": 20, "0xf": 20, "0x9": 20, "0x15": 20, "0x5": 20, "0x1f": 20, "0x27": 20, "0x3f": 20, "0x19": 20, "0x2f": 20, "0x4f": 20, "0x7f": [20, 21], "0x45": 20, "0xff": 20, "0xa7": 20, "0x00": 20, "0x9b": 20, "0x39": 20, "0xd5": 20, "0x1d": 20, "0x49": 20, "0x07": 20, "0x55": 20, "0xfd": 20, "0x31": 20, "0xc7": 20, "0x233": 20, "0x3d9": 20, "0x3ff": 20, "0x175": 20, "0x385": 20, "0x1a": 20, "0x307": 20, "0xf13": 20, "0xfff": 20, "0x000": 20, "0x80f": 20, "0xd31": 20, "13": 20, "0x1cf5": 20, "14": [20, 21], "0x805": 20, "0x202d": 20, "0x3fff": 20, "0x4599": 20, "0x6815": 20, "0x001": 20, "0x8005": 20, "0xc867": 20, "0x800d": 20, "0x0589": 20, "0x0001": 20, "0x3d65": 20, "0xc6c6": 20, "0x6f63": 20, "0x5935": 20, "0x080b": 20, "0x755b": 20, "0x1dcf": 20, "0xb2aa": 20, "0x1d0f": 20, "0x8bb7": 20, "0xa097": 20, "0x89ec": 20, "0x1685b": 20, "21": 20, "0x102899": 20, "0x00000": 20, "24": [20, 21], "0x00065b": 20, "0x555555": 20, "0x000000": 20, "0x5d6dcb": 20, "0xfedcba": 20, "0xabcdef": 20, "0x328b63": 20, "0xffffff": 20, "0x864cfb": 20, "0x800063": 20, "0xb704ce": 20, "0x2030b9c7": 20, "0x3fffffff": 20, "31": [20, 21], "0x4c11db7": 20, "0x7fffffff": 20, "0x814141ab": 20, "0x00000000": 20, "0xf4acfb13": 20, "0xffffffff": 20, "0xa833982b": 20, "0x04c11db7": 20, "0x8001801b": 20, "0x1edc6f41": 20, "0x741b8cd7": 20, "0x000000af": 20, "0x0004820009": 20, "0x0000000000": 20, "0xffffffffff": 20, "0x42f0e1eba9ea3693": 20, "0x0000000000000000": 20, "0x000000000000001b": 20, "0xffffffffffffffff": 20, "0x259c84cba6426349": 20, "0xad93d23594c935a9": 20, "82": 20, "0x308c0111011401440411": 20, "0x00000000000000000000": 20, "bitwis": 21, "proxi": 21, "four": 21, "relat": 21, "facil": 21, "foundat": 21, "introspect": 21, "structlayout": 21, "unionlayout": 21, "arraylayout": 21, "flexiblelayout": 21, "plain": 21, "struct": 21, "fundament": 21, "intern": 21, "pixel": 21, "rgb": 21, "grayscal": 21, "color": 21, "format": 21, "rgb565": 21, "fast": 21, "approxim": 21, "i_color": 21, "o_grai": 21, "repetit": 21, "referenc": 21, "rgb565_layout": 21, "red": 21, "green": 21, "blue": 21, "accumul": 21, "averag": 21, "intens": 21, "input_layout": 21, "i_stream": 21, "r_accum": 21, "sum": 21, "interchang": 21, "rgb_layout": 21, "r_bit": 21, "g_bit": 21, "b_bit": 21, "rgb24_layout": 21, "transform": 21, "rgblayout": 21, "super": 21, "rgbview": 21, "bright": 21, "as_valu": 21, "static": 21, "boilerpl": 21, "ieee754singl": 21, "fraction": 21, "is_subnorm": 21, "set_addr": 21, "send_data": 21, "param": 21, "biggest": 21, "cmd": 21, "0x00001234": 21, "react": 21, "immut": 21, "__eq__": 21, "compar": [21, 23], "kei": 21, "string": 21, "identifi": 21, "span": 21, "preserv": 21, "invari": 21, "obj": 21, "as_shap": [21, 22], "rais": [21, 22], "recursionerror": 21, "__iter__": 21, "__getitem__": 21, "keyerror": 21, "size": 21, "underli": 21, "had": 21, "gap": 21, "pad": 21, "altern": 21, "_1": 21, "_2": 21, "won": 21, "dictionari": 21, "plu": [21, 23], "largest": 21, "elem_shap": 21, "multipli": 21, "individu": 21, "arbitrarili": 21, "chosen": 21, "dynam": 21, "leav": 21, "rest": 21, "concis": 21, "look": 21, "repeatedli": 21, "latter": 21, "unspecifi": 21, "inout": 21, "__getattr__": 21, "attributeerror": 21, "underscor": 21, "kept": 21, "ieee": 21, "754": 21, "flt": 21, "hex": 21, "0x3f800000": 21, "0xbf800000": 21, "share": 21, "haschecksum": 21, "checksum": 21, "barehead": 21, "address": 21, "headerwithparam": 21, "bare": 21, "varint": 21, "int8": 21, "int16": 21, "0x100": 21, "flag": 22, "intflag": 22, "keyword": 22, "subi": 22, "behav": 22, "likewis": 22, "normalenum": 22, "spam": 22, "ham": 22, "enummeta": 22, "neither": 22, "nor": 22, "w_data": 23, "w_rdy": 23, "w_en": 23, "r_data": 23, "r_rdy": 23, "r_en": 23, "fallthrough": 23, "strobe": 23, "space": 23, "noth": 23, "unread": 23, "substitut": 23, "incompat": 23, "ram": 23, "exchang": 23, "r_domain": 23, "w_domain": 23, "exact_depth": 23, "remain": 23, "offici": 24, "readi": 24, "vivonomicon": 24, "kbob": 24, "robert": 24, "baruch": 24, "exercis": 24, "my": 24, "journei": 24, "david": 24, "sporn": 24, "focuss": 24, "workstat": 24}, "objects": {"amaranth.lib": [[17, 0, 0, "-", "cdc"], [18, 0, 0, "-", "coding"], [19, 0, 0, "-", "crc"], [21, 0, 0, "-", "data"], [22, 0, 0, "-", "enum"], [23, 0, 0, "-", "fifo"]], "amaranth.lib.cdc": [[17, 1, 1, "", "AsyncFFSynchronizer"], [17, 1, 1, "", "FFSynchronizer"], [17, 1, 1, "", "PulseSynchronizer"], [17, 1, 1, "", "ResetSynchronizer"]], "amaranth.lib.coding": [[18, 1, 1, "", "Decoder"], [18, 1, 1, "", "Encoder"], [18, 1, 1, "", "GrayDecoder"], [18, 1, 1, "", "GrayEncoder"], [18, 1, 1, "", "PriorityDecoder"], [18, 1, 1, "", "PriorityEncoder"]], "amaranth.lib.crc": [[19, 1, 1, "", "Algorithm"], [19, 1, 1, "", "Parameters"], [19, 1, 1, "", "Processor"], [20, 0, 0, "-", "catalog"]], "amaranth.lib.crc.Algorithm": [[19, 2, 1, "", "__call__"]], "amaranth.lib.crc.Parameters": [[19, 3, 1, "", "algorithm"], [19, 2, 1, "", "compute"], [19, 2, 1, "", "create"], [19, 2, 1, "", "residue"]], "amaranth.lib.crc.catalog": [[20, 4, 1, "", "CRC10_ATM"], [20, 4, 1, "", "CRC10_CDMA2000"], [20, 4, 1, "", "CRC10_GSM"], [20, 4, 1, "", "CRC10_I_610"], [20, 4, 1, "", "CRC11_FLEXRAY"], [20, 4, 1, "", "CRC11_UMTS"], [20, 4, 1, "", "CRC12_3GPP"], [20, 4, 1, "", "CRC12_CDMA2000"], [20, 4, 1, "", "CRC12_DECT"], [20, 4, 1, "", "CRC12_GSM"], [20, 4, 1, "", "CRC12_UMTS"], [20, 4, 1, "", "CRC13_BBC"], [20, 4, 1, "", "CRC14_DARC"], [20, 4, 1, "", "CRC14_GSM"], [20, 4, 1, "", "CRC15_CAN"], [20, 4, 1, "", "CRC15_MPT1327"], [20, 4, 1, "", "CRC16_ACORN"], [20, 4, 1, "", "CRC16_ARC"], [20, 4, 1, "", "CRC16_AUG_CCITT"], [20, 4, 1, "", "CRC16_AUTOSAR"], [20, 4, 1, "", "CRC16_BLUETOOTH"], [20, 4, 1, "", "CRC16_BUYPASS"], [20, 4, 1, "", "CRC16_CCITT"], [20, 4, 1, "", "CRC16_CCITT_FALSE"], [20, 4, 1, "", "CRC16_CCITT_TRUE"], [20, 4, 1, "", "CRC16_CDMA2000"], [20, 4, 1, "", "CRC16_CMS"], [20, 4, 1, "", "CRC16_DARC"], [20, 4, 1, "", "CRC16_DDS_110"], [20, 4, 1, "", "CRC16_DECT_R"], [20, 4, 1, "", "CRC16_DECT_X"], [20, 4, 1, "", "CRC16_DNP"], [20, 4, 1, "", "CRC16_EN_13757"], [20, 4, 1, "", "CRC16_EPC"], [20, 4, 1, "", "CRC16_EPC_C1G2"], [20, 4, 1, "", "CRC16_GENIBUS"], [20, 4, 1, "", "CRC16_GSM"], [20, 4, 1, "", "CRC16_IBM"], [20, 4, 1, "", "CRC16_IBM_3740"], [20, 4, 1, "", "CRC16_IBM_SDLC"], [20, 4, 1, "", "CRC16_IEC_61158_2"], [20, 4, 1, "", "CRC16_ISO_HDLC"], [20, 4, 1, "", "CRC16_ISO_IEC_14443_3_A"], [20, 4, 1, "", "CRC16_ISO_IEC_14443_3_B"], [20, 4, 1, "", "CRC16_I_CODE"], [20, 4, 1, "", "CRC16_KERMIT"], [20, 4, 1, "", "CRC16_LJ1200"], [20, 4, 1, "", "CRC16_LTE"], [20, 4, 1, "", "CRC16_M17"], [20, 4, 1, "", "CRC16_MAXIM"], [20, 4, 1, "", "CRC16_MAXIM_DOW"], [20, 4, 1, "", "CRC16_MCRF4XX"], [20, 4, 1, "", "CRC16_MODBUS"], [20, 4, 1, "", "CRC16_NRSC_5"], [20, 4, 1, "", "CRC16_OPENSAFETY_A"], [20, 4, 1, "", "CRC16_OPENSAFETY_B"], [20, 4, 1, "", "CRC16_PROFIBUS"], [20, 4, 1, "", "CRC16_RIELLO"], [20, 4, 1, "", "CRC16_SPI_FUJITSU"], [20, 4, 1, "", "CRC16_T10_DIF"], [20, 4, 1, "", "CRC16_TELEDISK"], [20, 4, 1, "", "CRC16_TMS37157"], [20, 4, 1, "", "CRC16_UMTS"], [20, 4, 1, "", "CRC16_USB"], [20, 4, 1, "", "CRC16_VERIFONE"], [20, 4, 1, "", "CRC16_V_41_LSB"], [20, 4, 1, "", "CRC16_V_41_MSB"], [20, 4, 1, "", "CRC16_X25"], [20, 4, 1, "", "CRC16_XMODEM"], [20, 4, 1, "", "CRC16_ZMODEM"], [20, 4, 1, "", "CRC17_CAN_FD"], [20, 4, 1, "", "CRC21_CAN_FD"], [20, 4, 1, "", "CRC24_BLE"], [20, 4, 1, "", "CRC24_FLEXRAY_A"], [20, 4, 1, "", "CRC24_FLEXRAY_B"], [20, 4, 1, "", "CRC24_INTERLAKEN"], [20, 4, 1, "", "CRC24_LTE_A"], [20, 4, 1, "", "CRC24_LTE_B"], [20, 4, 1, "", "CRC24_OPENPGP"], [20, 4, 1, "", "CRC24_OS_9"], [20, 4, 1, "", "CRC30_CDMA"], [20, 4, 1, "", "CRC31_PHILIPS"], [20, 4, 1, "", "CRC32_AAL5"], [20, 4, 1, "", "CRC32_ADCCP"], [20, 4, 1, "", "CRC32_AIXM"], [20, 4, 1, "", "CRC32_AUTOSAR"], [20, 4, 1, "", "CRC32_BASE91_C"], [20, 4, 1, "", "CRC32_BASE91_D"], [20, 4, 1, "", "CRC32_BZIP2"], [20, 4, 1, "", "CRC32_CASTAGNOLI"], [20, 4, 1, "", "CRC32_CD_ROM_EDC"], [20, 4, 1, "", "CRC32_CKSUM"], [20, 4, 1, "", "CRC32_DECT_B"], [20, 4, 1, "", "CRC32_ETHERNET"], [20, 4, 1, "", "CRC32_INTERLAKEN"], [20, 4, 1, "", "CRC32_ISCSI"], [20, 4, 1, "", "CRC32_ISO_HDLC"], [20, 4, 1, "", "CRC32_JAMCRC"], [20, 4, 1, "", "CRC32_MEF"], [20, 4, 1, "", "CRC32_MPEG_2"], [20, 4, 1, "", "CRC32_PKZIP"], [20, 4, 1, "", "CRC32_POSIX"], [20, 4, 1, "", "CRC32_V_42"], [20, 4, 1, "", "CRC32_XFER"], [20, 4, 1, "", "CRC32_XZ"], [20, 4, 1, "", "CRC3_GSM"], [20, 4, 1, "", "CRC3_ROHC"], [20, 4, 1, "", "CRC40_GSM"], [20, 4, 1, "", "CRC4_G_704"], [20, 4, 1, "", "CRC4_INTERLAKEN"], [20, 4, 1, "", "CRC4_ITU"], [20, 4, 1, "", "CRC5_EPC"], [20, 4, 1, "", "CRC5_EPC_C1G2"], [20, 4, 1, "", "CRC5_G_704"], [20, 4, 1, "", "CRC5_ITU"], [20, 4, 1, "", "CRC5_USB"], [20, 4, 1, "", "CRC64_ECMA"], [20, 4, 1, "", "CRC64_ECMA_182"], [20, 4, 1, "", "CRC64_GO_ISO"], [20, 4, 1, "", "CRC64_MS"], [20, 4, 1, "", "CRC64_REDIS"], [20, 4, 1, "", "CRC64_WE"], [20, 4, 1, "", "CRC64_XZ"], [20, 4, 1, "", "CRC6_CDMA2000_A"], [20, 4, 1, "", "CRC6_CDMA2000_B"], [20, 4, 1, "", "CRC6_DARC"], [20, 4, 1, "", "CRC6_GSM"], [20, 4, 1, "", "CRC6_G_704"], [20, 4, 1, "", "CRC6_ITU"], [20, 4, 1, "", "CRC7_MMC"], [20, 4, 1, "", "CRC7_ROHC"], [20, 4, 1, "", "CRC7_UMTS"], [20, 4, 1, "", "CRC82_DARC"], [20, 4, 1, "", "CRC8_AES"], [20, 4, 1, "", "CRC8_AUTOSAR"], [20, 4, 1, "", "CRC8_BLUETOOTH"], [20, 4, 1, "", "CRC8_CDMA2000"], [20, 4, 1, "", "CRC8_DARC"], [20, 4, 1, "", "CRC8_DVB_S2"], [20, 4, 1, "", "CRC8_ETU"], [20, 4, 1, "", "CRC8_GSM_A"], [20, 4, 1, "", "CRC8_GSM_B"], [20, 4, 1, "", "CRC8_HITAG"], [20, 4, 1, "", "CRC8_ITU"], [20, 4, 1, "", "CRC8_I_432_1"], [20, 4, 1, "", "CRC8_I_CODE"], [20, 4, 1, "", "CRC8_LTE"], [20, 4, 1, "", "CRC8_MAXIM"], [20, 4, 1, "", "CRC8_MAXIM_DOW"], [20, 4, 1, "", "CRC8_MIFARE_MAD"], [20, 4, 1, "", "CRC8_NRSC_5"], [20, 4, 1, "", "CRC8_OPENSAFETY"], [20, 4, 1, "", "CRC8_ROHC"], [20, 4, 1, "", "CRC8_SAE_J1850"], [20, 4, 1, "", "CRC8_SMBUS"], [20, 4, 1, "", "CRC8_TECH_3250"], [20, 4, 1, "", "CRC8_WCDMA"]], "amaranth.lib.data": [[21, 1, 1, "", "ArrayLayout"], [21, 1, 1, "", "Field"], [21, 1, 1, "", "FlexibleLayout"], [21, 1, 1, "", "Layout"], [21, 1, 1, "", "Struct"], [21, 1, 1, "", "StructLayout"], [21, 1, 1, "", "Union"], [21, 1, 1, "", "UnionLayout"], [21, 1, 1, "", "View"]], "amaranth.lib.data.ArrayLayout": [[21, 3, 1, "", "size"]], "amaranth.lib.data.Field": [[21, 2, 1, "", "__eq__"], [21, 3, 1, "", "width"]], "amaranth.lib.data.Layout": [[21, 2, 1, "", "__call__"], [21, 2, 1, "", "__eq__"], [21, 2, 1, "", "__getitem__"], [21, 2, 1, "", "__iter__"], [21, 2, 1, "", "as_shape"], [21, 2, 1, "", "cast"], [21, 2, 1, "", "const"], [21, 3, 1, "", "size"]], "amaranth.lib.data.StructLayout": [[21, 3, 1, "", "size"]], "amaranth.lib.data.UnionLayout": [[21, 2, 1, "", "const"], [21, 3, 1, "", "size"]], "amaranth.lib.data.View": [[21, 2, 1, "", "__getattr__"], [21, 2, 1, "", "__getitem__"], [21, 2, 1, "", "as_value"], [21, 2, 1, "", "eq"], [21, 2, 1, "", "shape"]], "amaranth.lib.enum": [[22, 1, 1, "", "Enum"], [22, 1, 1, "", "EnumMeta"], [22, 1, 1, "", "Flag"], [22, 1, 1, "", "IntEnum"], [22, 1, 1, "", "IntFlag"]], "amaranth.lib.enum.EnumMeta": [[22, 2, 1, "", "as_shape"]], "amaranth.lib.fifo": [[23, 1, 1, "", "AsyncFIFO"], [23, 1, 1, "", "AsyncFIFOBuffered"], [23, 1, 1, "", "FIFOInterface"], [23, 1, 1, "", "SyncFIFO"], [23, 1, 1, "", "SyncFIFOBuffered"]], "amaranth.vendor": [[8, 1, 1, "", "GowinPlatform"], [9, 1, 1, "", "IntelPlatform"], [10, 1, 1, "", "LatticeECP5Platform"], [11, 1, 1, "", "LatticeICE40Platform"], [12, 5, 1, "", "LatticeMachXO2Platform"], [12, 5, 1, "", "LatticeMachXO3LPlatform"], [13, 1, 1, "", "QuicklogicPlatform"], [14, 1, 1, "", "XilinxPlatform"]], "amaranth.vendor._lattice_machxo_2_3l": [[12, 1, 1, "", "LatticeMachXO2Or3LPlatform"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:data", "5": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "data", "Python data"], "5": ["py", "attribute", "Python attribute"]}, "titleterms": {"changelog": 0, "version": 0, "0": 0, "4": 0, "unreleas": 0, "migrat": 0, "from": [0, 6], "3": 0, "implement": [0, 15], "rfc": 0, "languag": [0, 3, 5, 6], "chang": [0, 1], "standard": [0, 5, 16], "librari": [0, 5, 16], "toolchain": [0, 3, 5], "platform": [0, 7], "integr": [0, 5, 7], "2": 0, "1": 0, "contribut": 1, "file": 1, "problem": 1, "report": 1, "fix": 1, "propos": 1, "new": 1, "featur": 1, "work": 1, "codebas": 1, "prepar": 1, "environ": 1, "run": 1, "testsuit": 1, "build": [1, 5], "document": [1, 2], "your": 1, "weekli": 1, "meet": 1, "amaranth": [2, 4, 5], "hdl": 2, "instal": 4, "system": [4, 5], "requir": 4, "prerequisit": 4, "latest": 4, "releas": 4, "develop": [4, 5], "snapshot": 4, "edit": 4, "board": [4, 5], "definit": [4, 5], "todo": [4, 7, 15, 16, 24], "introduct": [5, 21], "The": [5, 6], "simul": 5, "fpga": 5, "guid": 6, "prelud": 6, "shape": 6, "valu": 6, "constant": 6, "cast": 6, "integ": 6, "rang": 6, "enumer": [6, 22], "member": 6, "signal": 6, "name": 6, "initi": 6, "reset": 6, "less": 6, "data": [6, 21], "structur": [6, 21], "oper": 6, "perform": 6, "describ": 6, "comput": 6, "width": 6, "extens": 6, "arithmet": 6, "comparison": 6, "bitwis": 6, "shift": 6, "rotat": 6, "reduct": 6, "logic": 6, "bit": 6, "sequenc": 6, "convers": [6, 18], "choic": 6, "modul": 6, "control": 6, "domain": [6, 17], "assign": 6, "target": 6, "order": 6, "activ": 6, "inact": 6, "combinatori": 6, "evalu": 6, "synchron": 6, "gowin": 8, "intel": 9, "lattic": [10, 11, 12], "ecp5": 10, "ice40": 11, "machxo2": 12, "machxo3l": 12, "quicklog": 13, "xilinx": 14, "get": 15, "start": 15, "A": 15, "counter": 15, "test": 15, "convert": 15, "blink": 15, "led": 15, "clock": 17, "cross": 17, "code": 18, "One": 18, "hot": 18, "prioriti": 18, "grai": 18, "cyclic": 19, "redund": 19, "check": 19, "predefin": 20, "crc": 20, "algorithm": 20, "overview": 21, "motiv": 21, "compos": 21, "layout": 21, "defin": 21, "discrimin": 21, "union": 21, "model": 21, "common": 21, "view": 21, "creat": 21, "access": 21, "custom": 21, "class": [21, 22], "metaclass": 22, "base": 22, "first": 23, "out": 23, "queue": 23, "tutori": 24}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 58}, "alltitles": {"Changelog": [[0, "changelog"]], "Version 0.4 (unreleased)": [[0, "version-0-4-unreleased"]], "Migrating from version 0.3": [[0, "migrating-from-version-0-3"]], "Implemented RFCs": [[0, "implemented-rfcs"]], "Language changes": [[0, "language-changes"], [0, "id1"]], "Standard library changes": [[0, "standard-library-changes"], [0, "id2"]], "Toolchain changes": [[0, "toolchain-changes"], [0, "id3"]], "Platform integration changes": [[0, "platform-integration-changes"], [0, "id4"]], "Version 0.3": [[0, "version-0-3"]], "Migrating from version 0.2": [[0, "migrating-from-version-0-2"]], "Versions 0.1, 0.2": [[0, "versions-0-1-0-2"]], "Contributing": [[1, "contributing"]], "Filing problem reports": [[1, "filing-problem-reports"]], "Fixing problems": [[1, "fixing-problems"]], "Proposing new features": [[1, "proposing-new-features"]], "Working with the codebase": [[1, "working-with-the-codebase"]], "Preparing the environment": [[1, "preparing-the-environment"]], "Running the testsuite": [[1, "running-the-testsuite"]], "Building the documentation": [[1, "building-the-documentation"]], "Contributing your changes": [[1, "contributing-your-changes"]], "Weekly meetings": [[1, "weekly-meetings"]], "Amaranth HDL documentation": [[2, "amaranth-hdl-documentation"]], "Language & toolchain": [[3, "language-toolchain"]], "Installation": [[4, "installation"]], "System requirements": [[4, "system-requirements"]], "Installing prerequisites": [[4, "installing-prerequisites"]], "Installing Amaranth": [[4, "installing-amaranth"]], "Latest release": [[4, "latest-release"]], "Development snapshot": [[4, "development-snapshot"]], "Editable development snapshot": [[4, "editable-development-snapshot"]], "Installing board definitions": [[4, "installing-board-definitions"]], "Todo": [[4, "id1"], [7, "id1"], [15, "id1"], [16, "id1"], [24, "id1"]], "Introduction": [[5, "introduction"], [21, "introduction"]], "The Amaranth language": [[5, "the-amaranth-language"]], "The Amaranth standard library": [[5, "the-amaranth-standard-library"]], "The Amaranth simulator": [[5, "the-amaranth-simulator"]], "The Amaranth build system": [[5, "the-amaranth-build-system"]], "FPGA toolchain integration": [[5, "fpga-toolchain-integration"]], "Development board definitions": [[5, "development-board-definitions"]], "Language guide": [[6, "language-guide"]], "The prelude": [[6, "the-prelude"]], "Shapes": [[6, "shapes"]], "Shapes of values": [[6, "shapes-of-values"]], "Values": [[6, "values"]], "Constants": [[6, "constants"]], "Shape casting": [[6, "shape-casting"]], "Shapes from integers": [[6, "shapes-from-integers"]], "Shapes from ranges": [[6, "shapes-from-ranges"]], "Shapes from enumerations": [[6, "shapes-from-enumerations"]], "Value casting": [[6, "value-casting"]], "Values from integers": [[6, "values-from-integers"]], "Values from enumeration members": [[6, "values-from-enumeration-members"]], "Constant casting": [[6, "constant-casting"]], "Signals": [[6, "signals"]], "Signal shapes": [[6, "signal-shapes"]], "Signal names": [[6, "signal-names"]], "Initial signal values": [[6, "initial-signal-values"]], "Reset-less signals": [[6, "reset-less-signals"]], "Data structures": [[6, "data-structures"], [21, "module-amaranth.lib.data"]], "Operators": [[6, "operators"]], "Performing or describing computations?": [[6, "performing-or-describing-computations"]], "Width extension": [[6, "width-extension"]], "Arithmetic operators": [[6, "arithmetic-operators"]], "Comparison operators": [[6, "comparison-operators"]], "Bitwise, shift, and rotate operators": [[6, "bitwise-shift-and-rotate-operators"]], "Reduction operators": [[6, "reduction-operators"]], "Logical operators": [[6, "logical-operators"]], "Bit sequence operators": [[6, "bit-sequence-operators"]], "Conversion operators": [[6, "conversion-operators"]], "Choice operator": [[6, "choice-operator"]], "Modules": [[6, "modules"]], "Control domains": [[6, "control-domains"]], "Assigning to signals": [[6, "assigning-to-signals"]], "Assignment targets": [[6, "assignment-targets"]], "Assignment domains": [[6, "assignment-domains"]], "Assignment order": [[6, "assignment-order"]], "Control structures": [[6, "control-structures"]], "Active and inactive assignments": [[6, "active-and-inactive-assignments"]], "Combinatorial evaluation": [[6, "combinatorial-evaluation"]], "Synchronous evaluation": [[6, "synchronous-evaluation"]], "Platform integration": [[7, "platform-integration"]], "Gowin": [[8, "gowin"]], "Intel": [[9, "intel"]], "Lattice ECP5": [[10, "lattice-ecp5"]], "Lattice iCE40": [[11, "lattice-ice40"]], "Lattice MachXO2 and MachXO3L": [[12, "lattice-machxo2-and-machxo3l"]], "Quicklogic": [[13, "quicklogic"]], "Xilinx": [[14, "xilinx"]], "Getting started": [[15, "getting-started"]], "A counter": [[15, "a-counter"]], "Implementing a counter": [[15, "implementing-a-counter"]], "Testing a counter": [[15, "testing-a-counter"]], "Converting a counter": [[15, "converting-a-counter"]], "A blinking LED": [[15, "a-blinking-led"]], "Standard library": [[16, "standard-library"]], "Clock domain crossing": [[17, "module-amaranth.lib.cdc"]], "Code conversion": [[18, "module-amaranth.lib.coding"]], "One-hot coding": [[18, "one-hot-coding"]], "Priority coding": [[18, "priority-coding"]], "Gray coding": [[18, "gray-coding"]], "Cyclic redundancy checks": [[19, "module-amaranth.lib.crc"]], "Predefined CRC Algorithms": [[20, "module-amaranth.lib.crc.catalog"]], "Overview": [[21, "overview"]], "Motivation": [[21, "motivation"]], "Composing layouts": [[21, "composing-layouts"]], "Defining layouts": [[21, "defining-layouts"]], "Discriminated unions": [[21, "discriminated-unions"]], "Modeling structured data": [[21, "modeling-structured-data"]], "Common data layouts": [[21, "common-data-layouts"]], "Data views": [[21, "data-views"]], "Creating a view": [[21, "creating-a-view"]], "Accessing a view": [[21, "accessing-a-view"]], "Custom view classes": [[21, "custom-view-classes"]], "Data classes": [[21, "data-classes"]], "Enumerations": [[22, "module-amaranth.lib.enum"]], "Metaclass": [[22, "metaclass"]], "Base classes": [[22, "base-classes"]], "First-in first-out queues": [[23, "module-amaranth.lib.fifo"]], "Tutorial": [[24, "tutorial"]]}, "indexentries": {"gowinplatform (class in amaranth.vendor)": [[8, "amaranth.vendor.GowinPlatform"]], "intelplatform (class in amaranth.vendor)": [[9, "amaranth.vendor.IntelPlatform"]], "latticeecp5platform (class in amaranth.vendor)": [[10, "amaranth.vendor.LatticeECP5Platform"]], "latticeice40platform (class in amaranth.vendor)": [[11, "amaranth.vendor.LatticeICE40Platform"]], "latticemachxo2or3lplatform (class in amaranth.vendor._lattice_machxo_2_3l)": [[12, "amaranth.vendor._lattice_machxo_2_3l.LatticeMachXO2Or3LPlatform"]], "latticemachxo2platform (in module amaranth.vendor)": [[12, "amaranth.vendor.LatticeMachXO2Platform"]], "latticemachxo3lplatform (in module amaranth.vendor)": [[12, "amaranth.vendor.LatticeMachXO3LPlatform"]], "quicklogicplatform (class in amaranth.vendor)": [[13, "amaranth.vendor.QuicklogicPlatform"]], "xilinxplatform (class in amaranth.vendor)": [[14, "amaranth.vendor.XilinxPlatform"]], "asyncffsynchronizer (class in amaranth.lib.cdc)": [[17, "amaranth.lib.cdc.AsyncFFSynchronizer"]], "ffsynchronizer (class in amaranth.lib.cdc)": [[17, "amaranth.lib.cdc.FFSynchronizer"]], "pulsesynchronizer (class in amaranth.lib.cdc)": [[17, "amaranth.lib.cdc.PulseSynchronizer"]], "resetsynchronizer (class in amaranth.lib.cdc)": [[17, "amaranth.lib.cdc.ResetSynchronizer"]], "amaranth.lib.cdc": [[17, "module-amaranth.lib.cdc"]], "module": [[17, "module-amaranth.lib.cdc"], [18, "module-amaranth.lib.coding"], [19, "module-amaranth.lib.crc"], [20, "module-amaranth.lib.crc.catalog"], [21, "module-amaranth.lib.data"], [22, "module-amaranth.lib.enum"], [23, "module-amaranth.lib.fifo"]], "decoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.Decoder"]], "encoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.Encoder"]], "graydecoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.GrayDecoder"]], "grayencoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.GrayEncoder"]], "prioritydecoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.PriorityDecoder"]], "priorityencoder (class in amaranth.lib.coding)": [[18, "amaranth.lib.coding.PriorityEncoder"]], "amaranth.lib.coding": [[18, "module-amaranth.lib.coding"]], "algorithm (class in amaranth.lib.crc)": [[19, "amaranth.lib.crc.Algorithm"]], "parameters (class in amaranth.lib.crc)": [[19, "amaranth.lib.crc.Parameters"]], "processor (class in amaranth.lib.crc)": [[19, "amaranth.lib.crc.Processor"]], "__call__() (amaranth.lib.crc.algorithm method)": [[19, "amaranth.lib.crc.Algorithm.__call__"]], "algorithm (amaranth.lib.crc.parameters property)": [[19, "amaranth.lib.crc.Parameters.algorithm"]], "amaranth.lib.crc": [[19, "module-amaranth.lib.crc"]], "compute() (amaranth.lib.crc.parameters method)": [[19, "amaranth.lib.crc.Parameters.compute"]], "create() (amaranth.lib.crc.parameters method)": [[19, "amaranth.lib.crc.Parameters.create"]], "residue() (amaranth.lib.crc.parameters method)": [[19, "amaranth.lib.crc.Parameters.residue"]], "crc10_atm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC10_ATM"]], "crc10_cdma2000 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC10_CDMA2000"]], "crc10_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC10_GSM"]], "crc10_i_610 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC10_I_610"]], "crc11_flexray (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC11_FLEXRAY"]], "crc11_umts (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC11_UMTS"]], "crc12_3gpp (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_3GPP"]], "crc12_cdma2000 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_CDMA2000"]], "crc12_dect (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_DECT"]], "crc12_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_GSM"]], "crc12_umts (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC12_UMTS"]], "crc13_bbc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC13_BBC"]], "crc14_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC14_DARC"]], "crc14_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC14_GSM"]], "crc15_can (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC15_CAN"]], "crc15_mpt1327 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC15_MPT1327"]], "crc16_acorn (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ACORN"]], "crc16_arc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ARC"]], "crc16_aug_ccitt (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_AUG_CCITT"]], "crc16_autosar (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_AUTOSAR"]], "crc16_bluetooth (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_BLUETOOTH"]], "crc16_buypass (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_BUYPASS"]], "crc16_ccitt (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CCITT"]], "crc16_ccitt_false (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CCITT_FALSE"]], "crc16_ccitt_true (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CCITT_TRUE"]], "crc16_cdma2000 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CDMA2000"]], "crc16_cms (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_CMS"]], "crc16_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DARC"]], "crc16_dds_110 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DDS_110"]], "crc16_dect_r (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DECT_R"]], "crc16_dect_x (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DECT_X"]], "crc16_dnp (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_DNP"]], "crc16_en_13757 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_EN_13757"]], "crc16_epc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_EPC"]], "crc16_epc_c1g2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_EPC_C1G2"]], "crc16_genibus (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_GENIBUS"]], "crc16_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_GSM"]], "crc16_ibm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_IBM"]], "crc16_ibm_3740 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_IBM_3740"]], "crc16_ibm_sdlc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_IBM_SDLC"]], "crc16_iec_61158_2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_IEC_61158_2"]], "crc16_iso_hdlc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ISO_HDLC"]], "crc16_iso_iec_14443_3_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ISO_IEC_14443_3_A"]], "crc16_iso_iec_14443_3_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ISO_IEC_14443_3_B"]], "crc16_i_code (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_I_CODE"]], "crc16_kermit (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_KERMIT"]], "crc16_lj1200 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_LJ1200"]], "crc16_lte (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_LTE"]], "crc16_m17 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_M17"]], "crc16_maxim (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_MAXIM"]], "crc16_maxim_dow (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_MAXIM_DOW"]], "crc16_mcrf4xx (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_MCRF4XX"]], "crc16_modbus (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_MODBUS"]], "crc16_nrsc_5 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_NRSC_5"]], "crc16_opensafety_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_OPENSAFETY_A"]], "crc16_opensafety_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_OPENSAFETY_B"]], "crc16_profibus (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_PROFIBUS"]], "crc16_riello (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_RIELLO"]], "crc16_spi_fujitsu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_SPI_FUJITSU"]], "crc16_t10_dif (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_T10_DIF"]], "crc16_teledisk (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_TELEDISK"]], "crc16_tms37157 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_TMS37157"]], "crc16_umts (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_UMTS"]], "crc16_usb (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_USB"]], "crc16_verifone (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_VERIFONE"]], "crc16_v_41_lsb (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_V_41_LSB"]], "crc16_v_41_msb (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_V_41_MSB"]], "crc16_x25 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_X25"]], "crc16_xmodem (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_XMODEM"]], "crc16_zmodem (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC16_ZMODEM"]], "crc17_can_fd (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC17_CAN_FD"]], "crc21_can_fd (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC21_CAN_FD"]], "crc24_ble (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_BLE"]], "crc24_flexray_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_FLEXRAY_A"]], "crc24_flexray_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_FLEXRAY_B"]], "crc24_interlaken (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_INTERLAKEN"]], "crc24_lte_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_LTE_A"]], "crc24_lte_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_LTE_B"]], "crc24_openpgp (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_OPENPGP"]], "crc24_os_9 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC24_OS_9"]], "crc30_cdma (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC30_CDMA"]], "crc31_philips (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC31_PHILIPS"]], "crc32_aal5 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_AAL5"]], "crc32_adccp (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_ADCCP"]], "crc32_aixm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_AIXM"]], "crc32_autosar (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_AUTOSAR"]], "crc32_base91_c (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_BASE91_C"]], "crc32_base91_d (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_BASE91_D"]], "crc32_bzip2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_BZIP2"]], "crc32_castagnoli (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_CASTAGNOLI"]], "crc32_cd_rom_edc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_CD_ROM_EDC"]], "crc32_cksum (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_CKSUM"]], "crc32_dect_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_DECT_B"]], "crc32_ethernet (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_ETHERNET"]], "crc32_interlaken (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_INTERLAKEN"]], "crc32_iscsi (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_ISCSI"]], "crc32_iso_hdlc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_ISO_HDLC"]], "crc32_jamcrc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_JAMCRC"]], "crc32_mef (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_MEF"]], "crc32_mpeg_2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_MPEG_2"]], "crc32_pkzip (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_PKZIP"]], "crc32_posix (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_POSIX"]], "crc32_v_42 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_V_42"]], "crc32_xfer (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_XFER"]], "crc32_xz (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC32_XZ"]], "crc3_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC3_GSM"]], "crc3_rohc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC3_ROHC"]], "crc40_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC40_GSM"]], "crc4_g_704 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC4_G_704"]], "crc4_interlaken (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC4_INTERLAKEN"]], "crc4_itu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC4_ITU"]], "crc5_epc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_EPC"]], "crc5_epc_c1g2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_EPC_C1G2"]], "crc5_g_704 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_G_704"]], "crc5_itu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_ITU"]], "crc5_usb (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC5_USB"]], "crc64_ecma (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_ECMA"]], "crc64_ecma_182 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_ECMA_182"]], "crc64_go_iso (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_GO_ISO"]], "crc64_ms (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_MS"]], "crc64_redis (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_REDIS"]], "crc64_we (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_WE"]], "crc64_xz (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC64_XZ"]], "crc6_cdma2000_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_CDMA2000_A"]], "crc6_cdma2000_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_CDMA2000_B"]], "crc6_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_DARC"]], "crc6_gsm (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_GSM"]], "crc6_g_704 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_G_704"]], "crc6_itu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC6_ITU"]], "crc7_mmc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC7_MMC"]], "crc7_rohc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC7_ROHC"]], "crc7_umts (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC7_UMTS"]], "crc82_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC82_DARC"]], "crc8_aes (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_AES"]], "crc8_autosar (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_AUTOSAR"]], "crc8_bluetooth (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_BLUETOOTH"]], "crc8_cdma2000 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_CDMA2000"]], "crc8_darc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_DARC"]], "crc8_dvb_s2 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_DVB_S2"]], "crc8_etu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_ETU"]], "crc8_gsm_a (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_GSM_A"]], "crc8_gsm_b (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_GSM_B"]], "crc8_hitag (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_HITAG"]], "crc8_itu (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_ITU"]], "crc8_i_432_1 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_I_432_1"]], "crc8_i_code (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_I_CODE"]], "crc8_lte (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_LTE"]], "crc8_maxim (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_MAXIM"]], "crc8_maxim_dow (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_MAXIM_DOW"]], "crc8_mifare_mad (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_MIFARE_MAD"]], "crc8_nrsc_5 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_NRSC_5"]], "crc8_opensafety (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_OPENSAFETY"]], "crc8_rohc (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_ROHC"]], "crc8_sae_j1850 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_SAE_J1850"]], "crc8_smbus (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_SMBUS"]], "crc8_tech_3250 (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_TECH_3250"]], "crc8_wcdma (in module amaranth.lib.crc.catalog)": [[20, "amaranth.lib.crc.catalog.CRC8_WCDMA"]], "amaranth.lib.crc.catalog": [[20, "module-amaranth.lib.crc.catalog"]], "arraylayout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.ArrayLayout"]], "field (class in amaranth.lib.data)": [[21, "amaranth.lib.data.Field"]], "flexiblelayout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.FlexibleLayout"]], "layout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.Layout"]], "struct (class in amaranth.lib.data)": [[21, "amaranth.lib.data.Struct"]], "structlayout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.StructLayout"]], "union (class in amaranth.lib.data)": [[21, "amaranth.lib.data.Union"]], "unionlayout (class in amaranth.lib.data)": [[21, "amaranth.lib.data.UnionLayout"]], "view (class in amaranth.lib.data)": [[21, "amaranth.lib.data.View"]], "__call__() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.__call__"]], "__eq__() (amaranth.lib.data.field method)": [[21, "amaranth.lib.data.Field.__eq__"]], "__eq__() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.__eq__"]], "__getattr__() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.__getattr__"]], "__getitem__() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.__getitem__"]], "__getitem__() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.__getitem__"]], "__iter__() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.__iter__"]], "amaranth.lib.data": [[21, "module-amaranth.lib.data"]], "as_shape() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.as_shape"]], "as_value() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.as_value"]], "cast() (amaranth.lib.data.layout static method)": [[21, "amaranth.lib.data.Layout.cast"]], "const() (amaranth.lib.data.layout method)": [[21, "amaranth.lib.data.Layout.const"]], "const() (amaranth.lib.data.unionlayout method)": [[21, "amaranth.lib.data.UnionLayout.const"]], "eq() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.eq"]], "shape() (amaranth.lib.data.view method)": [[21, "amaranth.lib.data.View.shape"]], "size (amaranth.lib.data.arraylayout property)": [[21, "amaranth.lib.data.ArrayLayout.size"]], "size (amaranth.lib.data.layout property)": [[21, "amaranth.lib.data.Layout.size"]], "size (amaranth.lib.data.structlayout property)": [[21, "amaranth.lib.data.StructLayout.size"]], "size (amaranth.lib.data.unionlayout property)": [[21, "amaranth.lib.data.UnionLayout.size"]], "width (amaranth.lib.data.field property)": [[21, "amaranth.lib.data.Field.width"]], "enum (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.Enum"]], "enummeta (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.EnumMeta"]], "flag (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.Flag"]], "intenum (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.IntEnum"]], "intflag (class in amaranth.lib.enum)": [[22, "amaranth.lib.enum.IntFlag"]], "amaranth.lib.enum": [[22, "module-amaranth.lib.enum"]], "as_shape() (amaranth.lib.enum.enummeta method)": [[22, "amaranth.lib.enum.EnumMeta.as_shape"]], "asyncfifo (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.AsyncFIFO"]], "asyncfifobuffered (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.AsyncFIFOBuffered"]], "fifointerface (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.FIFOInterface"]], "syncfifo (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.SyncFIFO"]], "syncfifobuffered (class in amaranth.lib.fifo)": [[23, "amaranth.lib.fifo.SyncFIFOBuffered"]], "amaranth.lib.fifo": [[23, "module-amaranth.lib.fifo"]]}}) \ No newline at end of file diff --git a/docs/amaranth/latest/start.html b/docs/amaranth/latest/start.html index 4c64f930..d66c389c 100644 --- a/docs/amaranth/latest/start.html +++ b/docs/amaranth/latest/start.html @@ -4,7 +4,7 @@ - Getting started — Amaranth HDL toolchain 0.4.dev224 documentation + Getting started — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/stdlib.html b/docs/amaranth/latest/stdlib.html index 2928d1b9..daeceb3d 100644 --- a/docs/amaranth/latest/stdlib.html +++ b/docs/amaranth/latest/stdlib.html @@ -4,7 +4,7 @@ - Standard library — Amaranth HDL toolchain 0.4.dev224 documentation + Standard library — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/stdlib/cdc.html b/docs/amaranth/latest/stdlib/cdc.html index 35876e08..876563d6 100644 --- a/docs/amaranth/latest/stdlib/cdc.html +++ b/docs/amaranth/latest/stdlib/cdc.html @@ -4,7 +4,7 @@ - Clock domain crossing — Amaranth HDL toolchain 0.4.dev224 documentation + Clock domain crossing — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/stdlib/coding.html b/docs/amaranth/latest/stdlib/coding.html index b9ec4754..be5ae5a4 100644 --- a/docs/amaranth/latest/stdlib/coding.html +++ b/docs/amaranth/latest/stdlib/coding.html @@ -4,7 +4,7 @@ - Code conversion — Amaranth HDL toolchain 0.4.dev224 documentation + Code conversion — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/stdlib/crc.html b/docs/amaranth/latest/stdlib/crc.html index 3676f17c..ebe11231 100644 --- a/docs/amaranth/latest/stdlib/crc.html +++ b/docs/amaranth/latest/stdlib/crc.html @@ -4,7 +4,7 @@ - Cyclic redundancy checks — Amaranth HDL toolchain 0.4.dev224 documentation + Cyclic redundancy checks — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/stdlib/crc/catalog.html b/docs/amaranth/latest/stdlib/crc/catalog.html index 99ae547e..0b2b263b 100644 --- a/docs/amaranth/latest/stdlib/crc/catalog.html +++ b/docs/amaranth/latest/stdlib/crc/catalog.html @@ -4,7 +4,7 @@ - Predefined CRC Algorithms — Amaranth HDL toolchain 0.4.dev224 documentation + Predefined CRC Algorithms — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/stdlib/data.html b/docs/amaranth/latest/stdlib/data.html index f2920a7b..c2b09b30 100644 --- a/docs/amaranth/latest/stdlib/data.html +++ b/docs/amaranth/latest/stdlib/data.html @@ -4,7 +4,7 @@ - Data structures — Amaranth HDL toolchain 0.4.dev224 documentation + Data structures — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/stdlib/enum.html b/docs/amaranth/latest/stdlib/enum.html index ef21fd98..cc1821e3 100644 --- a/docs/amaranth/latest/stdlib/enum.html +++ b/docs/amaranth/latest/stdlib/enum.html @@ -4,7 +4,7 @@ - Enumerations — Amaranth HDL toolchain 0.4.dev224 documentation + Enumerations — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    diff --git a/docs/amaranth/latest/stdlib/fifo.html b/docs/amaranth/latest/stdlib/fifo.html index 2cb77e66..b291a85b 100644 --- a/docs/amaranth/latest/stdlib/fifo.html +++ b/docs/amaranth/latest/stdlib/fifo.html @@ -4,7 +4,7 @@ - First-in first-out queues — Amaranth HDL toolchain 0.4.dev224 documentation + First-in first-out queues — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable
    @@ -110,7 +110,7 @@

    The amaranth.lib.fifo module provides building blocks for first-in, first-out queues.

    -class amaranth.lib.fifo.FIFOInterface(*, width, depth, fwft)
    +class amaranth.lib.fifo.FIFOInterface(*, width, depth, fwft=True)

    Data written to the input interface (w_data, w_rdy, w_en) is buffered and can be read at the output interface (r_data, r_rdy, r_en). The data entry written first to the input also appears first on the output.

    diff --git a/docs/amaranth/latest/tutorial.html b/docs/amaranth/latest/tutorial.html index ce43174a..3ccce4e5 100644 --- a/docs/amaranth/latest/tutorial.html +++ b/docs/amaranth/latest/tutorial.html @@ -4,7 +4,7 @@ - Tutorial — Amaranth HDL toolchain 0.4.dev224 documentation + Tutorial — Amaranth HDL toolchain 0.4.dev227 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@ Amaranth HDL toolchain
    - 0.4.dev224+ge53d784.editable + 0.4.dev227+g4e4085a.editable