diff --git a/docs/amaranth/latest/.buildinfo b/docs/amaranth/latest/.buildinfo index 97932ed1..9daa7a55 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: daf6797fb3798139525659a3eb6e3aca +config: a2f61b0e975b6cc71f02fad50855d6ea tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/amaranth/latest/.doctrees/changes.doctree b/docs/amaranth/latest/.doctrees/changes.doctree index 23affdb4..8c682f1b 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 c28b984d..aebc314b 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.doctree b/docs/amaranth/latest/.doctrees/stdlib.doctree index 7b17ff99..13d82157 100644 Binary files a/docs/amaranth/latest/.doctrees/stdlib.doctree and b/docs/amaranth/latest/.doctrees/stdlib.doctree differ diff --git a/docs/amaranth/latest/_sources/changes.rst.txt b/docs/amaranth/latest/_sources/changes.rst.txt index d7e122ba..2b1e6da5 100644 --- a/docs/amaranth/latest/_sources/changes.rst.txt +++ b/docs/amaranth/latest/_sources/changes.rst.txt @@ -32,6 +32,7 @@ Apply the following changes to code written against Amaranth 0.4 to migrate it t * Update uses of ``reset=`` keyword argument to ``init=`` * Convert uses of ``Simulator.add_sync_process`` used as testbenches to ``Simulator.add_testbench`` * Convert other uses of ``Simulator.add_sync_process`` to ``Simulator.add_process`` +* Replace uses of ``amaranth.hdl.Memory`` with ``amaranth.lib.memory.Memory`` Implemented RFCs @@ -41,12 +42,14 @@ Implemented RFCs .. _RFC 27: https://amaranth-lang.org/rfcs/0027-simulator-testbenches.html .. _RFC 39: https://amaranth-lang.org/rfcs/0039-empty-case.html .. _RFC 43: https://amaranth-lang.org/rfcs/0043-rename-reset-to-init.html +.. _RFC 45: https://amaranth-lang.org/rfcs/0045-lib-memory.html .. _RFC 46: https://amaranth-lang.org/rfcs/0046-shape-range-1.html * `RFC 17`_: Remove ``log2_int`` * `RFC 27`_: Testbench processes for the simulator * `RFC 39`_: Change semantics of no-argument ``m.Case()`` * `RFC 43`_: Rename ``reset=`` to ``init=`` +* `RFC 45`_: Move ``hdl.Memory`` to ``lib.Memory`` * `RFC 46`_: Change ``Shape.cast(range(1))`` to ``unsigned(0)`` @@ -65,6 +68,7 @@ Language changes * Changed: the ``reset=`` argument of :class:`Signal`, :meth:`Signal.like`, :class:`amaranth.lib.wiring.Member`, :class:`amaranth.lib.cdc.FFSynchronizer`, and ``m.FSM()`` has been renamed to ``init=``. (`RFC 43`_) * Changed: :class:`Shape` has been made immutable and hashable. * Deprecated: :func:`amaranth.utils.log2_int`. (`RFC 17`_) +* Deprecated: :class:`amaranth.hdl.Memory`. (`RFC 45`_) * Removed: (deprecated in 0.4) :meth:`Const.normalize`. (`RFC 5`_) * Removed: (deprecated in 0.4) :class:`Repl`. (`RFC 10`_) * Removed: (deprecated in 0.4) :class:`ast.Sample`, :class:`ast.Past`, :class:`ast.Stable`, :class:`ast.Rose`, :class:`ast.Fell`. @@ -75,6 +79,7 @@ Standard library changes .. currentmodule:: amaranth.lib +* Added: :mod:`amaranth.lib.memory`. (`RFC 45`_) * Removed: (deprecated in 0.4) :mod:`amaranth.lib.scheduler`. (`RFC 19`_) * Removed: (deprecated in 0.4) :class:`amaranth.lib.fifo.FIFOInterface` with ``fwft=False``. (`RFC 20`_) * Removed: (deprecated in 0.4) :class:`amaranth.lib.fifo.SyncFIFO` with ``fwft=False``. (`RFC 20`_) diff --git a/docs/amaranth/latest/_sources/stdlib.rst.txt b/docs/amaranth/latest/_sources/stdlib.rst.txt index 2badf819..53e0b17d 100644 --- a/docs/amaranth/latest/_sources/stdlib.rst.txt +++ b/docs/amaranth/latest/_sources/stdlib.rst.txt @@ -4,7 +4,7 @@ Standard library The :mod:`amaranth.lib` module, also known as the standard library, provides modules that falls into one of the three categories: 1. Modules that will used by essentially all idiomatic Amaranth code, and are necessary for interoperability. This includes :mod:`amaranth.lib.enum` (enumerations), :mod:`amaranth.lib.data` (data structures), and :mod:`amaranth.lib.wiring` (interfaces and components). -2. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes :mod:`amaranth.lib.cdc`. +2. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes :mod:`amaranth.lib.cdc`, :mod:`amaranth.lib.memory`. 3. Modules that have essentially one correct implementation and are of broad utility in digital designs. This includes :mod:`amaranth.lib.coding`, :mod:`amaranth.lib.fifo`, and :mod:`amaranth.lib.crc`. As part of the Amaranth backwards compatibility guarantee, any behaviors described in these documents will not change from a version to another without at least one version including a warning about the impending change. Any nontrivial change to these behaviors must also go through the public review as a part of the `Amaranth Request for Comments process `_. diff --git a/docs/amaranth/latest/_static/documentation_options.js b/docs/amaranth/latest/_static/documentation_options.js index 89897f33..7f160574 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.1.dev112', + VERSION: '0.4.1.dev113', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/amaranth/latest/changes.html b/docs/amaranth/latest/changes.html index 16ed5ac4..8fb2e9c0 100644 --- a/docs/amaranth/latest/changes.html +++ b/docs/amaranth/latest/changes.html @@ -4,7 +4,7 @@ - Changelog — Amaranth language & toolchain 0.4.1.dev112 documentation + Changelog — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
- 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
@@ -148,6 +148,7 @@

