diff --git a/docs/amaranth/latest/.buildinfo b/docs/amaranth/latest/.buildinfo index 160d76c0..ecab5751 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: 13c60ba8185afa9e9539495cd51be4c5 +config: 5bd1952f2f588176aa803f7256bb3202 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/amaranth/latest/.doctrees/changes.doctree b/docs/amaranth/latest/.doctrees/changes.doctree index d0bd3ac2..be42c853 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 631cec28..22111628 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 dac65f2e..8735cee1 100644 --- a/docs/amaranth/latest/_sources/changes.rst.txt +++ b/docs/amaranth/latest/_sources/changes.rst.txt @@ -15,6 +15,8 @@ Migrating from version 0.4 Apply the following changes to code written against Amaranth 0.4 to migrate it to version 0.5: +* Replace uses of ``m.Case()`` with no patterns with ``m.Default()`` +* Replace uses of ``Value.matches()`` with no patterns with ``Const(1)`` * Update uses of :func:`amaranth.utils.log2_int(need_pow2=False)` to :func:`amaranth.utils.ceil_log2` * Update uses of :func:`amaranth.utils.log2_int(need_pow2=True)` to :func:`amaranth.utils.exact_log2` @@ -23,8 +25,10 @@ Implemented RFCs ---------------- .. _RFC 17: https://amaranth-lang.org/rfcs/0017-remove-log2-int.html +.. _RFC 39: https://amaranth-lang.org/rfcs/0039-empty-case.html * `RFC 17`_: Remove ``log2_int`` +* `RFC 39`_: Change semantics of no-argument ``m.Case()`` Language changes @@ -34,6 +38,8 @@ Language changes * Added: :class:`ast.Slice` objects have been made const-castable. * Added: :func:`amaranth.utils.ceil_log2`, :func:`amaranth.utils.exact_log2`. (`RFC 17`_) +* Changed: ``m.Case()`` with no patterns is never active instead of always active. (`RFC 39`_) +* Changed: ``Value.matches()`` with no patterns is ``Const(0)`` instead of ``Const(1)``. (`RFC 39`_) * Deprecated: :func:`amaranth.utils.log2_int`. (`RFC 17`_) * Removed: (deprecated in 0.4) :meth:`Const.normalize`. (`RFC 5`_) * Removed: (deprecated in 0.4) :class:`ast.Sample`, :class:`ast.Past`, :class:`ast.Stable`, :class:`ast.Rose`, :class:`ast.Fell`. diff --git a/docs/amaranth/latest/_static/documentation_options.js b/docs/amaranth/latest/_static/documentation_options.js index 03edcbc4..6abb7df3 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.dev30', + VERSION: '0.4.1.dev31', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/amaranth/latest/changes.html b/docs/amaranth/latest/changes.html index 7ce29a95..c68a3314 100644 --- a/docs/amaranth/latest/changes.html +++ b/docs/amaranth/latest/changes.html @@ -4,7 +4,7 @@ - Changelog — Amaranth HDL toolchain 0.4.1.dev30 documentation + Changelog — Amaranth HDL toolchain 0.4.1.dev31 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
- 0.4.1.dev30+geb1c558 + 0.4.1.dev31+g86d14f5
@@ -128,6 +128,8 @@

Version 0.5 (unreleased)Migrating from version 0.4

Apply the following changes to code written against Amaranth 0.4 to migrate it to version 0.5:

@@ -136,6 +138,7 @@

Migrating from version 0.4

@@ -143,6 +146,8 @@

Language changes
  • Added: ast.Slice objects have been made const-castable.

  • Added: amaranth.utils.ceil_log2(), amaranth.utils.exact_log2(). (RFC 17)

  • +
  • Changed: m.Case() with no patterns is never active instead of always active. (RFC 39)

  • +
  • Changed: Value.matches() with no patterns is Const(0) instead of Const(1). (RFC 39)

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

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

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

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