diff --git a/docs/amaranth/latest/.buildinfo b/docs/amaranth/latest/.buildinfo index 2323076d..f5590025 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: a12784d963126c95f3192c8f8dee7502 +config: 5f1c0e170e215ebbcae96d28c5a18b01 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/amaranth/latest/.doctrees/changes.doctree b/docs/amaranth/latest/.doctrees/changes.doctree index 29ab7eab..afc9931e 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 74f7b19f..e1224839 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/_sources/changes.rst.txt b/docs/amaranth/latest/_sources/changes.rst.txt index 08792f84..8d7908a9 100644 --- a/docs/amaranth/latest/_sources/changes.rst.txt +++ b/docs/amaranth/latest/_sources/changes.rst.txt @@ -29,9 +29,8 @@ Apply the following changes to code written against Amaranth 0.4 to migrate it t * Replace uses of ``Value.matches()`` with no patterns with ``Const(1)`` * Update uses of ``amaranth.utils.log2_int(need_pow2=False)`` to :func:`amaranth.utils.ceil_log2` * Update uses of ``amaranth.utils.log2_int(need_pow2=True)`` to :func:`amaranth.utils.exact_log2` -* Update uses of ``Simulator.add_process`` to ``Simulator.add_testbench`` * Convert uses of ``Simulator.add_sync_process`` used as testbenches to ``Simulator.add_testbench`` -* Convert uses of ``yield Tick()`` within remaining ``Simulator.add_sync_process`` to plain ``yield`` +* Convert other uses of ``Simulator.add_sync_process`` to ``Simulator.add_process`` Implemented RFCs @@ -81,7 +80,7 @@ Toolchain changes * Added: ``Simulator.add_testbench``. (`RFC 27`_) * Deprecated: ``Settle`` simulation command. (`RFC 27`_) -* Deprecated: ``Simulator.add_process``. (`RFC 27`_) +* Deprecated: ``Simulator.add_sync_process``. (`RFC 27`_) * Removed: (deprecated in 0.4) use of mixed-case toolchain environment variable names, such as ``NMIGEN_ENV_Diamond`` or ``AMARANTH_ENV_Diamond``; use upper-case environment variable names, such as ``AMARANTH_ENV_DIAMOND``. diff --git a/docs/amaranth/latest/_static/documentation_options.js b/docs/amaranth/latest/_static/documentation_options.js index a630d550..6f2fc6d5 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.dev83', + VERSION: '0.4.1.dev84', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/amaranth/latest/changes.html b/docs/amaranth/latest/changes.html index 67aeac05..fcecc01f 100644 --- a/docs/amaranth/latest/changes.html +++ b/docs/amaranth/latest/changes.html @@ -4,7 +4,7 @@ - Changelog — Amaranth language & toolchain 0.4.1.dev83 documentation + Changelog — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
- 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
@@ -145,9 +145,8 @@