Migrating from version 0.4reset= keyword argument to init=

  • Convert uses of Simulator.add_sync_process used as testbenches to Simulator.add_testbench

  • Convert other uses of Simulator.add_sync_process to Simulator.add_process

  • +
  • Replace uses of amaranth.hdl.Memory with amaranth.lib.memory.Memory

  • @@ -157,6 +158,7 @@

    Implemented RFCsRFC 27: Testbench processes for the simulator

  • RFC 39: Change semantics of no-argument m.Case()

  • RFC 43: Rename reset= to init=

  • +
  • RFC 45: Move hdl.Memory to lib.Memory

  • RFC 46: Change Shape.cast(range(1)) to unsigned(0)

  • @@ -173,6 +175,7 @@

    Language changesreset= argument of Signal, Signal.like(), amaranth.lib.wiring.Member, amaranth.lib.cdc.FFSynchronizer, and m.FSM() has been renamed to init=. (RFC 43)

  • Changed: Shape has been made immutable and hashable.

  • Deprecated: amaranth.utils.log2_int(). (RFC 17)

  • +
  • Deprecated: amaranth.hdl.Memory. (RFC 45)

  • Removed: (deprecated in 0.4) Const.normalize(). (RFC 5)

  • Removed: (deprecated in 0.4) Repl. (RFC 10)

  • Removed: (deprecated in 0.4) ast.Sample, ast.Past, ast.Stable, ast.Rose, ast.Fell.

  • @@ -181,6 +184,7 @@

    Language changes

    Standard library changes

      +
    • Added: amaranth.lib.memory. (RFC 45)

    • Removed: (deprecated in 0.4) amaranth.lib.scheduler. (RFC 19)

    • Removed: (deprecated in 0.4) amaranth.lib.fifo.FIFOInterface with fwft=False. (RFC 20)

    • Removed: (deprecated in 0.4) amaranth.lib.fifo.SyncFIFO with fwft=False. (RFC 20)

    • diff --git a/docs/amaranth/latest/changes.rst b/docs/amaranth/latest/changes.rst index d7e122ba..2b1e6da5 100644 --- a/docs/amaranth/latest/changes.rst +++ b/docs/amaranth/latest/changes.rst @@ -32,6 +32,7 @@ Apply the following changes to code written against Amaranth 0.4 to migrate it t * Update uses of ``reset=`` keyword argument to ``init=`` * Convert uses of ``Simulator.add_sync_process`` used as testbenches to ``Simulator.add_testbench`` * Convert other uses of ``Simulator.add_sync_process`` to ``Simulator.add_process`` +* Replace uses of ``amaranth.hdl.Memory`` with ``amaranth.lib.memory.Memory`` Implemented RFCs @@ -41,12 +42,14 @@ Implemented RFCs .. _RFC 27: https://amaranth-lang.org/rfcs/0027-simulator-testbenches.html .. _RFC 39: https://amaranth-lang.org/rfcs/0039-empty-case.html .. _RFC 43: https://amaranth-lang.org/rfcs/0043-rename-reset-to-init.html +.. _RFC 45: https://amaranth-lang.org/rfcs/0045-lib-memory.html .. _RFC 46: https://amaranth-lang.org/rfcs/0046-shape-range-1.html * `RFC 17`_: Remove ``log2_int`` * `RFC 27`_: Testbench processes for the simulator * `RFC 39`_: Change semantics of no-argument ``m.Case()`` * `RFC 43`_: Rename ``reset=`` to ``init=`` +* `RFC 45`_: Move ``hdl.Memory`` to ``lib.Memory`` * `RFC 46`_: Change ``Shape.cast(range(1))`` to ``unsigned(0)`` @@ -65,6 +68,7 @@ Language changes * Changed: the ``reset=`` argument of :class:`Signal`, :meth:`Signal.like`, :class:`amaranth.lib.wiring.Member`, :class:`amaranth.lib.cdc.FFSynchronizer`, and ``m.FSM()`` has been renamed to ``init=``. (`RFC 43`_) * Changed: :class:`Shape` has been made immutable and hashable. * Deprecated: :func:`amaranth.utils.log2_int`. (`RFC 17`_) +* Deprecated: :class:`amaranth.hdl.Memory`. (`RFC 45`_) * Removed: (deprecated in 0.4) :meth:`Const.normalize`. (`RFC 5`_) * Removed: (deprecated in 0.4) :class:`Repl`. (`RFC 10`_) * Removed: (deprecated in 0.4) :class:`ast.Sample`, :class:`ast.Past`, :class:`ast.Stable`, :class:`ast.Rose`, :class:`ast.Fell`. @@ -75,6 +79,7 @@ Standard library changes .. currentmodule:: amaranth.lib +* Added: :mod:`amaranth.lib.memory`. (`RFC 45`_) * Removed: (deprecated in 0.4) :mod:`amaranth.lib.scheduler`. (`RFC 19`_) * Removed: (deprecated in 0.4) :class:`amaranth.lib.fifo.FIFOInterface` with ``fwft=False``. (`RFC 20`_) * Removed: (deprecated in 0.4) :class:`amaranth.lib.fifo.SyncFIFO` with ``fwft=False``. (`RFC 20`_) diff --git a/docs/amaranth/latest/contrib.html b/docs/amaranth/latest/contrib.html index f4de40b7..fc6d450e 100644 --- a/docs/amaranth/latest/contrib.html +++ b/docs/amaranth/latest/contrib.html @@ -4,7 +4,7 @@ - Contributing — Amaranth language & toolchain 0.4.1.dev112 documentation + Contributing — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/cover.html b/docs/amaranth/latest/cover.html index 9d5fac4c..0e404592 100644 --- a/docs/amaranth/latest/cover.html +++ b/docs/amaranth/latest/cover.html @@ -4,7 +4,7 @@ - Amaranth project documentation — Amaranth language & toolchain 0.4.1.dev112 documentation + Amaranth project documentation — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/genindex.html b/docs/amaranth/latest/genindex.html index ef9fd6b9..d6de0eaf 100644 --- a/docs/amaranth/latest/genindex.html +++ b/docs/amaranth/latest/genindex.html @@ -3,7 +3,7 @@ - Index — Amaranth language & toolchain 0.4.1.dev112 documentation + Index — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -14,7 +14,7 @@ - + @@ -36,7 +36,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/guide.html b/docs/amaranth/latest/guide.html index 23db4af6..3645b44b 100644 --- a/docs/amaranth/latest/guide.html +++ b/docs/amaranth/latest/guide.html @@ -4,7 +4,7 @@ - Language guide — Amaranth language & toolchain 0.4.1.dev112 documentation + Language guide — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/index.html b/docs/amaranth/latest/index.html index 2b78dad9..61024189 100644 --- a/docs/amaranth/latest/index.html +++ b/docs/amaranth/latest/index.html @@ -4,7 +4,7 @@ - Language & toolchain — Amaranth language & toolchain 0.4.1.dev112 documentation + Language & toolchain — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/install.html b/docs/amaranth/latest/install.html index 762f81ba..eb7e74bc 100644 --- a/docs/amaranth/latest/install.html +++ b/docs/amaranth/latest/install.html @@ -4,7 +4,7 @@ - Installation — Amaranth language & toolchain 0.4.1.dev112 documentation + Installation — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/intro.html b/docs/amaranth/latest/intro.html index 04538fbf..b68aed3e 100644 --- a/docs/amaranth/latest/intro.html +++ b/docs/amaranth/latest/intro.html @@ -4,7 +4,7 @@ - Introduction — Amaranth language & toolchain 0.4.1.dev112 documentation + Introduction — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/objects.inv b/docs/amaranth/latest/objects.inv index 16ed1930..e3c31f8f 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 c220a159..9c0da918 100644 --- a/docs/amaranth/latest/platform.html +++ b/docs/amaranth/latest/platform.html @@ -4,7 +4,7 @@ - Platform integration — Amaranth language & toolchain 0.4.1.dev112 documentation + Platform integration — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/platform/gowin.html b/docs/amaranth/latest/platform/gowin.html index 32215c2e..da2ccdad 100644 --- a/docs/amaranth/latest/platform/gowin.html +++ b/docs/amaranth/latest/platform/gowin.html @@ -4,7 +4,7 @@ - Gowin — Amaranth language & toolchain 0.4.1.dev112 documentation + Gowin — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/platform/intel.html b/docs/amaranth/latest/platform/intel.html index 9691bba3..9f4bb6d6 100644 --- a/docs/amaranth/latest/platform/intel.html +++ b/docs/amaranth/latest/platform/intel.html @@ -4,7 +4,7 @@ - Intel — Amaranth language & toolchain 0.4.1.dev112 documentation + Intel — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/platform/lattice-ecp5.html b/docs/amaranth/latest/platform/lattice-ecp5.html index 01b5f441..d15418e8 100644 --- a/docs/amaranth/latest/platform/lattice-ecp5.html +++ b/docs/amaranth/latest/platform/lattice-ecp5.html @@ -4,7 +4,7 @@ - Lattice ECP5 — Amaranth language & toolchain 0.4.1.dev112 documentation + Lattice ECP5 — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/platform/lattice-ice40.html b/docs/amaranth/latest/platform/lattice-ice40.html index 91a5e1dd..8934ab1c 100644 --- a/docs/amaranth/latest/platform/lattice-ice40.html +++ b/docs/amaranth/latest/platform/lattice-ice40.html @@ -4,7 +4,7 @@ - Lattice iCE40 — Amaranth language & toolchain 0.4.1.dev112 documentation + Lattice iCE40 — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/platform/lattice-machxo-2-3l.html b/docs/amaranth/latest/platform/lattice-machxo-2-3l.html index 3c56214d..565f8f86 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 language & toolchain 0.4.1.dev112 documentation + Lattice MachXO2 and MachXO3L — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/platform/quicklogic.html b/docs/amaranth/latest/platform/quicklogic.html index 9d3720c3..29969e5b 100644 --- a/docs/amaranth/latest/platform/quicklogic.html +++ b/docs/amaranth/latest/platform/quicklogic.html @@ -4,7 +4,7 @@ - Quicklogic — Amaranth language & toolchain 0.4.1.dev112 documentation + Quicklogic — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/platform/xilinx.html b/docs/amaranth/latest/platform/xilinx.html index 7bddef03..2cedf1a8 100644 --- a/docs/amaranth/latest/platform/xilinx.html +++ b/docs/amaranth/latest/platform/xilinx.html @@ -4,7 +4,7 @@ - Xilinx — Amaranth language & toolchain 0.4.1.dev112 documentation + Xilinx — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/py-modindex.html b/docs/amaranth/latest/py-modindex.html index 686744b6..00d1c96b 100644 --- a/docs/amaranth/latest/py-modindex.html +++ b/docs/amaranth/latest/py-modindex.html @@ -3,7 +3,7 @@ - Python Module Index — Amaranth language & toolchain 0.4.1.dev112 documentation + Python Module Index — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -14,7 +14,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/reference.html b/docs/amaranth/latest/reference.html index 0a48a65b..a1a5658a 100644 --- a/docs/amaranth/latest/reference.html +++ b/docs/amaranth/latest/reference.html @@ -4,7 +4,7 @@ - Language reference — Amaranth language & toolchain 0.4.1.dev112 documentation + Language reference — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/search.html b/docs/amaranth/latest/search.html index e7f7af29..8e40b53e 100644 --- a/docs/amaranth/latest/search.html +++ b/docs/amaranth/latest/search.html @@ -3,7 +3,7 @@ - Search — Amaranth language & toolchain 0.4.1.dev112 documentation + Search — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/searchindex.js b/docs/amaranth/latest/searchindex.js index f2284926..7100656c 100644 --- a/docs/amaranth/latest/searchindex.js +++ b/docs/amaranth/latest/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["changes", "contrib", "cover", "guide", "index", "install", "intro", "platform", "platform/gowin", "platform/intel", "platform/lattice-ecp5", "platform/lattice-ice40", "platform/lattice-machxo-2-3l", "platform/quicklogic", "platform/xilinx", "reference", "start", "stdlib", "stdlib/cdc", "stdlib/coding", "stdlib/crc", "stdlib/crc/catalog", "stdlib/data", "stdlib/enum", "stdlib/fifo", "stdlib/wiring", "tutorial"], "filenames": ["changes.rst", "contrib.rst", "cover.rst", "guide.rst", "index.rst", "install.rst", "intro.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", "reference.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", "stdlib/wiring.rst", "tutorial.rst"], "titles": ["Changelog", "Contributing", "Amaranth project documentation", "Language guide", "Language & toolchain", "Installation", "Introduction", "Platform integration", "Gowin", "Intel", "Lattice ECP5", "Lattice iCE40", "Lattice MachXO2 and MachXO3L", "Quicklogic", "Xilinx", "Language reference", "Getting started", "Standard library", "Clock domain crossing", "Code conversion", "Cyclic redundancy checks", "Predefined CRC Algorithms", "Data structures", "Enumerations", "First-in first-out queues", "Interfaces and connections", "Tutorial"], "terms": {"thi": [0, 1, 3, 4, 6, 7, 11, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25], "describ": [0, 1, 15, 16, 17, 22, 23, 25], "public": [0, 1, 15, 17, 25], "interfac": [0, 3, 4, 6, 15, 16, 17, 22, 24], "amaranth": [0, 1, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "It": [0, 1, 3, 6, 15, 16, 20, 22, 23, 25], "doe": [0, 3, 5, 6, 15, 18, 22, 24, 25], "includ": [0, 1, 3, 5, 6, 15, 16, 17, 20, 23, 25], "most": [0, 3, 5, 6, 15, 16, 18, 20, 22, 23, 25], "bug": [0, 1, 3, 5, 6], "fix": [0, 3, 4, 5, 16, 20, 25], "i": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26], "avail": [0, 3, 5, 9, 10, 11, 12, 13, 14, 16, 20, 24, 25], "onlin": 0, "The": [0, 1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26], "migen": 0, "compat": [0, 4, 5, 17], "layer": 0, "ha": [0, 1, 3, 6, 15, 16, 20, 22, 23, 24, 25], "been": [0, 5, 15, 17, 20, 24], "remov": [0, 1, 3, 15, 20, 25], "appli": [0, 3, 20, 22, 23], "follow": [0, 1, 3, 5, 6, 10, 12, 15, 16, 18, 20, 22, 23, 25, 26], "code": [0, 1, 3, 4, 5, 6, 15, 16, 17, 22, 23, 25], "written": [0, 3, 6, 16, 24, 25, 26], "against": [0, 3, 15], "replac": [0, 15, 23, 25], "us": [0, 1, 3, 5, 6, 9, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26], "m": [0, 3, 15, 16, 20, 21, 22, 25], "case": [0, 15, 16, 20, 22, 24, 25], "pattern": [0, 3, 15], "default": [0, 3, 14, 18, 20, 21, 25], "valu": [0, 4, 16, 18, 20, 22, 23, 25], "match": [0, 6, 15, 25], "const": [0, 3, 15, 22, 23, 25], "updat": [0, 1, 3, 5, 16, 20, 25], "util": [0, 15, 17, 20], "log2_int": 0, "need_pow2": 0, "fals": [0, 3, 15, 18, 20, 21, 24, 25], "ceil_log2": 0, "true": [0, 3, 15, 16, 18, 20, 21, 23, 25], "exact_log2": 0, "reset": [0, 6, 16, 18, 20, 24, 25], "keyword": [0, 3, 15, 23, 25], "argument": [0, 3, 15, 23, 25], "init": [0, 3, 15, 18, 20, 22, 25], "convert": [0, 3, 6, 15, 22, 23, 25], "simul": [0, 3, 4, 5, 16], "add_sync_process": [0, 16], "testbench": 0, "add_testbench": 0, "other": [0, 1, 3, 5, 6, 15, 16, 18, 20, 22, 23, 25], "add_process": 0, "17": [0, 1, 21, 23], "27": 0, "process": [0, 1, 3, 6, 15, 17, 20, 22, 25], "39": [0, 16], "semant": [0, 3, 6, 15, 25], "43": 0, "renam": 0, "46": 0, "shape": [0, 4, 22, 23, 25], "cast": [0, 4, 15, 22, 23, 25], "rang": [0, 15, 16, 19, 22, 24, 25], "unsign": [0, 3, 15, 22, 23, 25], "ad": [0, 3, 5, 6, 16, 22, 25], "ast": 0, "slice": [0, 3, 15, 22], "object": [0, 3, 9, 15, 20, 22, 23, 25], "have": [0, 1, 3, 5, 15, 17, 22, 25], "made": [0, 3, 5, 25], "castabl": [0, 3, 15, 22, 23, 25], "never": [0, 3, 22, 23, 25], "activ": [0, 6], "instead": [0, 3, 15, 22, 25], "alwai": [0, 3, 6, 15, 16, 18, 20, 25], "signal": [0, 4, 6, 15, 16, 18, 19, 20, 22, 23, 24, 25], "stop": [0, 3], "warn": [0, 15, 17], "hard": [0, 1, 6, 22], "error": [0, 1, 3, 6, 9, 10, 11, 20, 22, 25], "trigger": 0, "ani": [0, 1, 3, 5, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25], "out": [0, 4, 5, 6, 16, 17, 18, 19, 20, 25], "now": [0, 25], "valid": [0, 18, 20, 22, 24, 25], "without": [0, 1, 3, 6, 15, 17, 20, 22, 25], "like": [0, 1, 3, 5, 6, 15, 18, 22, 23, 25], "lib": [0, 3, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "wire": [0, 3, 16, 17, 25], "member": [0, 15, 22, 23, 25], "cdc": [0, 3, 6, 17, 18], "ffsynchron": [0, 17, 18], "fsm": 0, "immut": [0, 3, 22, 25], "hashabl": [0, 15], "deprec": [0, 15], "normal": [0, 25], "repl": 0, "10": [0, 3, 21, 22, 25], "sampl": [0, 3, 25], "stabl": [0, 3], "rose": 0, "fell": 0, "schedul": 0, "19": 0, "fifo": [0, 6, 17, 24], "fifointerfac": [0, 17, 24], "fwft": 0, "20": 0, "syncfifo": [0, 17, 24], "settl": 0, "command": [0, 1, 5, 6, 9, 10, 11, 12, 13, 14, 16, 22], "mix": [0, 3], "environ": [0, 6, 8, 9, 10, 11, 12, 13, 14], "variabl": [0, 3, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 22, 24, 25], "name": [0, 6, 8, 9, 10, 11, 12, 14, 15, 18, 22, 25], "nmigen_env_diamond": 0, "amaranth_env_diamond": [0, 10, 12], "upper": 0, "buildplan": 0, "execute_local_dock": 0, "extract": [0, 25], "build": [0, 3, 4, 5, 8, 9, 10, 11, 12, 14, 16, 18, 19, 24, 25], "sh": 0, "begin": [0, 3, 15, 16, 22, 25], "bin": [0, 10, 11, 12, 14], "run_script": 0, "execute_loc": 0, "vendor": [0, 3, 6, 8, 9, 10, 11, 12, 13, 14, 16], "intel": [0, 4, 7], "lattice_ecp5": 0, "lattice_ice40": 0, "lattice_machxo2_3l": 0, "quicklog": [0, 4, 7], "xilinx": [0, 4, 7], "18": 0, "support": [0, 1, 3, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 22, 24], "new": [0, 3, 4, 5, 6, 20, 22, 24, 25], "improv": [0, 1, 15, 22, 24, 25], "wai": [0, 1, 3, 15, 22, 23, 25], "defin": [0, 3, 6, 15, 16, 18, 20, 23, 25], "data": [0, 4, 15, 17, 18, 20, 24, 25], "structur": [0, 1, 4, 15, 16, 17, 25], "compon": [0, 2, 3, 6, 16, 17, 22], "record": [0, 1, 15, 16], "In": [0, 3, 15, 16, 22, 23, 24, 25], "departur": 0, "usual": [0, 1, 3, 6, 15, 18, 22, 23, 25], "polici": 0, "give": [0, 3, 15, 22], "design": [0, 1, 3, 5, 6, 14, 15, 16, 17, 18, 20, 22, 25, 26], "addit": [0, 1, 3, 5, 6, 15, 22, 23, 24, 25], "time": [0, 1, 3, 5, 6, 11, 15, 16, 18, 22, 24, 25], "6": [0, 3, 16, 21, 22], "one": [0, 1, 3, 15, 16, 17, 18, 19, 20, 22, 24, 25, 26], "later": [0, 1, 3], "than": [0, 3, 5, 6, 15, 18, 22, 23, 25], "enumer": [0, 4, 15, 17, 22, 25], "extend": [0, 3, 6, 15, 23, 25], "A": [0, 1, 3, 4, 5, 6, 15, 18, 20, 22, 23, 25, 26], "can": [0, 1, 3, 5, 6, 15, 16, 20, 22, 23, 24, 25], "provid": [0, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25], "an": [0, 1, 3, 5, 6, 15, 16, 18, 20, 21, 22, 23, 24, 25], "class": [0, 1, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25], "sever": [0, 1, 3, 15, 25], "extens": [0, 16], "point": [0, 11, 22], "base": [0, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 20, 22, 25], "outsid": [0, 3, 25], "core": [0, 6, 9, 25], "particular": [0, 3, 6, 22, 25], "mai": [0, 1, 3, 5, 15, 18, 20, 22, 23, 25], "return": [0, 3, 15, 16, 20, 22, 23, 25], "wrap": [0, 15, 22, 23, 25], "anoth": [0, 3, 15, 17, 22, 23, 25], "call": [0, 3, 15, 20, 21, 22, 23, 25], "protocol": [0, 15, 23], "15": [0, 16, 21], "issu": [0, 1, 3, 6], "infer": [0, 3, 6, 22], "resolv": [0, 25], "notabl": [0, 5], "b": [0, 3, 20, 23, 25], "where": [0, 1, 3, 15, 18, 20, 22, 25], "both": [0, 1, 3, 6, 15, 20, 22, 25], "ar": [0, 1, 3, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "sign": [0, 1, 3, 15, 22], "python": [0, 1, 3, 5, 6, 11, 15, 16, 22, 23, 25], "7": [0, 3, 5, 6, 21, 22], "11": [0, 21, 22], "12": [0, 3, 21], "featur": [0, 4, 15, 18, 25], "nmigen": [0, 26], "namespac": [0, 3], "annot": [0, 15, 22, 25], "recogn": [0, 15], "nmigen_": 0, "envron": 0, "remain": [0, 15, 24, 25], "had": [0, 22, 25], "sinc": [0, 3, 5, 15, 16, 20, 22, 25], "shell": 0, "amaranth_": 0, "amaranth_env_": 0, "all": [0, 1, 3, 6, 9, 15, 16, 17, 20, 21, 22, 23, 25], "uppercas": 0, "nmigen_env_": 0, "import": [0, 1, 3, 4, 16, 20, 22, 23, 25], "form": [0, 3, 20, 25], "some_vendor": 0, "somevendorplatform": 0, "reduc": [0, 3, 6, 18, 22, 25], "futur": [0, 3, 6, 25], "churn": 0, "count": [0, 3, 15, 16, 25], "replic": [0, 3, 15], "appropri": [0, 25], "depend": [0, 1, 3, 5, 6, 15, 22, 24, 25], "If": [0, 1, 5, 15, 16, 18, 19, 20, 22, 23, 24, 25], "wa": [0, 20, 22, 25], "being": [0, 1, 3, 15, 22, 24, 25, 26], "storag": [0, 15], "access": [0, 3, 21, 24, 25], "bit": [0, 5, 10, 12, 14, 15, 16, 19, 20, 22, 23, 24], "level": [0, 3, 6, 15, 16, 22, 24, 25], "represent": [0, 3, 15, 23, 25], "connect": [0, 4, 16, 17, 18], "togeth": [0, 1, 3, 25], "manual": [0, 1, 4, 5, 20, 22, 25], "instanti": [0, 3, 6, 15, 16, 18, 22], "regist": [0, 3, 6, 20, 24, 25], "e": [0, 1, 3, 15, 18, 24, 25], "g": [0, 3, 14, 15, 18, 25], "past_x": 0, "x": [0, 3, 15, 20, 25], "d": [0, 3, 16, 20, 22, 25], "sync": [0, 3, 16, 22, 25], "eq": [0, 3, 15, 16, 22, 23, 25], "nativ": [0, 6], "syntax": [0, 3, 4, 16, 22, 25], "ensur": [0, 3, 15, 23, 25], "pin": [0, 6], "instanc": [0, 4, 10, 12, 15, 20, 22, 23, 25], "request": [0, 1, 3, 15, 16, 17, 19, 25], "directli": [0, 3, 6, 15, 18, 20, 22, 23, 24, 25], "its": [0, 1, 3, 15, 16, 18, 20, 22, 23, 25], "field": [0, 22], "led": [0, 4], "cat": [0, 3, 15, 23], "n": [0, 3, 18, 19, 22], "o": [0, 2, 3, 6, 14, 18, 19], "note": [0, 3, 15, 18, 20, 22, 23], "roundrobin": 0, "inlin": 0, "copi": [0, 1, 25], "those": [0, 3, 25], "while": [0, 1, 3, 6, 15, 20, 22, 23, 25], "list": [0, 1, 3, 15, 20, 25], "below": [0, 3, 15, 16, 18, 25], "work": [0, 3, 4, 5, 6, 10, 12, 15, 16, 22, 25], "thei": [0, 1, 3, 15, 16, 20, 22, 25], "next": [0, 3, 5, 16, 24, 25], "aggreg": [0, 3, 22], "definit": [0, 3, 4, 16, 25], "constant": [0, 4, 15, 22, 23], "express": [0, 3, 22, 23, 25], "crc": [0, 17, 20], "gener": [0, 3, 6, 15, 16, 20, 25], "8": [0, 3, 5, 20, 21, 22, 25], "9": [0, 3], "initi": [0, 15, 18, 20, 22, 23, 25], "move": 0, "reorgan": 0, "lift": [0, 15, 25], "non": [0, 3, 6, 15, 18, 25], "22": 0, "valuecast": [0, 15, 22], "28": 0, "allow": [0, 3, 6, 15, 18, 23, 25], "overrid": [0, 9, 10, 11, 12, 13, 14, 15, 18, 22, 25], "oper": [0, 4, 6, 15, 22, 23, 25], "31": [0, 3, 21, 22], "type": [0, 3, 15, 20, 22, 23, 24, 25], "safeti": [0, 23], "34": 0, "pureinterfac": [0, 25], "35": [0, 5], "add": [0, 1, 3, 6, 9, 10, 11, 14, 15, 20, 22, 23, 25], "shapelik": [0, 15], "valuelik": [0, 15], "37": 0, "make": [0, 1, 3, 5, 6, 17, 23, 24], "signatur": [0, 17], "38": [0, 16], "shapecast": [0, 3, 15, 22, 23], "similar": [0, 1, 3, 15, 16, 20, 22, 25], "as_sign": [0, 3, 15], "as_unsign": [0, 3, 15], "left": [0, 3, 15, 20], "hand": 0, "side": [0, 3], "assign": [0, 15, 16, 22, 23, 25], "differ": [0, 1, 3, 6, 17, 18, 19, 22, 24, 25], "behavior": [0, 1, 3, 6, 15, 16, 17, 22, 25], "accept": [0, 1, 3, 22, 23, 25], "supersed": 0, "memori": [0, 4, 6, 15, 16, 24, 25], "transpar": [0, 3], "read": [0, 3, 22, 24, 25], "port": [0, 16, 25], "enabl": [0, 3, 6, 9, 10, 11, 16, 22, 25], "creat": [0, 1, 3, 15, 20, 21, 23, 25], "__call__": [0, 15, 20, 22, 23, 25], "method": [0, 1, 3, 15, 16, 18, 20, 22, 23, 25], "recurs": [0, 22, 25], "treat": [0, 3, 20, 25], "deriv": [0, 3, 6, 16, 22, 25], "enum": [0, 3, 15, 17, 22, 23, 25], "int": [0, 3, 15, 16, 18, 19, 20, 22, 24, 25], "intenum": [0, 3, 15, 23], "rather": [0, 3, 22, 25], "integ": [0, 15, 20, 22, 23, 25], "empti": [0, 3, 24], "explicitli": [0, 3, 15, 16, 20, 22, 23, 25], "specifi": [0, 3, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 23, 24, 25], "longer": 0, "construct": [0, 3, 6, 15, 16, 20, 22, 23, 24, 25], "were": [0, 3], "__abs__": [0, 15], "predat": 0, "width": [0, 15, 19, 20, 22, 24, 25], "tupl": [0, 3, 25], "uservalu": 0, "linter": 0, "instruct": [0, 16], "file": [0, 3, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 22, 23, 25], "text": 0, "lf": 0, "line": [0, 15, 16, 23, 25], "end": [0, 3, 6, 9, 10, 11, 12, 16], "window": [0, 5, 6, 10, 12], "debug_verilog": 0, "templatedplatform": 0, "env": 0, "run": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16], "add_fil": [0, 11], "reject": [0, 3], "absolut": [0, 3, 15], "path": [0, 10, 12], "sim": [0, 16], "step": [0, 1, 3, 5, 6, 16], "back": [0, 16, 22, 25], "pysim": 0, "invok": [0, 3, 25], "rtlil": 0, "verilog": [0, 3, 6, 16], "explicit": [0, 3, 6, 15, 20], "test": [0, 1, 6, 15, 24], "icepack_opt": 0, "latticeice40platform": [0, 3, 7, 11], "osch": 0, "default_clk": 0, "clock": [0, 4, 6, 16, 17, 20, 24], "sourc": [0, 1, 3, 4, 5, 6, 16, 22, 25], "latticemachxo2platform": [0, 7, 12], "latticemachxo3lplatform": [0, 7, 12], "xrai": [0, 14], "xilinxplatform": [0, 7, 14], "artix": 0, "ultrascal": 0, "part": [0, 1, 3, 15, 16, 17, 22, 23, 25], "gowinplatform": [0, 7, 8], "lattice_machxo2": 0, "lattice_machxo_2_3l": 0, "latticemachxo2or3lplatform": [0, 7, 12], "svf": [0, 10, 12], "program": [0, 1, 3, 6, 10, 12, 16], "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, 6, 23], "nm": 0, "prelud": [0, 4, 15], "am": [0, 3, 15], "adjust": 0, "nmigen_board": 0, "amaranth_board": [0, 16], "board": [0, 4, 16], "switch": [0, 22], "hdl": [0, 3, 5, 6, 15, 16, 26], "inherit": [0, 3, 15, 22, 24, 25], "miss": [0, 1], "fhdltestcas": 0, "assertform": 0, "necessari": [0, 1, 3, 6, 11, 15, 16, 17, 22, 25], "ab": [0, 3, 15], "rotate_left": [0, 3, 15], "rotate_right": [0, 3, 15], "shift_left": [0, 3, 15], "shift_right": [0, 3, 15], "divis": [0, 3, 15], "modulo": [0, 3, 15], "neg": [0, 3, 15, 18], "divisor": [0, 16], "pulsesynchron": [0, 17, 18], "asyncffsynchron": [0, 17, 18], "asyncfifo": [0, 17, 24], "when": [0, 1, 3, 6, 15, 16, 18, 20, 22, 23, 24, 25], "write": [0, 3, 7, 16, 24, 25], "domain": [0, 4, 6, 15, 16, 17, 24, 25], "r_rst": [0, 24], "assert": [0, 3, 15, 16, 18, 19, 20, 24, 25], "r_level": [0, 24], "w_level": [0, 24], "backend": [0, 3, 16], "larger": [0, 3, 20], "65536": 0, "emit": [0, 3, 25], "yosi": [0, 1, 5, 6, 8, 9, 10, 11, 14], "attribut": [0, 3, 6, 16, 22, 25], "instal": [0, 1, 4, 11, 16], "fall": [0, 17], "pypi": [0, 5, 6], "packag": [0, 1, 5, 16], "builtin": [0, 5], "cxxrtl": 0, "multipl": [0, 3, 6, 15, 19, 25], "fragment": [0, 3, 15], "advanc": [0, 6, 16, 25], "execute_remote_ssh": 0, "vcd": [0, 16], "output": [0, 1, 3, 11, 15, 16, 18, 19, 20, 24, 25], "top": [0, 3, 16], "bench": [0, 6, 16], "modul": [0, 4, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "contain": [0, 1, 3, 6, 15, 16, 20, 21, 22, 25], "onli": [0, 3, 5, 6, 15, 16, 18, 19, 20, 22, 23, 24, 25], "sb_lfosc": 0, "sb_hfosc": 0, "binari": [0, 3, 5, 8, 9, 10, 11, 12, 14, 19], "bitstream": [0, 8, 9, 10, 11, 12, 14, 16], "grade": [0, 26], "famili": [0, 5, 6, 22], "temperatur": 0, "speed": [0, 6], "symbiflow": [0, 13, 14], "separ": [0, 17], "flash": [0, 6, 12, 16], "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, 22, 25], "publish": 0, "under": [0, 3, 15, 22, 25], "collect": [1, 3, 6, 25], "mani": [1, 3, 6, 15, 16, 20, 25], "peopl": 1, "collabor": 1, "over": [1, 20, 22], "year": 1, "would": [1, 3, 15, 20, 22, 25], "same": [1, 3, 6, 15, 16, 20, 22, 23, 24, 25], "everyon": 1, "": [1, 3, 5, 6, 15, 16, 18, 20, 22, 24, 25, 26], "uniqu": [1, 3], "perspect": 1, "we": [1, 3], "re": [1, 20, 23], "glad": 1, "you": [1, 3, 5, 15, 18, 20], "consid": [1, 3, 6, 15, 16, 18, 22, 25, 26], "join": 1, "u": 1, "page": 1, "guid": [1, 4, 15, 16, 20, 25], "through": [1, 3, 6, 15, 17, 22, 25], "some": [1, 3, 6, 15, 16, 25], "best": 1, "tool": [1, 3, 6, 8, 9, 10, 11, 12, 13, 14, 25], "hear": 1, "about": [1, 3, 15, 17, 25], "encount": 1, "crucial": [1, 3], "do": [1, 3, 15, 16, 22, 25], "care": [1, 3], "lot": 1, "correct": [1, 3, 17, 25], "result": [1, 3, 15, 16, 22, 23, 25], "experi": [1, 3], "just": [1, 3, 22, 23], "much": 1, "meant": [1, 25], "comfort": 1, "fewer": [1, 3], "sharp": 1, "edg": [1, 3, 16, 18], "matter": [1, 22], "how": [1, 3, 5, 20, 22, 25], "technolog": 1, "appeal": 1, "might": 1, "more": [1, 3, 6, 15, 16, 22, 25], "guardrail": 1, "pleas": 1, "To": [1, 3, 5, 6, 15, 16, 20, 21, 22, 25], "go": [1, 6, 15, 17, 25], "beyond": [1, 3, 25], "see": [1, 3, 15, 16, 18, 25], "messag": [1, 3, 9, 10, 11, 15, 16, 25], "understand": [1, 3, 25], "mislead": 1, "even": [1, 3, 15, 18, 25], "especi": [1, 3, 6], "think": 1, "did": [1, 5], "someth": 1, "wrong": [1, 3, 25], "inform": [1, 9, 10, 11, 16, 22, 25], "exact": [1, 15, 22], "version": [1, 3, 4, 5, 15, 17], "which": [1, 3, 6, 11, 15, 16, 18, 20, 21, 22, 23, 24, 25], "find": 1, "c": [1, 3, 10, 12, 15, 23, 25], "print": [1, 3, 25], "__version__": 1, "complet": [1, 3, 15, 20], "self": [1, 3, 6, 15, 16, 22, 23, 25], "minim": [1, 15, 16], "demonstr": [1, 15, 16, 25], "feasibl": 1, "sequenc": [1, 15, 18, 22], "reproduc": [1, 6], "what": [1, 3, 20, 25], "expect": [1, 22, 25], "happen": [1, 3], "actual": [1, 23, 25], "possibl": [1, 3, 6, 15, 23, 25], "verbatim": 1, "log": [1, 9, 10, 11, 12, 14], "termin": 1, "For": [1, 3, 5, 15, 20, 21, 22, 23, 25], "usabl": [1, 6, 25], "reason": [1, 3, 25], "why": [1, 25], "There": [1, 3, 15, 25], "person": 1, "who": 1, "should": [1, 3, 5, 15, 16, 18, 22, 24, 25], "submit": [1, 22], "valuabl": 1, "own": [1, 3, 22], "right": [1, 3, 15, 22], "appreci": 1, "open": [1, 3, 6, 16], "commun": [1, 6, 22, 25, 26], "tend": 1, "opportun": 1, "enjoi": 1, "pull": [1, 5], "howev": [1, 3, 5, 15, 18, 22, 25], "unless": [1, 3, 15, 24, 25], "ve": 1, "few": [1, 3, 16, 22, 25], "befor": [1, 3, 5, 10, 12, 14, 25], "truli": 1, "trivial": 1, "discuss": [1, 25], "maintain": [1, 6, 18], "first": [1, 3, 4, 5, 6, 15, 16, 17, 18, 20, 22, 25], "doesn": 1, "t": [1, 3, 15, 22], "take": [1, 3, 6, 15, 20, 25], "sometim": [1, 3, 6, 25], "save": [1, 10, 12], "unnecessari": 1, "frustrat": 1, "languag": [1, 2, 16, 17, 23, 25], "toolchain": [1, 2, 3, 5, 8, 9, 10, 11, 12, 13, 14, 16], "from": [1, 5, 6, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25], "kind": [1, 3, 22, 25], "everi": [1, 3, 6, 15, 16, 18, 20, 22, 25], "unavoid": 1, "tightli": [1, 3, 25], "coupl": 1, "seemingli": 1, "obviou": 1, "appar": 1, "minor": 1, "decis": [1, 3], "dramat": 1, "consequ": [1, 6], "sure": [1, 5], "undergo": 1, "scrutini": 1, "commit": [1, 5], "impact": 1, "chanc": 1, "voic": 1, "heard": 1, "substanti": 1, "must": [1, 3, 11, 15, 17, 18, 22, 23, 25], "formal": [1, 26], "comment": [1, 15, 17], "well": [1, 3, 5, 6, 16, 22, 25], "here": [1, 15, 22, 23], "typic": [1, 6], "after": [1, 3, 5, 9, 10, 11, 12, 14, 18, 20, 24, 25], "round": [1, 24], "review": [1, 15, 17], "achiev": [1, 6], "unanim": 1, "consensu": 1, "pdm": 1, "manag": [1, 3, 22], "develop": [1, 16, 22], "workflow": [1, 5, 6, 16], "download": [1, 5, 6, 16, 20], "latest": 1, "onc": [1, 3, 15, 16, 18, 22, 25], "done": [1, 3, 15, 22, 23], "so": [1, 3, 6, 16, 18, 20, 22, 25], "dev": 1, "virtual": [1, 25], "locat": [1, 4, 5, 16, 25], "venv": 1, "runtim": 1, "itself": [1, 3, 10, 12, 15, 16, 20, 22, 23, 25], "edit": [1, 16], "mode": [1, 3], "mean": [1, 3, 15, 20, 25], "immedi": [1, 3, 5, 18], "reflect": [1, 15, 20], "pick": 1, "up": [1, 3, 16, 22, 24, 25, 26], "good": [1, 3, 10, 12], "habit": 1, "each": [1, 3, 6, 15, 20, 22, 25], "tree": [1, 3, 6], "frontend": 1, "yices2": 1, "smt": 1, "solver": 1, "These": [1, 6, 15, 22, 25], "distribut": [1, 5], "oss": 1, "cad": 1, "suit": 1, "reli": [1, 6, 25], "verif": [1, 6, 25, 26], "skip": [1, 15], "index": [1, 3, 15, 22, 25], "doc": 1, "_build": 1, "html": 1, "involv": [1, 3], "small": [1, 3, 15, 16], "iter": [1, 3, 20, 22, 25], "labor": [1, 6, 22], "rebuild": 1, "start": [1, 3, 4, 6, 20, 22, 25], "automat": [1, 3, 16, 23], "live": 1, "brows": 1, "http": [1, 5, 20], "127": [1, 3], "0": [1, 3, 4, 5, 15, 16, 19, 20, 22, 23, 25], "1": [1, 3, 4, 15, 16, 18, 20, 22, 23, 24, 25], "8000": 1, "browser": 1, "short": [1, 3, 25], "delai": [1, 18, 24], "keep": [1, 25], "ey": 1, "syntact": 1, "refer": [1, 3, 4, 20, 25], "occasion": [1, 3], "builder": 1, "persist": [1, 3], "render": 1, "incorrect": 1, "outdat": 1, "content": 1, "our": 1, "style": [1, 6], "guidelin": 1, "evolv": 1, "eventu": 1, "them": [1, 3, 15, 16, 20, 22, 25], "At": [1, 3, 6], "moment": [1, 3, 6, 16], "ask": 1, "effort": [1, 6, 16], "modifi": [1, 25], "spirit": 1, "surround": 1, "dure": [1, 3, 6, 18, 22], "doubt": 1, "mondai": 1, "00": 1, "utc": 1, "irc": 1, "channel": [1, 22], "lang": [1, 5], "libera": 1, "chat": 1, "matrix": 1, "org": 1, "bridg": 1, "appear": [1, 3, 22, 24, 25], "user": [1, 3, 5, 15, 16, 22, 23], "contributor": 1, "newli": [1, 25], "warrant": 1, "broad": [1, 17], "attent": 1, "primari": 1, "avenu": 1, "want": [1, 20, 26], "interest": [1, 15], "evolut": 1, "simpli": 1, "view": [1, 3, 17], "feel": 1, "free": 1, "attend": 1, "abl": [1, 3], "publicli": 1, "summari": 1, "post": 1, "relev": [1, 15, 25], "github": [1, 5], "thread": 1, "standard": [2, 3, 4, 9, 10, 11, 15, 16, 20, 23, 25], "system": [2, 3, 4, 16, 25], "chip": [2, 25], "toolkit": 2, "progress": [3, 4, 15], "serious": [3, 4, 15], "incomplet": [3, 4, 15], "introduc": [3, 25], "depth": [3, 24], "assum": [3, 15], "familiar": [3, 15], "digit": [3, 6, 17], "requir": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 20, 22, 25], "prior": 3, "hardwar": [3, 6, 17, 20], "descript": [3, 6, 15, 20, 22, 25], "tutori": [3, 4, 16], "introduct": [3, 4, 15, 16, 17], "detail": [3, 15, 16, 18, 20, 25], "underli": [3, 15, 22, 23], "becaus": [3, 5, 15, 22, 25], "regular": 3, "librari": [3, 4, 15, 18], "need": [3, 5, 6, 15, 18, 22, 24, 25], "root": [3, 11], "carefulli": 3, "curat": 3, "export": [3, 10, 12, 15, 23], "amount": [3, 6, 15, 16, 22], "essenti": [3, 6, 17, 25], "nearli": 3, "dedic": 3, "practic": [3, 25], "glob": [3, 15], "readabl": [3, 6, 25], "frown": 3, "upon": 3, "convent": [3, 6], "alia": [3, 12], "exampl": [3, 15, 16, 20, 21, 22, 25], "signed": [3, 15, 22, 25], "5": [3, 4, 16, 21, 22, 23], "known": [3, 6, 10, 12, 15, 17, 20, 22], "upfront": [3, 15], "conveni": [3, 5, 15, 22, 23, 25], "alias": [3, 15], "v": [3, 16], "also": [3, 6, 15, 16, 17, 20, 22, 23, 24, 25], "retriev": [3, 22, 25], "len": [3, 15, 22], "3": [3, 4, 5, 16, 21, 22, 25], "basic": [3, 16], "term": [3, 20], "number": [3, 9, 15, 18, 19, 22, 24, 25], "store": [3, 5, 22], "anywher": [3, 22], "repres": [3, 15, 23], "interpret": [3, 15, 25], "two": [3, 11, 15, 20, 22, 25], "complement": [3, 15], "simplest": 3, "ten": 3, "minus_two": 3, "2": [3, 4, 15, 16, 18, 23, 24, 25], "abov": [3, 15, 16, 25], "omit": [3, 5], "posit": [3, 15, 20, 22, 25], "smallest": 3, "As": [3, 15, 16, 17, 22], "special": [3, 6, 25], "get": [3, 4, 5, 6, 22], "4": [3, 4, 16, 21, 22, 23], "truncat": [3, 15], "fit": [3, 15], "although": [3, 6, 16, 25], "rare": [3, 15, 22, 25], "permit": 3, "360": 3, "104": 3, "129": 3, "indirectli": 3, "implicit": [3, 20], "shorthand": 3, "r": 3, "produc": [3, 6, 16, 18, 25], "larg": [3, 22, 24], "enough": [3, 15, 22], "min": 3, "max": [3, 15], "otherwis": [3, 5, 15, 16, 18, 19, 22, 25], "counter": [3, 4, 25], "whose": [3, 15, 17, 22, 23, 25], "set": [3, 9, 10, 11, 12, 14, 15, 18, 20, 24, 25, 26], "100": [3, 18], "item": [3, 20, 25], "exclus": 3, "half": 3, "element": [3, 15, 22, 24, 25], "power": [3, 6, 18, 24], "wide": [3, 15], "fencepost": 3, "256": [3, 22], "syntaxwarn": 3, "equal": [3, 15, 20, 22, 23, 25], "inclus": 3, "off": [3, 10, 12], "detect": [3, 20, 25], "diagnost": [3, 6, 15, 16, 25], "bound": 3, "subclass": [3, 15, 22, 23, 25], "finit": [3, 6], "machin": [3, 6], "multiplex": 3, "complex": [3, 6, 15, 22, 25], "distinct": 3, "direct": [3, 6, 22, 25], "bottom": 3, "funct4": 3, "sub": [3, 23], "mul": [3, 23], "prevent": [3, 15], "unwant": 3, "implement": [3, 6, 15, 17, 18, 20, 22, 23, 24, 25], "facil": [3, 22, 25], "equival": [3, 15, 22, 23, 25], "d5": 3, "d1": [3, 16, 25], "subset": [3, 22], "operand": [3, 15, 23], "numer": 3, "d26": 3, "funct": [3, 23], "op": [3, 23], "reg": [3, 16, 23], "imm": [3, 23], "instr": [3, 23], "addi": [3, 23], "expand": 3, "potenti": [3, 6, 25], "vari": 3, "respect": [3, 25], "cannot": [3, 15, 22, 23, 24, 25], "uniniti": 3, "undefin": 3, "waveform": [3, 5, 16], "viewer": [3, 5], "place": [3, 5, 6, 14, 15, 16, 23, 25], "foo": [3, 23, 25], "bar": [3, 23], "paramet": [3, 15, 16, 17, 18, 19, 20, 22, 24, 25], "foo2": 3, "second_foo": 3, "prepar": 3, "synthesi": [3, 6, 11, 14], "ambigu": 3, "zero": [3, 15, 22, 24], "none": [3, 14, 15, 16, 18, 19, 25], "resett": [3, 18], "reset_less": [3, 18], "via": [3, 5, 6, 22, 25], "resetinsert": [3, 15], "affect": [3, 5, 25], "combin": [3, 15, 22, 25], "rich": [3, 6], "themselv": 3, "concret": [3, 15, 22, 23], "goal": [3, 25], "calcul": 3, "contrast": 3, "abstract": [3, 15, 17, 22], "circuit": [3, 6, 15], "synthes": [3, 5, 6, 10, 11, 14, 16], "ordinari": [3, 6], "sig": [3, 16, 22, 23, 25], "rememb": 3, "exist": [3, 6, 20, 24, 25], "higher": [3, 15, 18], "traceback": [3, 22, 23, 25], "recent": [3, 20, 22, 23, 25], "last": [3, 5, 22, 23, 25], "typeerror": [3, 15, 22, 23, 25], "attempt": 3, "boolean": [3, 15], "therefor": [3, 20], "statement": [3, 15, 23, 25], "execut": 3, "decid": 3, "whether": [3, 6, 15, 16, 20, 25], "bodi": [3, 25], "fact": 3, "long": [3, 15, 20], "finish": [3, 16], "solv": 3, "problem": [3, 4, 25], "manipul": [3, 15, 22, 25], "OR": [3, 15, 23], "select": [3, 15], "regardless": 3, "too": 3, "unlimit": 3, "precis": [3, 22], "overflow": [3, 16, 25], "suffici": [3, 22, 25], "similarli": [3, 5, 25], "either": [3, 5, 15, 18, 19, 22, 23, 25], "128": 3, "382": 3, "signific": [3, 6, 15, 19, 20, 22], "tabl": 3, "negat": [3, 15, 23], "subtract": [3, 15], "floor": [3, 15], "due": [3, 25], "limit": [3, 6, 16, 25], "chain": [3, 18], "inequ": [3, 15], "greater": [3, 15], "effici": 3, "NOT": [3, 15], "AND": [3, 15, 23], "xor": [3, 15, 20, 23], "impli": 3, "revers": [3, 20, 25], "exponenti": 3, "wider": 3, "intermedi": 3, "stress": 3, "32": [3, 16, 21, 22, 25], "4294967296": 3, "break": [3, 15], "veri": [3, 22, 25], "sidewai": 3, "pair": [3, 15, 25], "between": [3, 6, 15, 17, 18, 19, 22, 24, 25], "unari": [3, 15], "sole": [3, 15, 25], "odd": [3, 15], "bool": [3, 15, 18, 20, 25], "conceptu": 3, "function": [3, 5, 6, 15, 16, 17, 20, 22, 25], "unlik": 3, "chang": [3, 4, 5, 6, 15, 17, 22, 25], "clariti": [3, 16, 25], "p": 3, "q": 3, "preced": 3, "wherea": [3, 25], "parenthes": 3, "around": [3, 25], "subtl": [3, 6], "en": [3, 16, 25], "addr": [3, 22, 25], "d0": [3, 22, 23], "unexpect": [3, 6], "stb": 3, "use_stb": 3, "msb": 3, "sd": 3, "misus": [3, 6], "apart": 3, "act": [3, 23, 24, 25], "concaten": [3, 25], "clash": 3, "except": [3, 15, 22, 23, 25], "least": [3, 6, 15, 17, 19, 20, 22, 24, 25], "singl": [3, 6, 15, 16, 22, 23, 25], "subscript": 3, "often": [3, 6, 22, 25], "offset": [3, 15, 22], "notat": 3, "length": [3, 22], "j": 3, "k": 3, "bit_select": [3, 15], "w": [3, 16], "overlap": [3, 15, 22], "word_select": [3, 15], "word": [3, 15, 20, 25], "talk": 3, "convention": 3, "variat": 3, "occupi": 3, "explain": [3, 5], "0th": 3, "expon": [3, 22], "mismatch": [3, 5], "caus": [3, 15, 18, 23], "confus": [3, 25], "0b1001": 3, "0b1010": 3, "0b1010_1001": 3, "val": [3, 16], "Such": [3, 25], "avoid": [3, 5, 6, 15], "seem": 3, "natur": [3, 19], "alon": 3, "easier": [3, 6], "could": [3, 17, 18, 22, 25], "ye": 3, "deliber": 3, "option": [3, 6, 9, 10, 11, 14, 16, 18, 21, 23, 25], "examin": [3, 25], "str": [3, 18, 22, 24, 25], "mask": 3, "don": 3, "whitespac": 3, "charact": 3, "compar": [3, 22, 23, 24, 25], "correspond": [3, 15, 16, 20, 22, 23, 25], "leftmost": 3, "lowest": [3, 18], "succe": 3, "correspondingli": [3, 25], "asid": [3, 25], "space": [3, 24], "tab": 3, "ignor": [3, 15, 25], "given": [3, 20, 22, 23, 25], "01": 3, "0b0000_0110": 3, "0b0000_0010": 3, "reinterpret": [3, 15], "pc": 3, "mux": [3, 15], "sel": 3, "val1": 3, "val0": 3, "condit": [3, 6, 15, 16, 23, 24], "mutabl": [3, 25], "behav": [3, 23], "proxi": [3, 22, 25], "three": [3, 15, 17], "properti": [3, 20, 22, 25], "transform": [3, 22], "origin": [3, 5, 25], "target": [3, 18, 22, 23, 25], "final": [3, 6, 25], "pixel": [3, 22], "180": 3, "92": 3, "230": 3, "74": 3, "130": 3, "115": 3, "58": 3, "becom": [3, 20, 24], "recommend": [3, 6, 15], "mutat": [3, 25], "unpredict": 3, "branch": [3, 5], "extrem": 3, "quickli": 3, "exhaust": 3, "resourc": 3, "ram": [3, 24], "unit": 3, "hierarchi": [3, 22], "independ": 3, "associ": [3, 22, 25], "fresh": 3, "group": [3, 22], "ident": [3, 15, 19, 20, 24, 25], "predefin": [3, 17, 20], "comb": [3, 16, 22, 25], "reserv": [3, 22], "specif": [3, 5, 6, 15, 18, 22, 25], "occur": 3, "asynchron": [3, 6, 18, 24], "lack": [3, 6], "feedback": [3, 25], "loop": [3, 6], "hold": [3, 15, 16, 23], "effect": [3, 25], "until": [3, 5, 15, 18, 22, 26], "0b11": 3, "d3": 3, "entir": [3, 16, 20], "def": [3, 15, 16, 22, 23, 25], "add_toggl": 3, "num": 3, "f": [3, 8, 15, 16, 25], "sync_": 3, "driven": [3, 6, 18], "undriven": 3, "exactli": [3, 15, 22, 23, 25], "dsl": 3, "syntaxerror": 3, "driver": 3, "conflict": [3, 25], "try": [3, 5], "drive": [3, 16, 25], "alreadi": [3, 16, 25], "clearli": 3, "meaning": [3, 25], "inher": 3, "answer": [3, 25], "greatli": 3, "simplifi": [3, 6], "analyz": 3, "snippet": [3, 15], "determin": [3, 15, 25], "tailor": 3, "task": [3, 6], "context": [3, 25], "timer": [3, 16], "superfici": 3, "imper": 3, "insid": [3, 25], "observ": 3, "satisfi": [3, 25], "uncondition": 3, "account": [3, 25], "further": [3, 6, 18], "cond1": 3, "cond2": 3, "parallel": [3, 20], "x_coord": 3, "is_bporch": 3, "364": 3, "is_act": 3, "374": 3, "is_fporch": 3, "within": [3, 15, 25], "present": [3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 25], "whole": 3, "full": [3, 5, 20, 25], "is_even": 3, "is_odd": 3, "too_big": 3, "whichev": 3, "earlier": 3, "cover": [3, 6, 15, 25], "programmat": 3, "particularli": 3, "easi": [3, 6], "squar": 3, "simpl": [3, 6, 16, 22, 25], "choos": [3, 16], "enter": 3, "cycl": [3, 16, 18, 20, 24], "bu": [3, 25], "transact": 3, "bus_addr": 3, "16": [3, 16, 20, 21, 22, 25], "r_data": [3, 24, 25], "r_en": [3, 24], "latch": [3, 24], "address": [3, 22, 25], "0x1234": 3, "strobe": [3, 24], "again": 3, "section": [3, 7, 16, 22, 25], "belong": 3, "dom": 3, "current": [3, 20, 25], "captur": [3, 25], "ongo": 3, "whenev": [3, 15, 20, 25], "y": [3, 25], "past": [3, 4], "typo": 3, "unreach": 3, "hazard": 3, "elimin": [3, 6, 18], "string": [3, 22, 25], "lead": [3, 20], "surpris": 3, "nest": [3, 25], "innermost": 3, "outer": [3, 25], "inner": [3, 25], "shorten": 3, "unstabl": 3, "ring": 3, "oscil": [3, 16], "prohibit": 3, "assumpt": [3, 25], "aren": 3, "silent": 3, "miscompil": 3, "though": [3, 25], "rout": [3, 5, 6, 14, 16], "exceedingli": 3, "desir": 3, "technologi": 3, "primit": [3, 6], "devic": [3, 6, 10, 11, 12], "lut": 3, "transit": 3, "configur": [3, 6, 16, 18, 20, 25], "down": 3, "increment": [3, 16], "decrement": 3, "retain": [3, 16], "clockdomain": [3, 15], "video": 3, "cd_video": 3, "local": 3, "concis": [3, 22, 25], "add_video_domain": 3, "cd": [3, 5], "video_": 3, "domain_nam": 3, "invoc": [3, 6, 16], "clk": [3, 16], "By": [3, 6], "jtag": [3, 10, 12], "clk_edg": 3, "rst": [3, 16], "high": [3, 6, 19, 22], "still": [3, 16, 18, 25, 26], "nevertheless": [3, 25], "undesir": [3, 6], "startup": 3, "subject": [3, 15, 23], "intention": 3, "undocu": 3, "enableinsert": [3, 15], "frequenc": [3, 16, 18], "phase": 3, "clocksign": [3, 15], "resetsign": [3, 15], "bus_clk": 3, "bus_rstn": 3, "found": 3, "With": [3, 5, 16, 20], "cd_sync": 3, "Be": 3, "safe": [3, 6, 18, 23], "consult": 3, "document": [3, 4, 6, 15, 16, 17, 20, 25], "your": [3, 4, 5, 15, 18, 25], "platform": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 25], "fpga": [3, 5, 16, 18, 24, 26], "disabl": [3, 16], "divid": 3, "built": [3, 6, 15, 16, 22], "smaller": 3, "subdivis": 3, "elaborat": [3, 15, 16, 25], "compos": [3, 25], "deleg": [3, 15], "netlist": [3, 6, 11, 14, 15], "receiv": [3, 20, 25], "inject": 3, "debug": [3, 5, 6, 16], "experiment": [3, 5], "twice": [3, 15, 25], "correctli": [3, 6, 16, 24, 25], "rel": 3, "guarante": [3, 15, 17, 18], "plain": [3, 22, 23], "counter_": 3, "autogener": 3, "difficult": 3, "suppli": [3, 6], "alter": 3, "input": [3, 15, 16, 18, 19, 20, 24], "map": [3, 14, 22, 25], "shorter": 3, "common": [3, 6, 16, 17], "forward": 3, "held": 3, "z": 3, "applic": [3, 5, 6, 16, 22, 25], "resetsynchron": [3, 17, 18], "reusabl": [3, 6, 16], "leav": [3, 22, 25], "domainrenam": [3, 15], "integr": [3, 4, 16, 26], "kei": [3, 15, 22, 25], "vhdl": [3, 6], "translat": 3, "entiti": 3, "Not": 3, "parameter": 3, "extern": [3, 22, 25], "pass": [3, 23, 25], "uninterpret": 3, "identifi": [3, 22], "a_anam": 3, "attr": [3, 25], "anam": 3, "p_pname": 3, "param": [3, 22], "pname": 3, "i_inam": 3, "in_val": 3, "inam": 3, "o_onam": 3, "out_val": 3, "onam": 3, "processor": [3, 17, 20], "p_width": 3, "i_clk": 3, "i_rst": 3, "i_en": 3, "i_mod": 3, "i_data_in": 3, "i_data": 3, "o_data_out": 3, "o_data": 3, "data_in": 3, "data_out": 3, "convein": 3, "adorn": 3, "flipflop": 3, "__init__": [3, 16, 22, 23, 25], "isinst": [3, 15, 25], "sb_dff": 3, "i_c": 3, "i_d": 3, "o_q": 3, "rais": [3, 15, 22, 23, 25], "notimplementederror": 3, "prerequisit": 4, "blink": 4, "arrai": [4, 15, 22, 25], "control": [4, 6, 16, 25], "flow": [4, 6, 25], "combinatori": [4, 16, 25], "evalu": [4, 16], "synchron": [4, 6, 16, 18, 24], "elabor": [4, 16, 18, 25], "backward": [4, 17], "cross": [4, 6, 17], "convers": [4, 6, 15, 17, 23, 25], "queue": [4, 17], "cyclic": [4, 17], "redund": [4, 17, 25], "check": [4, 15, 16, 17, 25], "gowin": [4, 7], "lattic": [4, 7, 16], "ecp5": [4, 7], "ice40": [4, 7, 16], "machxo2": [4, 7], "machxo3l": [4, 7], "changelog": 4, "releas": [4, 15, 18], "unreleas": 4, "contribut": 4, "report": [4, 6, 9, 11, 14, 25], "propos": 4, "codebas": 4, "weekli": 4, "meet": 4, "newer": 5, "cpython": 5, "faster": [5, 18], "pypy3": 5, "pip": 5, "23": [5, 22], "popular": 5, "softwar": [5, 20], "gtkwave": 5, "invalu": 5, "x86_64": 5, "aarch64": 5, "continu": [5, 26], "64": [5, 21], "win32": 5, "win64": 5, "unpack": 5, "upgrad": 5, "maco": 5, "homebrew": 5, "Then": 5, "brew": 5, "debian": 5, "sudo": 5, "apt": 5, "python3": [5, 16], "On": [5, 10, 12, 18], "architectur": [5, 20], "pip3": 5, "arch": 5, "linux": [5, 10, 12], "pacman": 5, "repositori": [5, 6], "main": 5, "reliabl": [5, 6, 25], "api": 5, "flux": 5, "mind": 5, "previou": [5, 20, 22], "git": 5, "com": 5, "directori": 5, "crash": 5, "clone": 5, "ff": 5, "logic": [6, 15, 16, 24], "aim": 6, "learn": [6, 26], "mistak": 6, "consist": [6, 18, 25], "restrict": [6, 22, 23, 25], "choic": 6, "industri": 6, "transfer": [6, 18, 25], "model": [6, 17, 20], "human": [6, 25], "flexibl": [6, 22], "widespread": 6, "adopt": 6, "focus": 6, "block": [6, 16, 18, 19, 24, 25], "state": [6, 15, 18], "rule": [6, 15, 22], "arithmet": [6, 15], "close": 6, "organ": 6, "seamlessli": [6, 15], "principl": [6, 25], "accident": 6, "expens": 6, "third": [6, 15, 17, 22], "parti": [6, 15, 17], "lint": 6, "synthesiz": [6, 16], "prone": [6, 22, 25], "favor": 6, "regularli": 6, "ones": [6, 15, 22, 25], "highlight": 6, "importantli": 6, "come": [6, 11], "buffer": [6, 24], "box": [6, 16], "focu": 6, "treatment": 6, "overridden": [6, 22, 25], "gear": 6, "peripher": [6, 25], "migrat": 6, "Of": 6, "cours": 6, "icaru": 6, "veril": 6, "event": 6, "slower": 6, "compil": 6, "ahead": 6, "remark": 6, "perform": [6, 15, 20, 22, 23, 25], "pure": [6, 25], "co": [6, 16], "major": [6, 25], "commerci": 6, "easili": 6, "constraint": [6, 14, 16, 18], "script": [6, 8, 9, 10, 11, 12, 13, 14], "placement": 6, "analysi": 6, "custom": [6, 16, 20, 23, 24], "insert": [6, 9, 10, 11, 12, 13, 14, 25], "portabl": 6, "remot": 6, "nix": 6, "everyth": [6, 17, 22, 23, 25], "connector": 6, "pinout": [6, 16], "probe": 6, "show": 6, "programm": 6, "establish": 6, "segment": 6, "displai": 6, "spi": 6, "sdram": 6, "reus": [6, 25], "unmodifi": 6, "polar": 6, "unifi": 6, "invers": [6, 15], "trace": 6, "low": [6, 19, 22], "invert": [6, 23], "latticeecp5platform": [7, 10], "apicula": 8, "nextpnr": [8, 9, 10, 11, 14], "gowin_pack": 8, "popul": [8, 9, 10, 11, 12, 13, 14, 22, 25], "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, 16], "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], "pnmainc": [10, 12], "ddtcmd": [10, 12], "diamond_env": [10, 12], "candid": [10, 12], "bat": [10, 12], "echo": [10, 12], "lscc": [10, 12], "diamond_vers": [10, 12], "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, 20], "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, "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, "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, 20], "usag": 14, "drc": 14, "bgn": 14, "amaranth_env_symbiflow": 14, "fasm2fram": 14, "xc7frames2bit": 14, "amaranth_env_xrai": 14, "anyth": 15, "isn": 15, "impend": [15, 17], "nontrivi": [15, 17], "notic": 15, "underscor": [15, 22, 25], "intern": [15, 22, 25], "individu": [15, 22], "kept": [15, 22], "downstream": 15, "src_loc_at": [15, 20, 25], "inspect": [15, 16], "stack": 15, "site": [15, 16], "consider": 15, "concept": [15, 25], "my_shape_cast": 15, "obj": [15, 22, 23, 25], "addition": [15, 20], "frame": 15, "obtain": [15, 20], "varieti": 15, "static": [15, 22, 25], "repeatedli": [15, 22], "as_shap": [15, 22, 23], "recursionerror": [15, 22], "__repr__": [15, 25], "mechan": 15, "illustr": [15, 25], "purpos": [15, 25], "shape_cast": 15, "value_lik": 15, "fulli": [15, 20], "idempot": 15, "propag": [15, 23], "caller": [15, 23], "arbitrari": [15, 18, 22, 23], "liter": [15, 23], "constrain": [15, 23], "valueerror": [15, 23], "latter": [15, 22], "compliant": [15, 25], "issubclass": [15, 25], "cl": [15, 25], "enummeta": [15, 23], "comput": [15, 20, 25], "abil": [15, 16, 23], "__add__": [15, 25], "bitwis": [15, 22, 23], "__invert__": [15, 23], "drop": [15, 18, 23], "union": [15, 25], "opaqu": 15, "indic": [15, 19, 20, 22, 25], "second": [15, 18, 22], "enum_shap": 15, "as_valu": [15, 22, 23], "__bool__": 15, "forbidden": [15, 25], "__pos__": 15, "__neg__": 15, "__radd__": 15, "swap": 15, "__sub__": 15, "__rsub__": 15, "__mul__": 15, "__rmul__": 15, "__floordiv__": 15, "__rfloordiv__": 15, "__mod__": 15, "remaind": 15, "__rmod__": 15, "__eq__": [15, 22, 23, 25], "comparison": [15, 23], "__ne__": 15, "__lt__": 15, "less": [15, 25], "__le__": 15, "__gt__": 15, "__ge__": 15, "deviat": 15, "wasn": 15, "imposs": [15, 25], "__and__": [15, 23], "__rand__": [15, 23], "reduct": 15, "__or__": [15, 23], "__ror__": [15, 23], "__xor__": [15, 23], "__rxor__": [15, 23], "__lshift__": 15, "shift": [15, 20], "__rlshift__": 15, "rotat": 15, "__rshift__": 15, "__rrshift__": 15, "left_right": 15, "__len__": 15, "__getitem__": [15, 22, 25], "__contains__": [15, 25], "membership": 15, "granular": 15, "success": 15, "noth": [15, 24, 25], "adjac": 15, "_": [15, 16, 25], "grammar": 15, "__hash__": 15, "hash": 15, "preclud": 15, "dict": [15, 25], "assoc": 15, "id": [15, 25], "info": 15, "implicitli": 15, "prefer": 15, "value_cast": 15, "discov": 15, "richer": 15, "badenum": 15, "cursori": 16, "overview": 16, "explan": [16, 25], "shown": [16, 25], "up_count": 16, "py": 16, "upcount": 16, "ovf": 16, "reach": [16, 22, 25], "super": [16, 22, 25], "els": [16, 18, 25], "declar": [16, 25], "helper": [16, 25], "elif": 16, "black": [16, 22], "verifi": [16, 25], "dut": 16, "25": [16, 21], "yield": [16, 22, 25], "30": [16, 21], "clear": [16, 25], "add_clock": 16, "1e": 16, "mhz": 16, "write_vcd": 16, "successfulli": 16, "de": 16, "facto": 16, "interoper": [16, 17], "rise": 16, "lightli": 16, "auto": 16, "verilog_backend": 16, "cc": 16, "2255": 16, "dump_modul": 16, "src": 16, "36": 16, "42": 16, "ir": 16, "509": 16, "29": 16, "h0000": 16, "1647": 16, "h19": 16, "h1": 16, "posedg": 16, "full_cas": 16, "xfrm": 16, "534": 16, "endmodul": 16, "aid": 16, "unfortun": 16, "standalon": [16, 25], "adapt": 16, "hz": 16, "ledblink": 16, "half_freq": 16, "default_clk_frequ": 16, "icestick": 16, "link": [16, 25], "foss": 16, "probabl": 16, "icestickplatform": 16, "do_program": 16, "benefit": 16, "turnkei": 16, "categori": 17, "idiomat": [17, 25], "metaclass": [17, 25], "layout": 17, "One": [17, 22], "hot": 17, "prioriti": 17, "grai": 17, "syncfifobuff": [17, 24], "asyncfifobuff": [17, 24], "algorithm": [17, 20], "resynchronis": 18, "flip": [18, 25], "flop": 18, "metast": 18, "synchronis": 18, "o_domain": 18, "unaffect": 18, "stage": 18, "mtbf": 18, "cost": 18, "increas": [18, 24], "latenc": [18, 20, 24], "max_input_delai": 18, "float": [18, 22], "maximum": 18, "fail": [18, 25], "safest": 18, "load": 18, "asic": 18, "warm": 18, "insuffici": 18, "deassert": 18, "get_ff_sync": 18, "cell": 18, "primarili": [18, 25], "async_edg": 18, "po": 18, "get_async_ff_sync": 18, "gate": 18, "yet": 18, "promptli": 18, "arst": 18, "get_reset_sync": 18, "puls": 18, "duti": 18, "ratio": 18, "i_domain": 18, "encod": 19, "invalid": [19, 25], "decod": [19, 25], "th": 19, "priorityencod": 19, "prioritydecod": 19, "grayencod": 19, "graydecod": 19, "polynomi": [20, 21], "commonli": 20, "catalog": [20, 21], "accommod": [20, 22], "data_width": [20, 21, 25], "crc16": 20, "ccitt": 20, "byte": [20, 22], "crc16_ccitt": [20, 21], "submodul": [20, 21, 25], "algo": 20, "crc_width": [20, 21], "0x1021": [20, 21], "initial_crc": [20, 21], "0xffff": [20, 21], "reflect_input": [20, 21], "reflect_output": [20, 21], "xor_output": [20, 21], "0x0000": [20, 21], "123456789": 20, "0x29b1": 20, "exclud": 20, "william": 20, "painless": 20, "www": 20, "ross": 20, "net": 20, "crc_v3": 20, "reveng": [20, 21], "catalogu": 20, "parameteris": 20, "crcmod": 20, "polynomin": 20, "zoo": 20, "entri": [20, 21, 24], "highest": 20, "order": [20, 22, 25], "transmiss": 20, "littl": 20, "endian": 20, "multi": 20, "0x4e4c": 20, "transmit": 20, "octet": 20, "0x4c": 20, "0x4e": 20, "residu": 20, "codeword": 20, "bitwidth": 20, "arg": [20, 22, 23, 25], "kwarg": [20, 22, 23, 25], "stream": [20, 25], "handl": [20, 24], "subsequ": 20, "throughput": 20, "per": 20, "classic": 20, "serial": 20, "galoi": 20, "match_detect": 20, "trail": 20, "initialis": 20, "simultan": 20, "crc3_gsm": [20, 21], "crc3_rohc": [20, 21], "crc4_g_704": [20, 21], "crc4_itu": [20, 21], "crc4_interlaken": [20, 21], "crc5_epc_c1g2": [20, 21], "crc5_epc": [20, 21], "crc5_g_704": [20, 21], "crc5_itu": [20, 21], "crc5_usb": [20, 21], "crc6_cdma2000_a": [20, 21], "crc6_cdma2000_b": [20, 21], "crc6_darc": [20, 21], "crc6_g_704": [20, 21], "crc6_itu": [20, 21], "crc6_gsm": [20, 21], "crc7_mmc": [20, 21], "crc7_rohc": [20, 21], "crc7_umt": [20, 21], "crc8_autosar": [20, 21], "crc8_bluetooth": [20, 21], "crc8_cdma2000": [20, 21], "crc8_darc": [20, 21], "crc8_dvb_s2": [20, 21], "crc8_gsm_a": [20, 21], "crc8_gsm_b": [20, 21], "crc8_hitag": [20, 21], "crc8_i_432_1": [20, 21], "crc8_itu": [20, 21], "crc8_i_cod": [20, 21], "crc8_lte": [20, 21], "crc8_maxim_dow": [20, 21], "crc8_maxim": [20, 21], "crc8_mifare_mad": [20, 21], "crc8_nrsc_5": [20, 21], "crc8_opensafeti": [20, 21], "crc8_rohc": [20, 21], "crc8_sae_j1850": [20, 21], "crc8_smbu": [20, 21], "crc8_tech_3250": [20, 21], "crc8_ae": [20, 21], "crc8_etu": [20, 21], "crc8_wcdma": [20, 21], "crc10_atm": [20, 21], "crc10_i_610": [20, 21], "crc10_cdma2000": [20, 21], "crc10_gsm": [20, 21], "crc11_flexrai": [20, 21], "crc11_umt": [20, 21], "crc12_cdma2000": [20, 21], "crc12_dect": [20, 21], "crc12_gsm": [20, 21], "crc12_umt": [20, 21], "crc12_3gpp": [20, 21], "crc13_bbc": [20, 21], "crc14_darc": [20, 21], "crc14_gsm": [20, 21], "crc15_can": [20, 21], "crc15_mpt1327": [20, 21], "crc16_arc": [20, 21], "crc16_ibm": [20, 21], "crc16_cdma2000": [20, 21], "crc16_cm": [20, 21], "crc16_dds_110": [20, 21], "crc16_dect_r": [20, 21], "crc16_dect_x": [20, 21], "crc16_dnp": [20, 21], "crc16_en_13757": [20, 21], "crc16_genibu": [20, 21], "crc16_darc": [20, 21], "crc16_epc": [20, 21], "crc16_epc_c1g2": [20, 21], "crc16_i_cod": [20, 21], "crc16_gsm": [20, 21], "crc16_ibm_3740": [20, 21], "crc16_autosar": [20, 21], "crc16_ccitt_fals": [20, 21], "crc16_ibm_sdlc": [20, 21], "crc16_iso_hdlc": [20, 21], "crc16_iso_iec_14443_3_b": [20, 21], "crc16_x25": [20, 21], "crc16_iso_iec_14443_3_a": [20, 21], "crc16_kermit": [20, 21], "crc16_bluetooth": [20, 21], "crc16_ccitt_tru": [20, 21], "crc16_v_41_lsb": [20, 21], "crc16_lj1200": [20, 21], "crc16_m17": [20, 21], "crc16_maxim_dow": [20, 21], "crc16_maxim": [20, 21], "crc16_mcrf4xx": [20, 21], "crc16_modbu": [20, 21], "crc16_nrsc_5": [20, 21], "crc16_opensafety_a": [20, 21], "crc16_opensafety_b": [20, 21], "crc16_profibu": [20, 21], "crc16_iec_61158_2": [20, 21], "crc16_riello": [20, 21], "crc16_spi_fujitsu": [20, 21], "crc16_aug_ccitt": [20, 21], "crc16_t10_dif": [20, 21], "crc16_teledisk": [20, 21], "crc16_tms37157": [20, 21], "crc16_umt": [20, 21], "crc16_buypass": [20, 21], "crc16_verifon": [20, 21], "crc16_usb": [20, 21], "crc16_xmodem": [20, 21], "crc16_acorn": [20, 21], "crc16_lte": [20, 21], "crc16_v_41_msb": [20, 21], "crc16_zmodem": [20, 21], "crc17_can_fd": [20, 21], "crc21_can_fd": [20, 21], "crc24_ble": [20, 21], "crc24_flexray_a": [20, 21], "crc24_flexray_b": [20, 21], "crc24_interlaken": [20, 21], "crc24_lte_a": [20, 21], "crc24_lte_b": [20, 21], "crc24_openpgp": [20, 21], "crc24_os_9": [20, 21], "crc30_cdma": [20, 21], "crc31_philip": [20, 21], "crc32_aixm": [20, 21], "crc32_autosar": [20, 21], "crc32_base91_d": [20, 21], "crc32_bzip2": [20, 21], "crc32_aal5": [20, 21], "crc32_dect_b": [20, 21], "crc32_cd_rom_edc": [20, 21], "crc32_cksum": [20, 21], "crc32_posix": [20, 21], "crc32_iscsi": [20, 21], "crc32_base91_c": [20, 21], "crc32_castagnoli": [20, 21], "crc32_interlaken": [20, 21], "crc32_iso_hdlc": [20, 21], "crc32_adccp": [20, 21], "crc32_v_42": [20, 21], "crc32_xz": [20, 21], "crc32_pkzip": [20, 21], "crc32_ethernet": [20, 21], "crc32_jamcrc": [20, 21], "crc32_mef": [20, 21], "crc32_mpeg_2": [20, 21], "crc32_xfer": [20, 21], "crc40_gsm": [20, 21], "crc64_ecma_182": [20, 21], "crc64_go_iso": [20, 21], "crc64_m": [20, 21], "crc64_redi": [20, 21], "crc64_we": [20, 21], "crc64_xz": [20, 21], "crc64_ecma": [20, 21], "crc82_darc": [20, 21], "2023": 21, "05": 21, "crc8": 21, "0x3": 21, "0x0": [21, 22], "0x7": 21, "0xf": 21, "0x9": 21, "0x15": 21, "0x5": 21, "0x1f": 21, "0x27": 21, "0x3f": 21, "0x19": 21, "0x2f": 21, "0x4f": 21, "0x7f": [21, 22], "0x45": 21, "0xff": 21, "0xa7": 21, "0x00": 21, "0x9b": 21, "0x39": 21, "0xd5": 21, "0x1d": 21, "0x49": 21, "0x07": 21, "0x55": 21, "0xfd": 21, "0x31": 21, "0xc7": 21, "0x233": 21, "0x3d9": 21, "0x3ff": 21, "0x175": 21, "0x385": 21, "0x1a": 21, "0x307": 21, "0xf13": 21, "0xfff": 21, "0x000": 21, "0x80f": 21, "0xd31": 21, "13": 21, "0x1cf5": 21, "14": [21, 22], "0x805": 21, "0x202d": 21, "0x3fff": 21, "0x4599": 21, "0x6815": 21, "0x001": 21, "0x8005": 21, "0xc867": 21, "0x800d": 21, "0x0589": 21, "0x0001": 21, "0x3d65": 21, "0xc6c6": 21, "0x6f63": 21, "0x5935": 21, "0x080b": 21, "0x755b": 21, "0x1dcf": 21, "0xb2aa": 21, "0x1d0f": 21, "0x8bb7": 21, "0xa097": 21, "0x89ec": 21, "0x1685b": 21, "21": 21, "0x102899": 21, "0x00000": 21, "24": [21, 22, 25], "0x00065b": 21, "0x555555": 21, "0x000000": 21, "0x5d6dcb": 21, "0xfedcba": 21, "0xabcdef": 21, "0x328b63": 21, "0xffffff": 21, "0x864cfb": 21, "0x800063": 21, "0xb704ce": 21, "0x2030b9c7": 21, "0x3fffffff": 21, "0x4c11db7": 21, "0x7fffffff": 21, "0x814141ab": 21, "0x00000000": 21, "0xf4acfb13": 21, "0xffffffff": 21, "0xa833982b": 21, "0x04c11db7": 21, "0x8001801b": 21, "0x1edc6f41": 21, "0x741b8cd7": 21, "0x000000af": 21, "40": 21, "0x0004820009": 21, "0x0000000000": 21, "0xffffffffff": 21, "0x42f0e1eba9ea3693": 21, "0x0000000000000000": 21, "0x000000000000001b": 21, "0xffffffffffffffff": 21, "0x259c84cba6426349": 21, "0xad93d23594c935a9": 21, "82": 21, "0x308c0111011401440411": 21, "0x00000000000000000000": 21, "four": [22, 25], "relat": [22, 25], "foundat": 22, "introspect": [22, 25], "structlayout": 22, "unionlayout": 22, "arraylayout": 22, "flexiblelayout": 22, "struct": 22, "fundament": 22, "rgb": 22, "grayscal": 22, "color": 22, "format": 22, "rgb565": 22, "fast": 22, "approxim": 22, "i_color": 22, "o_grai": 22, "repetit": [22, 25], "referenc": 22, "rgb565_layout": 22, "red": 22, "green": 22, "blue": 22, "accumul": 22, "averag": 22, "intens": 22, "input_layout": 22, "i_stream": 22, "r_accum": 22, "sum": 22, "interchang": 22, "rgb_layout": 22, "r_bit": 22, "g_bit": 22, "b_bit": 22, "rgb24_layout": 22, "rgblayout": 22, "rgbview": 22, "bright": 22, "boilerpl": [22, 25], "ieee754singl": 22, "fraction": 22, "is_subnorm": 22, "set_addr": 22, "send_data": 22, "biggest": 22, "cmd": 22, "0x00001234": 22, "react": 22, "span": 22, "preserv": 22, "invari": 22, "__iter__": [22, 25], "keyerror": 22, "size": 22, "gap": 22, "pad": 22, "altern": 22, "_1": 22, "_2": 22, "won": 22, "dictionari": [22, 25], "plu": [22, 24], "largest": 22, "elem_shap": 22, "multipli": 22, "contigu": 22, "boundari": [22, 25], "arbitrarili": 22, "stride": 22, "truth": [22, 25], "chosen": 22, "dynam": 22, "rest": [22, 25], "look": 22, "unspecifi": 22, "inout": 22, "__getattr__": [22, 25], "attributeerror": [22, 25], "ieee": 22, "754": 22, "flt": 22, "hex": 22, "0x3f800000": 22, "0xbf800000": 22, "share": 22, "haschecksum": 22, "checksum": 22, "barehead": 22, "headerwithparam": 22, "bare": 22, "varint": 22, "int8": 22, "int16": 22, "0x100": 22, "flag": [23, 25], "intflag": 23, "subi": 23, "likewis": 23, "normalenum": 23, "spam": 23, "ham": 23, "enumview": [23, 25], "flagview": 23, "wrapper": [23, 25], "stdin": 23, "loos": 23, "transparentenum": 23, "instrview": 23, "has_immedi": 23, "view_class": 23, "d16": 23, "d17": 23, "neither": [23, 25], "nor": [23, 25], "among": 23, "w_data": [24, 25], "w_rdy": 24, "w_en": 24, "r_rdy": 24, "unread": 24, "substitut": 24, "incompat": [24, 25], "exchang": 24, "r_domain": 24, "w_domain": 24, "exact_depth": 24, "signaturememb": 25, "flippedsignatur": 25, "flippedinterfac": 25, "flippedsignaturememb": 25, "vice": 25, "versa": 25, "interact": 25, "basiccount": 25, "solut": 25, "rewritten": 25, "componentcount": 25, "constructor": 25, "gone": 25, "unchang": 25, "unambigu": 25, "question": 25, "previous": 25, "intend": 25, "genericcount": 25, "is_compli": 25, "direction": 25, "readi": [25, 26], "sink": 25, "consum": 25, "dataproduc": 25, "dataconsum": 25, "elsewher": 25, "simplestreamsignatur": 25, "data_shap": 25, "intact": 25, "intf": 25, "metaprogram": 25, "streamproduc": 25, "streamconsum": 25, "complementari": 25, "ubiquit": 25, "streamconsumerusingin": 25, "deep": 25, "in1": 25, "in2": 25, "auxiliari": 25, "robust": 25, "proportion": 25, "pronounc": 25, "refactor": 25, "conclud": 25, "knowledg": 25, "expos": 25, "dataprocessorimplement": 25, "dataprocessorwrapp": 25, "impl": 25, "dataforward": 25, "conform": 25, "producerrequiringreadi": 25, "consumeralwaysreadi": 25, "consumerpossiblyunreadi": 25, "connectionerror": 25, "arg0": 25, "prolifer": 25, "subtli": 25, "presenc": 25, "absenc": 25, "statu": 25, "legacyaxidataproduc": 25, "adata": 25, "avalid": 25, "areadi": 25, "moderndataconsum": 25, "data_produc": 25, "data_consum": 25, "adapted_data_sourc": 25, "encourag": 25, "creation": 25, "capabl": 25, "usefulli": 25, "transfertyp": 25, "simplebussignatur": 25, "addr_width": 25, "_addr_width": 25, "rw": 25, "simplebusinterfac": 25, "is_read_xf": 25, "is_write_xf": 25, "frozen": 25, "freez": 25, "almost": 25, "anonym": 25, "sig32": 25, "sig24": 25, "bus__en": 25, "bus__rw": 25, "bus__addr": 25, "bus__r_data": 25, "bus__w_data": 25, "unusu": 25, "ever": 25, "denot": 25, "buse": 25, "cyc": 25, "outgo": 25, "carri": 25, "respond": 25, "That": 25, "incom": 25, "shortcut": 25, "discrimin": 25, "taken": 25, "rgbpixel": 25, "dimens": 25, "prepend": 25, "dimension": 25, "is_port": 25, "is_signatur": 25, "signatureerror": 25, "nameerror": 25, "abc": 25, "manner": 25, "disallow": 25, "superscript": 25, "opreat": 25, "__setitem__": 25, "stub": 25, "forbid": 25, "__delitem__": 25, "flatten": 25, "disregard": 25, "doubl": 25, "__": 25, "unflip": 25, "flipped_memb": 25, "ing": 25, "influenc": 25, "obj__items__0": 25, "obj__items__1": 25, "prescrib": 25, "aspect": 25, "complianc": 25, "fill": 25, "help": 25, "repeat": 25, "serv": 25, "hoc": 25, "customsignatur": 25, "custominterfac": 25, "my_properti": 25, "accur": 25, "unavail": 25, "flipped_sig": 25, "distinguish": 25, "signatureknowswhenflip": 25, "is_flip": 25, "getattr": 25, "getter": 25, "__setattr__": 25, "setattr": 25, "setter": 25, "__delattr__": 25, "delattr": 25, "delet": 25, "signaturemeta": 25, "subtyp": 25, "relationship": 25, "__subclasscheck__": 25, "__instancecheck__": 25, "overhead": 25, "__dict__": 25, "approach": 25, "checker": 25, "track": 25, "burdensom": 25, "flipped_intf": 25, "interfaceknowswhenflip": 25, "other_unflip": 25, "caveat": 25, "meaningless": 25, "obj1": 25, "obj2": 25, "obj3": 25, "besid": 25, "out1": 25, "arbit": 25, "clarifi": 25, "fixedcompon": 25, "superclass": 25, "parametriccompon": 25, "rai": 25, "offici": 26, "vivonomicon": 26, "kbob": 26, "robert": 26, "baruch": 26, "exercis": 26, "my": 26, "journei": 26, "david": 26, "sporn": 26, "focuss": 26, "workstat": 26}, "objects": {"amaranth": [[15, 0, 0, "-", "hdl"]], "amaranth.hdl": [[15, 1, 1, "", "Shape"], [15, 1, 1, "", "ShapeCastable"], [15, 1, 1, "", "ShapeLike"], [15, 1, 1, "", "Value"], [15, 1, 1, "", "ValueCastable"], [15, 1, 1, "", "ValueLike"], [15, 4, 1, "", "signed"], [15, 4, 1, "", "unsigned"]], "amaranth.hdl.Shape": [[15, 2, 1, "", "__repr__"], [15, 2, 1, "", "cast"]], "amaranth.hdl.ShapeCastable": [[15, 2, 1, "", "__call__"], [15, 2, 1, "", "as_shape"], [15, 2, 1, "", "const"]], "amaranth.hdl.Value": [[15, 2, 1, "", "__abs__"], [15, 2, 1, "", "__add__"], [15, 2, 1, "", "__and__"], [15, 2, 1, "", "__bool__"], [15, 2, 1, "", "__contains__"], [15, 2, 1, "", "__eq__"], [15, 2, 1, "", "__floordiv__"], [15, 2, 1, "", "__ge__"], [15, 2, 1, "", "__getitem__"], [15, 2, 1, "", "__gt__"], [15, 3, 1, "", "__hash__"], [15, 2, 1, "", "__invert__"], [15, 2, 1, "", "__le__"], [15, 2, 1, "", "__len__"], [15, 2, 1, "", "__lshift__"], [15, 2, 1, "", "__lt__"], [15, 2, 1, "", "__mod__"], [15, 2, 1, "", "__mul__"], [15, 2, 1, "", "__ne__"], [15, 2, 1, "", "__neg__"], [15, 2, 1, "", "__or__"], [15, 2, 1, "", "__pos__"], [15, 2, 1, "", "__radd__"], [15, 2, 1, "", "__rand__"], [15, 2, 1, "", "__rfloordiv__"], [15, 2, 1, "", "__rlshift__"], [15, 2, 1, "", "__rmod__"], [15, 2, 1, "", "__rmul__"], [15, 2, 1, "", "__ror__"], [15, 2, 1, "", "__rrshift__"], [15, 2, 1, "", "__rshift__"], [15, 2, 1, "", "__rsub__"], [15, 2, 1, "", "__rxor__"], [15, 2, 1, "", "__sub__"], [15, 2, 1, "", "__xor__"], [15, 2, 1, "", "all"], [15, 2, 1, "", "any"], [15, 2, 1, "", "as_signed"], [15, 2, 1, "", "as_unsigned"], [15, 2, 1, "", "bit_select"], [15, 2, 1, "", "bool"], [15, 2, 1, "", "cast"], [15, 2, 1, "", "eq"], [15, 2, 1, "", "matches"], [15, 2, 1, "", "replicate"], [15, 2, 1, "", "rotate_left"], [15, 2, 1, "", "rotate_right"], [15, 2, 1, "", "shape"], [15, 2, 1, "", "shift_left"], [15, 2, 1, "", "shift_right"], [15, 2, 1, "", "word_select"], [15, 2, 1, "", "xor"]], "amaranth.hdl.ValueCastable": [[15, 2, 1, "", "as_value"], [15, 2, 1, "", "shape"]], "amaranth.lib": [[18, 0, 0, "-", "cdc"], [19, 0, 0, "-", "coding"], [20, 0, 0, "-", "crc"], [22, 0, 0, "-", "data"], [23, 0, 0, "-", "enum"], [24, 0, 0, "-", "fifo"], [25, 0, 0, "-", "wiring"]], "amaranth.lib.cdc": [[18, 1, 1, "", "AsyncFFSynchronizer"], [18, 1, 1, "", "FFSynchronizer"], [18, 1, 1, "", "PulseSynchronizer"], [18, 1, 1, "", "ResetSynchronizer"]], "amaranth.lib.coding": [[19, 1, 1, "", "Decoder"], [19, 1, 1, "", "Encoder"], [19, 1, 1, "", "GrayDecoder"], [19, 1, 1, "", "GrayEncoder"], [19, 1, 1, "", "PriorityDecoder"], [19, 1, 1, "", "PriorityEncoder"]], "amaranth.lib.crc": [[20, 1, 1, "", "Algorithm"], [20, 1, 1, "", "Parameters"], [20, 1, 1, "", "Processor"], [21, 0, 0, "-", "catalog"]], "amaranth.lib.crc.Algorithm": [[20, 2, 1, "", "__call__"]], "amaranth.lib.crc.Parameters": [[20, 5, 1, "", "algorithm"], [20, 2, 1, "", "compute"], [20, 2, 1, "", "create"], [20, 2, 1, "", "residue"]], "amaranth.lib.crc.catalog": [[21, 6, 1, "", "CRC10_ATM"], [21, 6, 1, "", "CRC10_CDMA2000"], [21, 6, 1, "", "CRC10_GSM"], [21, 6, 1, "", "CRC10_I_610"], [21, 6, 1, "", "CRC11_FLEXRAY"], [21, 6, 1, "", "CRC11_UMTS"], [21, 6, 1, "", "CRC12_3GPP"], [21, 6, 1, "", "CRC12_CDMA2000"], [21, 6, 1, "", "CRC12_DECT"], [21, 6, 1, "", "CRC12_GSM"], [21, 6, 1, "", "CRC12_UMTS"], [21, 6, 1, "", "CRC13_BBC"], [21, 6, 1, "", "CRC14_DARC"], [21, 6, 1, "", "CRC14_GSM"], [21, 6, 1, "", "CRC15_CAN"], [21, 6, 1, "", "CRC15_MPT1327"], [21, 6, 1, "", "CRC16_ACORN"], [21, 6, 1, "", "CRC16_ARC"], [21, 6, 1, "", "CRC16_AUG_CCITT"], [21, 6, 1, "", "CRC16_AUTOSAR"], [21, 6, 1, "", "CRC16_BLUETOOTH"], [21, 6, 1, "", "CRC16_BUYPASS"], [21, 6, 1, "", "CRC16_CCITT"], [21, 6, 1, "", "CRC16_CCITT_FALSE"], [21, 6, 1, "", "CRC16_CCITT_TRUE"], [21, 6, 1, "", "CRC16_CDMA2000"], [21, 6, 1, "", "CRC16_CMS"], [21, 6, 1, "", "CRC16_DARC"], [21, 6, 1, "", "CRC16_DDS_110"], [21, 6, 1, "", "CRC16_DECT_R"], [21, 6, 1, "", "CRC16_DECT_X"], [21, 6, 1, "", "CRC16_DNP"], [21, 6, 1, "", "CRC16_EN_13757"], [21, 6, 1, "", "CRC16_EPC"], [21, 6, 1, "", "CRC16_EPC_C1G2"], [21, 6, 1, "", "CRC16_GENIBUS"], [21, 6, 1, "", "CRC16_GSM"], [21, 6, 1, "", "CRC16_IBM"], [21, 6, 1, "", "CRC16_IBM_3740"], [21, 6, 1, "", "CRC16_IBM_SDLC"], [21, 6, 1, "", "CRC16_IEC_61158_2"], [21, 6, 1, "", "CRC16_ISO_HDLC"], [21, 6, 1, "", "CRC16_ISO_IEC_14443_3_A"], [21, 6, 1, "", "CRC16_ISO_IEC_14443_3_B"], [21, 6, 1, "", "CRC16_I_CODE"], [21, 6, 1, "", "CRC16_KERMIT"], [21, 6, 1, "", "CRC16_LJ1200"], [21, 6, 1, "", "CRC16_LTE"], [21, 6, 1, "", "CRC16_M17"], [21, 6, 1, "", "CRC16_MAXIM"], [21, 6, 1, "", "CRC16_MAXIM_DOW"], [21, 6, 1, "", "CRC16_MCRF4XX"], [21, 6, 1, "", "CRC16_MODBUS"], [21, 6, 1, "", "CRC16_NRSC_5"], [21, 6, 1, "", "CRC16_OPENSAFETY_A"], [21, 6, 1, "", "CRC16_OPENSAFETY_B"], [21, 6, 1, "", "CRC16_PROFIBUS"], [21, 6, 1, "", "CRC16_RIELLO"], [21, 6, 1, "", "CRC16_SPI_FUJITSU"], [21, 6, 1, "", "CRC16_T10_DIF"], [21, 6, 1, "", "CRC16_TELEDISK"], [21, 6, 1, "", "CRC16_TMS37157"], [21, 6, 1, "", "CRC16_UMTS"], [21, 6, 1, "", "CRC16_USB"], [21, 6, 1, "", "CRC16_VERIFONE"], [21, 6, 1, "", "CRC16_V_41_LSB"], [21, 6, 1, "", "CRC16_V_41_MSB"], [21, 6, 1, "", "CRC16_X25"], [21, 6, 1, "", "CRC16_XMODEM"], [21, 6, 1, "", "CRC16_ZMODEM"], [21, 6, 1, "", "CRC17_CAN_FD"], [21, 6, 1, "", "CRC21_CAN_FD"], [21, 6, 1, "", "CRC24_BLE"], [21, 6, 1, "", "CRC24_FLEXRAY_A"], [21, 6, 1, "", "CRC24_FLEXRAY_B"], [21, 6, 1, "", "CRC24_INTERLAKEN"], [21, 6, 1, "", "CRC24_LTE_A"], [21, 6, 1, "", "CRC24_LTE_B"], [21, 6, 1, "", "CRC24_OPENPGP"], [21, 6, 1, "", "CRC24_OS_9"], [21, 6, 1, "", "CRC30_CDMA"], [21, 6, 1, "", "CRC31_PHILIPS"], [21, 6, 1, "", "CRC32_AAL5"], [21, 6, 1, "", "CRC32_ADCCP"], [21, 6, 1, "", "CRC32_AIXM"], [21, 6, 1, "", "CRC32_AUTOSAR"], [21, 6, 1, "", "CRC32_BASE91_C"], [21, 6, 1, "", "CRC32_BASE91_D"], [21, 6, 1, "", "CRC32_BZIP2"], [21, 6, 1, "", "CRC32_CASTAGNOLI"], [21, 6, 1, "", "CRC32_CD_ROM_EDC"], [21, 6, 1, "", "CRC32_CKSUM"], [21, 6, 1, "", "CRC32_DECT_B"], [21, 6, 1, "", "CRC32_ETHERNET"], [21, 6, 1, "", "CRC32_INTERLAKEN"], [21, 6, 1, "", "CRC32_ISCSI"], [21, 6, 1, "", "CRC32_ISO_HDLC"], [21, 6, 1, "", "CRC32_JAMCRC"], [21, 6, 1, "", "CRC32_MEF"], [21, 6, 1, "", "CRC32_MPEG_2"], [21, 6, 1, "", "CRC32_PKZIP"], [21, 6, 1, "", "CRC32_POSIX"], [21, 6, 1, "", "CRC32_V_42"], [21, 6, 1, "", "CRC32_XFER"], [21, 6, 1, "", "CRC32_XZ"], [21, 6, 1, "", "CRC3_GSM"], [21, 6, 1, "", "CRC3_ROHC"], [21, 6, 1, "", "CRC40_GSM"], [21, 6, 1, "", "CRC4_G_704"], [21, 6, 1, "", "CRC4_INTERLAKEN"], [21, 6, 1, "", "CRC4_ITU"], [21, 6, 1, "", "CRC5_EPC"], [21, 6, 1, "", "CRC5_EPC_C1G2"], [21, 6, 1, "", "CRC5_G_704"], [21, 6, 1, "", "CRC5_ITU"], [21, 6, 1, "", "CRC5_USB"], [21, 6, 1, "", "CRC64_ECMA"], [21, 6, 1, "", "CRC64_ECMA_182"], [21, 6, 1, "", "CRC64_GO_ISO"], [21, 6, 1, "", "CRC64_MS"], [21, 6, 1, "", "CRC64_REDIS"], [21, 6, 1, "", "CRC64_WE"], [21, 6, 1, "", "CRC64_XZ"], [21, 6, 1, "", "CRC6_CDMA2000_A"], [21, 6, 1, "", "CRC6_CDMA2000_B"], [21, 6, 1, "", "CRC6_DARC"], [21, 6, 1, "", "CRC6_GSM"], [21, 6, 1, "", "CRC6_G_704"], [21, 6, 1, "", "CRC6_ITU"], [21, 6, 1, "", "CRC7_MMC"], [21, 6, 1, "", "CRC7_ROHC"], [21, 6, 1, "", "CRC7_UMTS"], [21, 6, 1, "", "CRC82_DARC"], [21, 6, 1, "", "CRC8_AES"], [21, 6, 1, "", "CRC8_AUTOSAR"], [21, 6, 1, "", "CRC8_BLUETOOTH"], [21, 6, 1, "", "CRC8_CDMA2000"], [21, 6, 1, "", "CRC8_DARC"], [21, 6, 1, "", "CRC8_DVB_S2"], [21, 6, 1, "", "CRC8_ETU"], [21, 6, 1, "", "CRC8_GSM_A"], [21, 6, 1, "", "CRC8_GSM_B"], [21, 6, 1, "", "CRC8_HITAG"], [21, 6, 1, "", "CRC8_ITU"], [21, 6, 1, "", "CRC8_I_432_1"], [21, 6, 1, "", "CRC8_I_CODE"], [21, 6, 1, "", "CRC8_LTE"], [21, 6, 1, "", "CRC8_MAXIM"], [21, 6, 1, "", "CRC8_MAXIM_DOW"], [21, 6, 1, "", "CRC8_MIFARE_MAD"], [21, 6, 1, "", "CRC8_NRSC_5"], [21, 6, 1, "", "CRC8_OPENSAFETY"], [21, 6, 1, "", "CRC8_ROHC"], [21, 6, 1, "", "CRC8_SAE_J1850"], [21, 6, 1, "", "CRC8_SMBUS"], [21, 6, 1, "", "CRC8_TECH_3250"], [21, 6, 1, "", "CRC8_WCDMA"]], "amaranth.lib.data": [[22, 1, 1, "", "ArrayLayout"], [22, 1, 1, "", "Field"], [22, 1, 1, "", "FlexibleLayout"], [22, 1, 1, "", "Layout"], [22, 1, 1, "", "Struct"], [22, 1, 1, "", "StructLayout"], [22, 1, 1, "", "Union"], [22, 1, 1, "", "UnionLayout"], [22, 1, 1, "", "View"]], "amaranth.lib.data.ArrayLayout": [[22, 5, 1, "", "size"]], "amaranth.lib.data.Field": [[22, 2, 1, "", "__eq__"], [22, 5, 1, "", "width"]], "amaranth.lib.data.Layout": [[22, 2, 1, "", "__call__"], [22, 2, 1, "", "__eq__"], [22, 2, 1, "", "__getitem__"], [22, 2, 1, "", "__iter__"], [22, 2, 1, "", "as_shape"], [22, 2, 1, "", "cast"], [22, 2, 1, "", "const"], [22, 5, 1, "", "size"]], "amaranth.lib.data.StructLayout": [[22, 5, 1, "", "size"]], "amaranth.lib.data.UnionLayout": [[22, 2, 1, "", "const"], [22, 5, 1, "", "size"]], "amaranth.lib.data.View": [[22, 2, 1, "", "__getattr__"], [22, 2, 1, "", "__getitem__"], [22, 2, 1, "", "as_value"], [22, 2, 1, "", "eq"], [22, 2, 1, "", "shape"]], "amaranth.lib.enum": [[23, 1, 1, "", "Enum"], [23, 1, 1, "", "EnumMeta"], [23, 1, 1, "", "EnumView"], [23, 1, 1, "", "Flag"], [23, 1, 1, "", "FlagView"], [23, 1, 1, "", "IntEnum"], [23, 1, 1, "", "IntFlag"]], "amaranth.lib.enum.EnumMeta": [[23, 2, 1, "", "__call__"], [23, 2, 1, "", "as_shape"], [23, 2, 1, "", "const"]], "amaranth.lib.enum.EnumView": [[23, 2, 1, "", "__eq__"], [23, 2, 1, "", "__init__"], [23, 2, 1, "", "as_value"], [23, 2, 1, "", "eq"], [23, 2, 1, "", "shape"]], "amaranth.lib.enum.FlagView": [[23, 2, 1, "", "__and__"], [23, 2, 1, "", "__invert__"], [23, 2, 1, "", "__or__"], [23, 2, 1, "", "__rand__"], [23, 2, 1, "", "__ror__"], [23, 2, 1, "", "__rxor__"], [23, 2, 1, "", "__xor__"]], "amaranth.lib.fifo": [[24, 1, 1, "", "AsyncFIFO"], [24, 1, 1, "", "AsyncFIFOBuffered"], [24, 1, 1, "", "FIFOInterface"], [24, 1, 1, "", "SyncFIFO"], [24, 1, 1, "", "SyncFIFOBuffered"]], "amaranth.lib.wiring": [[25, 1, 1, "", "Component"], [25, 7, 1, "", "ConnectionError"], [25, 1, 1, "", "FlippedInterface"], [25, 1, 1, "", "FlippedSignature"], [25, 1, 1, "", "FlippedSignatureMembers"], [25, 1, 1, "", "Flow"], [25, 6, 1, "", "In"], [25, 1, 1, "", "Member"], [25, 6, 1, "", "Out"], [25, 1, 1, "", "PureInterface"], [25, 1, 1, "", "Signature"], [25, 7, 1, "", "SignatureError"], [25, 1, 1, "", "SignatureMembers"], [25, 1, 1, "", "SignatureMeta"], [25, 4, 1, "", "connect"], [25, 4, 1, "", "flipped"]], "amaranth.lib.wiring.Component": [[25, 5, 1, "", "signature"]], "amaranth.lib.wiring.FlippedInterface": [[25, 2, 1, "", "__delattr__"], [25, 2, 1, "", "__eq__"], [25, 2, 1, "", "__getattr__"], [25, 2, 1, "", "__setattr__"], [25, 5, 1, "", "signature"]], "amaranth.lib.wiring.FlippedSignature": [[25, 2, 1, "", "__delattr__"], [25, 2, 1, "", "__getattr__"], [25, 2, 1, "", "__setattr__"], [25, 2, 1, "", "flip"]], "amaranth.lib.wiring.FlippedSignatureMembers": [[25, 2, 1, "", "flip"]], "amaranth.lib.wiring.Flow": [[25, 3, 1, "", "In"], [25, 3, 1, "", "Out"], [25, 2, 1, "", "__call__"], [25, 2, 1, "", "flip"]], "amaranth.lib.wiring.Member": [[25, 2, 1, "", "array"], [25, 5, 1, "", "dimensions"], [25, 2, 1, "", "flip"], [25, 5, 1, "", "flow"], [25, 5, 1, "", "init"], [25, 5, 1, "", "is_port"], [25, 5, 1, "", "is_signature"], [25, 5, 1, "", "shape"], [25, 5, 1, "", "signature"]], "amaranth.lib.wiring.PureInterface": [[25, 2, 1, "", "__init__"]], "amaranth.lib.wiring.Signature": [[25, 2, 1, "", "__eq__"], [25, 2, 1, "", "create"], [25, 2, 1, "", "flatten"], [25, 2, 1, "", "flip"], [25, 2, 1, "", "is_compliant"], [25, 5, 1, "", "members"]], "amaranth.lib.wiring.SignatureMembers": [[25, 2, 1, "", "__contains__"], [25, 2, 1, "", "__delitem__"], [25, 2, 1, "", "__eq__"], [25, 2, 1, "", "__getitem__"], [25, 2, 1, "", "__iter__"], [25, 2, 1, "", "__setitem__"], [25, 2, 1, "", "create"], [25, 2, 1, "", "flatten"], [25, 2, 1, "", "flip"]], "amaranth.lib.wiring.SignatureMeta": [[25, 2, 1, "", "__instancecheck__"], [25, 2, 1, "", "__subclasscheck__"]], "amaranth.vendor": [[8, 1, 1, "", "GowinPlatform"], [9, 1, 1, "", "IntelPlatform"], [10, 1, 1, "", "LatticeECP5Platform"], [11, 1, 1, "", "LatticeICE40Platform"], [12, 3, 1, "", "LatticeMachXO2Platform"], [12, 3, 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:attribute", "4": "py:function", "5": "py:property", "6": "py:data", "7": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "property", "Python property"], "6": ["py", "data", "Python data"], "7": ["py", "exception", "Python exception"]}, "titleterms": {"changelog": 0, "document": [0, 1, 2], "past": 0, "releas": [0, 5], "version": 0, "0": 0, "5": 0, "unreleas": 0, "migrat": 0, "from": [0, 3], "4": 0, "implement": [0, 16], "rfc": 0, "languag": [0, 3, 4, 6, 15], "chang": [0, 1], "standard": [0, 6, 17], "librari": [0, 6, 17], "toolchain": [0, 4, 6], "platform": [0, 7], "integr": [0, 6, 7], "3": 0, "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, 6], "your": 1, "weekli": 1, "meet": 1, "amaranth": [2, 5, 6], "project": 2, "guid": 3, "The": [3, 6], "prelud": 3, "shape": [3, 15], "valu": [3, 15], "constant": [3, 25], "cast": 3, "integ": 3, "rang": 3, "enumer": [3, 23], "custom": [3, 22, 25], "member": 3, "signal": 3, "name": 3, "initi": 3, "reset": 3, "less": 3, "oper": 3, "perform": 3, "describ": 3, "comput": 3, "width": 3, "extens": 3, "arithmet": 3, "comparison": 3, "bitwis": 3, "shift": 3, "rotat": 3, "reduct": 3, "logic": 3, "bit": 3, "sequenc": 3, "match": 3, "convers": [3, 19], "choic": 3, "arrai": 3, "data": [3, 22], "structur": [3, 22], "modul": 3, "control": 3, "domain": [3, 18], "assign": 3, "order": 3, "flow": 3, "activ": 3, "inact": 3, "If": 3, "elif": 3, "els": 3, "block": 3, "switch": 3, "case": 3, "fsm": 3, "state": 3, "combinatori": 3, "evalu": 3, "synchron": 3, "clock": [3, 18], "late": 3, "bind": 3, "elabor": 3, "submodul": 3, "modifi": 3, "renam": 3, "memori": 3, "todo": [3, 5, 7, 15, 16, 26], "instanc": 3, "instal": 5, "system": [5, 6], "requir": 5, "prerequisit": 5, "latest": 5, "develop": [5, 6], "snapshot": 5, "edit": 5, "board": [5, 6], "definit": [5, 6], "introduct": [6, 22, 25], "simul": 6, "fpga": 6, "gowin": 8, "intel": 9, "lattic": [10, 11, 12], "ecp5": 10, "ice40": 11, "machxo2": 12, "machxo3l": 12, "quicklog": 13, "xilinx": 14, "refer": 15, "backward": 15, "compat": 15, "import": 15, "syntax": 15, "sourc": 15, "locat": 15, "get": 16, "start": 16, "A": 16, "counter": 16, "test": 16, "convert": 16, "blink": 16, "led": 16, "cross": 18, "code": 19, "One": 19, "hot": 19, "prioriti": 19, "grai": 19, "cyclic": 20, "redund": 20, "check": 20, "predefin": 21, "crc": 21, "algorithm": 21, "overview": [22, 25], "motiv": [22, 25], "compos": 22, "layout": 22, "defin": 22, "discrimin": 22, "union": 22, "model": 22, "common": 22, "view": [22, 23], "creat": 22, "access": 22, "class": [22, 23], "metaclass": 23, "base": 23, "first": 24, "out": 24, "queue": 24, "interfac": 25, "connect": 25, "reusabl": 25, "forward": 25, "interior": 25, "input": 25, "adapt": 25, "signatur": 25, "path": 25, "make": 25, "compon": 25, "tutori": 26}, "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"]], "Documentation for past releases": [[0, "documentation-for-past-releases"]], "Version 0.5 (unreleased)": [[0, "version-0-5-unreleased"]], "Migrating from version 0.4": [[0, "migrating-from-version-0-4"]], "Implemented RFCs": [[0, "implemented-rfcs"], [0, "id1"]], "Language changes": [[0, "language-changes"], [0, "id2"], [0, "id6"]], "Standard library changes": [[0, "standard-library-changes"], [0, "id3"], [0, "id7"]], "Toolchain changes": [[0, "toolchain-changes"], [0, "id4"], [0, "id8"]], "Platform integration changes": [[0, "platform-integration-changes"], [0, "id5"], [0, "id9"]], "Version 0.4": [[0, "version-0-4"]], "Migrating from version 0.3": [[0, "migrating-from-version-0-3"]], "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 project documentation": [[2, "amaranth-project-documentation"]], "Language guide": [[3, "language-guide"]], "The prelude": [[3, "the-prelude"]], "Shapes": [[3, "shapes"], [15, "shapes"]], "Shapes of values": [[3, "shapes-of-values"]], "Values": [[3, "values"], [15, "values"]], "Constants": [[3, "constants"]], "Shape casting": [[3, "shape-casting"]], "Shapes from integers": [[3, "shapes-from-integers"]], "Shapes from ranges": [[3, "shapes-from-ranges"]], "Shapes from enumerations": [[3, "shapes-from-enumerations"]], "Custom shapes": [[3, "custom-shapes"]], "Value casting": [[3, "value-casting"]], "Values from integers": [[3, "values-from-integers"]], "Values from enumeration members": [[3, "values-from-enumeration-members"]], "Constant casting": [[3, "constant-casting"]], "Signals": [[3, "signals"]], "Signal shapes": [[3, "signal-shapes"]], "Signal names": [[3, "signal-names"]], "Initial signal values": [[3, "initial-signal-values"]], "Reset-less signals": [[3, "reset-less-signals"]], "Operators": [[3, "operators"]], "Performing or describing computations?": [[3, "performing-or-describing-computations"]], "Width extension": [[3, "width-extension"]], "Arithmetic operators": [[3, "arithmetic-operators"]], "Comparison operators": [[3, "comparison-operators"]], "Bitwise, shift, and rotate operators": [[3, "bitwise-shift-and-rotate-operators"]], "Reduction operators": [[3, "reduction-operators"]], "Logical operators": [[3, "logical-operators"]], "Bit sequence operators": [[3, "bit-sequence-operators"]], "Match operator": [[3, "match-operator"]], "Conversion operators": [[3, "conversion-operators"]], "Choice operator": [[3, "choice-operator"]], "Arrays": [[3, "arrays"]], "Data structures": [[3, "data-structures"], [22, "module-amaranth.lib.data"]], "Modules": [[3, "modules"]], "Control domains": [[3, "control-domains"]], "Assigning to signals": [[3, "assigning-to-signals"]], "Assignable values": [[3, "assignable-values"]], "Assignment domains": [[3, "assignment-domains"]], "Assignment order": [[3, "assignment-order"]], "Control flow": [[3, "control-flow"]], "Active and inactive assignments": [[3, "active-and-inactive-assignments"]], "If/Elif/Else control blocks": [[3, "if-elif-else-control-blocks"]], "Switch/Case control blocks": [[3, "switch-case-control-blocks"]], "FSM/State control blocks": [[3, "fsm-state-control-blocks"]], "Combinatorial evaluation": [[3, "combinatorial-evaluation"]], "Synchronous evaluation": [[3, "synchronous-evaluation"]], "Clock domains": [[3, "clock-domains"]], "Late binding of clock and reset signals": [[3, "late-binding-of-clock-and-reset-signals"]], "Elaboration": [[3, "elaboration"]], "Submodules": [[3, "submodules"]], "Modifying control flow": [[3, "modifying-control-flow"]], "Renaming domains": [[3, "renaming-domains"]], "Memories": [[3, "memories"]], "Todo": [[3, "id14"], [5, "id1"], [7, "id1"], [15, "id1"], [15, "id2"], [16, "id1"], [26, "id1"]], "Instances": [[3, "instances"]], "Language & toolchain": [[4, "language-toolchain"]], "Installation": [[5, "installation"]], "System requirements": [[5, "system-requirements"]], "Installing prerequisites": [[5, "installing-prerequisites"]], "Installing Amaranth": [[5, "installing-amaranth"]], "Latest release": [[5, "latest-release"]], "Development snapshot": [[5, "development-snapshot"]], "Editable development snapshot": [[5, "editable-development-snapshot"]], "Installing board definitions": [[5, "installing-board-definitions"]], "Introduction": [[6, "introduction"], [22, "introduction"], [25, "introduction"]], "The Amaranth language": [[6, "the-amaranth-language"]], "The Amaranth standard library": [[6, "the-amaranth-standard-library"]], "The Amaranth simulator": [[6, "the-amaranth-simulator"]], "The Amaranth build system": [[6, "the-amaranth-build-system"]], "FPGA toolchain integration": [[6, "fpga-toolchain-integration"]], "Development board definitions": [[6, "development-board-definitions"]], "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"]], "Language reference": [[15, "module-amaranth.hdl"]], "Backwards compatibility": [[15, "backwards-compatibility"]], "Importing syntax": [[15, "importing-syntax"]], "Source locations": [[15, "source-locations"]], "Getting started": [[16, "getting-started"]], "A counter": [[16, "a-counter"]], "Implementing a counter": [[16, "implementing-a-counter"]], "Testing a counter": [[16, "testing-a-counter"]], "Converting a counter": [[16, "converting-a-counter"]], "A blinking LED": [[16, "a-blinking-led"]], "Standard library": [[17, "standard-library"]], "Clock domain crossing": [[18, "module-amaranth.lib.cdc"]], "Code conversion": [[19, "module-amaranth.lib.coding"]], "One-hot coding": [[19, "one-hot-coding"]], "Priority coding": [[19, "priority-coding"]], "Gray coding": [[19, "gray-coding"]], "Cyclic redundancy checks": [[20, "module-amaranth.lib.crc"]], "Predefined CRC Algorithms": [[21, "module-amaranth.lib.crc.catalog"]], "Overview": [[22, "overview"], [25, "overview"]], "Motivation": [[22, "motivation"], [25, "motivation"]], "Composing layouts": [[22, "composing-layouts"]], "Defining layouts": [[22, "defining-layouts"]], "Discriminated unions": [[22, "discriminated-unions"]], "Modeling structured data": [[22, "modeling-structured-data"]], "Common data layouts": [[22, "common-data-layouts"]], "Data views": [[22, "data-views"]], "Creating a view": [[22, "creating-a-view"]], "Accessing a view": [[22, "accessing-a-view"]], "Custom view classes": [[22, "custom-view-classes"]], "Data classes": [[22, "data-classes"]], "Enumerations": [[23, "module-amaranth.lib.enum"]], "Metaclass": [[23, "metaclass"]], "Base classes": [[23, "base-classes"]], "View classes": [[23, "view-classes"]], "First-in first-out queues": [[24, "module-amaranth.lib.fifo"]], "Interfaces and connections": [[25, "module-amaranth.lib.wiring"]], "Reusable interfaces": [[25, "reusable-interfaces"]], "Forwarding interior interfaces": [[25, "forwarding-interior-interfaces"]], "Constant inputs": [[25, "constant-inputs"]], "Adapting interfaces": [[25, "adapting-interfaces"]], "Customizing signatures and interfaces": [[25, "customizing-signatures-and-interfaces"]], "Paths": [[25, "paths"]], "Signatures": [[25, "signatures"]], "Interfaces": [[25, "interfaces"]], "Making connections": [[25, "making-connections"]], "Components": [[25, "components"]], "Tutorial": [[26, "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"]], "shape (class in amaranth.hdl)": [[15, "amaranth.hdl.Shape"]], "shapecastable (class in amaranth.hdl)": [[15, "amaranth.hdl.ShapeCastable"]], "shapelike (class in amaranth.hdl)": [[15, "amaranth.hdl.ShapeLike"]], "value (class in amaranth.hdl)": [[15, "amaranth.hdl.Value"]], "valuecastable (class in amaranth.hdl)": [[15, "amaranth.hdl.ValueCastable"]], "valuelike (class in amaranth.hdl)": [[15, "amaranth.hdl.ValueLike"]], "__abs__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__abs__"]], "__add__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__add__"]], "__and__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__and__"]], "__bool__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__bool__"]], "__call__() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.__call__"]], "__contains__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__contains__"]], "__eq__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__eq__"]], "__floordiv__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__floordiv__"]], "__ge__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__ge__"]], "__getitem__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__getitem__"]], "__gt__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__gt__"]], "__hash__ (amaranth.hdl.value attribute)": [[15, "amaranth.hdl.Value.__hash__"]], "__invert__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__invert__"]], "__le__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__le__"]], "__len__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__len__"]], "__lshift__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__lshift__"]], "__lt__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__lt__"]], "__mod__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__mod__"]], "__mul__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__mul__"]], "__ne__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__ne__"]], "__neg__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__neg__"]], "__or__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__or__"]], "__pos__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__pos__"]], "__radd__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__radd__"]], "__rand__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rand__"]], "__repr__() (amaranth.hdl.shape method)": [[15, "amaranth.hdl.Shape.__repr__"]], "__rfloordiv__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rfloordiv__"]], "__rlshift__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rlshift__"]], "__rmod__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rmod__"]], "__rmul__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rmul__"]], "__ror__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__ror__"]], "__rrshift__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rrshift__"]], "__rshift__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rshift__"]], "__rsub__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rsub__"]], "__rxor__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rxor__"]], "__sub__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__sub__"]], "__xor__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__xor__"]], "all() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.all"]], "amaranth.hdl": [[15, "module-amaranth.hdl"]], "any() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.any"]], "as_shape() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.as_shape"]], "as_signed() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.as_signed"]], "as_unsigned() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.as_unsigned"]], "as_value() (amaranth.hdl.valuecastable method)": [[15, "amaranth.hdl.ValueCastable.as_value"]], "bit_select() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.bit_select"]], "bool() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.bool"]], "cast() (amaranth.hdl.shape static method)": [[15, "amaranth.hdl.Shape.cast"]], "cast() (amaranth.hdl.value static method)": [[15, "amaranth.hdl.Value.cast"]], "const() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.const"]], "eq() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.eq"]], "matches() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.matches"]], "module": [[15, "module-amaranth.hdl"], [18, "module-amaranth.lib.cdc"], [19, "module-amaranth.lib.coding"], [20, "module-amaranth.lib.crc"], [21, "module-amaranth.lib.crc.catalog"], [22, "module-amaranth.lib.data"], [23, "module-amaranth.lib.enum"], [24, "module-amaranth.lib.fifo"], [25, "module-amaranth.lib.wiring"]], "replicate() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.replicate"]], "rotate_left() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.rotate_left"]], "rotate_right() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.rotate_right"]], "shape() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.shape"]], "shape() (amaranth.hdl.valuecastable method)": [[15, "amaranth.hdl.ValueCastable.shape"]], "shift_left() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.shift_left"]], "shift_right() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.shift_right"]], "signed() (in module amaranth.hdl)": [[15, "amaranth.hdl.signed"]], "unsigned() (in module amaranth.hdl)": [[15, "amaranth.hdl.unsigned"]], "word_select() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.word_select"]], "xor() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.xor"]], "asyncffsynchronizer (class in amaranth.lib.cdc)": [[18, "amaranth.lib.cdc.AsyncFFSynchronizer"]], "ffsynchronizer (class in amaranth.lib.cdc)": [[18, "amaranth.lib.cdc.FFSynchronizer"]], "pulsesynchronizer (class in amaranth.lib.cdc)": [[18, "amaranth.lib.cdc.PulseSynchronizer"]], "resetsynchronizer (class in amaranth.lib.cdc)": [[18, "amaranth.lib.cdc.ResetSynchronizer"]], "amaranth.lib.cdc": [[18, "module-amaranth.lib.cdc"]], "decoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.Decoder"]], "encoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.Encoder"]], "graydecoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.GrayDecoder"]], "grayencoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.GrayEncoder"]], "prioritydecoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.PriorityDecoder"]], "priorityencoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.PriorityEncoder"]], "amaranth.lib.coding": [[19, "module-amaranth.lib.coding"]], "algorithm (class in amaranth.lib.crc)": [[20, "amaranth.lib.crc.Algorithm"]], "parameters (class in amaranth.lib.crc)": [[20, "amaranth.lib.crc.Parameters"]], "processor (class in amaranth.lib.crc)": [[20, "amaranth.lib.crc.Processor"]], "__call__() (amaranth.lib.crc.algorithm method)": [[20, "amaranth.lib.crc.Algorithm.__call__"]], "algorithm (amaranth.lib.crc.parameters property)": [[20, "amaranth.lib.crc.Parameters.algorithm"]], "amaranth.lib.crc": [[20, "module-amaranth.lib.crc"]], "compute() (amaranth.lib.crc.parameters method)": [[20, "amaranth.lib.crc.Parameters.compute"]], "create() (amaranth.lib.crc.parameters method)": [[20, "amaranth.lib.crc.Parameters.create"]], "residue() (amaranth.lib.crc.parameters method)": [[20, "amaranth.lib.crc.Parameters.residue"]], "crc10_atm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC10_ATM"]], "crc10_cdma2000 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC10_CDMA2000"]], "crc10_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC10_GSM"]], "crc10_i_610 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC10_I_610"]], "crc11_flexray (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC11_FLEXRAY"]], "crc11_umts (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC11_UMTS"]], "crc12_3gpp (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_3GPP"]], "crc12_cdma2000 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_CDMA2000"]], "crc12_dect (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_DECT"]], "crc12_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_GSM"]], "crc12_umts (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_UMTS"]], "crc13_bbc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC13_BBC"]], "crc14_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC14_DARC"]], "crc14_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC14_GSM"]], "crc15_can (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC15_CAN"]], "crc15_mpt1327 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC15_MPT1327"]], "crc16_acorn (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ACORN"]], "crc16_arc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ARC"]], "crc16_aug_ccitt (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_AUG_CCITT"]], "crc16_autosar (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_AUTOSAR"]], "crc16_bluetooth (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_BLUETOOTH"]], "crc16_buypass (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_BUYPASS"]], "crc16_ccitt (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CCITT"]], "crc16_ccitt_false (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CCITT_FALSE"]], "crc16_ccitt_true (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CCITT_TRUE"]], "crc16_cdma2000 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CDMA2000"]], "crc16_cms (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CMS"]], "crc16_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DARC"]], "crc16_dds_110 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DDS_110"]], "crc16_dect_r (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DECT_R"]], "crc16_dect_x (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DECT_X"]], "crc16_dnp (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DNP"]], "crc16_en_13757 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_EN_13757"]], "crc16_epc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_EPC"]], "crc16_epc_c1g2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_EPC_C1G2"]], "crc16_genibus (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_GENIBUS"]], "crc16_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_GSM"]], "crc16_ibm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_IBM"]], "crc16_ibm_3740 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_IBM_3740"]], "crc16_ibm_sdlc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_IBM_SDLC"]], "crc16_iec_61158_2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_IEC_61158_2"]], "crc16_iso_hdlc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ISO_HDLC"]], "crc16_iso_iec_14443_3_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ISO_IEC_14443_3_A"]], "crc16_iso_iec_14443_3_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ISO_IEC_14443_3_B"]], "crc16_i_code (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_I_CODE"]], "crc16_kermit (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_KERMIT"]], "crc16_lj1200 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_LJ1200"]], "crc16_lte (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_LTE"]], "crc16_m17 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_M17"]], "crc16_maxim (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_MAXIM"]], "crc16_maxim_dow (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_MAXIM_DOW"]], "crc16_mcrf4xx (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_MCRF4XX"]], "crc16_modbus (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_MODBUS"]], "crc16_nrsc_5 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_NRSC_5"]], "crc16_opensafety_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_OPENSAFETY_A"]], "crc16_opensafety_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_OPENSAFETY_B"]], "crc16_profibus (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_PROFIBUS"]], "crc16_riello (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_RIELLO"]], "crc16_spi_fujitsu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_SPI_FUJITSU"]], "crc16_t10_dif (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_T10_DIF"]], "crc16_teledisk (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_TELEDISK"]], "crc16_tms37157 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_TMS37157"]], "crc16_umts (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_UMTS"]], "crc16_usb (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_USB"]], "crc16_verifone (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_VERIFONE"]], "crc16_v_41_lsb (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_V_41_LSB"]], "crc16_v_41_msb (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_V_41_MSB"]], "crc16_x25 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_X25"]], "crc16_xmodem (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_XMODEM"]], "crc16_zmodem (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ZMODEM"]], "crc17_can_fd (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC17_CAN_FD"]], "crc21_can_fd (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC21_CAN_FD"]], "crc24_ble (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_BLE"]], "crc24_flexray_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_FLEXRAY_A"]], "crc24_flexray_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_FLEXRAY_B"]], "crc24_interlaken (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_INTERLAKEN"]], "crc24_lte_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_LTE_A"]], "crc24_lte_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_LTE_B"]], "crc24_openpgp (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_OPENPGP"]], "crc24_os_9 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_OS_9"]], "crc30_cdma (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC30_CDMA"]], "crc31_philips (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC31_PHILIPS"]], "crc32_aal5 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_AAL5"]], "crc32_adccp (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_ADCCP"]], "crc32_aixm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_AIXM"]], "crc32_autosar (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_AUTOSAR"]], "crc32_base91_c (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_BASE91_C"]], "crc32_base91_d (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_BASE91_D"]], "crc32_bzip2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_BZIP2"]], "crc32_castagnoli (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_CASTAGNOLI"]], "crc32_cd_rom_edc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_CD_ROM_EDC"]], "crc32_cksum (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_CKSUM"]], "crc32_dect_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_DECT_B"]], "crc32_ethernet (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_ETHERNET"]], "crc32_interlaken (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_INTERLAKEN"]], "crc32_iscsi (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_ISCSI"]], "crc32_iso_hdlc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_ISO_HDLC"]], "crc32_jamcrc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_JAMCRC"]], "crc32_mef (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_MEF"]], "crc32_mpeg_2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_MPEG_2"]], "crc32_pkzip (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_PKZIP"]], "crc32_posix (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_POSIX"]], "crc32_v_42 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_V_42"]], "crc32_xfer (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_XFER"]], "crc32_xz (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_XZ"]], "crc3_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC3_GSM"]], "crc3_rohc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC3_ROHC"]], "crc40_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC40_GSM"]], "crc4_g_704 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC4_G_704"]], "crc4_interlaken (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC4_INTERLAKEN"]], "crc4_itu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC4_ITU"]], "crc5_epc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_EPC"]], "crc5_epc_c1g2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_EPC_C1G2"]], "crc5_g_704 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_G_704"]], "crc5_itu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_ITU"]], "crc5_usb (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_USB"]], "crc64_ecma (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_ECMA"]], "crc64_ecma_182 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_ECMA_182"]], "crc64_go_iso (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_GO_ISO"]], "crc64_ms (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_MS"]], "crc64_redis (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_REDIS"]], "crc64_we (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_WE"]], "crc64_xz (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_XZ"]], "crc6_cdma2000_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_CDMA2000_A"]], "crc6_cdma2000_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_CDMA2000_B"]], "crc6_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_DARC"]], "crc6_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_GSM"]], "crc6_g_704 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_G_704"]], "crc6_itu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_ITU"]], "crc7_mmc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC7_MMC"]], "crc7_rohc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC7_ROHC"]], "crc7_umts (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC7_UMTS"]], "crc82_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC82_DARC"]], "crc8_aes (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_AES"]], "crc8_autosar (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_AUTOSAR"]], "crc8_bluetooth (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_BLUETOOTH"]], "crc8_cdma2000 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_CDMA2000"]], "crc8_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_DARC"]], "crc8_dvb_s2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_DVB_S2"]], "crc8_etu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_ETU"]], "crc8_gsm_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_GSM_A"]], "crc8_gsm_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_GSM_B"]], "crc8_hitag (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_HITAG"]], "crc8_itu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_ITU"]], "crc8_i_432_1 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_I_432_1"]], "crc8_i_code (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_I_CODE"]], "crc8_lte (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_LTE"]], "crc8_maxim (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_MAXIM"]], "crc8_maxim_dow (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_MAXIM_DOW"]], "crc8_mifare_mad (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_MIFARE_MAD"]], "crc8_nrsc_5 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_NRSC_5"]], "crc8_opensafety (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_OPENSAFETY"]], "crc8_rohc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_ROHC"]], "crc8_sae_j1850 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_SAE_J1850"]], "crc8_smbus (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_SMBUS"]], "crc8_tech_3250 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_TECH_3250"]], "crc8_wcdma (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_WCDMA"]], "amaranth.lib.crc.catalog": [[21, "module-amaranth.lib.crc.catalog"]], "arraylayout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.ArrayLayout"]], "field (class in amaranth.lib.data)": [[22, "amaranth.lib.data.Field"]], "flexiblelayout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.FlexibleLayout"]], "layout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.Layout"]], "struct (class in amaranth.lib.data)": [[22, "amaranth.lib.data.Struct"]], "structlayout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.StructLayout"]], "union (class in amaranth.lib.data)": [[22, "amaranth.lib.data.Union"]], "unionlayout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.UnionLayout"]], "view (class in amaranth.lib.data)": [[22, "amaranth.lib.data.View"]], "__call__() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.__call__"]], "__eq__() (amaranth.lib.data.field method)": [[22, "amaranth.lib.data.Field.__eq__"]], "__eq__() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.__eq__"]], "__getattr__() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.__getattr__"]], "__getitem__() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.__getitem__"]], "__getitem__() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.__getitem__"]], "__iter__() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.__iter__"]], "amaranth.lib.data": [[22, "module-amaranth.lib.data"]], "as_shape() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.as_shape"]], "as_value() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.as_value"]], "cast() (amaranth.lib.data.layout static method)": [[22, "amaranth.lib.data.Layout.cast"]], "const() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.const"]], "const() (amaranth.lib.data.unionlayout method)": [[22, "amaranth.lib.data.UnionLayout.const"]], "eq() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.eq"]], "shape() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.shape"]], "size (amaranth.lib.data.arraylayout property)": [[22, "amaranth.lib.data.ArrayLayout.size"]], "size (amaranth.lib.data.layout property)": [[22, "amaranth.lib.data.Layout.size"]], "size (amaranth.lib.data.structlayout property)": [[22, "amaranth.lib.data.StructLayout.size"]], "size (amaranth.lib.data.unionlayout property)": [[22, "amaranth.lib.data.UnionLayout.size"]], "width (amaranth.lib.data.field property)": [[22, "amaranth.lib.data.Field.width"]], "enum (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.Enum"]], "enummeta (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.EnumMeta"]], "enumview (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.EnumView"]], "flag (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.Flag"]], "flagview (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.FlagView"]], "intenum (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.IntEnum"]], "intflag (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.IntFlag"]], "__and__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__and__"]], "__call__() (amaranth.lib.enum.enummeta method)": [[23, "amaranth.lib.enum.EnumMeta.__call__"]], "__eq__() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.__eq__"]], "__init__() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.__init__"]], "__invert__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__invert__"]], "__or__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__or__"]], "__rand__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__rand__"]], "__ror__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__ror__"]], "__rxor__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__rxor__"]], "__xor__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__xor__"]], "amaranth.lib.enum": [[23, "module-amaranth.lib.enum"]], "as_shape() (amaranth.lib.enum.enummeta method)": [[23, "amaranth.lib.enum.EnumMeta.as_shape"]], "as_value() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.as_value"]], "const() (amaranth.lib.enum.enummeta method)": [[23, "amaranth.lib.enum.EnumMeta.const"]], "eq() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.eq"]], "shape() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.shape"]], "asyncfifo (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.AsyncFIFO"]], "asyncfifobuffered (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.AsyncFIFOBuffered"]], "fifointerface (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.FIFOInterface"]], "syncfifo (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.SyncFIFO"]], "syncfifobuffered (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.SyncFIFOBuffered"]], "amaranth.lib.fifo": [[24, "module-amaranth.lib.fifo"]], "component (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Component"]], "connectionerror": [[25, "amaranth.lib.wiring.ConnectionError"]], "flippedinterface (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.FlippedInterface"]], "flippedsignature (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.FlippedSignature"]], "flippedsignaturemembers (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.FlippedSignatureMembers"]], "flow (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Flow"]], "in (amaranth.lib.wiring.flow attribute)": [[25, "amaranth.lib.wiring.Flow.In"]], "in (in module amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.In"]], "member (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Member"]], "out (amaranth.lib.wiring.flow attribute)": [[25, "amaranth.lib.wiring.Flow.Out"]], "out (in module amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Out"]], "pureinterface (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.PureInterface"]], "signature (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Signature"]], "signatureerror": [[25, "amaranth.lib.wiring.SignatureError"]], "signaturemembers (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.SignatureMembers"]], "signaturemeta (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.SignatureMeta"]], "__call__() (amaranth.lib.wiring.flow method)": [[25, "amaranth.lib.wiring.Flow.__call__"]], "__contains__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__contains__"]], "__delattr__() (amaranth.lib.wiring.flippedinterface method)": [[25, "amaranth.lib.wiring.FlippedInterface.__delattr__"]], "__delattr__() (amaranth.lib.wiring.flippedsignature method)": [[25, "amaranth.lib.wiring.FlippedSignature.__delattr__"]], "__delitem__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__delitem__"]], "__eq__() (amaranth.lib.wiring.flippedinterface method)": [[25, "amaranth.lib.wiring.FlippedInterface.__eq__"]], "__eq__() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.__eq__"]], "__eq__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__eq__"]], "__getattr__() (amaranth.lib.wiring.flippedinterface method)": [[25, "amaranth.lib.wiring.FlippedInterface.__getattr__"]], "__getattr__() (amaranth.lib.wiring.flippedsignature method)": [[25, "amaranth.lib.wiring.FlippedSignature.__getattr__"]], "__getitem__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__getitem__"]], "__init__() (amaranth.lib.wiring.pureinterface method)": [[25, "amaranth.lib.wiring.PureInterface.__init__"]], "__instancecheck__() (amaranth.lib.wiring.signaturemeta method)": [[25, "amaranth.lib.wiring.SignatureMeta.__instancecheck__"]], "__iter__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__iter__"]], "__setattr__() (amaranth.lib.wiring.flippedinterface method)": [[25, "amaranth.lib.wiring.FlippedInterface.__setattr__"]], "__setattr__() (amaranth.lib.wiring.flippedsignature method)": [[25, "amaranth.lib.wiring.FlippedSignature.__setattr__"]], "__setitem__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__setitem__"]], "__subclasscheck__() (amaranth.lib.wiring.signaturemeta method)": [[25, "amaranth.lib.wiring.SignatureMeta.__subclasscheck__"]], "amaranth.lib.wiring": [[25, "module-amaranth.lib.wiring"]], "array() (amaranth.lib.wiring.member method)": [[25, "amaranth.lib.wiring.Member.array"]], "connect() (in module amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.connect"]], "create() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.create"]], "create() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.create"]], "dimensions (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.dimensions"]], "flatten() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.flatten"]], "flatten() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.flatten"]], "flip() (amaranth.lib.wiring.flippedsignature method)": [[25, "amaranth.lib.wiring.FlippedSignature.flip"]], "flip() (amaranth.lib.wiring.flippedsignaturemembers method)": [[25, "amaranth.lib.wiring.FlippedSignatureMembers.flip"]], "flip() (amaranth.lib.wiring.flow method)": [[25, "amaranth.lib.wiring.Flow.flip"]], "flip() (amaranth.lib.wiring.member method)": [[25, "amaranth.lib.wiring.Member.flip"]], "flip() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.flip"]], "flip() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.flip"]], "flipped() (in module amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.flipped"]], "flow (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.flow"]], "init (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.init"]], "is_compliant() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.is_compliant"]], "is_port (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.is_port"]], "is_signature (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.is_signature"]], "members (amaranth.lib.wiring.signature property)": [[25, "amaranth.lib.wiring.Signature.members"]], "shape (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.shape"]], "signature (amaranth.lib.wiring.component property)": [[25, "amaranth.lib.wiring.Component.signature"]], "signature (amaranth.lib.wiring.flippedinterface property)": [[25, "amaranth.lib.wiring.FlippedInterface.signature"]], "signature (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.signature"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["changes", "contrib", "cover", "guide", "index", "install", "intro", "platform", "platform/gowin", "platform/intel", "platform/lattice-ecp5", "platform/lattice-ice40", "platform/lattice-machxo-2-3l", "platform/quicklogic", "platform/xilinx", "reference", "start", "stdlib", "stdlib/cdc", "stdlib/coding", "stdlib/crc", "stdlib/crc/catalog", "stdlib/data", "stdlib/enum", "stdlib/fifo", "stdlib/wiring", "tutorial"], "filenames": ["changes.rst", "contrib.rst", "cover.rst", "guide.rst", "index.rst", "install.rst", "intro.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", "reference.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", "stdlib/wiring.rst", "tutorial.rst"], "titles": ["Changelog", "Contributing", "Amaranth project documentation", "Language guide", "Language & toolchain", "Installation", "Introduction", "Platform integration", "Gowin", "Intel", "Lattice ECP5", "Lattice iCE40", "Lattice MachXO2 and MachXO3L", "Quicklogic", "Xilinx", "Language reference", "Getting started", "Standard library", "Clock domain crossing", "Code conversion", "Cyclic redundancy checks", "Predefined CRC Algorithms", "Data structures", "Enumerations", "First-in first-out queues", "Interfaces and connections", "Tutorial"], "terms": {"thi": [0, 1, 3, 4, 6, 7, 11, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25], "describ": [0, 1, 15, 16, 17, 22, 23, 25], "public": [0, 1, 15, 17, 25], "interfac": [0, 3, 4, 6, 15, 16, 17, 22, 24], "amaranth": [0, 1, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "It": [0, 1, 3, 6, 15, 16, 20, 22, 23, 25], "doe": [0, 3, 5, 6, 15, 18, 22, 24, 25], "includ": [0, 1, 3, 5, 6, 15, 16, 17, 20, 23, 25], "most": [0, 3, 5, 6, 15, 16, 18, 20, 22, 23, 25], "bug": [0, 1, 3, 5, 6], "fix": [0, 3, 4, 5, 16, 20, 25], "i": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26], "avail": [0, 3, 5, 9, 10, 11, 12, 13, 14, 16, 20, 24, 25], "onlin": 0, "The": [0, 1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26], "migen": 0, "compat": [0, 4, 5, 17], "layer": 0, "ha": [0, 1, 3, 6, 15, 16, 20, 22, 23, 24, 25], "been": [0, 5, 15, 17, 20, 24], "remov": [0, 1, 3, 15, 20, 25], "appli": [0, 3, 20, 22, 23], "follow": [0, 1, 3, 5, 6, 10, 12, 15, 16, 18, 20, 22, 23, 25, 26], "code": [0, 1, 3, 4, 5, 6, 15, 16, 17, 22, 23, 25], "written": [0, 3, 6, 16, 24, 25, 26], "against": [0, 3, 15], "replac": [0, 15, 23, 25], "us": [0, 1, 3, 5, 6, 9, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26], "m": [0, 3, 15, 16, 20, 21, 22, 25], "case": [0, 15, 16, 20, 22, 24, 25], "pattern": [0, 3, 15], "default": [0, 3, 14, 18, 20, 21, 25], "valu": [0, 4, 16, 18, 20, 22, 23, 25], "match": [0, 6, 15, 25], "const": [0, 3, 15, 22, 23, 25], "updat": [0, 1, 3, 5, 16, 20, 25], "util": [0, 15, 17, 20], "log2_int": 0, "need_pow2": 0, "fals": [0, 3, 15, 18, 20, 21, 24, 25], "ceil_log2": 0, "true": [0, 3, 15, 16, 18, 20, 21, 23, 25], "exact_log2": 0, "reset": [0, 6, 16, 18, 20, 24, 25], "keyword": [0, 3, 15, 23, 25], "argument": [0, 3, 15, 23, 25], "init": [0, 3, 15, 18, 20, 22, 25], "convert": [0, 3, 6, 15, 22, 23, 25], "simul": [0, 3, 4, 5, 16], "add_sync_process": [0, 16], "testbench": 0, "add_testbench": 0, "other": [0, 1, 3, 5, 6, 15, 16, 18, 20, 22, 23, 25], "add_process": 0, "hdl": [0, 3, 5, 6, 15, 16, 26], "memori": [0, 4, 6, 15, 16, 17, 24, 25], "lib": [0, 3, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "17": [0, 1, 21, 23], "27": 0, "process": [0, 1, 3, 6, 15, 17, 20, 22, 25], "39": [0, 16], "semant": [0, 3, 6, 15, 25], "43": 0, "renam": 0, "45": 0, "move": 0, "46": 0, "shape": [0, 4, 22, 23, 25], "cast": [0, 4, 15, 22, 23, 25], "rang": [0, 15, 16, 19, 22, 24, 25], "unsign": [0, 3, 15, 22, 23, 25], "ad": [0, 3, 5, 6, 16, 22, 25], "ast": 0, "slice": [0, 3, 15, 22], "object": [0, 3, 9, 15, 20, 22, 23, 25], "have": [0, 1, 3, 5, 15, 17, 22, 25], "made": [0, 3, 5, 25], "castabl": [0, 3, 15, 22, 23, 25], "never": [0, 3, 22, 23, 25], "activ": [0, 6], "instead": [0, 3, 15, 22, 25], "alwai": [0, 3, 6, 15, 16, 18, 20, 25], "signal": [0, 4, 6, 15, 16, 18, 19, 20, 22, 23, 24, 25], "stop": [0, 3], "warn": [0, 15, 17], "hard": [0, 1, 6, 22], "error": [0, 1, 3, 6, 9, 10, 11, 20, 22, 25], "trigger": 0, "ani": [0, 1, 3, 5, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25], "out": [0, 4, 5, 6, 16, 17, 18, 19, 20, 25], "now": [0, 25], "valid": [0, 18, 20, 22, 24, 25], "without": [0, 1, 3, 6, 15, 17, 20, 22, 25], "like": [0, 1, 3, 5, 6, 15, 18, 22, 23, 25], "wire": [0, 3, 16, 17, 25], "member": [0, 15, 22, 23, 25], "cdc": [0, 3, 6, 17, 18], "ffsynchron": [0, 17, 18], "fsm": 0, "immut": [0, 3, 22, 25], "hashabl": [0, 15], "deprec": [0, 15], "normal": [0, 25], "repl": 0, "10": [0, 3, 21, 22, 25], "sampl": [0, 3, 25], "stabl": [0, 3], "rose": 0, "fell": 0, "schedul": 0, "19": 0, "fifo": [0, 6, 17, 24], "fifointerfac": [0, 17, 24], "fwft": 0, "20": 0, "syncfifo": [0, 17, 24], "settl": 0, "command": [0, 1, 5, 6, 9, 10, 11, 12, 13, 14, 16, 22], "mix": [0, 3], "environ": [0, 6, 8, 9, 10, 11, 12, 13, 14], "variabl": [0, 3, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 22, 24, 25], "name": [0, 6, 8, 9, 10, 11, 12, 14, 15, 18, 22, 25], "nmigen_env_diamond": 0, "amaranth_env_diamond": [0, 10, 12], "upper": 0, "buildplan": 0, "execute_local_dock": 0, "extract": [0, 25], "build": [0, 3, 4, 5, 8, 9, 10, 11, 12, 14, 16, 18, 19, 24, 25], "sh": 0, "begin": [0, 3, 15, 16, 22, 25], "bin": [0, 10, 11, 12, 14], "run_script": 0, "execute_loc": 0, "vendor": [0, 3, 6, 8, 9, 10, 11, 12, 13, 14, 16], "intel": [0, 4, 7], "lattice_ecp5": 0, "lattice_ice40": 0, "lattice_machxo2_3l": 0, "quicklog": [0, 4, 7], "xilinx": [0, 4, 7], "18": 0, "support": [0, 1, 3, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 22, 24], "new": [0, 3, 4, 5, 6, 20, 22, 24, 25], "improv": [0, 1, 15, 22, 24, 25], "wai": [0, 1, 3, 15, 22, 23, 25], "defin": [0, 3, 6, 15, 16, 18, 20, 23, 25], "data": [0, 4, 15, 17, 18, 20, 24, 25], "structur": [0, 1, 4, 15, 16, 17, 25], "compon": [0, 2, 3, 6, 16, 17, 22], "record": [0, 1, 15, 16], "In": [0, 3, 15, 16, 22, 23, 24, 25], "departur": 0, "usual": [0, 1, 3, 6, 15, 18, 22, 23, 25], "polici": 0, "give": [0, 3, 15, 22], "design": [0, 1, 3, 5, 6, 14, 15, 16, 17, 18, 20, 22, 25, 26], "addit": [0, 1, 3, 5, 6, 15, 22, 23, 24, 25], "time": [0, 1, 3, 5, 6, 11, 15, 16, 18, 22, 24, 25], "6": [0, 3, 16, 21, 22], "one": [0, 1, 3, 15, 16, 17, 18, 19, 20, 22, 24, 25, 26], "later": [0, 1, 3], "than": [0, 3, 5, 6, 15, 18, 22, 23, 25], "enumer": [0, 4, 15, 17, 22, 25], "extend": [0, 3, 6, 15, 23, 25], "A": [0, 1, 3, 4, 5, 6, 15, 18, 20, 22, 23, 25, 26], "can": [0, 1, 3, 5, 6, 15, 16, 20, 22, 23, 24, 25], "provid": [0, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25], "an": [0, 1, 3, 5, 6, 15, 16, 18, 20, 21, 22, 23, 24, 25], "class": [0, 1, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25], "sever": [0, 1, 3, 15, 25], "extens": [0, 16], "point": [0, 11, 22], "base": [0, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 20, 22, 25], "outsid": [0, 3, 25], "core": [0, 6, 9, 25], "particular": [0, 3, 6, 22, 25], "mai": [0, 1, 3, 5, 15, 18, 20, 22, 23, 25], "return": [0, 3, 15, 16, 20, 22, 23, 25], "wrap": [0, 15, 22, 23, 25], "anoth": [0, 3, 15, 17, 22, 23, 25], "call": [0, 3, 15, 20, 21, 22, 23, 25], "protocol": [0, 15, 23], "15": [0, 16, 21], "issu": [0, 1, 3, 6], "infer": [0, 3, 6, 22], "resolv": [0, 25], "notabl": [0, 5], "b": [0, 3, 20, 23, 25], "where": [0, 1, 3, 15, 18, 20, 22, 25], "both": [0, 1, 3, 6, 15, 20, 22, 25], "ar": [0, 1, 3, 6, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "sign": [0, 1, 3, 15, 22], "python": [0, 1, 3, 5, 6, 11, 15, 16, 22, 23, 25], "7": [0, 3, 5, 6, 21, 22], "11": [0, 21, 22], "12": [0, 3, 21], "featur": [0, 4, 15, 18, 25], "nmigen": [0, 26], "namespac": [0, 3], "annot": [0, 15, 22, 25], "recogn": [0, 15], "nmigen_": 0, "envron": 0, "remain": [0, 15, 24, 25], "had": [0, 22, 25], "sinc": [0, 3, 5, 15, 16, 20, 22, 25], "shell": 0, "amaranth_": 0, "amaranth_env_": 0, "all": [0, 1, 3, 6, 9, 15, 16, 17, 20, 21, 22, 23, 25], "uppercas": 0, "nmigen_env_": 0, "import": [0, 1, 3, 4, 16, 20, 22, 23, 25], "form": [0, 3, 20, 25], "some_vendor": 0, "somevendorplatform": 0, "reduc": [0, 3, 6, 18, 22, 25], "futur": [0, 3, 6, 25], "churn": 0, "count": [0, 3, 15, 16, 25], "replic": [0, 3, 15], "appropri": [0, 25], "depend": [0, 1, 3, 5, 6, 15, 22, 24, 25], "If": [0, 1, 5, 15, 16, 18, 19, 20, 22, 23, 24, 25], "wa": [0, 20, 22, 25], "being": [0, 1, 3, 15, 22, 24, 25, 26], "storag": [0, 15], "access": [0, 3, 21, 24, 25], "bit": [0, 5, 10, 12, 14, 15, 16, 19, 20, 22, 23, 24], "level": [0, 3, 6, 15, 16, 22, 24, 25], "represent": [0, 3, 15, 23, 25], "connect": [0, 4, 16, 17, 18], "togeth": [0, 1, 3, 25], "manual": [0, 1, 4, 5, 20, 22, 25], "instanti": [0, 3, 6, 15, 16, 18, 22], "regist": [0, 3, 6, 20, 24, 25], "e": [0, 1, 3, 15, 18, 24, 25], "g": [0, 3, 14, 15, 18, 25], "past_x": 0, "x": [0, 3, 15, 20, 25], "d": [0, 3, 16, 20, 22, 25], "sync": [0, 3, 16, 22, 25], "eq": [0, 3, 15, 16, 22, 23, 25], "nativ": [0, 6], "syntax": [0, 3, 4, 16, 22, 25], "ensur": [0, 3, 15, 23, 25], "pin": [0, 6], "instanc": [0, 4, 10, 12, 15, 20, 22, 23, 25], "request": [0, 1, 3, 15, 16, 17, 19, 25], "directli": [0, 3, 6, 15, 18, 20, 22, 23, 24, 25], "its": [0, 1, 3, 15, 16, 18, 20, 22, 23, 25], "field": [0, 22], "led": [0, 4], "cat": [0, 3, 15, 23], "n": [0, 3, 18, 19, 22], "o": [0, 2, 3, 6, 14, 18, 19], "note": [0, 3, 15, 18, 20, 22, 23], "roundrobin": 0, "inlin": 0, "copi": [0, 1, 25], "those": [0, 3, 25], "while": [0, 1, 3, 6, 15, 20, 22, 23, 25], "list": [0, 1, 3, 15, 20, 25], "below": [0, 3, 15, 16, 18, 25], "work": [0, 3, 4, 5, 6, 10, 12, 15, 16, 22, 25], "thei": [0, 1, 3, 15, 16, 20, 22, 25], "next": [0, 3, 5, 16, 24, 25], "aggreg": [0, 3, 22], "definit": [0, 3, 4, 16, 25], "constant": [0, 4, 15, 22, 23], "express": [0, 3, 22, 23, 25], "crc": [0, 17, 20], "gener": [0, 3, 6, 15, 16, 20, 25], "8": [0, 3, 5, 20, 21, 22, 25], "9": [0, 3], "initi": [0, 15, 18, 20, 22, 23, 25], "reorgan": 0, "lift": [0, 15, 25], "non": [0, 3, 6, 15, 18, 25], "22": 0, "valuecast": [0, 15, 22], "28": 0, "allow": [0, 3, 6, 15, 18, 23, 25], "overrid": [0, 9, 10, 11, 12, 13, 14, 15, 18, 22, 25], "oper": [0, 4, 6, 15, 22, 23, 25], "31": [0, 3, 21, 22], "type": [0, 3, 15, 20, 22, 23, 24, 25], "safeti": [0, 23], "34": 0, "pureinterfac": [0, 25], "35": [0, 5], "add": [0, 1, 3, 6, 9, 10, 11, 14, 15, 20, 22, 23, 25], "shapelik": [0, 15], "valuelik": [0, 15], "37": 0, "make": [0, 1, 3, 5, 6, 17, 23, 24], "signatur": [0, 17], "38": [0, 16], "shapecast": [0, 3, 15, 22, 23], "similar": [0, 1, 3, 15, 16, 20, 22, 25], "as_sign": [0, 3, 15], "as_unsign": [0, 3, 15], "left": [0, 3, 15, 20], "hand": 0, "side": [0, 3], "assign": [0, 15, 16, 22, 23, 25], "differ": [0, 1, 3, 6, 17, 18, 19, 22, 24, 25], "behavior": [0, 1, 3, 6, 15, 16, 17, 22, 25], "accept": [0, 1, 3, 22, 23, 25], "supersed": 0, "transpar": [0, 3], "read": [0, 3, 22, 24, 25], "port": [0, 16, 25], "enabl": [0, 3, 6, 9, 10, 11, 16, 22, 25], "creat": [0, 1, 3, 15, 20, 21, 23, 25], "__call__": [0, 15, 20, 22, 23, 25], "method": [0, 1, 3, 15, 16, 18, 20, 22, 23, 25], "recurs": [0, 22, 25], "treat": [0, 3, 20, 25], "deriv": [0, 3, 6, 16, 22, 25], "enum": [0, 3, 15, 17, 22, 23, 25], "int": [0, 3, 15, 16, 18, 19, 20, 22, 24, 25], "intenum": [0, 3, 15, 23], "rather": [0, 3, 22, 25], "integ": [0, 15, 20, 22, 23, 25], "empti": [0, 3, 24], "explicitli": [0, 3, 15, 16, 20, 22, 23, 25], "specifi": [0, 3, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 23, 24, 25], "longer": 0, "construct": [0, 3, 6, 15, 16, 20, 22, 23, 24, 25], "were": [0, 3], "__abs__": [0, 15], "predat": 0, "width": [0, 15, 19, 20, 22, 24, 25], "tupl": [0, 3, 25], "uservalu": 0, "linter": 0, "instruct": [0, 16], "file": [0, 3, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 22, 23, 25], "text": 0, "lf": 0, "line": [0, 15, 16, 23, 25], "end": [0, 3, 6, 9, 10, 11, 12, 16], "window": [0, 5, 6, 10, 12], "debug_verilog": 0, "templatedplatform": 0, "env": 0, "run": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16], "add_fil": [0, 11], "reject": [0, 3], "absolut": [0, 3, 15], "path": [0, 10, 12], "sim": [0, 16], "step": [0, 1, 3, 5, 6, 16], "back": [0, 16, 22, 25], "pysim": 0, "invok": [0, 3, 25], "rtlil": 0, "verilog": [0, 3, 6, 16], "explicit": [0, 3, 6, 15, 20], "test": [0, 1, 6, 15, 24], "icepack_opt": 0, "latticeice40platform": [0, 3, 7, 11], "osch": 0, "default_clk": 0, "clock": [0, 4, 6, 16, 17, 20, 24], "sourc": [0, 1, 3, 4, 5, 6, 16, 22, 25], "latticemachxo2platform": [0, 7, 12], "latticemachxo3lplatform": [0, 7, 12], "xrai": [0, 14], "xilinxplatform": [0, 7, 14], "artix": 0, "ultrascal": 0, "part": [0, 1, 3, 15, 16, 17, 22, 23, 25], "gowinplatform": [0, 7, 8], "lattice_machxo2": 0, "lattice_machxo_2_3l": 0, "latticemachxo2or3lplatform": [0, 7, 12], "svf": [0, 10, 12], "program": [0, 1, 3, 6, 10, 12, 16], "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, 6, 23], "nm": 0, "prelud": [0, 4, 15], "am": [0, 3, 15], "adjust": 0, "nmigen_board": 0, "amaranth_board": [0, 16], "board": [0, 4, 16], "switch": [0, 22], "inherit": [0, 3, 15, 22, 24, 25], "miss": [0, 1], "fhdltestcas": 0, "assertform": 0, "necessari": [0, 1, 3, 6, 11, 15, 16, 17, 22, 25], "ab": [0, 3, 15], "rotate_left": [0, 3, 15], "rotate_right": [0, 3, 15], "shift_left": [0, 3, 15], "shift_right": [0, 3, 15], "divis": [0, 3, 15], "modulo": [0, 3, 15], "neg": [0, 3, 15, 18], "divisor": [0, 16], "pulsesynchron": [0, 17, 18], "asyncffsynchron": [0, 17, 18], "asyncfifo": [0, 17, 24], "when": [0, 1, 3, 6, 15, 16, 18, 20, 22, 23, 24, 25], "write": [0, 3, 7, 16, 24, 25], "domain": [0, 4, 6, 15, 16, 17, 24, 25], "r_rst": [0, 24], "assert": [0, 3, 15, 16, 18, 19, 20, 24, 25], "r_level": [0, 24], "w_level": [0, 24], "backend": [0, 3, 16], "larger": [0, 3, 20], "65536": 0, "emit": [0, 3, 25], "yosi": [0, 1, 5, 6, 8, 9, 10, 11, 14], "attribut": [0, 3, 6, 16, 22, 25], "instal": [0, 1, 4, 11, 16], "fall": [0, 17], "pypi": [0, 5, 6], "packag": [0, 1, 5, 16], "builtin": [0, 5], "cxxrtl": 0, "multipl": [0, 3, 6, 15, 19, 25], "fragment": [0, 3, 15], "advanc": [0, 6, 16, 25], "execute_remote_ssh": 0, "vcd": [0, 16], "output": [0, 1, 3, 11, 15, 16, 18, 19, 20, 24, 25], "top": [0, 3, 16], "bench": [0, 6, 16], "modul": [0, 4, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "contain": [0, 1, 3, 6, 15, 16, 20, 21, 22, 25], "onli": [0, 3, 5, 6, 15, 16, 18, 19, 20, 22, 23, 24, 25], "sb_lfosc": 0, "sb_hfosc": 0, "binari": [0, 3, 5, 8, 9, 10, 11, 12, 14, 19], "bitstream": [0, 8, 9, 10, 11, 12, 14, 16], "grade": [0, 26], "famili": [0, 5, 6, 22], "temperatur": 0, "speed": [0, 6], "symbiflow": [0, 13, 14], "separ": [0, 17], "flash": [0, 6, 12, 16], "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, 22, 25], "publish": 0, "under": [0, 3, 15, 22, 25], "collect": [1, 3, 6, 25], "mani": [1, 3, 6, 15, 16, 20, 25], "peopl": 1, "collabor": 1, "over": [1, 20, 22], "year": 1, "would": [1, 3, 15, 20, 22, 25], "same": [1, 3, 6, 15, 16, 20, 22, 23, 24, 25], "everyon": 1, "": [1, 3, 5, 6, 15, 16, 18, 20, 22, 24, 25, 26], "uniqu": [1, 3], "perspect": 1, "we": [1, 3], "re": [1, 20, 23], "glad": 1, "you": [1, 3, 5, 15, 18, 20], "consid": [1, 3, 6, 15, 16, 18, 22, 25, 26], "join": 1, "u": 1, "page": 1, "guid": [1, 4, 15, 16, 20, 25], "through": [1, 3, 6, 15, 17, 22, 25], "some": [1, 3, 6, 15, 16, 25], "best": 1, "tool": [1, 3, 6, 8, 9, 10, 11, 12, 13, 14, 25], "hear": 1, "about": [1, 3, 15, 17, 25], "encount": 1, "crucial": [1, 3], "do": [1, 3, 15, 16, 22, 25], "care": [1, 3], "lot": 1, "correct": [1, 3, 17, 25], "result": [1, 3, 15, 16, 22, 23, 25], "experi": [1, 3], "just": [1, 3, 22, 23], "much": 1, "meant": [1, 25], "comfort": 1, "fewer": [1, 3], "sharp": 1, "edg": [1, 3, 16, 18], "matter": [1, 22], "how": [1, 3, 5, 20, 22, 25], "technolog": 1, "appeal": 1, "might": 1, "more": [1, 3, 6, 15, 16, 22, 25], "guardrail": 1, "pleas": 1, "To": [1, 3, 5, 6, 15, 16, 20, 21, 22, 25], "go": [1, 6, 15, 17, 25], "beyond": [1, 3, 25], "see": [1, 3, 15, 16, 18, 25], "messag": [1, 3, 9, 10, 11, 15, 16, 25], "understand": [1, 3, 25], "mislead": 1, "even": [1, 3, 15, 18, 25], "especi": [1, 3, 6], "think": 1, "did": [1, 5], "someth": 1, "wrong": [1, 3, 25], "inform": [1, 9, 10, 11, 16, 22, 25], "exact": [1, 15, 22], "version": [1, 3, 4, 5, 15, 17], "which": [1, 3, 6, 11, 15, 16, 18, 20, 21, 22, 23, 24, 25], "find": 1, "c": [1, 3, 10, 12, 15, 23, 25], "print": [1, 3, 25], "__version__": 1, "complet": [1, 3, 15, 20], "self": [1, 3, 6, 15, 16, 22, 23, 25], "minim": [1, 15, 16], "demonstr": [1, 15, 16, 25], "feasibl": 1, "sequenc": [1, 15, 18, 22], "reproduc": [1, 6], "what": [1, 3, 20, 25], "expect": [1, 22, 25], "happen": [1, 3], "actual": [1, 23, 25], "possibl": [1, 3, 6, 15, 23, 25], "verbatim": 1, "log": [1, 9, 10, 11, 12, 14], "termin": 1, "For": [1, 3, 5, 15, 20, 21, 22, 23, 25], "usabl": [1, 6, 25], "reason": [1, 3, 25], "why": [1, 25], "There": [1, 3, 15, 25], "person": 1, "who": 1, "should": [1, 3, 5, 15, 16, 18, 22, 24, 25], "submit": [1, 22], "valuabl": 1, "own": [1, 3, 22], "right": [1, 3, 15, 22], "appreci": 1, "open": [1, 3, 6, 16], "commun": [1, 6, 22, 25, 26], "tend": 1, "opportun": 1, "enjoi": 1, "pull": [1, 5], "howev": [1, 3, 5, 15, 18, 22, 25], "unless": [1, 3, 15, 24, 25], "ve": 1, "few": [1, 3, 16, 22, 25], "befor": [1, 3, 5, 10, 12, 14, 25], "truli": 1, "trivial": 1, "discuss": [1, 25], "maintain": [1, 6, 18], "first": [1, 3, 4, 5, 6, 15, 16, 17, 18, 20, 22, 25], "doesn": 1, "t": [1, 3, 15, 22], "take": [1, 3, 6, 15, 20, 25], "sometim": [1, 3, 6, 25], "save": [1, 10, 12], "unnecessari": 1, "frustrat": 1, "languag": [1, 2, 16, 17, 23, 25], "toolchain": [1, 2, 3, 5, 8, 9, 10, 11, 12, 13, 14, 16], "from": [1, 5, 6, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25], "kind": [1, 3, 22, 25], "everi": [1, 3, 6, 15, 16, 18, 20, 22, 25], "unavoid": 1, "tightli": [1, 3, 25], "coupl": 1, "seemingli": 1, "obviou": 1, "appar": 1, "minor": 1, "decis": [1, 3], "dramat": 1, "consequ": [1, 6], "sure": [1, 5], "undergo": 1, "scrutini": 1, "commit": [1, 5], "impact": 1, "chanc": 1, "voic": 1, "heard": 1, "substanti": 1, "must": [1, 3, 11, 15, 17, 18, 22, 23, 25], "formal": [1, 26], "comment": [1, 15, 17], "well": [1, 3, 5, 6, 16, 22, 25], "here": [1, 15, 22, 23], "typic": [1, 6], "after": [1, 3, 5, 9, 10, 11, 12, 14, 18, 20, 24, 25], "round": [1, 24], "review": [1, 15, 17], "achiev": [1, 6], "unanim": 1, "consensu": 1, "pdm": 1, "manag": [1, 3, 22], "develop": [1, 16, 22], "workflow": [1, 5, 6, 16], "download": [1, 5, 6, 16, 20], "latest": 1, "onc": [1, 3, 15, 16, 18, 22, 25], "done": [1, 3, 15, 22, 23], "so": [1, 3, 6, 16, 18, 20, 22, 25], "dev": 1, "virtual": [1, 25], "locat": [1, 4, 5, 16, 25], "venv": 1, "runtim": 1, "itself": [1, 3, 10, 12, 15, 16, 20, 22, 23, 25], "edit": [1, 16], "mode": [1, 3], "mean": [1, 3, 15, 20, 25], "immedi": [1, 3, 5, 18], "reflect": [1, 15, 20], "pick": 1, "up": [1, 3, 16, 22, 24, 25, 26], "good": [1, 3, 10, 12], "habit": 1, "each": [1, 3, 6, 15, 20, 22, 25], "tree": [1, 3, 6], "frontend": 1, "yices2": 1, "smt": 1, "solver": 1, "These": [1, 6, 15, 22, 25], "distribut": [1, 5], "oss": 1, "cad": 1, "suit": 1, "reli": [1, 6, 25], "verif": [1, 6, 25, 26], "skip": [1, 15], "index": [1, 3, 15, 22, 25], "doc": 1, "_build": 1, "html": 1, "involv": [1, 3], "small": [1, 3, 15, 16], "iter": [1, 3, 20, 22, 25], "labor": [1, 6, 22], "rebuild": 1, "start": [1, 3, 4, 6, 20, 22, 25], "automat": [1, 3, 16, 23], "live": 1, "brows": 1, "http": [1, 5, 20], "127": [1, 3], "0": [1, 3, 4, 5, 15, 16, 19, 20, 22, 23, 25], "1": [1, 3, 4, 15, 16, 18, 20, 22, 23, 24, 25], "8000": 1, "browser": 1, "short": [1, 3, 25], "delai": [1, 18, 24], "keep": [1, 25], "ey": 1, "syntact": 1, "refer": [1, 3, 4, 20, 25], "occasion": [1, 3], "builder": 1, "persist": [1, 3], "render": 1, "incorrect": 1, "outdat": 1, "content": 1, "our": 1, "style": [1, 6], "guidelin": 1, "evolv": 1, "eventu": 1, "them": [1, 3, 15, 16, 20, 22, 25], "At": [1, 3, 6], "moment": [1, 3, 6, 16], "ask": 1, "effort": [1, 6, 16], "modifi": [1, 25], "spirit": 1, "surround": 1, "dure": [1, 3, 6, 18, 22], "doubt": 1, "mondai": 1, "00": 1, "utc": 1, "irc": 1, "channel": [1, 22], "lang": [1, 5], "libera": 1, "chat": 1, "matrix": 1, "org": 1, "bridg": 1, "appear": [1, 3, 22, 24, 25], "user": [1, 3, 5, 15, 16, 22, 23], "contributor": 1, "newli": [1, 25], "warrant": 1, "broad": [1, 17], "attent": 1, "primari": 1, "avenu": 1, "want": [1, 20, 26], "interest": [1, 15], "evolut": 1, "simpli": 1, "view": [1, 3, 17], "feel": 1, "free": 1, "attend": 1, "abl": [1, 3], "publicli": 1, "summari": 1, "post": 1, "relev": [1, 15, 25], "github": [1, 5], "thread": 1, "standard": [2, 3, 4, 9, 10, 11, 15, 16, 20, 23, 25], "system": [2, 3, 4, 16, 25], "chip": [2, 25], "toolkit": 2, "progress": [3, 4, 15], "serious": [3, 4, 15], "incomplet": [3, 4, 15], "introduc": [3, 25], "depth": [3, 24], "assum": [3, 15], "familiar": [3, 15], "digit": [3, 6, 17], "requir": [3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 20, 22, 25], "prior": 3, "hardwar": [3, 6, 17, 20], "descript": [3, 6, 15, 20, 22, 25], "tutori": [3, 4, 16], "introduct": [3, 4, 15, 16, 17], "detail": [3, 15, 16, 18, 20, 25], "underli": [3, 15, 22, 23], "becaus": [3, 5, 15, 22, 25], "regular": 3, "librari": [3, 4, 15, 18], "need": [3, 5, 6, 15, 18, 22, 24, 25], "root": [3, 11], "carefulli": 3, "curat": 3, "export": [3, 10, 12, 15, 23], "amount": [3, 6, 15, 16, 22], "essenti": [3, 6, 17, 25], "nearli": 3, "dedic": 3, "practic": [3, 25], "glob": [3, 15], "readabl": [3, 6, 25], "frown": 3, "upon": 3, "convent": [3, 6], "alia": [3, 12], "exampl": [3, 15, 16, 20, 21, 22, 25], "signed": [3, 15, 22, 25], "5": [3, 4, 16, 21, 22, 23], "known": [3, 6, 10, 12, 15, 17, 20, 22], "upfront": [3, 15], "conveni": [3, 5, 15, 22, 23, 25], "alias": [3, 15], "v": [3, 16], "also": [3, 6, 15, 16, 17, 20, 22, 23, 24, 25], "retriev": [3, 22, 25], "len": [3, 15, 22], "3": [3, 4, 5, 16, 21, 22, 25], "basic": [3, 16], "term": [3, 20], "number": [3, 9, 15, 18, 19, 22, 24, 25], "store": [3, 5, 22], "anywher": [3, 22], "repres": [3, 15, 23], "interpret": [3, 15, 25], "two": [3, 11, 15, 20, 22, 25], "complement": [3, 15], "simplest": 3, "ten": 3, "minus_two": 3, "2": [3, 4, 15, 16, 18, 23, 24, 25], "abov": [3, 15, 16, 25], "omit": [3, 5], "posit": [3, 15, 20, 22, 25], "smallest": 3, "As": [3, 15, 16, 17, 22], "special": [3, 6, 25], "get": [3, 4, 5, 6, 22], "4": [3, 4, 16, 21, 22, 23], "truncat": [3, 15], "fit": [3, 15], "although": [3, 6, 16, 25], "rare": [3, 15, 22, 25], "permit": 3, "360": 3, "104": 3, "129": 3, "indirectli": 3, "implicit": [3, 20], "shorthand": 3, "r": 3, "produc": [3, 6, 16, 18, 25], "larg": [3, 22, 24], "enough": [3, 15, 22], "min": 3, "max": [3, 15], "otherwis": [3, 5, 15, 16, 18, 19, 22, 25], "counter": [3, 4, 25], "whose": [3, 15, 17, 22, 23, 25], "set": [3, 9, 10, 11, 12, 14, 15, 18, 20, 24, 25, 26], "100": [3, 18], "item": [3, 20, 25], "exclus": 3, "half": 3, "element": [3, 15, 22, 24, 25], "power": [3, 6, 18, 24], "wide": [3, 15], "fencepost": 3, "256": [3, 22], "syntaxwarn": 3, "equal": [3, 15, 20, 22, 23, 25], "inclus": 3, "off": [3, 10, 12], "detect": [3, 20, 25], "diagnost": [3, 6, 15, 16, 25], "bound": 3, "subclass": [3, 15, 22, 23, 25], "finit": [3, 6], "machin": [3, 6], "multiplex": 3, "complex": [3, 6, 15, 22, 25], "distinct": 3, "direct": [3, 6, 22, 25], "bottom": 3, "funct4": 3, "sub": [3, 23], "mul": [3, 23], "prevent": [3, 15], "unwant": 3, "implement": [3, 6, 15, 17, 18, 20, 22, 23, 24, 25], "facil": [3, 22, 25], "equival": [3, 15, 22, 23, 25], "d5": 3, "d1": [3, 16, 25], "subset": [3, 22], "operand": [3, 15, 23], "numer": 3, "d26": 3, "funct": [3, 23], "op": [3, 23], "reg": [3, 16, 23], "imm": [3, 23], "instr": [3, 23], "addi": [3, 23], "expand": 3, "potenti": [3, 6, 25], "vari": 3, "respect": [3, 25], "cannot": [3, 15, 22, 23, 24, 25], "uniniti": 3, "undefin": 3, "waveform": [3, 5, 16], "viewer": [3, 5], "place": [3, 5, 6, 14, 15, 16, 23, 25], "foo": [3, 23, 25], "bar": [3, 23], "paramet": [3, 15, 16, 17, 18, 19, 20, 22, 24, 25], "foo2": 3, "second_foo": 3, "prepar": 3, "synthesi": [3, 6, 11, 14], "ambigu": 3, "zero": [3, 15, 22, 24], "none": [3, 14, 15, 16, 18, 19, 25], "resett": [3, 18], "reset_less": [3, 18], "via": [3, 5, 6, 22, 25], "resetinsert": [3, 15], "affect": [3, 5, 25], "combin": [3, 15, 22, 25], "rich": [3, 6], "themselv": 3, "concret": [3, 15, 22, 23], "goal": [3, 25], "calcul": 3, "contrast": 3, "abstract": [3, 15, 17, 22], "circuit": [3, 6, 15], "synthes": [3, 5, 6, 10, 11, 14, 16], "ordinari": [3, 6], "sig": [3, 16, 22, 23, 25], "rememb": 3, "exist": [3, 6, 20, 24, 25], "higher": [3, 15, 18], "traceback": [3, 22, 23, 25], "recent": [3, 20, 22, 23, 25], "last": [3, 5, 22, 23, 25], "typeerror": [3, 15, 22, 23, 25], "attempt": 3, "boolean": [3, 15], "therefor": [3, 20], "statement": [3, 15, 23, 25], "execut": 3, "decid": 3, "whether": [3, 6, 15, 16, 20, 25], "bodi": [3, 25], "fact": 3, "long": [3, 15, 20], "finish": [3, 16], "solv": 3, "problem": [3, 4, 25], "manipul": [3, 15, 22, 25], "OR": [3, 15, 23], "select": [3, 15], "regardless": 3, "too": 3, "unlimit": 3, "precis": [3, 22], "overflow": [3, 16, 25], "suffici": [3, 22, 25], "similarli": [3, 5, 25], "either": [3, 5, 15, 18, 19, 22, 23, 25], "128": 3, "382": 3, "signific": [3, 6, 15, 19, 20, 22], "tabl": 3, "negat": [3, 15, 23], "subtract": [3, 15], "floor": [3, 15], "due": [3, 25], "limit": [3, 6, 16, 25], "chain": [3, 18], "inequ": [3, 15], "greater": [3, 15], "effici": 3, "NOT": [3, 15], "AND": [3, 15, 23], "xor": [3, 15, 20, 23], "impli": 3, "revers": [3, 20, 25], "exponenti": 3, "wider": 3, "intermedi": 3, "stress": 3, "32": [3, 16, 21, 22, 25], "4294967296": 3, "break": [3, 15], "veri": [3, 22, 25], "sidewai": 3, "pair": [3, 15, 25], "between": [3, 6, 15, 17, 18, 19, 22, 24, 25], "unari": [3, 15], "sole": [3, 15, 25], "odd": [3, 15], "bool": [3, 15, 18, 20, 25], "conceptu": 3, "function": [3, 5, 6, 15, 16, 17, 20, 22, 25], "unlik": 3, "chang": [3, 4, 5, 6, 15, 17, 22, 25], "clariti": [3, 16, 25], "p": 3, "q": 3, "preced": 3, "wherea": [3, 25], "parenthes": 3, "around": [3, 25], "subtl": [3, 6], "en": [3, 16, 25], "addr": [3, 22, 25], "d0": [3, 22, 23], "unexpect": [3, 6], "stb": 3, "use_stb": 3, "msb": 3, "sd": 3, "misus": [3, 6], "apart": 3, "act": [3, 23, 24, 25], "concaten": [3, 25], "clash": 3, "except": [3, 15, 22, 23, 25], "least": [3, 6, 15, 17, 19, 20, 22, 24, 25], "singl": [3, 6, 15, 16, 22, 23, 25], "subscript": 3, "often": [3, 6, 22, 25], "offset": [3, 15, 22], "notat": 3, "length": [3, 22], "j": 3, "k": 3, "bit_select": [3, 15], "w": [3, 16], "overlap": [3, 15, 22], "word_select": [3, 15], "word": [3, 15, 20, 25], "talk": 3, "convention": 3, "variat": 3, "occupi": 3, "explain": [3, 5], "0th": 3, "expon": [3, 22], "mismatch": [3, 5], "caus": [3, 15, 18, 23], "confus": [3, 25], "0b1001": 3, "0b1010": 3, "0b1010_1001": 3, "val": [3, 16], "Such": [3, 25], "avoid": [3, 5, 6, 15], "seem": 3, "natur": [3, 19], "alon": 3, "easier": [3, 6], "could": [3, 17, 18, 22, 25], "ye": 3, "deliber": 3, "option": [3, 6, 9, 10, 11, 14, 16, 18, 21, 23, 25], "examin": [3, 25], "str": [3, 18, 22, 24, 25], "mask": 3, "don": 3, "whitespac": 3, "charact": 3, "compar": [3, 22, 23, 24, 25], "correspond": [3, 15, 16, 20, 22, 23, 25], "leftmost": 3, "lowest": [3, 18], "succe": 3, "correspondingli": [3, 25], "asid": [3, 25], "space": [3, 24], "tab": 3, "ignor": [3, 15, 25], "given": [3, 20, 22, 23, 25], "01": 3, "0b0000_0110": 3, "0b0000_0010": 3, "reinterpret": [3, 15], "pc": 3, "mux": [3, 15], "sel": 3, "val1": 3, "val0": 3, "condit": [3, 6, 15, 16, 23, 24], "mutabl": [3, 25], "behav": [3, 23], "proxi": [3, 22, 25], "three": [3, 15, 17], "properti": [3, 20, 22, 25], "transform": [3, 22], "origin": [3, 5, 25], "target": [3, 18, 22, 23, 25], "final": [3, 6, 25], "pixel": [3, 22], "180": 3, "92": 3, "230": 3, "74": 3, "130": 3, "115": 3, "58": 3, "becom": [3, 20, 24], "recommend": [3, 6, 15], "mutat": [3, 25], "unpredict": 3, "branch": [3, 5], "extrem": 3, "quickli": 3, "exhaust": 3, "resourc": 3, "ram": [3, 24], "unit": 3, "hierarchi": [3, 22], "independ": 3, "associ": [3, 22, 25], "fresh": 3, "group": [3, 22], "ident": [3, 15, 19, 20, 24, 25], "predefin": [3, 17, 20], "comb": [3, 16, 22, 25], "reserv": [3, 22], "specif": [3, 5, 6, 15, 18, 22, 25], "occur": 3, "asynchron": [3, 6, 18, 24], "lack": [3, 6], "feedback": [3, 25], "loop": [3, 6], "hold": [3, 15, 16, 23], "effect": [3, 25], "until": [3, 5, 15, 18, 22, 26], "0b11": 3, "d3": 3, "entir": [3, 16, 20], "def": [3, 15, 16, 22, 23, 25], "add_toggl": 3, "num": 3, "f": [3, 8, 15, 16, 25], "sync_": 3, "driven": [3, 6, 18], "undriven": 3, "exactli": [3, 15, 22, 23, 25], "dsl": 3, "syntaxerror": 3, "driver": 3, "conflict": [3, 25], "try": [3, 5], "drive": [3, 16, 25], "alreadi": [3, 16, 25], "clearli": 3, "meaning": [3, 25], "inher": 3, "answer": [3, 25], "greatli": 3, "simplifi": [3, 6], "analyz": 3, "snippet": [3, 15], "determin": [3, 15, 25], "tailor": 3, "task": [3, 6], "context": [3, 25], "timer": [3, 16], "superfici": 3, "imper": 3, "insid": [3, 25], "observ": 3, "satisfi": [3, 25], "uncondition": 3, "account": [3, 25], "further": [3, 6, 18], "cond1": 3, "cond2": 3, "parallel": [3, 20], "x_coord": 3, "is_bporch": 3, "364": 3, "is_act": 3, "374": 3, "is_fporch": 3, "within": [3, 15, 25], "present": [3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 25], "whole": 3, "full": [3, 5, 20, 25], "is_even": 3, "is_odd": 3, "too_big": 3, "whichev": 3, "earlier": 3, "cover": [3, 6, 15, 25], "programmat": 3, "particularli": 3, "easi": [3, 6], "squar": 3, "simpl": [3, 6, 16, 22, 25], "choos": [3, 16], "enter": 3, "cycl": [3, 16, 18, 20, 24], "bu": [3, 25], "transact": 3, "bus_addr": 3, "16": [3, 16, 20, 21, 22, 25], "r_data": [3, 24, 25], "r_en": [3, 24], "latch": [3, 24], "address": [3, 22, 25], "0x1234": 3, "strobe": [3, 24], "again": 3, "section": [3, 7, 16, 22, 25], "belong": 3, "dom": 3, "current": [3, 20, 25], "captur": [3, 25], "ongo": 3, "whenev": [3, 15, 20, 25], "y": [3, 25], "past": [3, 4], "typo": 3, "unreach": 3, "hazard": 3, "elimin": [3, 6, 18], "string": [3, 22, 25], "lead": [3, 20], "surpris": 3, "nest": [3, 25], "innermost": 3, "outer": [3, 25], "inner": [3, 25], "shorten": 3, "unstabl": 3, "ring": 3, "oscil": [3, 16], "prohibit": 3, "assumpt": [3, 25], "aren": 3, "silent": 3, "miscompil": 3, "though": [3, 25], "rout": [3, 5, 6, 14, 16], "exceedingli": 3, "desir": 3, "technologi": 3, "primit": [3, 6], "devic": [3, 6, 10, 11, 12], "lut": 3, "transit": 3, "configur": [3, 6, 16, 18, 20, 25], "down": 3, "increment": [3, 16], "decrement": 3, "retain": [3, 16], "clockdomain": [3, 15], "video": 3, "cd_video": 3, "local": 3, "concis": [3, 22, 25], "add_video_domain": 3, "cd": [3, 5], "video_": 3, "domain_nam": 3, "invoc": [3, 6, 16], "clk": [3, 16], "By": [3, 6], "jtag": [3, 10, 12], "clk_edg": 3, "rst": [3, 16], "high": [3, 6, 19, 22], "still": [3, 16, 18, 25, 26], "nevertheless": [3, 25], "undesir": [3, 6], "startup": 3, "subject": [3, 15, 23], "intention": 3, "undocu": 3, "enableinsert": [3, 15], "frequenc": [3, 16, 18], "phase": 3, "clocksign": [3, 15], "resetsign": [3, 15], "bus_clk": 3, "bus_rstn": 3, "found": 3, "With": [3, 5, 16, 20], "cd_sync": 3, "Be": 3, "safe": [3, 6, 18, 23], "consult": 3, "document": [3, 4, 6, 15, 16, 17, 20, 25], "your": [3, 4, 5, 15, 18, 25], "platform": [3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 25], "fpga": [3, 5, 16, 18, 24, 26], "disabl": [3, 16], "divid": 3, "built": [3, 6, 15, 16, 22], "smaller": 3, "subdivis": 3, "elaborat": [3, 15, 16, 25], "compos": [3, 25], "deleg": [3, 15], "netlist": [3, 6, 11, 14, 15], "receiv": [3, 20, 25], "inject": 3, "debug": [3, 5, 6, 16], "experiment": [3, 5], "twice": [3, 15, 25], "correctli": [3, 6, 16, 24, 25], "rel": 3, "guarante": [3, 15, 17, 18], "plain": [3, 22, 23], "counter_": 3, "autogener": 3, "difficult": 3, "suppli": [3, 6], "alter": 3, "input": [3, 15, 16, 18, 19, 20, 24], "map": [3, 14, 22, 25], "shorter": 3, "common": [3, 6, 16, 17], "forward": 3, "held": 3, "z": 3, "applic": [3, 5, 6, 16, 22, 25], "resetsynchron": [3, 17, 18], "reusabl": [3, 6, 16], "leav": [3, 22, 25], "domainrenam": [3, 15], "integr": [3, 4, 16, 26], "kei": [3, 15, 22, 25], "vhdl": [3, 6], "translat": 3, "entiti": 3, "Not": 3, "parameter": 3, "extern": [3, 22, 25], "pass": [3, 23, 25], "uninterpret": 3, "identifi": [3, 22], "a_anam": 3, "attr": [3, 25], "anam": 3, "p_pname": 3, "param": [3, 22], "pname": 3, "i_inam": 3, "in_val": 3, "inam": 3, "o_onam": 3, "out_val": 3, "onam": 3, "processor": [3, 17, 20], "p_width": 3, "i_clk": 3, "i_rst": 3, "i_en": 3, "i_mod": 3, "i_data_in": 3, "i_data": 3, "o_data_out": 3, "o_data": 3, "data_in": 3, "data_out": 3, "convein": 3, "adorn": 3, "flipflop": 3, "__init__": [3, 16, 22, 23, 25], "isinst": [3, 15, 25], "sb_dff": 3, "i_c": 3, "i_d": 3, "o_q": 3, "rais": [3, 15, 22, 23, 25], "notimplementederror": 3, "prerequisit": 4, "blink": 4, "arrai": [4, 15, 22, 25], "control": [4, 6, 16, 25], "flow": [4, 6, 25], "combinatori": [4, 16, 25], "evalu": [4, 16], "synchron": [4, 6, 16, 18, 24], "elabor": [4, 16, 18, 25], "backward": [4, 17], "cross": [4, 6, 17], "convers": [4, 6, 15, 17, 23, 25], "queue": [4, 17], "cyclic": [4, 17], "redund": [4, 17, 25], "check": [4, 15, 16, 17, 25], "gowin": [4, 7], "lattic": [4, 7, 16], "ecp5": [4, 7], "ice40": [4, 7, 16], "machxo2": [4, 7], "machxo3l": [4, 7], "changelog": 4, "releas": [4, 15, 18], "unreleas": 4, "contribut": 4, "report": [4, 6, 9, 11, 14, 25], "propos": 4, "codebas": 4, "weekli": 4, "meet": 4, "newer": 5, "cpython": 5, "faster": [5, 18], "pypy3": 5, "pip": 5, "23": [5, 22], "popular": 5, "softwar": [5, 20], "gtkwave": 5, "invalu": 5, "x86_64": 5, "aarch64": 5, "continu": [5, 26], "64": [5, 21], "win32": 5, "win64": 5, "unpack": 5, "upgrad": 5, "maco": 5, "homebrew": 5, "Then": 5, "brew": 5, "debian": 5, "sudo": 5, "apt": 5, "python3": [5, 16], "On": [5, 10, 12, 18], "architectur": [5, 20], "pip3": 5, "arch": 5, "linux": [5, 10, 12], "pacman": 5, "repositori": [5, 6], "main": 5, "reliabl": [5, 6, 25], "api": 5, "flux": 5, "mind": 5, "previou": [5, 20, 22], "git": 5, "com": 5, "directori": 5, "crash": 5, "clone": 5, "ff": 5, "logic": [6, 15, 16, 24], "aim": 6, "learn": [6, 26], "mistak": 6, "consist": [6, 18, 25], "restrict": [6, 22, 23, 25], "choic": 6, "industri": 6, "transfer": [6, 18, 25], "model": [6, 17, 20], "human": [6, 25], "flexibl": [6, 22], "widespread": 6, "adopt": 6, "focus": 6, "block": [6, 16, 18, 19, 24, 25], "state": [6, 15, 18], "rule": [6, 15, 22], "arithmet": [6, 15], "close": 6, "organ": 6, "seamlessli": [6, 15], "principl": [6, 25], "accident": 6, "expens": 6, "third": [6, 15, 17, 22], "parti": [6, 15, 17], "lint": 6, "synthesiz": [6, 16], "prone": [6, 22, 25], "favor": 6, "regularli": 6, "ones": [6, 15, 22, 25], "highlight": 6, "importantli": 6, "come": [6, 11], "buffer": [6, 24], "box": [6, 16], "focu": 6, "treatment": 6, "overridden": [6, 22, 25], "gear": 6, "peripher": [6, 25], "migrat": 6, "Of": 6, "cours": 6, "icaru": 6, "veril": 6, "event": 6, "slower": 6, "compil": 6, "ahead": 6, "remark": 6, "perform": [6, 15, 20, 22, 23, 25], "pure": [6, 25], "co": [6, 16], "major": [6, 25], "commerci": 6, "easili": 6, "constraint": [6, 14, 16, 18], "script": [6, 8, 9, 10, 11, 12, 13, 14], "placement": 6, "analysi": 6, "custom": [6, 16, 20, 23, 24], "insert": [6, 9, 10, 11, 12, 13, 14, 25], "portabl": 6, "remot": 6, "nix": 6, "everyth": [6, 17, 22, 23, 25], "connector": 6, "pinout": [6, 16], "probe": 6, "show": 6, "programm": 6, "establish": 6, "segment": 6, "displai": 6, "spi": 6, "sdram": 6, "reus": [6, 25], "unmodifi": 6, "polar": 6, "unifi": 6, "invers": [6, 15], "trace": 6, "low": [6, 19, 22], "invert": [6, 23], "latticeecp5platform": [7, 10], "apicula": 8, "nextpnr": [8, 9, 10, 11, 14], "gowin_pack": 8, "popul": [8, 9, 10, 11, 12, 13, 14, 22, 25], "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, 16], "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], "pnmainc": [10, 12], "ddtcmd": [10, 12], "diamond_env": [10, 12], "candid": [10, 12], "bat": [10, 12], "echo": [10, 12], "lscc": [10, 12], "diamond_vers": [10, 12], "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, 20], "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, "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, "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, 20], "usag": 14, "drc": 14, "bgn": 14, "amaranth_env_symbiflow": 14, "fasm2fram": 14, "xc7frames2bit": 14, "amaranth_env_xrai": 14, "anyth": 15, "isn": 15, "impend": [15, 17], "nontrivi": [15, 17], "notic": 15, "underscor": [15, 22, 25], "intern": [15, 22, 25], "individu": [15, 22], "kept": [15, 22], "downstream": 15, "src_loc_at": [15, 20, 25], "inspect": [15, 16], "stack": 15, "site": [15, 16], "consider": 15, "concept": [15, 25], "my_shape_cast": 15, "obj": [15, 22, 23, 25], "addition": [15, 20], "frame": 15, "obtain": [15, 20], "varieti": 15, "static": [15, 22, 25], "repeatedli": [15, 22], "as_shap": [15, 22, 23], "recursionerror": [15, 22], "__repr__": [15, 25], "mechan": 15, "illustr": [15, 25], "purpos": [15, 25], "shape_cast": 15, "value_lik": 15, "fulli": [15, 20], "idempot": 15, "propag": [15, 23], "caller": [15, 23], "arbitrari": [15, 18, 22, 23], "liter": [15, 23], "constrain": [15, 23], "valueerror": [15, 23], "latter": [15, 22], "compliant": [15, 25], "issubclass": [15, 25], "cl": [15, 25], "enummeta": [15, 23], "comput": [15, 20, 25], "abil": [15, 16, 23], "__add__": [15, 25], "bitwis": [15, 22, 23], "__invert__": [15, 23], "drop": [15, 18, 23], "union": [15, 25], "opaqu": 15, "indic": [15, 19, 20, 22, 25], "second": [15, 18, 22], "enum_shap": 15, "as_valu": [15, 22, 23], "__bool__": 15, "forbidden": [15, 25], "__pos__": 15, "__neg__": 15, "__radd__": 15, "swap": 15, "__sub__": 15, "__rsub__": 15, "__mul__": 15, "__rmul__": 15, "__floordiv__": 15, "__rfloordiv__": 15, "__mod__": 15, "remaind": 15, "__rmod__": 15, "__eq__": [15, 22, 23, 25], "comparison": [15, 23], "__ne__": 15, "__lt__": 15, "less": [15, 25], "__le__": 15, "__gt__": 15, "__ge__": 15, "deviat": 15, "wasn": 15, "imposs": [15, 25], "__and__": [15, 23], "__rand__": [15, 23], "reduct": 15, "__or__": [15, 23], "__ror__": [15, 23], "__xor__": [15, 23], "__rxor__": [15, 23], "__lshift__": 15, "shift": [15, 20], "__rlshift__": 15, "rotat": 15, "__rshift__": 15, "__rrshift__": 15, "left_right": 15, "__len__": 15, "__getitem__": [15, 22, 25], "__contains__": [15, 25], "membership": 15, "granular": 15, "success": 15, "noth": [15, 24, 25], "adjac": 15, "_": [15, 16, 25], "grammar": 15, "__hash__": 15, "hash": 15, "preclud": 15, "dict": [15, 25], "assoc": 15, "id": [15, 25], "info": 15, "implicitli": 15, "prefer": 15, "value_cast": 15, "discov": 15, "richer": 15, "badenum": 15, "cursori": 16, "overview": 16, "explan": [16, 25], "shown": [16, 25], "up_count": 16, "py": 16, "upcount": 16, "ovf": 16, "reach": [16, 22, 25], "super": [16, 22, 25], "els": [16, 18, 25], "declar": [16, 25], "helper": [16, 25], "elif": 16, "black": [16, 22], "verifi": [16, 25], "dut": 16, "25": [16, 21], "yield": [16, 22, 25], "30": [16, 21], "clear": [16, 25], "add_clock": 16, "1e": 16, "mhz": 16, "write_vcd": 16, "successfulli": 16, "de": 16, "facto": 16, "interoper": [16, 17], "rise": 16, "lightli": 16, "auto": 16, "verilog_backend": 16, "cc": 16, "2255": 16, "dump_modul": 16, "src": 16, "36": 16, "42": 16, "ir": 16, "509": 16, "29": 16, "h0000": 16, "1647": 16, "h19": 16, "h1": 16, "posedg": 16, "full_cas": 16, "xfrm": 16, "534": 16, "endmodul": 16, "aid": 16, "unfortun": 16, "standalon": [16, 25], "adapt": 16, "hz": 16, "ledblink": 16, "half_freq": 16, "default_clk_frequ": 16, "icestick": 16, "link": [16, 25], "foss": 16, "probabl": 16, "icestickplatform": 16, "do_program": 16, "benefit": 16, "turnkei": 16, "categori": 17, "idiomat": [17, 25], "metaclass": [17, 25], "layout": 17, "One": [17, 22], "hot": 17, "prioriti": 17, "grai": 17, "syncfifobuff": [17, 24], "asyncfifobuff": [17, 24], "algorithm": [17, 20], "resynchronis": 18, "flip": [18, 25], "flop": 18, "metast": 18, "synchronis": 18, "o_domain": 18, "unaffect": 18, "stage": 18, "mtbf": 18, "cost": 18, "increas": [18, 24], "latenc": [18, 20, 24], "max_input_delai": 18, "float": [18, 22], "maximum": 18, "fail": [18, 25], "safest": 18, "load": 18, "asic": 18, "warm": 18, "insuffici": 18, "deassert": 18, "get_ff_sync": 18, "cell": 18, "primarili": [18, 25], "async_edg": 18, "po": 18, "get_async_ff_sync": 18, "gate": 18, "yet": 18, "promptli": 18, "arst": 18, "get_reset_sync": 18, "puls": 18, "duti": 18, "ratio": 18, "i_domain": 18, "encod": 19, "invalid": [19, 25], "decod": [19, 25], "th": 19, "priorityencod": 19, "prioritydecod": 19, "grayencod": 19, "graydecod": 19, "polynomi": [20, 21], "commonli": 20, "catalog": [20, 21], "accommod": [20, 22], "data_width": [20, 21, 25], "crc16": 20, "ccitt": 20, "byte": [20, 22], "crc16_ccitt": [20, 21], "submodul": [20, 21, 25], "algo": 20, "crc_width": [20, 21], "0x1021": [20, 21], "initial_crc": [20, 21], "0xffff": [20, 21], "reflect_input": [20, 21], "reflect_output": [20, 21], "xor_output": [20, 21], "0x0000": [20, 21], "123456789": 20, "0x29b1": 20, "exclud": 20, "william": 20, "painless": 20, "www": 20, "ross": 20, "net": 20, "crc_v3": 20, "reveng": [20, 21], "catalogu": 20, "parameteris": 20, "crcmod": 20, "polynomin": 20, "zoo": 20, "entri": [20, 21, 24], "highest": 20, "order": [20, 22, 25], "transmiss": 20, "littl": 20, "endian": 20, "multi": 20, "0x4e4c": 20, "transmit": 20, "octet": 20, "0x4c": 20, "0x4e": 20, "residu": 20, "codeword": 20, "bitwidth": 20, "arg": [20, 22, 23, 25], "kwarg": [20, 22, 23, 25], "stream": [20, 25], "handl": [20, 24], "subsequ": 20, "throughput": 20, "per": 20, "classic": 20, "serial": 20, "galoi": 20, "match_detect": 20, "trail": 20, "initialis": 20, "simultan": 20, "crc3_gsm": [20, 21], "crc3_rohc": [20, 21], "crc4_g_704": [20, 21], "crc4_itu": [20, 21], "crc4_interlaken": [20, 21], "crc5_epc_c1g2": [20, 21], "crc5_epc": [20, 21], "crc5_g_704": [20, 21], "crc5_itu": [20, 21], "crc5_usb": [20, 21], "crc6_cdma2000_a": [20, 21], "crc6_cdma2000_b": [20, 21], "crc6_darc": [20, 21], "crc6_g_704": [20, 21], "crc6_itu": [20, 21], "crc6_gsm": [20, 21], "crc7_mmc": [20, 21], "crc7_rohc": [20, 21], "crc7_umt": [20, 21], "crc8_autosar": [20, 21], "crc8_bluetooth": [20, 21], "crc8_cdma2000": [20, 21], "crc8_darc": [20, 21], "crc8_dvb_s2": [20, 21], "crc8_gsm_a": [20, 21], "crc8_gsm_b": [20, 21], "crc8_hitag": [20, 21], "crc8_i_432_1": [20, 21], "crc8_itu": [20, 21], "crc8_i_cod": [20, 21], "crc8_lte": [20, 21], "crc8_maxim_dow": [20, 21], "crc8_maxim": [20, 21], "crc8_mifare_mad": [20, 21], "crc8_nrsc_5": [20, 21], "crc8_opensafeti": [20, 21], "crc8_rohc": [20, 21], "crc8_sae_j1850": [20, 21], "crc8_smbu": [20, 21], "crc8_tech_3250": [20, 21], "crc8_ae": [20, 21], "crc8_etu": [20, 21], "crc8_wcdma": [20, 21], "crc10_atm": [20, 21], "crc10_i_610": [20, 21], "crc10_cdma2000": [20, 21], "crc10_gsm": [20, 21], "crc11_flexrai": [20, 21], "crc11_umt": [20, 21], "crc12_cdma2000": [20, 21], "crc12_dect": [20, 21], "crc12_gsm": [20, 21], "crc12_umt": [20, 21], "crc12_3gpp": [20, 21], "crc13_bbc": [20, 21], "crc14_darc": [20, 21], "crc14_gsm": [20, 21], "crc15_can": [20, 21], "crc15_mpt1327": [20, 21], "crc16_arc": [20, 21], "crc16_ibm": [20, 21], "crc16_cdma2000": [20, 21], "crc16_cm": [20, 21], "crc16_dds_110": [20, 21], "crc16_dect_r": [20, 21], "crc16_dect_x": [20, 21], "crc16_dnp": [20, 21], "crc16_en_13757": [20, 21], "crc16_genibu": [20, 21], "crc16_darc": [20, 21], "crc16_epc": [20, 21], "crc16_epc_c1g2": [20, 21], "crc16_i_cod": [20, 21], "crc16_gsm": [20, 21], "crc16_ibm_3740": [20, 21], "crc16_autosar": [20, 21], "crc16_ccitt_fals": [20, 21], "crc16_ibm_sdlc": [20, 21], "crc16_iso_hdlc": [20, 21], "crc16_iso_iec_14443_3_b": [20, 21], "crc16_x25": [20, 21], "crc16_iso_iec_14443_3_a": [20, 21], "crc16_kermit": [20, 21], "crc16_bluetooth": [20, 21], "crc16_ccitt_tru": [20, 21], "crc16_v_41_lsb": [20, 21], "crc16_lj1200": [20, 21], "crc16_m17": [20, 21], "crc16_maxim_dow": [20, 21], "crc16_maxim": [20, 21], "crc16_mcrf4xx": [20, 21], "crc16_modbu": [20, 21], "crc16_nrsc_5": [20, 21], "crc16_opensafety_a": [20, 21], "crc16_opensafety_b": [20, 21], "crc16_profibu": [20, 21], "crc16_iec_61158_2": [20, 21], "crc16_riello": [20, 21], "crc16_spi_fujitsu": [20, 21], "crc16_aug_ccitt": [20, 21], "crc16_t10_dif": [20, 21], "crc16_teledisk": [20, 21], "crc16_tms37157": [20, 21], "crc16_umt": [20, 21], "crc16_buypass": [20, 21], "crc16_verifon": [20, 21], "crc16_usb": [20, 21], "crc16_xmodem": [20, 21], "crc16_acorn": [20, 21], "crc16_lte": [20, 21], "crc16_v_41_msb": [20, 21], "crc16_zmodem": [20, 21], "crc17_can_fd": [20, 21], "crc21_can_fd": [20, 21], "crc24_ble": [20, 21], "crc24_flexray_a": [20, 21], "crc24_flexray_b": [20, 21], "crc24_interlaken": [20, 21], "crc24_lte_a": [20, 21], "crc24_lte_b": [20, 21], "crc24_openpgp": [20, 21], "crc24_os_9": [20, 21], "crc30_cdma": [20, 21], "crc31_philip": [20, 21], "crc32_aixm": [20, 21], "crc32_autosar": [20, 21], "crc32_base91_d": [20, 21], "crc32_bzip2": [20, 21], "crc32_aal5": [20, 21], "crc32_dect_b": [20, 21], "crc32_cd_rom_edc": [20, 21], "crc32_cksum": [20, 21], "crc32_posix": [20, 21], "crc32_iscsi": [20, 21], "crc32_base91_c": [20, 21], "crc32_castagnoli": [20, 21], "crc32_interlaken": [20, 21], "crc32_iso_hdlc": [20, 21], "crc32_adccp": [20, 21], "crc32_v_42": [20, 21], "crc32_xz": [20, 21], "crc32_pkzip": [20, 21], "crc32_ethernet": [20, 21], "crc32_jamcrc": [20, 21], "crc32_mef": [20, 21], "crc32_mpeg_2": [20, 21], "crc32_xfer": [20, 21], "crc40_gsm": [20, 21], "crc64_ecma_182": [20, 21], "crc64_go_iso": [20, 21], "crc64_m": [20, 21], "crc64_redi": [20, 21], "crc64_we": [20, 21], "crc64_xz": [20, 21], "crc64_ecma": [20, 21], "crc82_darc": [20, 21], "2023": 21, "05": 21, "crc8": 21, "0x3": 21, "0x0": [21, 22], "0x7": 21, "0xf": 21, "0x9": 21, "0x15": 21, "0x5": 21, "0x1f": 21, "0x27": 21, "0x3f": 21, "0x19": 21, "0x2f": 21, "0x4f": 21, "0x7f": [21, 22], "0x45": 21, "0xff": 21, "0xa7": 21, "0x00": 21, "0x9b": 21, "0x39": 21, "0xd5": 21, "0x1d": 21, "0x49": 21, "0x07": 21, "0x55": 21, "0xfd": 21, "0x31": 21, "0xc7": 21, "0x233": 21, "0x3d9": 21, "0x3ff": 21, "0x175": 21, "0x385": 21, "0x1a": 21, "0x307": 21, "0xf13": 21, "0xfff": 21, "0x000": 21, "0x80f": 21, "0xd31": 21, "13": 21, "0x1cf5": 21, "14": [21, 22], "0x805": 21, "0x202d": 21, "0x3fff": 21, "0x4599": 21, "0x6815": 21, "0x001": 21, "0x8005": 21, "0xc867": 21, "0x800d": 21, "0x0589": 21, "0x0001": 21, "0x3d65": 21, "0xc6c6": 21, "0x6f63": 21, "0x5935": 21, "0x080b": 21, "0x755b": 21, "0x1dcf": 21, "0xb2aa": 21, "0x1d0f": 21, "0x8bb7": 21, "0xa097": 21, "0x89ec": 21, "0x1685b": 21, "21": 21, "0x102899": 21, "0x00000": 21, "24": [21, 22, 25], "0x00065b": 21, "0x555555": 21, "0x000000": 21, "0x5d6dcb": 21, "0xfedcba": 21, "0xabcdef": 21, "0x328b63": 21, "0xffffff": 21, "0x864cfb": 21, "0x800063": 21, "0xb704ce": 21, "0x2030b9c7": 21, "0x3fffffff": 21, "0x4c11db7": 21, "0x7fffffff": 21, "0x814141ab": 21, "0x00000000": 21, "0xf4acfb13": 21, "0xffffffff": 21, "0xa833982b": 21, "0x04c11db7": 21, "0x8001801b": 21, "0x1edc6f41": 21, "0x741b8cd7": 21, "0x000000af": 21, "40": 21, "0x0004820009": 21, "0x0000000000": 21, "0xffffffffff": 21, "0x42f0e1eba9ea3693": 21, "0x0000000000000000": 21, "0x000000000000001b": 21, "0xffffffffffffffff": 21, "0x259c84cba6426349": 21, "0xad93d23594c935a9": 21, "82": 21, "0x308c0111011401440411": 21, "0x00000000000000000000": 21, "four": [22, 25], "relat": [22, 25], "foundat": 22, "introspect": [22, 25], "structlayout": 22, "unionlayout": 22, "arraylayout": 22, "flexiblelayout": 22, "struct": 22, "fundament": 22, "rgb": 22, "grayscal": 22, "color": 22, "format": 22, "rgb565": 22, "fast": 22, "approxim": 22, "i_color": 22, "o_grai": 22, "repetit": [22, 25], "referenc": 22, "rgb565_layout": 22, "red": 22, "green": 22, "blue": 22, "accumul": 22, "averag": 22, "intens": 22, "input_layout": 22, "i_stream": 22, "r_accum": 22, "sum": 22, "interchang": 22, "rgb_layout": 22, "r_bit": 22, "g_bit": 22, "b_bit": 22, "rgb24_layout": 22, "rgblayout": 22, "rgbview": 22, "bright": 22, "boilerpl": [22, 25], "ieee754singl": 22, "fraction": 22, "is_subnorm": 22, "set_addr": 22, "send_data": 22, "biggest": 22, "cmd": 22, "0x00001234": 22, "react": 22, "span": 22, "preserv": 22, "invari": 22, "__iter__": [22, 25], "keyerror": 22, "size": 22, "gap": 22, "pad": 22, "altern": 22, "_1": 22, "_2": 22, "won": 22, "dictionari": [22, 25], "plu": [22, 24], "largest": 22, "elem_shap": 22, "multipli": 22, "contigu": 22, "boundari": [22, 25], "arbitrarili": 22, "stride": 22, "truth": [22, 25], "chosen": 22, "dynam": 22, "rest": [22, 25], "look": 22, "unspecifi": 22, "inout": 22, "__getattr__": [22, 25], "attributeerror": [22, 25], "ieee": 22, "754": 22, "flt": 22, "hex": 22, "0x3f800000": 22, "0xbf800000": 22, "share": 22, "haschecksum": 22, "checksum": 22, "barehead": 22, "headerwithparam": 22, "bare": 22, "varint": 22, "int8": 22, "int16": 22, "0x100": 22, "flag": [23, 25], "intflag": 23, "subi": 23, "likewis": 23, "normalenum": 23, "spam": 23, "ham": 23, "enumview": [23, 25], "flagview": 23, "wrapper": [23, 25], "stdin": 23, "loos": 23, "transparentenum": 23, "instrview": 23, "has_immedi": 23, "view_class": 23, "d16": 23, "d17": 23, "neither": [23, 25], "nor": [23, 25], "among": 23, "w_data": [24, 25], "w_rdy": 24, "w_en": 24, "r_rdy": 24, "unread": 24, "substitut": 24, "incompat": [24, 25], "exchang": 24, "r_domain": 24, "w_domain": 24, "exact_depth": 24, "signaturememb": 25, "flippedsignatur": 25, "flippedinterfac": 25, "flippedsignaturememb": 25, "vice": 25, "versa": 25, "interact": 25, "basiccount": 25, "solut": 25, "rewritten": 25, "componentcount": 25, "constructor": 25, "gone": 25, "unchang": 25, "unambigu": 25, "question": 25, "previous": 25, "intend": 25, "genericcount": 25, "is_compli": 25, "direction": 25, "readi": [25, 26], "sink": 25, "consum": 25, "dataproduc": 25, "dataconsum": 25, "elsewher": 25, "simplestreamsignatur": 25, "data_shap": 25, "intact": 25, "intf": 25, "metaprogram": 25, "streamproduc": 25, "streamconsum": 25, "complementari": 25, "ubiquit": 25, "streamconsumerusingin": 25, "deep": 25, "in1": 25, "in2": 25, "auxiliari": 25, "robust": 25, "proportion": 25, "pronounc": 25, "refactor": 25, "conclud": 25, "knowledg": 25, "expos": 25, "dataprocessorimplement": 25, "dataprocessorwrapp": 25, "impl": 25, "dataforward": 25, "conform": 25, "producerrequiringreadi": 25, "consumeralwaysreadi": 25, "consumerpossiblyunreadi": 25, "connectionerror": 25, "arg0": 25, "prolifer": 25, "subtli": 25, "presenc": 25, "absenc": 25, "statu": 25, "legacyaxidataproduc": 25, "adata": 25, "avalid": 25, "areadi": 25, "moderndataconsum": 25, "data_produc": 25, "data_consum": 25, "adapted_data_sourc": 25, "encourag": 25, "creation": 25, "capabl": 25, "usefulli": 25, "transfertyp": 25, "simplebussignatur": 25, "addr_width": 25, "_addr_width": 25, "rw": 25, "simplebusinterfac": 25, "is_read_xf": 25, "is_write_xf": 25, "frozen": 25, "freez": 25, "almost": 25, "anonym": 25, "sig32": 25, "sig24": 25, "bus__en": 25, "bus__rw": 25, "bus__addr": 25, "bus__r_data": 25, "bus__w_data": 25, "unusu": 25, "ever": 25, "denot": 25, "buse": 25, "cyc": 25, "outgo": 25, "carri": 25, "respond": 25, "That": 25, "incom": 25, "shortcut": 25, "discrimin": 25, "taken": 25, "rgbpixel": 25, "dimens": 25, "prepend": 25, "dimension": 25, "is_port": 25, "is_signatur": 25, "signatureerror": 25, "nameerror": 25, "abc": 25, "manner": 25, "disallow": 25, "superscript": 25, "opreat": 25, "__setitem__": 25, "stub": 25, "forbid": 25, "__delitem__": 25, "flatten": 25, "disregard": 25, "doubl": 25, "__": 25, "unflip": 25, "flipped_memb": 25, "ing": 25, "influenc": 25, "obj__items__0": 25, "obj__items__1": 25, "prescrib": 25, "aspect": 25, "complianc": 25, "fill": 25, "help": 25, "repeat": 25, "serv": 25, "hoc": 25, "customsignatur": 25, "custominterfac": 25, "my_properti": 25, "accur": 25, "unavail": 25, "flipped_sig": 25, "distinguish": 25, "signatureknowswhenflip": 25, "is_flip": 25, "getattr": 25, "getter": 25, "__setattr__": 25, "setattr": 25, "setter": 25, "__delattr__": 25, "delattr": 25, "delet": 25, "signaturemeta": 25, "subtyp": 25, "relationship": 25, "__subclasscheck__": 25, "__instancecheck__": 25, "overhead": 25, "__dict__": 25, "approach": 25, "checker": 25, "track": 25, "burdensom": 25, "flipped_intf": 25, "interfaceknowswhenflip": 25, "other_unflip": 25, "caveat": 25, "meaningless": 25, "obj1": 25, "obj2": 25, "obj3": 25, "besid": 25, "out1": 25, "arbit": 25, "clarifi": 25, "fixedcompon": 25, "superclass": 25, "parametriccompon": 25, "rai": 25, "offici": 26, "vivonomicon": 26, "kbob": 26, "robert": 26, "baruch": 26, "exercis": 26, "my": 26, "journei": 26, "david": 26, "sporn": 26, "focuss": 26, "workstat": 26}, "objects": {"amaranth": [[15, 0, 0, "-", "hdl"]], "amaranth.hdl": [[15, 1, 1, "", "Shape"], [15, 1, 1, "", "ShapeCastable"], [15, 1, 1, "", "ShapeLike"], [15, 1, 1, "", "Value"], [15, 1, 1, "", "ValueCastable"], [15, 1, 1, "", "ValueLike"], [15, 4, 1, "", "signed"], [15, 4, 1, "", "unsigned"]], "amaranth.hdl.Shape": [[15, 2, 1, "", "__repr__"], [15, 2, 1, "", "cast"]], "amaranth.hdl.ShapeCastable": [[15, 2, 1, "", "__call__"], [15, 2, 1, "", "as_shape"], [15, 2, 1, "", "const"]], "amaranth.hdl.Value": [[15, 2, 1, "", "__abs__"], [15, 2, 1, "", "__add__"], [15, 2, 1, "", "__and__"], [15, 2, 1, "", "__bool__"], [15, 2, 1, "", "__contains__"], [15, 2, 1, "", "__eq__"], [15, 2, 1, "", "__floordiv__"], [15, 2, 1, "", "__ge__"], [15, 2, 1, "", "__getitem__"], [15, 2, 1, "", "__gt__"], [15, 3, 1, "", "__hash__"], [15, 2, 1, "", "__invert__"], [15, 2, 1, "", "__le__"], [15, 2, 1, "", "__len__"], [15, 2, 1, "", "__lshift__"], [15, 2, 1, "", "__lt__"], [15, 2, 1, "", "__mod__"], [15, 2, 1, "", "__mul__"], [15, 2, 1, "", "__ne__"], [15, 2, 1, "", "__neg__"], [15, 2, 1, "", "__or__"], [15, 2, 1, "", "__pos__"], [15, 2, 1, "", "__radd__"], [15, 2, 1, "", "__rand__"], [15, 2, 1, "", "__rfloordiv__"], [15, 2, 1, "", "__rlshift__"], [15, 2, 1, "", "__rmod__"], [15, 2, 1, "", "__rmul__"], [15, 2, 1, "", "__ror__"], [15, 2, 1, "", "__rrshift__"], [15, 2, 1, "", "__rshift__"], [15, 2, 1, "", "__rsub__"], [15, 2, 1, "", "__rxor__"], [15, 2, 1, "", "__sub__"], [15, 2, 1, "", "__xor__"], [15, 2, 1, "", "all"], [15, 2, 1, "", "any"], [15, 2, 1, "", "as_signed"], [15, 2, 1, "", "as_unsigned"], [15, 2, 1, "", "bit_select"], [15, 2, 1, "", "bool"], [15, 2, 1, "", "cast"], [15, 2, 1, "", "eq"], [15, 2, 1, "", "matches"], [15, 2, 1, "", "replicate"], [15, 2, 1, "", "rotate_left"], [15, 2, 1, "", "rotate_right"], [15, 2, 1, "", "shape"], [15, 2, 1, "", "shift_left"], [15, 2, 1, "", "shift_right"], [15, 2, 1, "", "word_select"], [15, 2, 1, "", "xor"]], "amaranth.hdl.ValueCastable": [[15, 2, 1, "", "as_value"], [15, 2, 1, "", "shape"]], "amaranth.lib": [[18, 0, 0, "-", "cdc"], [19, 0, 0, "-", "coding"], [20, 0, 0, "-", "crc"], [22, 0, 0, "-", "data"], [23, 0, 0, "-", "enum"], [24, 0, 0, "-", "fifo"], [25, 0, 0, "-", "wiring"]], "amaranth.lib.cdc": [[18, 1, 1, "", "AsyncFFSynchronizer"], [18, 1, 1, "", "FFSynchronizer"], [18, 1, 1, "", "PulseSynchronizer"], [18, 1, 1, "", "ResetSynchronizer"]], "amaranth.lib.coding": [[19, 1, 1, "", "Decoder"], [19, 1, 1, "", "Encoder"], [19, 1, 1, "", "GrayDecoder"], [19, 1, 1, "", "GrayEncoder"], [19, 1, 1, "", "PriorityDecoder"], [19, 1, 1, "", "PriorityEncoder"]], "amaranth.lib.crc": [[20, 1, 1, "", "Algorithm"], [20, 1, 1, "", "Parameters"], [20, 1, 1, "", "Processor"], [21, 0, 0, "-", "catalog"]], "amaranth.lib.crc.Algorithm": [[20, 2, 1, "", "__call__"]], "amaranth.lib.crc.Parameters": [[20, 5, 1, "", "algorithm"], [20, 2, 1, "", "compute"], [20, 2, 1, "", "create"], [20, 2, 1, "", "residue"]], "amaranth.lib.crc.catalog": [[21, 6, 1, "", "CRC10_ATM"], [21, 6, 1, "", "CRC10_CDMA2000"], [21, 6, 1, "", "CRC10_GSM"], [21, 6, 1, "", "CRC10_I_610"], [21, 6, 1, "", "CRC11_FLEXRAY"], [21, 6, 1, "", "CRC11_UMTS"], [21, 6, 1, "", "CRC12_3GPP"], [21, 6, 1, "", "CRC12_CDMA2000"], [21, 6, 1, "", "CRC12_DECT"], [21, 6, 1, "", "CRC12_GSM"], [21, 6, 1, "", "CRC12_UMTS"], [21, 6, 1, "", "CRC13_BBC"], [21, 6, 1, "", "CRC14_DARC"], [21, 6, 1, "", "CRC14_GSM"], [21, 6, 1, "", "CRC15_CAN"], [21, 6, 1, "", "CRC15_MPT1327"], [21, 6, 1, "", "CRC16_ACORN"], [21, 6, 1, "", "CRC16_ARC"], [21, 6, 1, "", "CRC16_AUG_CCITT"], [21, 6, 1, "", "CRC16_AUTOSAR"], [21, 6, 1, "", "CRC16_BLUETOOTH"], [21, 6, 1, "", "CRC16_BUYPASS"], [21, 6, 1, "", "CRC16_CCITT"], [21, 6, 1, "", "CRC16_CCITT_FALSE"], [21, 6, 1, "", "CRC16_CCITT_TRUE"], [21, 6, 1, "", "CRC16_CDMA2000"], [21, 6, 1, "", "CRC16_CMS"], [21, 6, 1, "", "CRC16_DARC"], [21, 6, 1, "", "CRC16_DDS_110"], [21, 6, 1, "", "CRC16_DECT_R"], [21, 6, 1, "", "CRC16_DECT_X"], [21, 6, 1, "", "CRC16_DNP"], [21, 6, 1, "", "CRC16_EN_13757"], [21, 6, 1, "", "CRC16_EPC"], [21, 6, 1, "", "CRC16_EPC_C1G2"], [21, 6, 1, "", "CRC16_GENIBUS"], [21, 6, 1, "", "CRC16_GSM"], [21, 6, 1, "", "CRC16_IBM"], [21, 6, 1, "", "CRC16_IBM_3740"], [21, 6, 1, "", "CRC16_IBM_SDLC"], [21, 6, 1, "", "CRC16_IEC_61158_2"], [21, 6, 1, "", "CRC16_ISO_HDLC"], [21, 6, 1, "", "CRC16_ISO_IEC_14443_3_A"], [21, 6, 1, "", "CRC16_ISO_IEC_14443_3_B"], [21, 6, 1, "", "CRC16_I_CODE"], [21, 6, 1, "", "CRC16_KERMIT"], [21, 6, 1, "", "CRC16_LJ1200"], [21, 6, 1, "", "CRC16_LTE"], [21, 6, 1, "", "CRC16_M17"], [21, 6, 1, "", "CRC16_MAXIM"], [21, 6, 1, "", "CRC16_MAXIM_DOW"], [21, 6, 1, "", "CRC16_MCRF4XX"], [21, 6, 1, "", "CRC16_MODBUS"], [21, 6, 1, "", "CRC16_NRSC_5"], [21, 6, 1, "", "CRC16_OPENSAFETY_A"], [21, 6, 1, "", "CRC16_OPENSAFETY_B"], [21, 6, 1, "", "CRC16_PROFIBUS"], [21, 6, 1, "", "CRC16_RIELLO"], [21, 6, 1, "", "CRC16_SPI_FUJITSU"], [21, 6, 1, "", "CRC16_T10_DIF"], [21, 6, 1, "", "CRC16_TELEDISK"], [21, 6, 1, "", "CRC16_TMS37157"], [21, 6, 1, "", "CRC16_UMTS"], [21, 6, 1, "", "CRC16_USB"], [21, 6, 1, "", "CRC16_VERIFONE"], [21, 6, 1, "", "CRC16_V_41_LSB"], [21, 6, 1, "", "CRC16_V_41_MSB"], [21, 6, 1, "", "CRC16_X25"], [21, 6, 1, "", "CRC16_XMODEM"], [21, 6, 1, "", "CRC16_ZMODEM"], [21, 6, 1, "", "CRC17_CAN_FD"], [21, 6, 1, "", "CRC21_CAN_FD"], [21, 6, 1, "", "CRC24_BLE"], [21, 6, 1, "", "CRC24_FLEXRAY_A"], [21, 6, 1, "", "CRC24_FLEXRAY_B"], [21, 6, 1, "", "CRC24_INTERLAKEN"], [21, 6, 1, "", "CRC24_LTE_A"], [21, 6, 1, "", "CRC24_LTE_B"], [21, 6, 1, "", "CRC24_OPENPGP"], [21, 6, 1, "", "CRC24_OS_9"], [21, 6, 1, "", "CRC30_CDMA"], [21, 6, 1, "", "CRC31_PHILIPS"], [21, 6, 1, "", "CRC32_AAL5"], [21, 6, 1, "", "CRC32_ADCCP"], [21, 6, 1, "", "CRC32_AIXM"], [21, 6, 1, "", "CRC32_AUTOSAR"], [21, 6, 1, "", "CRC32_BASE91_C"], [21, 6, 1, "", "CRC32_BASE91_D"], [21, 6, 1, "", "CRC32_BZIP2"], [21, 6, 1, "", "CRC32_CASTAGNOLI"], [21, 6, 1, "", "CRC32_CD_ROM_EDC"], [21, 6, 1, "", "CRC32_CKSUM"], [21, 6, 1, "", "CRC32_DECT_B"], [21, 6, 1, "", "CRC32_ETHERNET"], [21, 6, 1, "", "CRC32_INTERLAKEN"], [21, 6, 1, "", "CRC32_ISCSI"], [21, 6, 1, "", "CRC32_ISO_HDLC"], [21, 6, 1, "", "CRC32_JAMCRC"], [21, 6, 1, "", "CRC32_MEF"], [21, 6, 1, "", "CRC32_MPEG_2"], [21, 6, 1, "", "CRC32_PKZIP"], [21, 6, 1, "", "CRC32_POSIX"], [21, 6, 1, "", "CRC32_V_42"], [21, 6, 1, "", "CRC32_XFER"], [21, 6, 1, "", "CRC32_XZ"], [21, 6, 1, "", "CRC3_GSM"], [21, 6, 1, "", "CRC3_ROHC"], [21, 6, 1, "", "CRC40_GSM"], [21, 6, 1, "", "CRC4_G_704"], [21, 6, 1, "", "CRC4_INTERLAKEN"], [21, 6, 1, "", "CRC4_ITU"], [21, 6, 1, "", "CRC5_EPC"], [21, 6, 1, "", "CRC5_EPC_C1G2"], [21, 6, 1, "", "CRC5_G_704"], [21, 6, 1, "", "CRC5_ITU"], [21, 6, 1, "", "CRC5_USB"], [21, 6, 1, "", "CRC64_ECMA"], [21, 6, 1, "", "CRC64_ECMA_182"], [21, 6, 1, "", "CRC64_GO_ISO"], [21, 6, 1, "", "CRC64_MS"], [21, 6, 1, "", "CRC64_REDIS"], [21, 6, 1, "", "CRC64_WE"], [21, 6, 1, "", "CRC64_XZ"], [21, 6, 1, "", "CRC6_CDMA2000_A"], [21, 6, 1, "", "CRC6_CDMA2000_B"], [21, 6, 1, "", "CRC6_DARC"], [21, 6, 1, "", "CRC6_GSM"], [21, 6, 1, "", "CRC6_G_704"], [21, 6, 1, "", "CRC6_ITU"], [21, 6, 1, "", "CRC7_MMC"], [21, 6, 1, "", "CRC7_ROHC"], [21, 6, 1, "", "CRC7_UMTS"], [21, 6, 1, "", "CRC82_DARC"], [21, 6, 1, "", "CRC8_AES"], [21, 6, 1, "", "CRC8_AUTOSAR"], [21, 6, 1, "", "CRC8_BLUETOOTH"], [21, 6, 1, "", "CRC8_CDMA2000"], [21, 6, 1, "", "CRC8_DARC"], [21, 6, 1, "", "CRC8_DVB_S2"], [21, 6, 1, "", "CRC8_ETU"], [21, 6, 1, "", "CRC8_GSM_A"], [21, 6, 1, "", "CRC8_GSM_B"], [21, 6, 1, "", "CRC8_HITAG"], [21, 6, 1, "", "CRC8_ITU"], [21, 6, 1, "", "CRC8_I_432_1"], [21, 6, 1, "", "CRC8_I_CODE"], [21, 6, 1, "", "CRC8_LTE"], [21, 6, 1, "", "CRC8_MAXIM"], [21, 6, 1, "", "CRC8_MAXIM_DOW"], [21, 6, 1, "", "CRC8_MIFARE_MAD"], [21, 6, 1, "", "CRC8_NRSC_5"], [21, 6, 1, "", "CRC8_OPENSAFETY"], [21, 6, 1, "", "CRC8_ROHC"], [21, 6, 1, "", "CRC8_SAE_J1850"], [21, 6, 1, "", "CRC8_SMBUS"], [21, 6, 1, "", "CRC8_TECH_3250"], [21, 6, 1, "", "CRC8_WCDMA"]], "amaranth.lib.data": [[22, 1, 1, "", "ArrayLayout"], [22, 1, 1, "", "Field"], [22, 1, 1, "", "FlexibleLayout"], [22, 1, 1, "", "Layout"], [22, 1, 1, "", "Struct"], [22, 1, 1, "", "StructLayout"], [22, 1, 1, "", "Union"], [22, 1, 1, "", "UnionLayout"], [22, 1, 1, "", "View"]], "amaranth.lib.data.ArrayLayout": [[22, 5, 1, "", "size"]], "amaranth.lib.data.Field": [[22, 2, 1, "", "__eq__"], [22, 5, 1, "", "width"]], "amaranth.lib.data.Layout": [[22, 2, 1, "", "__call__"], [22, 2, 1, "", "__eq__"], [22, 2, 1, "", "__getitem__"], [22, 2, 1, "", "__iter__"], [22, 2, 1, "", "as_shape"], [22, 2, 1, "", "cast"], [22, 2, 1, "", "const"], [22, 5, 1, "", "size"]], "amaranth.lib.data.StructLayout": [[22, 5, 1, "", "size"]], "amaranth.lib.data.UnionLayout": [[22, 2, 1, "", "const"], [22, 5, 1, "", "size"]], "amaranth.lib.data.View": [[22, 2, 1, "", "__getattr__"], [22, 2, 1, "", "__getitem__"], [22, 2, 1, "", "as_value"], [22, 2, 1, "", "eq"], [22, 2, 1, "", "shape"]], "amaranth.lib.enum": [[23, 1, 1, "", "Enum"], [23, 1, 1, "", "EnumMeta"], [23, 1, 1, "", "EnumView"], [23, 1, 1, "", "Flag"], [23, 1, 1, "", "FlagView"], [23, 1, 1, "", "IntEnum"], [23, 1, 1, "", "IntFlag"]], "amaranth.lib.enum.EnumMeta": [[23, 2, 1, "", "__call__"], [23, 2, 1, "", "as_shape"], [23, 2, 1, "", "const"]], "amaranth.lib.enum.EnumView": [[23, 2, 1, "", "__eq__"], [23, 2, 1, "", "__init__"], [23, 2, 1, "", "as_value"], [23, 2, 1, "", "eq"], [23, 2, 1, "", "shape"]], "amaranth.lib.enum.FlagView": [[23, 2, 1, "", "__and__"], [23, 2, 1, "", "__invert__"], [23, 2, 1, "", "__or__"], [23, 2, 1, "", "__rand__"], [23, 2, 1, "", "__ror__"], [23, 2, 1, "", "__rxor__"], [23, 2, 1, "", "__xor__"]], "amaranth.lib.fifo": [[24, 1, 1, "", "AsyncFIFO"], [24, 1, 1, "", "AsyncFIFOBuffered"], [24, 1, 1, "", "FIFOInterface"], [24, 1, 1, "", "SyncFIFO"], [24, 1, 1, "", "SyncFIFOBuffered"]], "amaranth.lib.wiring": [[25, 1, 1, "", "Component"], [25, 7, 1, "", "ConnectionError"], [25, 1, 1, "", "FlippedInterface"], [25, 1, 1, "", "FlippedSignature"], [25, 1, 1, "", "FlippedSignatureMembers"], [25, 1, 1, "", "Flow"], [25, 6, 1, "", "In"], [25, 1, 1, "", "Member"], [25, 6, 1, "", "Out"], [25, 1, 1, "", "PureInterface"], [25, 1, 1, "", "Signature"], [25, 7, 1, "", "SignatureError"], [25, 1, 1, "", "SignatureMembers"], [25, 1, 1, "", "SignatureMeta"], [25, 4, 1, "", "connect"], [25, 4, 1, "", "flipped"]], "amaranth.lib.wiring.Component": [[25, 5, 1, "", "signature"]], "amaranth.lib.wiring.FlippedInterface": [[25, 2, 1, "", "__delattr__"], [25, 2, 1, "", "__eq__"], [25, 2, 1, "", "__getattr__"], [25, 2, 1, "", "__setattr__"], [25, 5, 1, "", "signature"]], "amaranth.lib.wiring.FlippedSignature": [[25, 2, 1, "", "__delattr__"], [25, 2, 1, "", "__getattr__"], [25, 2, 1, "", "__setattr__"], [25, 2, 1, "", "flip"]], "amaranth.lib.wiring.FlippedSignatureMembers": [[25, 2, 1, "", "flip"]], "amaranth.lib.wiring.Flow": [[25, 3, 1, "", "In"], [25, 3, 1, "", "Out"], [25, 2, 1, "", "__call__"], [25, 2, 1, "", "flip"]], "amaranth.lib.wiring.Member": [[25, 2, 1, "", "array"], [25, 5, 1, "", "dimensions"], [25, 2, 1, "", "flip"], [25, 5, 1, "", "flow"], [25, 5, 1, "", "init"], [25, 5, 1, "", "is_port"], [25, 5, 1, "", "is_signature"], [25, 5, 1, "", "shape"], [25, 5, 1, "", "signature"]], "amaranth.lib.wiring.PureInterface": [[25, 2, 1, "", "__init__"]], "amaranth.lib.wiring.Signature": [[25, 2, 1, "", "__eq__"], [25, 2, 1, "", "create"], [25, 2, 1, "", "flatten"], [25, 2, 1, "", "flip"], [25, 2, 1, "", "is_compliant"], [25, 5, 1, "", "members"]], "amaranth.lib.wiring.SignatureMembers": [[25, 2, 1, "", "__contains__"], [25, 2, 1, "", "__delitem__"], [25, 2, 1, "", "__eq__"], [25, 2, 1, "", "__getitem__"], [25, 2, 1, "", "__iter__"], [25, 2, 1, "", "__setitem__"], [25, 2, 1, "", "create"], [25, 2, 1, "", "flatten"], [25, 2, 1, "", "flip"]], "amaranth.lib.wiring.SignatureMeta": [[25, 2, 1, "", "__instancecheck__"], [25, 2, 1, "", "__subclasscheck__"]], "amaranth.vendor": [[8, 1, 1, "", "GowinPlatform"], [9, 1, 1, "", "IntelPlatform"], [10, 1, 1, "", "LatticeECP5Platform"], [11, 1, 1, "", "LatticeICE40Platform"], [12, 3, 1, "", "LatticeMachXO2Platform"], [12, 3, 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:attribute", "4": "py:function", "5": "py:property", "6": "py:data", "7": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "property", "Python property"], "6": ["py", "data", "Python data"], "7": ["py", "exception", "Python exception"]}, "titleterms": {"changelog": 0, "document": [0, 1, 2], "past": 0, "releas": [0, 5], "version": 0, "0": 0, "5": 0, "unreleas": 0, "migrat": 0, "from": [0, 3], "4": 0, "implement": [0, 16], "rfc": 0, "languag": [0, 3, 4, 6, 15], "chang": [0, 1], "standard": [0, 6, 17], "librari": [0, 6, 17], "toolchain": [0, 4, 6], "platform": [0, 7], "integr": [0, 6, 7], "3": 0, "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, 6], "your": 1, "weekli": 1, "meet": 1, "amaranth": [2, 5, 6], "project": 2, "guid": 3, "The": [3, 6], "prelud": 3, "shape": [3, 15], "valu": [3, 15], "constant": [3, 25], "cast": 3, "integ": 3, "rang": 3, "enumer": [3, 23], "custom": [3, 22, 25], "member": 3, "signal": 3, "name": 3, "initi": 3, "reset": 3, "less": 3, "oper": 3, "perform": 3, "describ": 3, "comput": 3, "width": 3, "extens": 3, "arithmet": 3, "comparison": 3, "bitwis": 3, "shift": 3, "rotat": 3, "reduct": 3, "logic": 3, "bit": 3, "sequenc": 3, "match": 3, "convers": [3, 19], "choic": 3, "arrai": 3, "data": [3, 22], "structur": [3, 22], "modul": 3, "control": 3, "domain": [3, 18], "assign": 3, "order": 3, "flow": 3, "activ": 3, "inact": 3, "If": 3, "elif": 3, "els": 3, "block": 3, "switch": 3, "case": 3, "fsm": 3, "state": 3, "combinatori": 3, "evalu": 3, "synchron": 3, "clock": [3, 18], "late": 3, "bind": 3, "elabor": 3, "submodul": 3, "modifi": 3, "renam": 3, "memori": 3, "todo": [3, 5, 7, 15, 16, 26], "instanc": 3, "instal": 5, "system": [5, 6], "requir": 5, "prerequisit": 5, "latest": 5, "develop": [5, 6], "snapshot": 5, "edit": 5, "board": [5, 6], "definit": [5, 6], "introduct": [6, 22, 25], "simul": 6, "fpga": 6, "gowin": 8, "intel": 9, "lattic": [10, 11, 12], "ecp5": 10, "ice40": 11, "machxo2": 12, "machxo3l": 12, "quicklog": 13, "xilinx": 14, "refer": 15, "backward": 15, "compat": 15, "import": 15, "syntax": 15, "sourc": 15, "locat": 15, "get": 16, "start": 16, "A": 16, "counter": 16, "test": 16, "convert": 16, "blink": 16, "led": 16, "cross": 18, "code": 19, "One": 19, "hot": 19, "prioriti": 19, "grai": 19, "cyclic": 20, "redund": 20, "check": 20, "predefin": 21, "crc": 21, "algorithm": 21, "overview": [22, 25], "motiv": [22, 25], "compos": 22, "layout": 22, "defin": 22, "discrimin": 22, "union": 22, "model": 22, "common": 22, "view": [22, 23], "creat": 22, "access": 22, "class": [22, 23], "metaclass": 23, "base": 23, "first": 24, "out": 24, "queue": 24, "interfac": 25, "connect": 25, "reusabl": 25, "forward": 25, "interior": 25, "input": 25, "adapt": 25, "signatur": 25, "path": 25, "make": 25, "compon": 25, "tutori": 26}, "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"]], "Documentation for past releases": [[0, "documentation-for-past-releases"]], "Version 0.5 (unreleased)": [[0, "version-0-5-unreleased"]], "Migrating from version 0.4": [[0, "migrating-from-version-0-4"]], "Implemented RFCs": [[0, "implemented-rfcs"], [0, "id1"]], "Language changes": [[0, "language-changes"], [0, "id2"], [0, "id6"]], "Standard library changes": [[0, "standard-library-changes"], [0, "id3"], [0, "id7"]], "Toolchain changes": [[0, "toolchain-changes"], [0, "id4"], [0, "id8"]], "Platform integration changes": [[0, "platform-integration-changes"], [0, "id5"], [0, "id9"]], "Version 0.4": [[0, "version-0-4"]], "Migrating from version 0.3": [[0, "migrating-from-version-0-3"]], "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 project documentation": [[2, "amaranth-project-documentation"]], "Language guide": [[3, "language-guide"]], "The prelude": [[3, "the-prelude"]], "Shapes": [[3, "shapes"], [15, "shapes"]], "Shapes of values": [[3, "shapes-of-values"]], "Values": [[3, "values"], [15, "values"]], "Constants": [[3, "constants"]], "Shape casting": [[3, "shape-casting"]], "Shapes from integers": [[3, "shapes-from-integers"]], "Shapes from ranges": [[3, "shapes-from-ranges"]], "Shapes from enumerations": [[3, "shapes-from-enumerations"]], "Custom shapes": [[3, "custom-shapes"]], "Value casting": [[3, "value-casting"]], "Values from integers": [[3, "values-from-integers"]], "Values from enumeration members": [[3, "values-from-enumeration-members"]], "Constant casting": [[3, "constant-casting"]], "Signals": [[3, "signals"]], "Signal shapes": [[3, "signal-shapes"]], "Signal names": [[3, "signal-names"]], "Initial signal values": [[3, "initial-signal-values"]], "Reset-less signals": [[3, "reset-less-signals"]], "Operators": [[3, "operators"]], "Performing or describing computations?": [[3, "performing-or-describing-computations"]], "Width extension": [[3, "width-extension"]], "Arithmetic operators": [[3, "arithmetic-operators"]], "Comparison operators": [[3, "comparison-operators"]], "Bitwise, shift, and rotate operators": [[3, "bitwise-shift-and-rotate-operators"]], "Reduction operators": [[3, "reduction-operators"]], "Logical operators": [[3, "logical-operators"]], "Bit sequence operators": [[3, "bit-sequence-operators"]], "Match operator": [[3, "match-operator"]], "Conversion operators": [[3, "conversion-operators"]], "Choice operator": [[3, "choice-operator"]], "Arrays": [[3, "arrays"]], "Data structures": [[3, "data-structures"], [22, "module-amaranth.lib.data"]], "Modules": [[3, "modules"]], "Control domains": [[3, "control-domains"]], "Assigning to signals": [[3, "assigning-to-signals"]], "Assignable values": [[3, "assignable-values"]], "Assignment domains": [[3, "assignment-domains"]], "Assignment order": [[3, "assignment-order"]], "Control flow": [[3, "control-flow"]], "Active and inactive assignments": [[3, "active-and-inactive-assignments"]], "If/Elif/Else control blocks": [[3, "if-elif-else-control-blocks"]], "Switch/Case control blocks": [[3, "switch-case-control-blocks"]], "FSM/State control blocks": [[3, "fsm-state-control-blocks"]], "Combinatorial evaluation": [[3, "combinatorial-evaluation"]], "Synchronous evaluation": [[3, "synchronous-evaluation"]], "Clock domains": [[3, "clock-domains"]], "Late binding of clock and reset signals": [[3, "late-binding-of-clock-and-reset-signals"]], "Elaboration": [[3, "elaboration"]], "Submodules": [[3, "submodules"]], "Modifying control flow": [[3, "modifying-control-flow"]], "Renaming domains": [[3, "renaming-domains"]], "Memories": [[3, "memories"]], "Todo": [[3, "id14"], [5, "id1"], [7, "id1"], [15, "id1"], [15, "id2"], [16, "id1"], [26, "id1"]], "Instances": [[3, "instances"]], "Language & toolchain": [[4, "language-toolchain"]], "Installation": [[5, "installation"]], "System requirements": [[5, "system-requirements"]], "Installing prerequisites": [[5, "installing-prerequisites"]], "Installing Amaranth": [[5, "installing-amaranth"]], "Latest release": [[5, "latest-release"]], "Development snapshot": [[5, "development-snapshot"]], "Editable development snapshot": [[5, "editable-development-snapshot"]], "Installing board definitions": [[5, "installing-board-definitions"]], "Introduction": [[6, "introduction"], [22, "introduction"], [25, "introduction"]], "The Amaranth language": [[6, "the-amaranth-language"]], "The Amaranth standard library": [[6, "the-amaranth-standard-library"]], "The Amaranth simulator": [[6, "the-amaranth-simulator"]], "The Amaranth build system": [[6, "the-amaranth-build-system"]], "FPGA toolchain integration": [[6, "fpga-toolchain-integration"]], "Development board definitions": [[6, "development-board-definitions"]], "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"]], "Language reference": [[15, "module-amaranth.hdl"]], "Backwards compatibility": [[15, "backwards-compatibility"]], "Importing syntax": [[15, "importing-syntax"]], "Source locations": [[15, "source-locations"]], "Getting started": [[16, "getting-started"]], "A counter": [[16, "a-counter"]], "Implementing a counter": [[16, "implementing-a-counter"]], "Testing a counter": [[16, "testing-a-counter"]], "Converting a counter": [[16, "converting-a-counter"]], "A blinking LED": [[16, "a-blinking-led"]], "Standard library": [[17, "standard-library"]], "Clock domain crossing": [[18, "module-amaranth.lib.cdc"]], "Code conversion": [[19, "module-amaranth.lib.coding"]], "One-hot coding": [[19, "one-hot-coding"]], "Priority coding": [[19, "priority-coding"]], "Gray coding": [[19, "gray-coding"]], "Cyclic redundancy checks": [[20, "module-amaranth.lib.crc"]], "Predefined CRC Algorithms": [[21, "module-amaranth.lib.crc.catalog"]], "Overview": [[22, "overview"], [25, "overview"]], "Motivation": [[22, "motivation"], [25, "motivation"]], "Composing layouts": [[22, "composing-layouts"]], "Defining layouts": [[22, "defining-layouts"]], "Discriminated unions": [[22, "discriminated-unions"]], "Modeling structured data": [[22, "modeling-structured-data"]], "Common data layouts": [[22, "common-data-layouts"]], "Data views": [[22, "data-views"]], "Creating a view": [[22, "creating-a-view"]], "Accessing a view": [[22, "accessing-a-view"]], "Custom view classes": [[22, "custom-view-classes"]], "Data classes": [[22, "data-classes"]], "Enumerations": [[23, "module-amaranth.lib.enum"]], "Metaclass": [[23, "metaclass"]], "Base classes": [[23, "base-classes"]], "View classes": [[23, "view-classes"]], "First-in first-out queues": [[24, "module-amaranth.lib.fifo"]], "Interfaces and connections": [[25, "module-amaranth.lib.wiring"]], "Reusable interfaces": [[25, "reusable-interfaces"]], "Forwarding interior interfaces": [[25, "forwarding-interior-interfaces"]], "Constant inputs": [[25, "constant-inputs"]], "Adapting interfaces": [[25, "adapting-interfaces"]], "Customizing signatures and interfaces": [[25, "customizing-signatures-and-interfaces"]], "Paths": [[25, "paths"]], "Signatures": [[25, "signatures"]], "Interfaces": [[25, "interfaces"]], "Making connections": [[25, "making-connections"]], "Components": [[25, "components"]], "Tutorial": [[26, "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"]], "shape (class in amaranth.hdl)": [[15, "amaranth.hdl.Shape"]], "shapecastable (class in amaranth.hdl)": [[15, "amaranth.hdl.ShapeCastable"]], "shapelike (class in amaranth.hdl)": [[15, "amaranth.hdl.ShapeLike"]], "value (class in amaranth.hdl)": [[15, "amaranth.hdl.Value"]], "valuecastable (class in amaranth.hdl)": [[15, "amaranth.hdl.ValueCastable"]], "valuelike (class in amaranth.hdl)": [[15, "amaranth.hdl.ValueLike"]], "__abs__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__abs__"]], "__add__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__add__"]], "__and__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__and__"]], "__bool__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__bool__"]], "__call__() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.__call__"]], "__contains__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__contains__"]], "__eq__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__eq__"]], "__floordiv__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__floordiv__"]], "__ge__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__ge__"]], "__getitem__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__getitem__"]], "__gt__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__gt__"]], "__hash__ (amaranth.hdl.value attribute)": [[15, "amaranth.hdl.Value.__hash__"]], "__invert__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__invert__"]], "__le__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__le__"]], "__len__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__len__"]], "__lshift__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__lshift__"]], "__lt__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__lt__"]], "__mod__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__mod__"]], "__mul__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__mul__"]], "__ne__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__ne__"]], "__neg__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__neg__"]], "__or__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__or__"]], "__pos__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__pos__"]], "__radd__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__radd__"]], "__rand__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rand__"]], "__repr__() (amaranth.hdl.shape method)": [[15, "amaranth.hdl.Shape.__repr__"]], "__rfloordiv__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rfloordiv__"]], "__rlshift__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rlshift__"]], "__rmod__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rmod__"]], "__rmul__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rmul__"]], "__ror__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__ror__"]], "__rrshift__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rrshift__"]], "__rshift__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rshift__"]], "__rsub__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rsub__"]], "__rxor__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__rxor__"]], "__sub__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__sub__"]], "__xor__() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.__xor__"]], "all() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.all"]], "amaranth.hdl": [[15, "module-amaranth.hdl"]], "any() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.any"]], "as_shape() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.as_shape"]], "as_signed() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.as_signed"]], "as_unsigned() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.as_unsigned"]], "as_value() (amaranth.hdl.valuecastable method)": [[15, "amaranth.hdl.ValueCastable.as_value"]], "bit_select() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.bit_select"]], "bool() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.bool"]], "cast() (amaranth.hdl.shape static method)": [[15, "amaranth.hdl.Shape.cast"]], "cast() (amaranth.hdl.value static method)": [[15, "amaranth.hdl.Value.cast"]], "const() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.const"]], "eq() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.eq"]], "matches() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.matches"]], "module": [[15, "module-amaranth.hdl"], [18, "module-amaranth.lib.cdc"], [19, "module-amaranth.lib.coding"], [20, "module-amaranth.lib.crc"], [21, "module-amaranth.lib.crc.catalog"], [22, "module-amaranth.lib.data"], [23, "module-amaranth.lib.enum"], [24, "module-amaranth.lib.fifo"], [25, "module-amaranth.lib.wiring"]], "replicate() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.replicate"]], "rotate_left() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.rotate_left"]], "rotate_right() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.rotate_right"]], "shape() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.shape"]], "shape() (amaranth.hdl.valuecastable method)": [[15, "amaranth.hdl.ValueCastable.shape"]], "shift_left() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.shift_left"]], "shift_right() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.shift_right"]], "signed() (in module amaranth.hdl)": [[15, "amaranth.hdl.signed"]], "unsigned() (in module amaranth.hdl)": [[15, "amaranth.hdl.unsigned"]], "word_select() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.word_select"]], "xor() (amaranth.hdl.value method)": [[15, "amaranth.hdl.Value.xor"]], "asyncffsynchronizer (class in amaranth.lib.cdc)": [[18, "amaranth.lib.cdc.AsyncFFSynchronizer"]], "ffsynchronizer (class in amaranth.lib.cdc)": [[18, "amaranth.lib.cdc.FFSynchronizer"]], "pulsesynchronizer (class in amaranth.lib.cdc)": [[18, "amaranth.lib.cdc.PulseSynchronizer"]], "resetsynchronizer (class in amaranth.lib.cdc)": [[18, "amaranth.lib.cdc.ResetSynchronizer"]], "amaranth.lib.cdc": [[18, "module-amaranth.lib.cdc"]], "decoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.Decoder"]], "encoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.Encoder"]], "graydecoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.GrayDecoder"]], "grayencoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.GrayEncoder"]], "prioritydecoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.PriorityDecoder"]], "priorityencoder (class in amaranth.lib.coding)": [[19, "amaranth.lib.coding.PriorityEncoder"]], "amaranth.lib.coding": [[19, "module-amaranth.lib.coding"]], "algorithm (class in amaranth.lib.crc)": [[20, "amaranth.lib.crc.Algorithm"]], "parameters (class in amaranth.lib.crc)": [[20, "amaranth.lib.crc.Parameters"]], "processor (class in amaranth.lib.crc)": [[20, "amaranth.lib.crc.Processor"]], "__call__() (amaranth.lib.crc.algorithm method)": [[20, "amaranth.lib.crc.Algorithm.__call__"]], "algorithm (amaranth.lib.crc.parameters property)": [[20, "amaranth.lib.crc.Parameters.algorithm"]], "amaranth.lib.crc": [[20, "module-amaranth.lib.crc"]], "compute() (amaranth.lib.crc.parameters method)": [[20, "amaranth.lib.crc.Parameters.compute"]], "create() (amaranth.lib.crc.parameters method)": [[20, "amaranth.lib.crc.Parameters.create"]], "residue() (amaranth.lib.crc.parameters method)": [[20, "amaranth.lib.crc.Parameters.residue"]], "crc10_atm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC10_ATM"]], "crc10_cdma2000 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC10_CDMA2000"]], "crc10_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC10_GSM"]], "crc10_i_610 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC10_I_610"]], "crc11_flexray (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC11_FLEXRAY"]], "crc11_umts (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC11_UMTS"]], "crc12_3gpp (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_3GPP"]], "crc12_cdma2000 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_CDMA2000"]], "crc12_dect (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_DECT"]], "crc12_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_GSM"]], "crc12_umts (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC12_UMTS"]], "crc13_bbc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC13_BBC"]], "crc14_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC14_DARC"]], "crc14_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC14_GSM"]], "crc15_can (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC15_CAN"]], "crc15_mpt1327 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC15_MPT1327"]], "crc16_acorn (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ACORN"]], "crc16_arc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ARC"]], "crc16_aug_ccitt (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_AUG_CCITT"]], "crc16_autosar (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_AUTOSAR"]], "crc16_bluetooth (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_BLUETOOTH"]], "crc16_buypass (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_BUYPASS"]], "crc16_ccitt (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CCITT"]], "crc16_ccitt_false (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CCITT_FALSE"]], "crc16_ccitt_true (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CCITT_TRUE"]], "crc16_cdma2000 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CDMA2000"]], "crc16_cms (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_CMS"]], "crc16_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DARC"]], "crc16_dds_110 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DDS_110"]], "crc16_dect_r (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DECT_R"]], "crc16_dect_x (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DECT_X"]], "crc16_dnp (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_DNP"]], "crc16_en_13757 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_EN_13757"]], "crc16_epc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_EPC"]], "crc16_epc_c1g2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_EPC_C1G2"]], "crc16_genibus (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_GENIBUS"]], "crc16_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_GSM"]], "crc16_ibm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_IBM"]], "crc16_ibm_3740 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_IBM_3740"]], "crc16_ibm_sdlc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_IBM_SDLC"]], "crc16_iec_61158_2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_IEC_61158_2"]], "crc16_iso_hdlc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ISO_HDLC"]], "crc16_iso_iec_14443_3_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ISO_IEC_14443_3_A"]], "crc16_iso_iec_14443_3_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ISO_IEC_14443_3_B"]], "crc16_i_code (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_I_CODE"]], "crc16_kermit (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_KERMIT"]], "crc16_lj1200 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_LJ1200"]], "crc16_lte (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_LTE"]], "crc16_m17 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_M17"]], "crc16_maxim (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_MAXIM"]], "crc16_maxim_dow (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_MAXIM_DOW"]], "crc16_mcrf4xx (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_MCRF4XX"]], "crc16_modbus (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_MODBUS"]], "crc16_nrsc_5 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_NRSC_5"]], "crc16_opensafety_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_OPENSAFETY_A"]], "crc16_opensafety_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_OPENSAFETY_B"]], "crc16_profibus (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_PROFIBUS"]], "crc16_riello (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_RIELLO"]], "crc16_spi_fujitsu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_SPI_FUJITSU"]], "crc16_t10_dif (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_T10_DIF"]], "crc16_teledisk (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_TELEDISK"]], "crc16_tms37157 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_TMS37157"]], "crc16_umts (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_UMTS"]], "crc16_usb (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_USB"]], "crc16_verifone (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_VERIFONE"]], "crc16_v_41_lsb (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_V_41_LSB"]], "crc16_v_41_msb (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_V_41_MSB"]], "crc16_x25 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_X25"]], "crc16_xmodem (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_XMODEM"]], "crc16_zmodem (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC16_ZMODEM"]], "crc17_can_fd (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC17_CAN_FD"]], "crc21_can_fd (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC21_CAN_FD"]], "crc24_ble (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_BLE"]], "crc24_flexray_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_FLEXRAY_A"]], "crc24_flexray_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_FLEXRAY_B"]], "crc24_interlaken (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_INTERLAKEN"]], "crc24_lte_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_LTE_A"]], "crc24_lte_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_LTE_B"]], "crc24_openpgp (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_OPENPGP"]], "crc24_os_9 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC24_OS_9"]], "crc30_cdma (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC30_CDMA"]], "crc31_philips (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC31_PHILIPS"]], "crc32_aal5 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_AAL5"]], "crc32_adccp (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_ADCCP"]], "crc32_aixm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_AIXM"]], "crc32_autosar (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_AUTOSAR"]], "crc32_base91_c (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_BASE91_C"]], "crc32_base91_d (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_BASE91_D"]], "crc32_bzip2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_BZIP2"]], "crc32_castagnoli (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_CASTAGNOLI"]], "crc32_cd_rom_edc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_CD_ROM_EDC"]], "crc32_cksum (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_CKSUM"]], "crc32_dect_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_DECT_B"]], "crc32_ethernet (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_ETHERNET"]], "crc32_interlaken (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_INTERLAKEN"]], "crc32_iscsi (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_ISCSI"]], "crc32_iso_hdlc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_ISO_HDLC"]], "crc32_jamcrc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_JAMCRC"]], "crc32_mef (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_MEF"]], "crc32_mpeg_2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_MPEG_2"]], "crc32_pkzip (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_PKZIP"]], "crc32_posix (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_POSIX"]], "crc32_v_42 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_V_42"]], "crc32_xfer (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_XFER"]], "crc32_xz (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC32_XZ"]], "crc3_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC3_GSM"]], "crc3_rohc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC3_ROHC"]], "crc40_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC40_GSM"]], "crc4_g_704 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC4_G_704"]], "crc4_interlaken (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC4_INTERLAKEN"]], "crc4_itu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC4_ITU"]], "crc5_epc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_EPC"]], "crc5_epc_c1g2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_EPC_C1G2"]], "crc5_g_704 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_G_704"]], "crc5_itu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_ITU"]], "crc5_usb (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC5_USB"]], "crc64_ecma (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_ECMA"]], "crc64_ecma_182 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_ECMA_182"]], "crc64_go_iso (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_GO_ISO"]], "crc64_ms (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_MS"]], "crc64_redis (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_REDIS"]], "crc64_we (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_WE"]], "crc64_xz (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC64_XZ"]], "crc6_cdma2000_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_CDMA2000_A"]], "crc6_cdma2000_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_CDMA2000_B"]], "crc6_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_DARC"]], "crc6_gsm (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_GSM"]], "crc6_g_704 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_G_704"]], "crc6_itu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC6_ITU"]], "crc7_mmc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC7_MMC"]], "crc7_rohc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC7_ROHC"]], "crc7_umts (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC7_UMTS"]], "crc82_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC82_DARC"]], "crc8_aes (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_AES"]], "crc8_autosar (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_AUTOSAR"]], "crc8_bluetooth (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_BLUETOOTH"]], "crc8_cdma2000 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_CDMA2000"]], "crc8_darc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_DARC"]], "crc8_dvb_s2 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_DVB_S2"]], "crc8_etu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_ETU"]], "crc8_gsm_a (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_GSM_A"]], "crc8_gsm_b (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_GSM_B"]], "crc8_hitag (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_HITAG"]], "crc8_itu (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_ITU"]], "crc8_i_432_1 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_I_432_1"]], "crc8_i_code (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_I_CODE"]], "crc8_lte (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_LTE"]], "crc8_maxim (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_MAXIM"]], "crc8_maxim_dow (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_MAXIM_DOW"]], "crc8_mifare_mad (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_MIFARE_MAD"]], "crc8_nrsc_5 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_NRSC_5"]], "crc8_opensafety (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_OPENSAFETY"]], "crc8_rohc (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_ROHC"]], "crc8_sae_j1850 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_SAE_J1850"]], "crc8_smbus (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_SMBUS"]], "crc8_tech_3250 (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_TECH_3250"]], "crc8_wcdma (in module amaranth.lib.crc.catalog)": [[21, "amaranth.lib.crc.catalog.CRC8_WCDMA"]], "amaranth.lib.crc.catalog": [[21, "module-amaranth.lib.crc.catalog"]], "arraylayout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.ArrayLayout"]], "field (class in amaranth.lib.data)": [[22, "amaranth.lib.data.Field"]], "flexiblelayout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.FlexibleLayout"]], "layout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.Layout"]], "struct (class in amaranth.lib.data)": [[22, "amaranth.lib.data.Struct"]], "structlayout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.StructLayout"]], "union (class in amaranth.lib.data)": [[22, "amaranth.lib.data.Union"]], "unionlayout (class in amaranth.lib.data)": [[22, "amaranth.lib.data.UnionLayout"]], "view (class in amaranth.lib.data)": [[22, "amaranth.lib.data.View"]], "__call__() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.__call__"]], "__eq__() (amaranth.lib.data.field method)": [[22, "amaranth.lib.data.Field.__eq__"]], "__eq__() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.__eq__"]], "__getattr__() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.__getattr__"]], "__getitem__() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.__getitem__"]], "__getitem__() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.__getitem__"]], "__iter__() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.__iter__"]], "amaranth.lib.data": [[22, "module-amaranth.lib.data"]], "as_shape() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.as_shape"]], "as_value() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.as_value"]], "cast() (amaranth.lib.data.layout static method)": [[22, "amaranth.lib.data.Layout.cast"]], "const() (amaranth.lib.data.layout method)": [[22, "amaranth.lib.data.Layout.const"]], "const() (amaranth.lib.data.unionlayout method)": [[22, "amaranth.lib.data.UnionLayout.const"]], "eq() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.eq"]], "shape() (amaranth.lib.data.view method)": [[22, "amaranth.lib.data.View.shape"]], "size (amaranth.lib.data.arraylayout property)": [[22, "amaranth.lib.data.ArrayLayout.size"]], "size (amaranth.lib.data.layout property)": [[22, "amaranth.lib.data.Layout.size"]], "size (amaranth.lib.data.structlayout property)": [[22, "amaranth.lib.data.StructLayout.size"]], "size (amaranth.lib.data.unionlayout property)": [[22, "amaranth.lib.data.UnionLayout.size"]], "width (amaranth.lib.data.field property)": [[22, "amaranth.lib.data.Field.width"]], "enum (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.Enum"]], "enummeta (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.EnumMeta"]], "enumview (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.EnumView"]], "flag (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.Flag"]], "flagview (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.FlagView"]], "intenum (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.IntEnum"]], "intflag (class in amaranth.lib.enum)": [[23, "amaranth.lib.enum.IntFlag"]], "__and__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__and__"]], "__call__() (amaranth.lib.enum.enummeta method)": [[23, "amaranth.lib.enum.EnumMeta.__call__"]], "__eq__() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.__eq__"]], "__init__() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.__init__"]], "__invert__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__invert__"]], "__or__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__or__"]], "__rand__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__rand__"]], "__ror__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__ror__"]], "__rxor__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__rxor__"]], "__xor__() (amaranth.lib.enum.flagview method)": [[23, "amaranth.lib.enum.FlagView.__xor__"]], "amaranth.lib.enum": [[23, "module-amaranth.lib.enum"]], "as_shape() (amaranth.lib.enum.enummeta method)": [[23, "amaranth.lib.enum.EnumMeta.as_shape"]], "as_value() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.as_value"]], "const() (amaranth.lib.enum.enummeta method)": [[23, "amaranth.lib.enum.EnumMeta.const"]], "eq() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.eq"]], "shape() (amaranth.lib.enum.enumview method)": [[23, "amaranth.lib.enum.EnumView.shape"]], "asyncfifo (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.AsyncFIFO"]], "asyncfifobuffered (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.AsyncFIFOBuffered"]], "fifointerface (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.FIFOInterface"]], "syncfifo (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.SyncFIFO"]], "syncfifobuffered (class in amaranth.lib.fifo)": [[24, "amaranth.lib.fifo.SyncFIFOBuffered"]], "amaranth.lib.fifo": [[24, "module-amaranth.lib.fifo"]], "component (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Component"]], "connectionerror": [[25, "amaranth.lib.wiring.ConnectionError"]], "flippedinterface (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.FlippedInterface"]], "flippedsignature (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.FlippedSignature"]], "flippedsignaturemembers (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.FlippedSignatureMembers"]], "flow (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Flow"]], "in (amaranth.lib.wiring.flow attribute)": [[25, "amaranth.lib.wiring.Flow.In"]], "in (in module amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.In"]], "member (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Member"]], "out (amaranth.lib.wiring.flow attribute)": [[25, "amaranth.lib.wiring.Flow.Out"]], "out (in module amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Out"]], "pureinterface (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.PureInterface"]], "signature (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.Signature"]], "signatureerror": [[25, "amaranth.lib.wiring.SignatureError"]], "signaturemembers (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.SignatureMembers"]], "signaturemeta (class in amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.SignatureMeta"]], "__call__() (amaranth.lib.wiring.flow method)": [[25, "amaranth.lib.wiring.Flow.__call__"]], "__contains__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__contains__"]], "__delattr__() (amaranth.lib.wiring.flippedinterface method)": [[25, "amaranth.lib.wiring.FlippedInterface.__delattr__"]], "__delattr__() (amaranth.lib.wiring.flippedsignature method)": [[25, "amaranth.lib.wiring.FlippedSignature.__delattr__"]], "__delitem__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__delitem__"]], "__eq__() (amaranth.lib.wiring.flippedinterface method)": [[25, "amaranth.lib.wiring.FlippedInterface.__eq__"]], "__eq__() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.__eq__"]], "__eq__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__eq__"]], "__getattr__() (amaranth.lib.wiring.flippedinterface method)": [[25, "amaranth.lib.wiring.FlippedInterface.__getattr__"]], "__getattr__() (amaranth.lib.wiring.flippedsignature method)": [[25, "amaranth.lib.wiring.FlippedSignature.__getattr__"]], "__getitem__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__getitem__"]], "__init__() (amaranth.lib.wiring.pureinterface method)": [[25, "amaranth.lib.wiring.PureInterface.__init__"]], "__instancecheck__() (amaranth.lib.wiring.signaturemeta method)": [[25, "amaranth.lib.wiring.SignatureMeta.__instancecheck__"]], "__iter__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__iter__"]], "__setattr__() (amaranth.lib.wiring.flippedinterface method)": [[25, "amaranth.lib.wiring.FlippedInterface.__setattr__"]], "__setattr__() (amaranth.lib.wiring.flippedsignature method)": [[25, "amaranth.lib.wiring.FlippedSignature.__setattr__"]], "__setitem__() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.__setitem__"]], "__subclasscheck__() (amaranth.lib.wiring.signaturemeta method)": [[25, "amaranth.lib.wiring.SignatureMeta.__subclasscheck__"]], "amaranth.lib.wiring": [[25, "module-amaranth.lib.wiring"]], "array() (amaranth.lib.wiring.member method)": [[25, "amaranth.lib.wiring.Member.array"]], "connect() (in module amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.connect"]], "create() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.create"]], "create() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.create"]], "dimensions (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.dimensions"]], "flatten() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.flatten"]], "flatten() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.flatten"]], "flip() (amaranth.lib.wiring.flippedsignature method)": [[25, "amaranth.lib.wiring.FlippedSignature.flip"]], "flip() (amaranth.lib.wiring.flippedsignaturemembers method)": [[25, "amaranth.lib.wiring.FlippedSignatureMembers.flip"]], "flip() (amaranth.lib.wiring.flow method)": [[25, "amaranth.lib.wiring.Flow.flip"]], "flip() (amaranth.lib.wiring.member method)": [[25, "amaranth.lib.wiring.Member.flip"]], "flip() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.flip"]], "flip() (amaranth.lib.wiring.signaturemembers method)": [[25, "amaranth.lib.wiring.SignatureMembers.flip"]], "flipped() (in module amaranth.lib.wiring)": [[25, "amaranth.lib.wiring.flipped"]], "flow (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.flow"]], "init (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.init"]], "is_compliant() (amaranth.lib.wiring.signature method)": [[25, "amaranth.lib.wiring.Signature.is_compliant"]], "is_port (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.is_port"]], "is_signature (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.is_signature"]], "members (amaranth.lib.wiring.signature property)": [[25, "amaranth.lib.wiring.Signature.members"]], "shape (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.shape"]], "signature (amaranth.lib.wiring.component property)": [[25, "amaranth.lib.wiring.Component.signature"]], "signature (amaranth.lib.wiring.flippedinterface property)": [[25, "amaranth.lib.wiring.FlippedInterface.signature"]], "signature (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.signature"]]}}) \ No newline at end of file diff --git a/docs/amaranth/latest/start.html b/docs/amaranth/latest/start.html index a87a7bb5..e61b0e34 100644 --- a/docs/amaranth/latest/start.html +++ b/docs/amaranth/latest/start.html @@ -4,7 +4,7 @@ - Getting started — Amaranth language & toolchain 0.4.1.dev112 documentation + Getting started — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/stdlib.html b/docs/amaranth/latest/stdlib.html index cc4e1a17..01beaf32 100644 --- a/docs/amaranth/latest/stdlib.html +++ b/docs/amaranth/latest/stdlib.html @@ -4,7 +4,7 @@ - Standard library — Amaranth language & toolchain 0.4.1.dev112 documentation + Standard library — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      @@ -106,7 +106,7 @@

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

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

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

      4. +
      5. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes amaranth.lib.cdc, amaranth.lib.memory.

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

      As part of the Amaranth backwards compatibility guarantee, any behaviors described in these documents will not change from a version to another without at least one version including a warning about the impending change. Any nontrivial change to these behaviors must also go through the public review as a part of the Amaranth Request for Comments process.

      diff --git a/docs/amaranth/latest/stdlib.rst b/docs/amaranth/latest/stdlib.rst index 2badf819..53e0b17d 100644 --- a/docs/amaranth/latest/stdlib.rst +++ b/docs/amaranth/latest/stdlib.rst @@ -4,7 +4,7 @@ Standard library The :mod:`amaranth.lib` module, also known as the standard library, provides modules that falls into one of the three categories: 1. Modules that will used by essentially all idiomatic Amaranth code, and are necessary for interoperability. This includes :mod:`amaranth.lib.enum` (enumerations), :mod:`amaranth.lib.data` (data structures), and :mod:`amaranth.lib.wiring` (interfaces and components). -2. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes :mod:`amaranth.lib.cdc`. +2. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes :mod:`amaranth.lib.cdc`, :mod:`amaranth.lib.memory`. 3. Modules that have essentially one correct implementation and are of broad utility in digital designs. This includes :mod:`amaranth.lib.coding`, :mod:`amaranth.lib.fifo`, and :mod:`amaranth.lib.crc`. As part of the Amaranth backwards compatibility guarantee, any behaviors described in these documents will not change from a version to another without at least one version including a warning about the impending change. Any nontrivial change to these behaviors must also go through the public review as a part of the `Amaranth Request for Comments process `_. diff --git a/docs/amaranth/latest/stdlib/cdc.html b/docs/amaranth/latest/stdlib/cdc.html index 728307bb..7f681cec 100644 --- a/docs/amaranth/latest/stdlib/cdc.html +++ b/docs/amaranth/latest/stdlib/cdc.html @@ -4,7 +4,7 @@ - Clock domain crossing — Amaranth language & toolchain 0.4.1.dev112 documentation + Clock domain crossing — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/stdlib/coding.html b/docs/amaranth/latest/stdlib/coding.html index ce2a1ba9..94155f34 100644 --- a/docs/amaranth/latest/stdlib/coding.html +++ b/docs/amaranth/latest/stdlib/coding.html @@ -4,7 +4,7 @@ - Code conversion — Amaranth language & toolchain 0.4.1.dev112 documentation + Code conversion — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/stdlib/crc.html b/docs/amaranth/latest/stdlib/crc.html index 6ca8d8e1..9ddc7dc8 100644 --- a/docs/amaranth/latest/stdlib/crc.html +++ b/docs/amaranth/latest/stdlib/crc.html @@ -4,7 +4,7 @@ - Cyclic redundancy checks — Amaranth language & toolchain 0.4.1.dev112 documentation + Cyclic redundancy checks — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/stdlib/crc/catalog.html b/docs/amaranth/latest/stdlib/crc/catalog.html index a385b52e..9480c9b7 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 language & toolchain 0.4.1.dev112 documentation + Predefined CRC Algorithms — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/stdlib/data.html b/docs/amaranth/latest/stdlib/data.html index 6c8768b7..4a57240b 100644 --- a/docs/amaranth/latest/stdlib/data.html +++ b/docs/amaranth/latest/stdlib/data.html @@ -4,7 +4,7 @@ - Data structures — Amaranth language & toolchain 0.4.1.dev112 documentation + Data structures — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/stdlib/enum.html b/docs/amaranth/latest/stdlib/enum.html index 54519481..1fc9b40c 100644 --- a/docs/amaranth/latest/stdlib/enum.html +++ b/docs/amaranth/latest/stdlib/enum.html @@ -4,7 +4,7 @@ - Enumerations — Amaranth language & toolchain 0.4.1.dev112 documentation + Enumerations — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/stdlib/fifo.html b/docs/amaranth/latest/stdlib/fifo.html index 424deb18..f1f20cad 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 language & toolchain 0.4.1.dev112 documentation + First-in first-out queues — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/stdlib/wiring.html b/docs/amaranth/latest/stdlib/wiring.html index 3f55ef37..8fc61735 100644 --- a/docs/amaranth/latest/stdlib/wiring.html +++ b/docs/amaranth/latest/stdlib/wiring.html @@ -4,7 +4,7 @@ - Interfaces and connections — Amaranth language & toolchain 0.4.1.dev112 documentation + Interfaces and connections — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099
      diff --git a/docs/amaranth/latest/tutorial.html b/docs/amaranth/latest/tutorial.html index 469a4b18..12237e94 100644 --- a/docs/amaranth/latest/tutorial.html +++ b/docs/amaranth/latest/tutorial.html @@ -4,7 +4,7 @@ - Tutorial — Amaranth language & toolchain 0.4.1.dev112 documentation + Tutorial — Amaranth language & toolchain 0.4.1.dev113 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
      - 0.4.1.dev112+g6d65dc1 + 0.4.1.dev113+g890e099