Migrating from version 0.4Value.matches() with no patterns with Const(1)

  • Update uses of amaranth.utils.log2_int(need_pow2=False) to amaranth.utils.ceil_log2()

  • Update uses of amaranth.utils.log2_int(need_pow2=True) to amaranth.utils.exact_log2()

  • -
  • Update uses of Simulator.add_process to Simulator.add_testbench

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

  • -
  • Convert uses of yield Tick() within remaining Simulator.add_sync_process to plain yield

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

  • @@ -188,7 +187,7 @@

    Toolchain changes
  • Added: Simulator.add_testbench. (RFC 27)

  • Deprecated: Settle simulation command. (RFC 27)

  • -
  • Deprecated: Simulator.add_process. (RFC 27)

  • +
  • Deprecated: Simulator.add_sync_process. (RFC 27)

  • Removed: (deprecated in 0.4) use of mixed-case toolchain environment variable names, such as NMIGEN_ENV_Diamond or AMARANTH_ENV_Diamond; use upper-case environment variable names, such as AMARANTH_ENV_DIAMOND.

  • diff --git a/docs/amaranth/latest/changes.rst b/docs/amaranth/latest/changes.rst index 08792f84..8d7908a9 100644 --- a/docs/amaranth/latest/changes.rst +++ b/docs/amaranth/latest/changes.rst @@ -29,9 +29,8 @@ Apply the following changes to code written against Amaranth 0.4 to migrate it t * Replace uses of ``Value.matches()`` with no patterns with ``Const(1)`` * Update uses of ``amaranth.utils.log2_int(need_pow2=False)`` to :func:`amaranth.utils.ceil_log2` * Update uses of ``amaranth.utils.log2_int(need_pow2=True)`` to :func:`amaranth.utils.exact_log2` -* Update uses of ``Simulator.add_process`` to ``Simulator.add_testbench`` * Convert uses of ``Simulator.add_sync_process`` used as testbenches to ``Simulator.add_testbench`` -* Convert uses of ``yield Tick()`` within remaining ``Simulator.add_sync_process`` to plain ``yield`` +* Convert other uses of ``Simulator.add_sync_process`` to ``Simulator.add_process`` Implemented RFCs @@ -81,7 +80,7 @@ Toolchain changes * Added: ``Simulator.add_testbench``. (`RFC 27`_) * Deprecated: ``Settle`` simulation command. (`RFC 27`_) -* Deprecated: ``Simulator.add_process``. (`RFC 27`_) +* Deprecated: ``Simulator.add_sync_process``. (`RFC 27`_) * Removed: (deprecated in 0.4) use of mixed-case toolchain environment variable names, such as ``NMIGEN_ENV_Diamond`` or ``AMARANTH_ENV_Diamond``; use upper-case environment variable names, such as ``AMARANTH_ENV_DIAMOND``. diff --git a/docs/amaranth/latest/contrib.html b/docs/amaranth/latest/contrib.html index d056c0a1..d410d42e 100644 --- a/docs/amaranth/latest/contrib.html +++ b/docs/amaranth/latest/contrib.html @@ -4,7 +4,7 @@ - Contributing — Amaranth language & toolchain 0.4.1.dev83 documentation + Contributing — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/cover.html b/docs/amaranth/latest/cover.html index 11dd53ae..49ff176b 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.dev83 documentation + Amaranth project documentation — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/genindex.html b/docs/amaranth/latest/genindex.html index 8888d190..dd082155 100644 --- a/docs/amaranth/latest/genindex.html +++ b/docs/amaranth/latest/genindex.html @@ -3,7 +3,7 @@ - Index — Amaranth language & toolchain 0.4.1.dev83 documentation + Index — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -14,7 +14,7 @@ - + @@ -36,7 +36,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/guide.html b/docs/amaranth/latest/guide.html index c080f993..1a241a17 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.dev83 documentation + Language guide — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/index.html b/docs/amaranth/latest/index.html index 5ded3149..d518f431 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.dev83 documentation + Language & toolchain — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/install.html b/docs/amaranth/latest/install.html index 6d89e901..b33eba46 100644 --- a/docs/amaranth/latest/install.html +++ b/docs/amaranth/latest/install.html @@ -4,7 +4,7 @@ - Installation — Amaranth language & toolchain 0.4.1.dev83 documentation + Installation — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/intro.html b/docs/amaranth/latest/intro.html index c62a579c..e827def4 100644 --- a/docs/amaranth/latest/intro.html +++ b/docs/amaranth/latest/intro.html @@ -4,7 +4,7 @@ - Introduction — Amaranth language & toolchain 0.4.1.dev83 documentation + Introduction — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/objects.inv b/docs/amaranth/latest/objects.inv index c4f52add..2cdb054f 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 10057d38..d306cf3f 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.dev83 documentation + Platform integration — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/platform/gowin.html b/docs/amaranth/latest/platform/gowin.html index 1fafa751..3296efe1 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.dev83 documentation + Gowin — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/platform/intel.html b/docs/amaranth/latest/platform/intel.html index 60710709..59a507b0 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.dev83 documentation + Intel — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/platform/lattice-ecp5.html b/docs/amaranth/latest/platform/lattice-ecp5.html index 9ea21294..1ecbdec0 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.dev83 documentation + Lattice ECP5 — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/platform/lattice-ice40.html b/docs/amaranth/latest/platform/lattice-ice40.html index 6151817f..1e871be3 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.dev83 documentation + Lattice iCE40 — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/platform/lattice-machxo-2-3l.html b/docs/amaranth/latest/platform/lattice-machxo-2-3l.html index 639c4000..9193e8da 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.dev83 documentation + Lattice MachXO2 and MachXO3L — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/platform/quicklogic.html b/docs/amaranth/latest/platform/quicklogic.html index 052320c8..a19f15e0 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.dev83 documentation + Quicklogic — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/platform/xilinx.html b/docs/amaranth/latest/platform/xilinx.html index b4795c91..020db143 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.dev83 documentation + Xilinx — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/py-modindex.html b/docs/amaranth/latest/py-modindex.html index 9ddf75fb..010d6511 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.dev83 documentation + Python Module Index — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -14,7 +14,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/reference.html b/docs/amaranth/latest/reference.html index 9a4f1369..a5d4d938 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.dev83 documentation + Language reference — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/search.html b/docs/amaranth/latest/search.html index 69379a75..497e3c03 100644 --- a/docs/amaranth/latest/search.html +++ b/docs/amaranth/latest/search.html @@ -3,7 +3,7 @@ - Search — Amaranth language & toolchain 0.4.1.dev83 documentation + Search — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/searchindex.js b/docs/amaranth/latest/searchindex.js index 70b5fa12..df6021dc 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, 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, 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], "replac": [0, 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], "default": [0, 3, 14, 18, 20, 21, 25], "valu": [0, 4, 15, 16, 18, 20, 22, 23, 25], "match": [0, 6, 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, "simul": [0, 3, 4, 5, 16], "add_process": 0, "add_testbench": 0, "convert": [0, 3, 6, 15, 22, 23, 25], "add_sync_process": [0, 16], "testbench": 0, "yield": [0, 16, 22, 25], "tick": 0, "within": [0, 3, 15, 25], "remain": [0, 24, 25], "plain": [0, 3, 22, 23], "17": [0, 1, 21, 23], "27": 0, "process": [0, 1, 3, 6, 15, 17, 20, 22, 25], "39": [0, 16], "semant": [0, 3, 6, 25], "argument": [0, 3, 15, 23, 25], "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, 22], "object": [0, 3, 9, 15, 20, 22, 23, 25], "have": [0, 1, 3, 5, 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, 22, 25], "alwai": [0, 3, 6, 16, 18, 20, 25], "signal": [0, 4, 6, 15, 16, 18, 19, 20, 22, 23, 24, 25], "stop": [0, 3], "reset": [0, 6, 15, 16, 18, 20, 22, 24, 25], "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], "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, "lib": [0, 3, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "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, 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, 16, 17, 25], "compon": [0, 2, 3, 6, 16, 17, 22], "wire": [0, 3, 16, 17, 25], "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, 22], "design": [0, 1, 3, 5, 6, 14, 15, 16, 17, 18, 20, 22, 25, 26], "addit": [0, 1, 3, 5, 6, 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, 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], "member": [0, 15, 22, 23, 25], "can": [0, 1, 3, 5, 6, 15, 16, 20, 22, 23, 24, 25], "provid": [0, 3, 6, 8, 9, 10, 11, 12, 13, 14, 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, 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, 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, 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, "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, 16, 25], "replic": [0, 3], "appropri": [0, 25], "depend": [0, 1, 3, 5, 6, 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, 22, 24, 25, 26], "storag": 0, "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, "like": [0, 1, 3, 5, 6, 15, 18, 22, 23, 25], "x": [0, 3, 15, 20, 25], "d": [0, 3, 16, 20, 22, 25], "sync": [0, 3, 16, 22, 25], "eq": [0, 3, 16, 22, 23, 25], "nativ": [0, 6], "syntax": [0, 3, 4, 16, 22, 25], "ensur": [0, 3, 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, 18, 23, 25], "overrid": [0, 9, 10, 11, 12, 13, 14, 18, 22, 25], "oper": [0, 4, 6, 22, 23, 25], "31": [0, 3, 21, 22], "type": [0, 3, 15, 20, 22, 23, 24, 25], "safeti": [0, 23], "34": 0, "renam": 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, "37": 0, "make": [0, 1, 3, 5, 6, 17, 23, 24], "signatur": [0, 17], "immut": [0, 3, 22, 25], "38": [0, 16], "shapecast": [0, 3, 15, 22, 23], "similar": [0, 1, 3, 16, 20, 22, 25], "as_sign": [0, 3], "as_unsign": [0, 3], "left": [0, 3, 20], "hand": 0, "side": [0, 3], "assign": [0, 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, 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, "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], "other": [0, 1, 3, 5, 6, 15, 16, 18, 20, 22, 23, 25], "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], "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, 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, 16, 17, 22, 25], "ab": [0, 3], "rotate_left": [0, 3], "rotate_right": [0, 3], "shift_left": [0, 3], "shift_right": [0, 3], "divis": [0, 3], "modulo": [0, 3], "neg": [0, 3, 15, 18], "divisor": [0, 16], "cdc": [0, 3, 6, 17, 18], "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, 16, 17, 24, 25], "r_rst": [0, 24], "assert": [0, 3, 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, 19, 25], "fragment": [0, 3, 15], "advanc": [0, 6, 16, 25], "execute_remote_ssh": 0, "vcd": [0, 16], "output": [0, 1, 3, 11, 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, 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, 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, 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, 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, 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, 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, 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, 18, 22, 25], "unless": [1, 3, 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, 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, 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, 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, 20, 25], "immedi": [1, 3, 5, 18], "reflect": [1, 20], "pick": 1, "up": [1, 3, 16, 22, 24, 25, 26], "good": [1, 3, 10, 12], "habit": 1, "each": [1, 3, 6, 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, 3, 6, 25], "verif": [1, 6, 25, 26], "skip": [1, 15], "index": [1, 3, 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, 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, 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, 20, 22, 25], "tutori": [3, 4, 16], "introduct": [3, 4, 15, 16, 17], "detail": [3, 16, 18, 20, 25], "underli": [3, 15, 22, 23], "becaus": [3, 5, 22, 25], "regular": 3, "librari": [3, 4, 18], "need": [3, 5, 6, 18, 22, 24, 25], "root": [3, 11], "carefulli": 3, "curat": 3, "export": [3, 10, 12, 15, 23], "amount": [3, 6, 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, 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, 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, 25], "two": [3, 11, 15, 20, 22, 25], "complement": [3, 15], "simplest": 3, "ten": 3, "minus_two": 3, "2": [3, 4, 16, 18, 23, 24, 25], "abov": [3, 15, 16, 25], "omit": [3, 5], "posit": [3, 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, "fit": 3, "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, "otherwis": [3, 5, 16, 18, 19, 22, 25], "counter": [3, 4, 25], "whose": [3, 15, 17, 22, 23, 25], "set": [3, 9, 10, 11, 12, 14, 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], "py": [3, 16], "bound": 3, "subclass": [3, 15, 22, 23, 25], "finit": [3, 6], "machin": [3, 6], "multiplex": 3, "complex": [3, 6, 22, 25], "distinct": 3, "direct": [3, 6, 22, 25], "bottom": 3, "funct4": 3, "sub": [3, 23], "mul": [3, 23], "prevent": 3, "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, 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, 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, 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, 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], "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, "therefor": [3, 20], "statement": [3, 23, 25], "execut": 3, "decid": 3, "whether": [3, 6, 15, 16, 20, 25], "bodi": [3, 25], "fact": 3, "long": [3, 20], "finish": [3, 16], "solv": 3, "problem": [3, 4, 25], "manipul": [3, 22, 25], "OR": [3, 23], "select": 3, "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, 19, 20, 22], "tabl": 3, "negat": [3, 23], "subtract": 3, "floor": 3, "due": [3, 25], "limit": [3, 6, 16, 25], "chain": [3, 18], "inequ": 3, "greater": 3, "effici": 3, "NOT": 3, "AND": [3, 23], "xor": [3, 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, 17, 18, 19, 22, 24, 25], "unari": 3, "sole": [3, 25], "odd": 3, "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, 16, 22, 23, 25], "subscript": 3, "often": [3, 6, 22, 25], "offset": [3, 22], "notat": 3, "length": [3, 22], "j": 3, "k": 3, "bit_select": 3, "w": [3, 16], "overlap": [3, 22], "word_select": 3, "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], "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, "0b0110_0000": 3, "0b0100_0000": 3, "opposit": 3, "liter": [3, 15, 23], "reinterpret": 3, "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], "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], "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, 19, 20, 24, 25], "predefin": [3, 17, 20], "comb": [3, 16, 22, 25], "reserv": [3, 22], "specif": [3, 5, 6, 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, "present": [3, 6, 8, 9, 10, 11, 12, 13, 14, 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, 20, 25], "correspond": [3, 15, 16, 20, 22, 23, 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, "keyword": [3, 15, 23, 25], "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, 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, 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], "counter_": 3, "autogener": 3, "difficult": 3, "suppli": [3, 6], "alter": 3, "input": [3, 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, 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, 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, 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, 22], "arithmet": 6, "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, 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, "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], "arg": [15, 20, 22, 23, 25], "kwarg": [15, 20, 22, 23, 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], "constrain": [15, 23], "valueerror": [15, 23], "latter": [15, 22], "compliant": [15, 25], "issubclass": [15, 25], "cl": [15, 25], "enummeta": [15, 23], "cursori": 16, "overview": 16, "explan": [16, 25], "shown": [16, 25], "up_count": 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], "_": [16, 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, "abil": [16, 23], "categori": 17, "idiomat": [17, 25], "metaclass": [17, 25], "layout": 17, "ffsynchron": [17, 18], "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, "lowest": 18, "mtbf": 18, "cost": 18, "increas": [18, 24], "latenc": [18, 20, 24], "max_input_delai": 18, "float": [18, 22], "maximum": 18, "second": [18, 22], "fail": [18, 25], "safest": 18, "load": 18, "target": [18, 22, 23, 25], "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, "drop": [18, 23], "i_domain": 18, "encod": 19, "indic": [19, 20, 22, 25], "invalid": [19, 25], "decod": [19, 25], "th": 19, "priorityencod": 19, "prioritydecod": 19, "grayencod": 19, "graydecod": 19, "comput": [20, 25], "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, "init": [20, 22], "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, "stream": [20, 25], "handl": [20, 24], "subsequ": 20, "throughput": 20, "per": 20, "classic": 20, "serial": 20, "galoi": 20, "shift": 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, "bitwis": [22, 23], "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, "as_valu": [22, 23], "boilerpl": [22, 25], "ieee754singl": 22, "fraction": 22, "is_subnorm": 22, "set_addr": 22, "send_data": 22, "biggest": 22, "cmd": 22, "0x00001234": 22, "react": 22, "__eq__": [22, 23, 25], "span": 22, "preserv": 22, "invari": 22, "__iter__": [22, 25], "__getitem__": [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], "comparison": 23, "among": 23, "__invert__": 23, "__and__": 23, "__or__": 23, "__xor__": 23, "__rand__": 23, "__ror__": 23, "__rxor__": 23, "w_data": [24, 25], "w_rdy": 24, "w_en": 24, "r_rdy": 24, "noth": [24, 25], "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, "__add__": 25, "ever": 25, "denot": 25, "buse": 25, "cyc": 25, "outgo": 25, "carri": 25, "respond": 25, "That": 25, "incom": 25, "shortcut": 25, "discrimin": 25, "union": 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, "__contains__": 25, "__setitem__": 25, "stub": 25, "forbid": 25, "__delitem__": 25, "flatten": 25, "disregard": 25, "doubl": 25, "__": 25, "dict": 25, "unflip": 25, "flipped_memb": 25, "ing": 25, "influenc": 25, "obj__items__0": 25, "obj__items__1": 25, "prescrib": 25, "aspect": 25, "complianc": 25, "less": 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, "id": 25, "checker": 25, "track": 25, "burdensom": 25, "flipped_intf": 25, "interfaceknowswhenflip": 25, "other_unflip": 25, "caveat": 25, "imposs": 25, "meaningless": 25, "forbidden": 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, 3, 1, "", "signed"], [15, 3, 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.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, 4, 1, "", "algorithm"], [20, 2, 1, "", "compute"], [20, 2, 1, "", "create"], [20, 2, 1, "", "residue"]], "amaranth.lib.crc.catalog": [[21, 5, 1, "", "CRC10_ATM"], [21, 5, 1, "", "CRC10_CDMA2000"], [21, 5, 1, "", "CRC10_GSM"], [21, 5, 1, "", "CRC10_I_610"], [21, 5, 1, "", "CRC11_FLEXRAY"], [21, 5, 1, "", "CRC11_UMTS"], [21, 5, 1, "", "CRC12_3GPP"], [21, 5, 1, "", "CRC12_CDMA2000"], [21, 5, 1, "", "CRC12_DECT"], [21, 5, 1, "", "CRC12_GSM"], [21, 5, 1, "", "CRC12_UMTS"], [21, 5, 1, "", "CRC13_BBC"], [21, 5, 1, "", "CRC14_DARC"], [21, 5, 1, "", "CRC14_GSM"], [21, 5, 1, "", "CRC15_CAN"], [21, 5, 1, "", "CRC15_MPT1327"], [21, 5, 1, "", "CRC16_ACORN"], [21, 5, 1, "", "CRC16_ARC"], [21, 5, 1, "", "CRC16_AUG_CCITT"], [21, 5, 1, "", "CRC16_AUTOSAR"], [21, 5, 1, "", "CRC16_BLUETOOTH"], [21, 5, 1, "", "CRC16_BUYPASS"], [21, 5, 1, "", "CRC16_CCITT"], [21, 5, 1, "", "CRC16_CCITT_FALSE"], [21, 5, 1, "", "CRC16_CCITT_TRUE"], [21, 5, 1, "", "CRC16_CDMA2000"], [21, 5, 1, "", "CRC16_CMS"], [21, 5, 1, "", "CRC16_DARC"], [21, 5, 1, "", "CRC16_DDS_110"], [21, 5, 1, "", "CRC16_DECT_R"], [21, 5, 1, "", "CRC16_DECT_X"], [21, 5, 1, "", "CRC16_DNP"], [21, 5, 1, "", "CRC16_EN_13757"], [21, 5, 1, "", "CRC16_EPC"], [21, 5, 1, "", "CRC16_EPC_C1G2"], [21, 5, 1, "", "CRC16_GENIBUS"], [21, 5, 1, "", "CRC16_GSM"], [21, 5, 1, "", "CRC16_IBM"], [21, 5, 1, "", "CRC16_IBM_3740"], [21, 5, 1, "", "CRC16_IBM_SDLC"], [21, 5, 1, "", "CRC16_IEC_61158_2"], [21, 5, 1, "", "CRC16_ISO_HDLC"], [21, 5, 1, "", "CRC16_ISO_IEC_14443_3_A"], [21, 5, 1, "", "CRC16_ISO_IEC_14443_3_B"], [21, 5, 1, "", "CRC16_I_CODE"], [21, 5, 1, "", "CRC16_KERMIT"], [21, 5, 1, "", "CRC16_LJ1200"], [21, 5, 1, "", "CRC16_LTE"], [21, 5, 1, "", "CRC16_M17"], [21, 5, 1, "", "CRC16_MAXIM"], [21, 5, 1, "", "CRC16_MAXIM_DOW"], [21, 5, 1, "", "CRC16_MCRF4XX"], [21, 5, 1, "", "CRC16_MODBUS"], [21, 5, 1, "", "CRC16_NRSC_5"], [21, 5, 1, "", "CRC16_OPENSAFETY_A"], [21, 5, 1, "", "CRC16_OPENSAFETY_B"], [21, 5, 1, "", "CRC16_PROFIBUS"], [21, 5, 1, "", "CRC16_RIELLO"], [21, 5, 1, "", "CRC16_SPI_FUJITSU"], [21, 5, 1, "", "CRC16_T10_DIF"], [21, 5, 1, "", "CRC16_TELEDISK"], [21, 5, 1, "", "CRC16_TMS37157"], [21, 5, 1, "", "CRC16_UMTS"], [21, 5, 1, "", "CRC16_USB"], [21, 5, 1, "", "CRC16_VERIFONE"], [21, 5, 1, "", "CRC16_V_41_LSB"], [21, 5, 1, "", "CRC16_V_41_MSB"], [21, 5, 1, "", "CRC16_X25"], [21, 5, 1, "", "CRC16_XMODEM"], [21, 5, 1, "", "CRC16_ZMODEM"], [21, 5, 1, "", "CRC17_CAN_FD"], [21, 5, 1, "", "CRC21_CAN_FD"], [21, 5, 1, "", "CRC24_BLE"], [21, 5, 1, "", "CRC24_FLEXRAY_A"], [21, 5, 1, "", "CRC24_FLEXRAY_B"], [21, 5, 1, "", "CRC24_INTERLAKEN"], [21, 5, 1, "", "CRC24_LTE_A"], [21, 5, 1, "", "CRC24_LTE_B"], [21, 5, 1, "", "CRC24_OPENPGP"], [21, 5, 1, "", "CRC24_OS_9"], [21, 5, 1, "", "CRC30_CDMA"], [21, 5, 1, "", "CRC31_PHILIPS"], [21, 5, 1, "", "CRC32_AAL5"], [21, 5, 1, "", "CRC32_ADCCP"], [21, 5, 1, "", "CRC32_AIXM"], [21, 5, 1, "", "CRC32_AUTOSAR"], [21, 5, 1, "", "CRC32_BASE91_C"], [21, 5, 1, "", "CRC32_BASE91_D"], [21, 5, 1, "", "CRC32_BZIP2"], [21, 5, 1, "", "CRC32_CASTAGNOLI"], [21, 5, 1, "", "CRC32_CD_ROM_EDC"], [21, 5, 1, "", "CRC32_CKSUM"], [21, 5, 1, "", "CRC32_DECT_B"], [21, 5, 1, "", "CRC32_ETHERNET"], [21, 5, 1, "", "CRC32_INTERLAKEN"], [21, 5, 1, "", "CRC32_ISCSI"], [21, 5, 1, "", "CRC32_ISO_HDLC"], [21, 5, 1, "", "CRC32_JAMCRC"], [21, 5, 1, "", "CRC32_MEF"], [21, 5, 1, "", "CRC32_MPEG_2"], [21, 5, 1, "", "CRC32_PKZIP"], [21, 5, 1, "", "CRC32_POSIX"], [21, 5, 1, "", "CRC32_V_42"], [21, 5, 1, "", "CRC32_XFER"], [21, 5, 1, "", "CRC32_XZ"], [21, 5, 1, "", "CRC3_GSM"], [21, 5, 1, "", "CRC3_ROHC"], [21, 5, 1, "", "CRC40_GSM"], [21, 5, 1, "", "CRC4_G_704"], [21, 5, 1, "", "CRC4_INTERLAKEN"], [21, 5, 1, "", "CRC4_ITU"], [21, 5, 1, "", "CRC5_EPC"], [21, 5, 1, "", "CRC5_EPC_C1G2"], [21, 5, 1, "", "CRC5_G_704"], [21, 5, 1, "", "CRC5_ITU"], [21, 5, 1, "", "CRC5_USB"], [21, 5, 1, "", "CRC64_ECMA"], [21, 5, 1, "", "CRC64_ECMA_182"], [21, 5, 1, "", "CRC64_GO_ISO"], [21, 5, 1, "", "CRC64_MS"], [21, 5, 1, "", "CRC64_REDIS"], [21, 5, 1, "", "CRC64_WE"], [21, 5, 1, "", "CRC64_XZ"], [21, 5, 1, "", "CRC6_CDMA2000_A"], [21, 5, 1, "", "CRC6_CDMA2000_B"], [21, 5, 1, "", "CRC6_DARC"], [21, 5, 1, "", "CRC6_GSM"], [21, 5, 1, "", "CRC6_G_704"], [21, 5, 1, "", "CRC6_ITU"], [21, 5, 1, "", "CRC7_MMC"], [21, 5, 1, "", "CRC7_ROHC"], [21, 5, 1, "", "CRC7_UMTS"], [21, 5, 1, "", "CRC82_DARC"], [21, 5, 1, "", "CRC8_AES"], [21, 5, 1, "", "CRC8_AUTOSAR"], [21, 5, 1, "", "CRC8_BLUETOOTH"], [21, 5, 1, "", "CRC8_CDMA2000"], [21, 5, 1, "", "CRC8_DARC"], [21, 5, 1, "", "CRC8_DVB_S2"], [21, 5, 1, "", "CRC8_ETU"], [21, 5, 1, "", "CRC8_GSM_A"], [21, 5, 1, "", "CRC8_GSM_B"], [21, 5, 1, "", "CRC8_HITAG"], [21, 5, 1, "", "CRC8_ITU"], [21, 5, 1, "", "CRC8_I_432_1"], [21, 5, 1, "", "CRC8_I_CODE"], [21, 5, 1, "", "CRC8_LTE"], [21, 5, 1, "", "CRC8_MAXIM"], [21, 5, 1, "", "CRC8_MAXIM_DOW"], [21, 5, 1, "", "CRC8_MIFARE_MAD"], [21, 5, 1, "", "CRC8_NRSC_5"], [21, 5, 1, "", "CRC8_OPENSAFETY"], [21, 5, 1, "", "CRC8_ROHC"], [21, 5, 1, "", "CRC8_SAE_J1850"], [21, 5, 1, "", "CRC8_SMBUS"], [21, 5, 1, "", "CRC8_TECH_3250"], [21, 5, 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, 4, 1, "", "size"]], "amaranth.lib.data.Field": [[22, 2, 1, "", "__eq__"], [22, 4, 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, 4, 1, "", "size"]], "amaranth.lib.data.StructLayout": [[22, 4, 1, "", "size"]], "amaranth.lib.data.UnionLayout": [[22, 2, 1, "", "const"], [22, 4, 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, 6, 1, "", "ConnectionError"], [25, 1, 1, "", "FlippedInterface"], [25, 1, 1, "", "FlippedSignature"], [25, 1, 1, "", "FlippedSignatureMembers"], [25, 1, 1, "", "Flow"], [25, 5, 1, "", "In"], [25, 1, 1, "", "Member"], [25, 5, 1, "", "Out"], [25, 1, 1, "", "PureInterface"], [25, 1, 1, "", "Signature"], [25, 6, 1, "", "SignatureError"], [25, 1, 1, "", "SignatureMembers"], [25, 1, 1, "", "SignatureMeta"], [25, 3, 1, "", "connect"], [25, 3, 1, "", "flipped"]], "amaranth.lib.wiring.Component": [[25, 4, 1, "", "signature"]], "amaranth.lib.wiring.FlippedInterface": [[25, 2, 1, "", "__delattr__"], [25, 2, 1, "", "__eq__"], [25, 2, 1, "", "__getattr__"], [25, 2, 1, "", "__setattr__"], [25, 4, 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, 7, 1, "", "In"], [25, 7, 1, "", "Out"], [25, 2, 1, "", "__call__"], [25, 2, 1, "", "flip"]], "amaranth.lib.wiring.Member": [[25, 2, 1, "", "array"], [25, 4, 1, "", "dimensions"], [25, 2, 1, "", "flip"], [25, 4, 1, "", "flow"], [25, 4, 1, "", "is_port"], [25, 4, 1, "", "is_signature"], [25, 4, 1, "", "reset"], [25, 4, 1, "", "shape"], [25, 4, 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, 4, 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, 7, 1, "", "LatticeMachXO2Platform"], [12, 7, 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:function", "4": "py:property", "5": "py:data", "6": "py:exception", "7": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "property", "Python property"], "5": ["py", "data", "Python data"], "6": ["py", "exception", "Python exception"], "7": ["py", "attribute", "Python attribute"]}, "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, "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, "target": 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, 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"]], "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"]], "Assignment targets": [[3, "assignment-targets"]], "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, "id16"], [5, "id1"], [7, "id1"], [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"]], "__call__() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.__call__"]], "__repr__() (amaranth.hdl.shape method)": [[15, "amaranth.hdl.Shape.__repr__"]], "amaranth.hdl": [[15, "module-amaranth.hdl"]], "as_shape() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.as_shape"]], "cast() (amaranth.hdl.shape static method)": [[15, "amaranth.hdl.Shape.cast"]], "const() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.const"]], "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"]], "signed() (in module amaranth.hdl)": [[15, "amaranth.hdl.signed"]], "unsigned() (in module amaranth.hdl)": [[15, "amaranth.hdl.unsigned"]], "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"]], "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"]], "reset (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.reset"]], "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, 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, 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], "replac": [0, 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], "default": [0, 3, 14, 18, 20, 21, 25], "valu": [0, 4, 15, 16, 18, 20, 22, 23, 25], "match": [0, 6, 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, "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, 25], "argument": [0, 3, 15, 23, 25], "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, 22], "object": [0, 3, 9, 15, 20, 22, 23, 25], "have": [0, 1, 3, 5, 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, 22, 25], "alwai": [0, 3, 6, 16, 18, 20, 25], "signal": [0, 4, 6, 15, 16, 18, 19, 20, 22, 23, 24, 25], "stop": [0, 3], "reset": [0, 6, 15, 16, 18, 20, 22, 24, 25], "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], "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, "lib": [0, 3, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "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, 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, 16, 17, 25], "compon": [0, 2, 3, 6, 16, 17, 22], "wire": [0, 3, 16, 17, 25], "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, 22], "design": [0, 1, 3, 5, 6, 14, 15, 16, 17, 18, 20, 22, 25, 26], "addit": [0, 1, 3, 5, 6, 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, 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], "member": [0, 15, 22, 23, 25], "can": [0, 1, 3, 5, 6, 15, 16, 20, 22, 23, 24, 25], "provid": [0, 3, 6, 8, 9, 10, 11, 12, 13, 14, 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, 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, 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, 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, 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, 16, 25], "replic": [0, 3], "appropri": [0, 25], "depend": [0, 1, 3, 5, 6, 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, 22, 24, 25, 26], "storag": 0, "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, "like": [0, 1, 3, 5, 6, 15, 18, 22, 23, 25], "x": [0, 3, 15, 20, 25], "d": [0, 3, 16, 20, 22, 25], "sync": [0, 3, 16, 22, 25], "eq": [0, 3, 16, 22, 23, 25], "nativ": [0, 6], "syntax": [0, 3, 4, 16, 22, 25], "ensur": [0, 3, 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, 18, 23, 25], "overrid": [0, 9, 10, 11, 12, 13, 14, 18, 22, 25], "oper": [0, 4, 6, 22, 23, 25], "31": [0, 3, 21, 22], "type": [0, 3, 15, 20, 22, 23, 24, 25], "safeti": [0, 23], "34": 0, "renam": 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, "37": 0, "make": [0, 1, 3, 5, 6, 17, 23, 24], "signatur": [0, 17], "immut": [0, 3, 22, 25], "38": [0, 16], "shapecast": [0, 3, 15, 22, 23], "similar": [0, 1, 3, 16, 20, 22, 25], "as_sign": [0, 3], "as_unsign": [0, 3], "left": [0, 3, 20], "hand": 0, "side": [0, 3], "assign": [0, 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, 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, "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], "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, 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, 16, 17, 22, 25], "ab": [0, 3], "rotate_left": [0, 3], "rotate_right": [0, 3], "shift_left": [0, 3], "shift_right": [0, 3], "divis": [0, 3], "modulo": [0, 3], "neg": [0, 3, 15, 18], "divisor": [0, 16], "cdc": [0, 3, 6, 17, 18], "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, 16, 17, 24, 25], "r_rst": [0, 24], "assert": [0, 3, 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, 19, 25], "fragment": [0, 3, 15], "advanc": [0, 6, 16, 25], "execute_remote_ssh": 0, "vcd": [0, 16], "output": [0, 1, 3, 11, 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, 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, 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, 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, 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, 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, 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, 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, 18, 22, 25], "unless": [1, 3, 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, 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, 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, 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, 20, 25], "immedi": [1, 3, 5, 18], "reflect": [1, 20], "pick": 1, "up": [1, 3, 16, 22, 24, 25, 26], "good": [1, 3, 10, 12], "habit": 1, "each": [1, 3, 6, 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, 3, 6, 25], "verif": [1, 6, 25, 26], "skip": [1, 15], "index": [1, 3, 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, 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, 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, 20, 22, 25], "tutori": [3, 4, 16], "introduct": [3, 4, 15, 16, 17], "detail": [3, 16, 18, 20, 25], "underli": [3, 15, 22, 23], "becaus": [3, 5, 22, 25], "regular": 3, "librari": [3, 4, 18], "need": [3, 5, 6, 18, 22, 24, 25], "root": [3, 11], "carefulli": 3, "curat": 3, "export": [3, 10, 12, 15, 23], "amount": [3, 6, 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, 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, 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, 25], "two": [3, 11, 15, 20, 22, 25], "complement": [3, 15], "simplest": 3, "ten": 3, "minus_two": 3, "2": [3, 4, 16, 18, 23, 24, 25], "abov": [3, 15, 16, 25], "omit": [3, 5], "posit": [3, 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, "fit": 3, "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, "otherwis": [3, 5, 16, 18, 19, 22, 25], "counter": [3, 4, 25], "whose": [3, 15, 17, 22, 23, 25], "set": [3, 9, 10, 11, 12, 14, 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], "py": [3, 16], "bound": 3, "subclass": [3, 15, 22, 23, 25], "finit": [3, 6], "machin": [3, 6], "multiplex": 3, "complex": [3, 6, 22, 25], "distinct": 3, "direct": [3, 6, 22, 25], "bottom": 3, "funct4": 3, "sub": [3, 23], "mul": [3, 23], "prevent": 3, "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, 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, 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, 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, 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], "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, "therefor": [3, 20], "statement": [3, 23, 25], "execut": 3, "decid": 3, "whether": [3, 6, 15, 16, 20, 25], "bodi": [3, 25], "fact": 3, "long": [3, 20], "finish": [3, 16], "solv": 3, "problem": [3, 4, 25], "manipul": [3, 22, 25], "OR": [3, 23], "select": 3, "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, 19, 20, 22], "tabl": 3, "negat": [3, 23], "subtract": 3, "floor": 3, "due": [3, 25], "limit": [3, 6, 16, 25], "chain": [3, 18], "inequ": 3, "greater": 3, "effici": 3, "NOT": 3, "AND": [3, 23], "xor": [3, 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, 17, 18, 19, 22, 24, 25], "unari": 3, "sole": [3, 25], "odd": 3, "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, 16, 22, 23, 25], "subscript": 3, "often": [3, 6, 22, 25], "offset": [3, 22], "notat": 3, "length": [3, 22], "j": 3, "k": 3, "bit_select": 3, "w": [3, 16], "overlap": [3, 22], "word_select": 3, "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], "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, "0b0110_0000": 3, "0b0100_0000": 3, "opposit": 3, "liter": [3, 15, 23], "reinterpret": 3, "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], "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], "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, 19, 20, 24, 25], "predefin": [3, 17, 20], "comb": [3, 16, 22, 25], "reserv": [3, 22], "specif": [3, 5, 6, 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, 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, 20, 25], "correspond": [3, 15, 16, 20, 22, 23, 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, "keyword": [3, 15, 23, 25], "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, 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, 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, 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, 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, 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, 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, 22], "arithmet": 6, "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, 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, "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], "arg": [15, 20, 22, 23, 25], "kwarg": [15, 20, 22, 23, 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], "constrain": [15, 23], "valueerror": [15, 23], "latter": [15, 22], "compliant": [15, 25], "issubclass": [15, 25], "cl": [15, 25], "enummeta": [15, 23], "cursori": 16, "overview": 16, "explan": [16, 25], "shown": [16, 25], "up_count": 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], "_": [16, 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, "abil": [16, 23], "categori": 17, "idiomat": [17, 25], "metaclass": [17, 25], "layout": 17, "ffsynchron": [17, 18], "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, "lowest": 18, "mtbf": 18, "cost": 18, "increas": [18, 24], "latenc": [18, 20, 24], "max_input_delai": 18, "float": [18, 22], "maximum": 18, "second": [18, 22], "fail": [18, 25], "safest": 18, "load": 18, "target": [18, 22, 23, 25], "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, "drop": [18, 23], "i_domain": 18, "encod": 19, "indic": [19, 20, 22, 25], "invalid": [19, 25], "decod": [19, 25], "th": 19, "priorityencod": 19, "prioritydecod": 19, "grayencod": 19, "graydecod": 19, "comput": [20, 25], "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, "init": [20, 22], "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, "stream": [20, 25], "handl": [20, 24], "subsequ": 20, "throughput": 20, "per": 20, "classic": 20, "serial": 20, "galoi": 20, "shift": 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, "bitwis": [22, 23], "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, "as_valu": [22, 23], "boilerpl": [22, 25], "ieee754singl": 22, "fraction": 22, "is_subnorm": 22, "set_addr": 22, "send_data": 22, "biggest": 22, "cmd": 22, "0x00001234": 22, "react": 22, "__eq__": [22, 23, 25], "span": 22, "preserv": 22, "invari": 22, "__iter__": [22, 25], "__getitem__": [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], "comparison": 23, "among": 23, "__invert__": 23, "__and__": 23, "__or__": 23, "__xor__": 23, "__rand__": 23, "__ror__": 23, "__rxor__": 23, "w_data": [24, 25], "w_rdy": 24, "w_en": 24, "r_rdy": 24, "noth": [24, 25], "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, "__add__": 25, "ever": 25, "denot": 25, "buse": 25, "cyc": 25, "outgo": 25, "carri": 25, "respond": 25, "That": 25, "incom": 25, "shortcut": 25, "discrimin": 25, "union": 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, "__contains__": 25, "__setitem__": 25, "stub": 25, "forbid": 25, "__delitem__": 25, "flatten": 25, "disregard": 25, "doubl": 25, "__": 25, "dict": 25, "unflip": 25, "flipped_memb": 25, "ing": 25, "influenc": 25, "obj__items__0": 25, "obj__items__1": 25, "prescrib": 25, "aspect": 25, "complianc": 25, "less": 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, "id": 25, "checker": 25, "track": 25, "burdensom": 25, "flipped_intf": 25, "interfaceknowswhenflip": 25, "other_unflip": 25, "caveat": 25, "imposs": 25, "meaningless": 25, "forbidden": 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, 3, 1, "", "signed"], [15, 3, 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.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, 4, 1, "", "algorithm"], [20, 2, 1, "", "compute"], [20, 2, 1, "", "create"], [20, 2, 1, "", "residue"]], "amaranth.lib.crc.catalog": [[21, 5, 1, "", "CRC10_ATM"], [21, 5, 1, "", "CRC10_CDMA2000"], [21, 5, 1, "", "CRC10_GSM"], [21, 5, 1, "", "CRC10_I_610"], [21, 5, 1, "", "CRC11_FLEXRAY"], [21, 5, 1, "", "CRC11_UMTS"], [21, 5, 1, "", "CRC12_3GPP"], [21, 5, 1, "", "CRC12_CDMA2000"], [21, 5, 1, "", "CRC12_DECT"], [21, 5, 1, "", "CRC12_GSM"], [21, 5, 1, "", "CRC12_UMTS"], [21, 5, 1, "", "CRC13_BBC"], [21, 5, 1, "", "CRC14_DARC"], [21, 5, 1, "", "CRC14_GSM"], [21, 5, 1, "", "CRC15_CAN"], [21, 5, 1, "", "CRC15_MPT1327"], [21, 5, 1, "", "CRC16_ACORN"], [21, 5, 1, "", "CRC16_ARC"], [21, 5, 1, "", "CRC16_AUG_CCITT"], [21, 5, 1, "", "CRC16_AUTOSAR"], [21, 5, 1, "", "CRC16_BLUETOOTH"], [21, 5, 1, "", "CRC16_BUYPASS"], [21, 5, 1, "", "CRC16_CCITT"], [21, 5, 1, "", "CRC16_CCITT_FALSE"], [21, 5, 1, "", "CRC16_CCITT_TRUE"], [21, 5, 1, "", "CRC16_CDMA2000"], [21, 5, 1, "", "CRC16_CMS"], [21, 5, 1, "", "CRC16_DARC"], [21, 5, 1, "", "CRC16_DDS_110"], [21, 5, 1, "", "CRC16_DECT_R"], [21, 5, 1, "", "CRC16_DECT_X"], [21, 5, 1, "", "CRC16_DNP"], [21, 5, 1, "", "CRC16_EN_13757"], [21, 5, 1, "", "CRC16_EPC"], [21, 5, 1, "", "CRC16_EPC_C1G2"], [21, 5, 1, "", "CRC16_GENIBUS"], [21, 5, 1, "", "CRC16_GSM"], [21, 5, 1, "", "CRC16_IBM"], [21, 5, 1, "", "CRC16_IBM_3740"], [21, 5, 1, "", "CRC16_IBM_SDLC"], [21, 5, 1, "", "CRC16_IEC_61158_2"], [21, 5, 1, "", "CRC16_ISO_HDLC"], [21, 5, 1, "", "CRC16_ISO_IEC_14443_3_A"], [21, 5, 1, "", "CRC16_ISO_IEC_14443_3_B"], [21, 5, 1, "", "CRC16_I_CODE"], [21, 5, 1, "", "CRC16_KERMIT"], [21, 5, 1, "", "CRC16_LJ1200"], [21, 5, 1, "", "CRC16_LTE"], [21, 5, 1, "", "CRC16_M17"], [21, 5, 1, "", "CRC16_MAXIM"], [21, 5, 1, "", "CRC16_MAXIM_DOW"], [21, 5, 1, "", "CRC16_MCRF4XX"], [21, 5, 1, "", "CRC16_MODBUS"], [21, 5, 1, "", "CRC16_NRSC_5"], [21, 5, 1, "", "CRC16_OPENSAFETY_A"], [21, 5, 1, "", "CRC16_OPENSAFETY_B"], [21, 5, 1, "", "CRC16_PROFIBUS"], [21, 5, 1, "", "CRC16_RIELLO"], [21, 5, 1, "", "CRC16_SPI_FUJITSU"], [21, 5, 1, "", "CRC16_T10_DIF"], [21, 5, 1, "", "CRC16_TELEDISK"], [21, 5, 1, "", "CRC16_TMS37157"], [21, 5, 1, "", "CRC16_UMTS"], [21, 5, 1, "", "CRC16_USB"], [21, 5, 1, "", "CRC16_VERIFONE"], [21, 5, 1, "", "CRC16_V_41_LSB"], [21, 5, 1, "", "CRC16_V_41_MSB"], [21, 5, 1, "", "CRC16_X25"], [21, 5, 1, "", "CRC16_XMODEM"], [21, 5, 1, "", "CRC16_ZMODEM"], [21, 5, 1, "", "CRC17_CAN_FD"], [21, 5, 1, "", "CRC21_CAN_FD"], [21, 5, 1, "", "CRC24_BLE"], [21, 5, 1, "", "CRC24_FLEXRAY_A"], [21, 5, 1, "", "CRC24_FLEXRAY_B"], [21, 5, 1, "", "CRC24_INTERLAKEN"], [21, 5, 1, "", "CRC24_LTE_A"], [21, 5, 1, "", "CRC24_LTE_B"], [21, 5, 1, "", "CRC24_OPENPGP"], [21, 5, 1, "", "CRC24_OS_9"], [21, 5, 1, "", "CRC30_CDMA"], [21, 5, 1, "", "CRC31_PHILIPS"], [21, 5, 1, "", "CRC32_AAL5"], [21, 5, 1, "", "CRC32_ADCCP"], [21, 5, 1, "", "CRC32_AIXM"], [21, 5, 1, "", "CRC32_AUTOSAR"], [21, 5, 1, "", "CRC32_BASE91_C"], [21, 5, 1, "", "CRC32_BASE91_D"], [21, 5, 1, "", "CRC32_BZIP2"], [21, 5, 1, "", "CRC32_CASTAGNOLI"], [21, 5, 1, "", "CRC32_CD_ROM_EDC"], [21, 5, 1, "", "CRC32_CKSUM"], [21, 5, 1, "", "CRC32_DECT_B"], [21, 5, 1, "", "CRC32_ETHERNET"], [21, 5, 1, "", "CRC32_INTERLAKEN"], [21, 5, 1, "", "CRC32_ISCSI"], [21, 5, 1, "", "CRC32_ISO_HDLC"], [21, 5, 1, "", "CRC32_JAMCRC"], [21, 5, 1, "", "CRC32_MEF"], [21, 5, 1, "", "CRC32_MPEG_2"], [21, 5, 1, "", "CRC32_PKZIP"], [21, 5, 1, "", "CRC32_POSIX"], [21, 5, 1, "", "CRC32_V_42"], [21, 5, 1, "", "CRC32_XFER"], [21, 5, 1, "", "CRC32_XZ"], [21, 5, 1, "", "CRC3_GSM"], [21, 5, 1, "", "CRC3_ROHC"], [21, 5, 1, "", "CRC40_GSM"], [21, 5, 1, "", "CRC4_G_704"], [21, 5, 1, "", "CRC4_INTERLAKEN"], [21, 5, 1, "", "CRC4_ITU"], [21, 5, 1, "", "CRC5_EPC"], [21, 5, 1, "", "CRC5_EPC_C1G2"], [21, 5, 1, "", "CRC5_G_704"], [21, 5, 1, "", "CRC5_ITU"], [21, 5, 1, "", "CRC5_USB"], [21, 5, 1, "", "CRC64_ECMA"], [21, 5, 1, "", "CRC64_ECMA_182"], [21, 5, 1, "", "CRC64_GO_ISO"], [21, 5, 1, "", "CRC64_MS"], [21, 5, 1, "", "CRC64_REDIS"], [21, 5, 1, "", "CRC64_WE"], [21, 5, 1, "", "CRC64_XZ"], [21, 5, 1, "", "CRC6_CDMA2000_A"], [21, 5, 1, "", "CRC6_CDMA2000_B"], [21, 5, 1, "", "CRC6_DARC"], [21, 5, 1, "", "CRC6_GSM"], [21, 5, 1, "", "CRC6_G_704"], [21, 5, 1, "", "CRC6_ITU"], [21, 5, 1, "", "CRC7_MMC"], [21, 5, 1, "", "CRC7_ROHC"], [21, 5, 1, "", "CRC7_UMTS"], [21, 5, 1, "", "CRC82_DARC"], [21, 5, 1, "", "CRC8_AES"], [21, 5, 1, "", "CRC8_AUTOSAR"], [21, 5, 1, "", "CRC8_BLUETOOTH"], [21, 5, 1, "", "CRC8_CDMA2000"], [21, 5, 1, "", "CRC8_DARC"], [21, 5, 1, "", "CRC8_DVB_S2"], [21, 5, 1, "", "CRC8_ETU"], [21, 5, 1, "", "CRC8_GSM_A"], [21, 5, 1, "", "CRC8_GSM_B"], [21, 5, 1, "", "CRC8_HITAG"], [21, 5, 1, "", "CRC8_ITU"], [21, 5, 1, "", "CRC8_I_432_1"], [21, 5, 1, "", "CRC8_I_CODE"], [21, 5, 1, "", "CRC8_LTE"], [21, 5, 1, "", "CRC8_MAXIM"], [21, 5, 1, "", "CRC8_MAXIM_DOW"], [21, 5, 1, "", "CRC8_MIFARE_MAD"], [21, 5, 1, "", "CRC8_NRSC_5"], [21, 5, 1, "", "CRC8_OPENSAFETY"], [21, 5, 1, "", "CRC8_ROHC"], [21, 5, 1, "", "CRC8_SAE_J1850"], [21, 5, 1, "", "CRC8_SMBUS"], [21, 5, 1, "", "CRC8_TECH_3250"], [21, 5, 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, 4, 1, "", "size"]], "amaranth.lib.data.Field": [[22, 2, 1, "", "__eq__"], [22, 4, 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, 4, 1, "", "size"]], "amaranth.lib.data.StructLayout": [[22, 4, 1, "", "size"]], "amaranth.lib.data.UnionLayout": [[22, 2, 1, "", "const"], [22, 4, 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, 6, 1, "", "ConnectionError"], [25, 1, 1, "", "FlippedInterface"], [25, 1, 1, "", "FlippedSignature"], [25, 1, 1, "", "FlippedSignatureMembers"], [25, 1, 1, "", "Flow"], [25, 5, 1, "", "In"], [25, 1, 1, "", "Member"], [25, 5, 1, "", "Out"], [25, 1, 1, "", "PureInterface"], [25, 1, 1, "", "Signature"], [25, 6, 1, "", "SignatureError"], [25, 1, 1, "", "SignatureMembers"], [25, 1, 1, "", "SignatureMeta"], [25, 3, 1, "", "connect"], [25, 3, 1, "", "flipped"]], "amaranth.lib.wiring.Component": [[25, 4, 1, "", "signature"]], "amaranth.lib.wiring.FlippedInterface": [[25, 2, 1, "", "__delattr__"], [25, 2, 1, "", "__eq__"], [25, 2, 1, "", "__getattr__"], [25, 2, 1, "", "__setattr__"], [25, 4, 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, 7, 1, "", "In"], [25, 7, 1, "", "Out"], [25, 2, 1, "", "__call__"], [25, 2, 1, "", "flip"]], "amaranth.lib.wiring.Member": [[25, 2, 1, "", "array"], [25, 4, 1, "", "dimensions"], [25, 2, 1, "", "flip"], [25, 4, 1, "", "flow"], [25, 4, 1, "", "is_port"], [25, 4, 1, "", "is_signature"], [25, 4, 1, "", "reset"], [25, 4, 1, "", "shape"], [25, 4, 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, 4, 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, 7, 1, "", "LatticeMachXO2Platform"], [12, 7, 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:function", "4": "py:property", "5": "py:data", "6": "py:exception", "7": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "property", "Python property"], "5": ["py", "data", "Python data"], "6": ["py", "exception", "Python exception"], "7": ["py", "attribute", "Python attribute"]}, "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, "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, "target": 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, 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"]], "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"]], "Assignment targets": [[3, "assignment-targets"]], "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, "id16"], [5, "id1"], [7, "id1"], [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"]], "__call__() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.__call__"]], "__repr__() (amaranth.hdl.shape method)": [[15, "amaranth.hdl.Shape.__repr__"]], "amaranth.hdl": [[15, "module-amaranth.hdl"]], "as_shape() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.as_shape"]], "cast() (amaranth.hdl.shape static method)": [[15, "amaranth.hdl.Shape.cast"]], "const() (amaranth.hdl.shapecastable method)": [[15, "amaranth.hdl.ShapeCastable.const"]], "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"]], "signed() (in module amaranth.hdl)": [[15, "amaranth.hdl.signed"]], "unsigned() (in module amaranth.hdl)": [[15, "amaranth.hdl.unsigned"]], "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"]], "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"]], "reset (amaranth.lib.wiring.member property)": [[25, "amaranth.lib.wiring.Member.reset"]], "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 74395944..8cd62537 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.dev83 documentation + Getting started — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/stdlib.html b/docs/amaranth/latest/stdlib.html index 5d2868c2..23a537ac 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.dev83 documentation + Standard library — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/stdlib/cdc.html b/docs/amaranth/latest/stdlib/cdc.html index f95904c4..beb1a0e2 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.dev83 documentation + Clock domain crossing — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/stdlib/coding.html b/docs/amaranth/latest/stdlib/coding.html index bb4d3410..8c8233fa 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.dev83 documentation + Code conversion — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/stdlib/crc.html b/docs/amaranth/latest/stdlib/crc.html index bef1fbaf..c28c21d6 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.dev83 documentation + Cyclic redundancy checks — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/stdlib/crc/catalog.html b/docs/amaranth/latest/stdlib/crc/catalog.html index 566614f8..e3cf42b0 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.dev83 documentation + Predefined CRC Algorithms — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/stdlib/data.html b/docs/amaranth/latest/stdlib/data.html index ecb25ef7..2930ca53 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.dev83 documentation + Data structures — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/stdlib/enum.html b/docs/amaranth/latest/stdlib/enum.html index d3ef5a78..e674123b 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.dev83 documentation + Enumerations — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/stdlib/fifo.html b/docs/amaranth/latest/stdlib/fifo.html index fa79a93c..8d8505d1 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.dev83 documentation + First-in first-out queues — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/stdlib/wiring.html b/docs/amaranth/latest/stdlib/wiring.html index 8d98bb10..a47fc176 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.dev83 documentation + Interfaces and connections — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64
    diff --git a/docs/amaranth/latest/tutorial.html b/docs/amaranth/latest/tutorial.html index bf4bdfd3..218aad9a 100644 --- a/docs/amaranth/latest/tutorial.html +++ b/docs/amaranth/latest/tutorial.html @@ -4,7 +4,7 @@ - Tutorial — Amaranth language & toolchain 0.4.1.dev83 documentation + Tutorial — Amaranth language & toolchain 0.4.1.dev84 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev83+g2d42d64 + 0.4.1.dev84+g4014f64