diff --git a/docs/amaranth/latest/.buildinfo b/docs/amaranth/latest/.buildinfo index b951cf52..9720e90d 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: 872fd82181381ceff32b86c0a89b074c +config: ada5a5168775d40bd41f713658382264 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/amaranth/latest/.doctrees/environment.pickle b/docs/amaranth/latest/.doctrees/environment.pickle index c0844500..af99b2a1 100644 Binary files a/docs/amaranth/latest/.doctrees/environment.pickle and b/docs/amaranth/latest/.doctrees/environment.pickle differ diff --git a/docs/amaranth/latest/.doctrees/lang.doctree b/docs/amaranth/latest/.doctrees/lang.doctree index 7e7d1190..2c811210 100644 Binary files a/docs/amaranth/latest/.doctrees/lang.doctree and b/docs/amaranth/latest/.doctrees/lang.doctree differ diff --git a/docs/amaranth/latest/.doctrees/platform.doctree b/docs/amaranth/latest/.doctrees/platform.doctree index 766082d9..222a3b15 100644 Binary files a/docs/amaranth/latest/.doctrees/platform.doctree and b/docs/amaranth/latest/.doctrees/platform.doctree differ diff --git a/docs/amaranth/latest/_sources/lang.rst.txt b/docs/amaranth/latest/_sources/lang.rst.txt index d2380508..21df60a8 100644 --- a/docs/amaranth/latest/_sources/lang.rst.txt +++ b/docs/amaranth/latest/_sources/lang.rst.txt @@ -1300,7 +1300,7 @@ If the name of the domain is not known upfront, another, less concise, syntax ca add_video_domain(2) -.. tip:: +.. note:: Whenever the created :class:`ClockDomain` object is immediately assigned using the :pc:`domain_name = ClockDomain(...)` or :pc:`m.domains.domain_name = ClockDomain(...)` syntax, the name of the domain may be omitted from the :pc:`ClockDomain()` invocation. In other cases, it must be provided as the first argument. @@ -1375,15 +1375,65 @@ The :class:`ClockSignal` and :class:`ResetSignal` values may also be assigned to Elaboration =========== -.. todo:: Write this section. +Amaranth designs are built from a hierarchy of smaller subdivisions, which are called *elaboratables*. The process of creating a data structure representing the behavior of a complete design by composing such subdivisions together is called *elaboration*. +An elaboratable is any Python object that inherits from the :class:`Elaboratable` base class and implements the ``elaborate`` method: -.. _lang-domainrenamer: +.. testcode:: -Renaming domains ----------------- + class Counter(Elaboratable): + def elaborate(self, platform): + m = Module() -.. todo:: Write this section about :class:`DomainRenamer` + ... + + return m + +The ``elaborate`` method must either return an instance of :class:`Module` to describe the behavior of the elaboratable, or delegate it by returning another elaboratable object. + +.. note:: + + Instances of :class:`Module` also implement the ``elaborate`` method, which returns a special object that represents a fragment of a netlist. Such an object cannot be constructed without using :class:`Module`. + +The :pc:`platform` argument received by the ``elaborate`` method can be :pc:`None`, an instance of :ref:`a built-in platform `, or a custom object. It is used for `dependency injection `_ and to contain the state of a design while it is being elaborated. + +.. important:: + + The ``elaborate`` method should not modify the ``self`` object it receives other than for debugging and experimentation. Elaborating the same design twice with two identical platform objects should produce two identical netlists. If the design needs to be modified after construction, this should happen before elaboration. + + It is not possible to ensure that a design which modifies itself during elaboration is correctly converted to a netlist because the relative order in which the ``elaborate`` methods are called within a single design is not guaranteed. + +The Amaranth standard library provides *components*: elaboratable objects that also include a description of their interface. Unless otherwise necessary, an elaboratable should inherit from :class:`amaranth.lib.wiring.Component` rather than plain :class:`Elaboratable`. See the :ref:`introduction to interfaces and components ` for details. + + +.. _lang-submodules: + +Submodules +---------- + +An elaboratable can be included within another elaboratable by adding it as a submodule: + +.. testcode:: + + m.submodules.counter = counter = Counter() + +If the name of a submodule is not known upfront, a different syntax should be used: + +.. testcode:: + + for n in range(3): + m.submodules[f"counter_{n}"] = Counter() + +A submodule can also be added without specifying a name: + +.. testcode:: + + counter = Counter() + m.submodules += counter + +.. tip:: + + If a name is not explicitly specified for a submodule, one will be generated and assigned automatically. Designs with many autogenerated names can be difficult to debug, so a name should usually be supplied. .. _lang-controlinserter: @@ -1394,10 +1444,18 @@ Modifying control flow .. todo:: Write this section about :class:`ResetInserter` and :class:`EnableInserter` +.. _lang-domainrenamer: + +Renaming domains +---------------- + +.. todo:: Write this section about :class:`DomainRenamer` + + .. _lang-memory: -Memory arrays -============= +Memories +======== .. todo:: Write this section. diff --git a/docs/amaranth/latest/_sources/platform.rst.txt b/docs/amaranth/latest/_sources/platform.rst.txt index c4cf17fa..8547cbac 100644 --- a/docs/amaranth/latest/_sources/platform.rst.txt +++ b/docs/amaranth/latest/_sources/platform.rst.txt @@ -1,3 +1,5 @@ +.. _platform: + Platform integration #################### diff --git a/docs/amaranth/latest/_static/documentation_options.js b/docs/amaranth/latest/_static/documentation_options.js index 14982ff7..981ce5f4 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.dev24', + VERSION: '0.4.1.dev25', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/amaranth/latest/changes.html b/docs/amaranth/latest/changes.html index 9bbf3a59..bebe63ac 100644 --- a/docs/amaranth/latest/changes.html +++ b/docs/amaranth/latest/changes.html @@ -4,7 +4,7 @@ - Changelog — Amaranth HDL toolchain 0.4.1.dev24 documentation + Changelog — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
- 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
diff --git a/docs/amaranth/latest/contrib.html b/docs/amaranth/latest/contrib.html index 01eaa546..b76a34f2 100644 --- a/docs/amaranth/latest/contrib.html +++ b/docs/amaranth/latest/contrib.html @@ -4,7 +4,7 @@ - Contributing — Amaranth HDL toolchain 0.4.1.dev24 documentation + Contributing — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@
- 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
diff --git a/docs/amaranth/latest/cover.html b/docs/amaranth/latest/cover.html index dea7d5f6..feab1b0d 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.dev24 documentation + Amaranth HDL documentation — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -38,7 +38,7 @@
- 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
diff --git a/docs/amaranth/latest/genindex.html b/docs/amaranth/latest/genindex.html index 9c35459f..2b156ac5 100644 --- a/docs/amaranth/latest/genindex.html +++ b/docs/amaranth/latest/genindex.html @@ -3,7 +3,7 @@ - Index — Amaranth HDL toolchain 0.4.1.dev24 documentation + Index — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -14,7 +14,7 @@ - + @@ -36,7 +36,7 @@
- 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
diff --git a/docs/amaranth/latest/index.html b/docs/amaranth/latest/index.html index 35822cde..d8db84d0 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.dev24 documentation + Language & toolchain — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
- 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
@@ -135,7 +135,7 @@

Language & toolchainSynchronous evaluation
  • Clock domains
  • Elaboration
  • -
  • Memory arrays
  • +
  • Memories
  • Instances
  • diff --git a/docs/amaranth/latest/install.html b/docs/amaranth/latest/install.html index c6e6256f..a6e57276 100644 --- a/docs/amaranth/latest/install.html +++ b/docs/amaranth/latest/install.html @@ -4,7 +4,7 @@ - Installation — Amaranth HDL toolchain 0.4.1.dev24 documentation + Installation — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/intro.html b/docs/amaranth/latest/intro.html index f133b91d..cdcd4caa 100644 --- a/docs/amaranth/latest/intro.html +++ b/docs/amaranth/latest/intro.html @@ -4,7 +4,7 @@ - Introduction — Amaranth HDL toolchain 0.4.1.dev24 documentation + Introduction — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/lang.html b/docs/amaranth/latest/lang.html index 96c248ec..d8eba644 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.dev24 documentation + Language guide — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    -
    -

    Tip

    +
    +

    Note

    Whenever the created ClockDomain object is immediately assigned using the domain_name = ClockDomain(...) or m.domains.domain_name = ClockDomain(...) syntax, the name of the domain may be omitted from the ClockDomain() invocation. In other cases, it must be provided as the first argument.

    A clock domain always has a clock signal, which can be accessed through the cd.clk attribute. By default, the active edge of the clock domain is positive; this means that the signals in the domain change when the clock signal transitions from 0 to 1. A clock domain can be configured to have a negative active edge so that signals in it change when the clock signal transitions from 1 to 0:

    @@ -1260,10 +1261,57 @@

    Signal shapes

    Elaboration

    +

    Amaranth designs are built from a hierarchy of smaller subdivisions, which are called elaboratables. The process of creating a data structure representing the behavior of a complete design by composing such subdivisions together is called elaboration.

    +

    An elaboratable is any Python object that inherits from the Elaboratable base class and implements the elaborate method:

    +
    class Counter(Elaboratable):
    +    def elaborate(self, platform):
    +        m = Module()
    +
    +        ...
    +
    +        return m
    +
    +
    +

    The elaborate method must either return an instance of Module to describe the behavior of the elaboratable, or delegate it by returning another elaboratable object.

    +
    +

    Note

    +

    Instances of Module also implement the elaborate method, which returns a special object that represents a fragment of a netlist. Such an object cannot be constructed without using Module.

    +
    +

    The platform argument received by the elaborate method can be None, an instance of a built-in platform, or a custom object. It is used for dependency injection and to contain the state of a design while it is being elaborated.

    +
    +

    Important

    +

    The elaborate method should not modify the self object it receives other than for debugging and experimentation. Elaborating the same design twice with two identical platform objects should produce two identical netlists. If the design needs to be modified after construction, this should happen before elaboration.

    +

    It is not possible to ensure that a design which modifies itself during elaboration is correctly converted to a netlist because the relative order in which the elaborate methods are called within a single design is not guaranteed.

    +
    +

    The Amaranth standard library provides components: elaboratable objects that also include a description of their interface. Unless otherwise necessary, an elaboratable should inherit from amaranth.lib.wiring.Component rather than plain Elaboratable. See the introduction to interfaces and components for details.

    +
    +

    Submodules

    +

    An elaboratable can be included within another elaboratable by adding it as a submodule:

    +
    m.submodules.counter = counter = Counter()
    +
    +
    +

    If the name of a submodule is not known upfront, a different syntax should be used:

    +
    for n in range(3):
    +    m.submodules[f"counter_{n}"] = Counter()
    +
    +
    +

    A submodule can also be added without specifying a name:

    +
    counter = Counter()
    +m.submodules += counter
    +
    +
    +
    +

    Tip

    +

    If a name is not explicitly specified for a submodule, one will be generated and assigned automatically. Designs with many autogenerated names can be difficult to debug, so a name should usually be supplied.

    +
    +
    +
    +

    Modifying control flow

    Todo

    -

    Write this section.

    +

    Write this section about ResetInserter and EnableInserter

    +

    Renaming domains

    @@ -1271,24 +1319,17 @@

    Signal shapesDomainRenamer

    -
    -

    Modifying control flow

    -
    -

    Todo

    -

    Write this section about ResetInserter and EnableInserter

    -
    - -
    -

    Memory arrays

    -
    +
    +

    Memories

    +

    Todo

    Write this section.

    Instances

    -
    +

    Todo

    Write this section.

    diff --git a/docs/amaranth/latest/lang.rst b/docs/amaranth/latest/lang.rst index d2380508..21df60a8 100644 --- a/docs/amaranth/latest/lang.rst +++ b/docs/amaranth/latest/lang.rst @@ -1300,7 +1300,7 @@ If the name of the domain is not known upfront, another, less concise, syntax ca add_video_domain(2) -.. tip:: +.. note:: Whenever the created :class:`ClockDomain` object is immediately assigned using the :pc:`domain_name = ClockDomain(...)` or :pc:`m.domains.domain_name = ClockDomain(...)` syntax, the name of the domain may be omitted from the :pc:`ClockDomain()` invocation. In other cases, it must be provided as the first argument. @@ -1375,15 +1375,65 @@ The :class:`ClockSignal` and :class:`ResetSignal` values may also be assigned to Elaboration =========== -.. todo:: Write this section. +Amaranth designs are built from a hierarchy of smaller subdivisions, which are called *elaboratables*. The process of creating a data structure representing the behavior of a complete design by composing such subdivisions together is called *elaboration*. +An elaboratable is any Python object that inherits from the :class:`Elaboratable` base class and implements the ``elaborate`` method: -.. _lang-domainrenamer: +.. testcode:: -Renaming domains ----------------- + class Counter(Elaboratable): + def elaborate(self, platform): + m = Module() -.. todo:: Write this section about :class:`DomainRenamer` + ... + + return m + +The ``elaborate`` method must either return an instance of :class:`Module` to describe the behavior of the elaboratable, or delegate it by returning another elaboratable object. + +.. note:: + + Instances of :class:`Module` also implement the ``elaborate`` method, which returns a special object that represents a fragment of a netlist. Such an object cannot be constructed without using :class:`Module`. + +The :pc:`platform` argument received by the ``elaborate`` method can be :pc:`None`, an instance of :ref:`a built-in platform `, or a custom object. It is used for `dependency injection `_ and to contain the state of a design while it is being elaborated. + +.. important:: + + The ``elaborate`` method should not modify the ``self`` object it receives other than for debugging and experimentation. Elaborating the same design twice with two identical platform objects should produce two identical netlists. If the design needs to be modified after construction, this should happen before elaboration. + + It is not possible to ensure that a design which modifies itself during elaboration is correctly converted to a netlist because the relative order in which the ``elaborate`` methods are called within a single design is not guaranteed. + +The Amaranth standard library provides *components*: elaboratable objects that also include a description of their interface. Unless otherwise necessary, an elaboratable should inherit from :class:`amaranth.lib.wiring.Component` rather than plain :class:`Elaboratable`. See the :ref:`introduction to interfaces and components ` for details. + + +.. _lang-submodules: + +Submodules +---------- + +An elaboratable can be included within another elaboratable by adding it as a submodule: + +.. testcode:: + + m.submodules.counter = counter = Counter() + +If the name of a submodule is not known upfront, a different syntax should be used: + +.. testcode:: + + for n in range(3): + m.submodules[f"counter_{n}"] = Counter() + +A submodule can also be added without specifying a name: + +.. testcode:: + + counter = Counter() + m.submodules += counter + +.. tip:: + + If a name is not explicitly specified for a submodule, one will be generated and assigned automatically. Designs with many autogenerated names can be difficult to debug, so a name should usually be supplied. .. _lang-controlinserter: @@ -1394,10 +1444,18 @@ Modifying control flow .. todo:: Write this section about :class:`ResetInserter` and :class:`EnableInserter` +.. _lang-domainrenamer: + +Renaming domains +---------------- + +.. todo:: Write this section about :class:`DomainRenamer` + + .. _lang-memory: -Memory arrays -============= +Memories +======== .. todo:: Write this section. diff --git a/docs/amaranth/latest/objects.inv b/docs/amaranth/latest/objects.inv index ce6dfdc4..9d0434f3 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 0cfc69aa..97affe40 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.dev24 documentation + Platform integration — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    @@ -100,7 +100,7 @@
    -

    Platform integration

    +

    Platform integration

    Todo

    Write this section.

    diff --git a/docs/amaranth/latest/platform.rst b/docs/amaranth/latest/platform.rst index c4cf17fa..8547cbac 100644 --- a/docs/amaranth/latest/platform.rst +++ b/docs/amaranth/latest/platform.rst @@ -1,3 +1,5 @@ +.. _platform: + Platform integration #################### diff --git a/docs/amaranth/latest/platform/gowin.html b/docs/amaranth/latest/platform/gowin.html index 3ae5a63e..d0840ab9 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.dev24 documentation + Gowin — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/platform/intel.html b/docs/amaranth/latest/platform/intel.html index 7e3ceea5..73afb6fc 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.dev24 documentation + Intel — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/platform/lattice-ecp5.html b/docs/amaranth/latest/platform/lattice-ecp5.html index 69b65ae7..318bb6d4 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.dev24 documentation + Lattice ECP5 — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/platform/lattice-ice40.html b/docs/amaranth/latest/platform/lattice-ice40.html index 9e6d6da5..35b67422 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.dev24 documentation + Lattice iCE40 — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/platform/lattice-machxo-2-3l.html b/docs/amaranth/latest/platform/lattice-machxo-2-3l.html index f7c3daf0..e15639a1 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.dev24 documentation + Lattice MachXO2 and MachXO3L — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/platform/quicklogic.html b/docs/amaranth/latest/platform/quicklogic.html index fcb35e28..518979b5 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.dev24 documentation + Quicklogic — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/platform/xilinx.html b/docs/amaranth/latest/platform/xilinx.html index d6cd3c6d..edb49a06 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.dev24 documentation + Xilinx — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/py-modindex.html b/docs/amaranth/latest/py-modindex.html index bd932a7b..d5778ed9 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.dev24 documentation + Python Module Index — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -14,7 +14,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/search.html b/docs/amaranth/latest/search.html index 69df7370..281f6950 100644 --- a/docs/amaranth/latest/search.html +++ b/docs/amaranth/latest/search.html @@ -3,7 +3,7 @@ - Search — Amaranth HDL toolchain 0.4.1.dev24 documentation + Search — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/searchindex.js b/docs/amaranth/latest/searchindex.js index dc445235..593eb24a 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], "deprec": 0, "argument": [0, 6, 22, 24], "run_script": 0, "buildplan": 0, "execute_loc": 0, "ad": [0, 4, 5, 6, 15, 21, 24], "class": [0, 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 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], "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, "fals": [0, 6, 17, 19, 20, 23, 24], "20": 0, "syncfifo": [0, 16, 23], "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], "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, 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], "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], "us": [0, 1, 4, 5, 6, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25], "remain": [0, 23, 24], "had": [0, 21, 24], "sinc": [0, 4, 6, 15, 19, 21, 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], "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], "true": [0, 6, 15, 17, 19, 20, 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], "util": [0, 16, 19], "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, "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, 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, "17": [1, 20, 22], "00": 1, "utc": 1, "irc": 1, "channel": [1, 21], "lang": [1, 4], "libera": 1, "chat": 1, "matrix": 1, "org": 1, "bridg": 1, "appear": [1, 6, 21, 23, 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], "arrai": [3, 21, 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, 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, "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, 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, 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, "everyth": [5, 16, 21, 22, 24], "direct": [5, 6, 21, 24], "connector": 5, "pinout": [5, 15], "built": [5, 15, 21], "probe": 5, "invoc": [5, 6, 15], "show": 5, "whether": [5, 6, 15, 19, 24], "programm": 5, "correctli": [5, 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], "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], "submodul": [6, 19, 20, 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, "domainrenam": 6, "enableinsert": 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, "elaborat": [15, 24], "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, "guarante": 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], "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, "receiv": [19, 24], "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, "plain": [21, 22], "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, "twice": 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, "compos": 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, "languag": [0, 3, 5, 6], "chang": [0, 1], "standard": [0, 5, 16], "librari": [0, 5, 16], "platform": [0, 7], "integr": [0, 5, 7], "4": 0, "migrat": 0, "from": [0, 6], "3": 0, "implement": [0, 15], "rfc": 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, "renam": 6, "modifi": 6, "memori": 6, "arrai": 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"]], "Language changes": [[0, "language-changes"], [0, "id1"], [0, "id4"]], "Standard library changes": [[0, "standard-library-changes"], [0, "id2"], [0, "id5"]], "Platform integration changes": [[0, "platform-integration-changes"], [0, "id3"], [0, "id7"]], "Version 0.4": [[0, "version-0-4"]], "Migrating from version 0.3": [[0, "migrating-from-version-0-3"]], "Implemented RFCs": [[0, "implemented-rfcs"]], "Toolchain changes": [[0, "toolchain-changes"], [0, "id6"]], "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"], [6, "id18"], [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"]], "Renaming domains": [[6, "renaming-domains"]], "Modifying control flow": [[6, "modifying-control-flow"]], "Memory arrays": [[6, "memory-arrays"]], "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], "deprec": 0, "argument": [0, 6, 22, 24], "run_script": 0, "buildplan": 0, "execute_loc": 0, "ad": [0, 4, 5, 6, 15, 21, 24], "class": [0, 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 23, 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], "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, "fals": [0, 6, 17, 19, 20, 23, 24], "20": 0, "syncfifo": [0, 16, 23], "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], "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], "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], "us": [0, 1, 4, 5, 6, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25], "remain": [0, 23, 24], "had": [0, 21, 24], "sinc": [0, 4, 6, 15, 19, 21, 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], "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], "true": [0, 6, 15, 17, 19, 20, 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], "util": [0, 16, 19], "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, "17": [1, 20, 22], "00": 1, "utc": 1, "irc": 1, "channel": [1, 21], "lang": [1, 4], "libera": 1, "chat": 1, "matrix": 1, "org": 1, "bridg": 1, "appear": [1, 6, 21, 23, 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, "languag": [0, 3, 5, 6], "chang": [0, 1], "standard": [0, 5, 16], "librari": [0, 5, 16], "platform": [0, 7], "integr": [0, 5, 7], "4": 0, "migrat": 0, "from": [0, 6], "3": 0, "implement": [0, 15], "rfc": 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"]], "Language changes": [[0, "language-changes"], [0, "id1"], [0, "id4"]], "Standard library changes": [[0, "standard-library-changes"], [0, "id2"], [0, "id5"]], "Platform integration changes": [[0, "platform-integration-changes"], [0, "id3"], [0, "id7"]], "Version 0.4": [[0, "version-0-4"]], "Migrating from version 0.3": [[0, "migrating-from-version-0-3"]], "Implemented RFCs": [[0, "implemented-rfcs"]], "Toolchain changes": [[0, "toolchain-changes"], [0, "id6"]], "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 4c7efc6b..1d0e9e4e 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.dev24 documentation + Getting started — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/stdlib.html b/docs/amaranth/latest/stdlib.html index f1aebed6..359de06f 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.dev24 documentation + Standard library — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/stdlib/cdc.html b/docs/amaranth/latest/stdlib/cdc.html index b50b4585..3d77ff54 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.dev24 documentation + Clock domain crossing — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/stdlib/coding.html b/docs/amaranth/latest/stdlib/coding.html index e58a3e89..2af1fd8c 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.dev24 documentation + Code conversion — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/stdlib/crc.html b/docs/amaranth/latest/stdlib/crc.html index 34b1c703..ee9558bc 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.dev24 documentation + Cyclic redundancy checks — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/stdlib/crc/catalog.html b/docs/amaranth/latest/stdlib/crc/catalog.html index d907fe18..5b1c9316 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.dev24 documentation + Predefined CRC Algorithms — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/stdlib/data.html b/docs/amaranth/latest/stdlib/data.html index b0cf0a9c..3ba59b48 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.dev24 documentation + Data structures — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/stdlib/enum.html b/docs/amaranth/latest/stdlib/enum.html index 88479ea2..79751903 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.dev24 documentation + Enumerations — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/stdlib/fifo.html b/docs/amaranth/latest/stdlib/fifo.html index 65c129a0..41091773 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.dev24 documentation + First-in first-out queues — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/stdlib/wiring.html b/docs/amaranth/latest/stdlib/wiring.html index 3e6c50d4..9abe64eb 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.dev24 documentation + Interfaces and connections — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580
    diff --git a/docs/amaranth/latest/tutorial.html b/docs/amaranth/latest/tutorial.html index 07f36dac..b004e170 100644 --- a/docs/amaranth/latest/tutorial.html +++ b/docs/amaranth/latest/tutorial.html @@ -4,7 +4,7 @@ - Tutorial — Amaranth HDL toolchain 0.4.1.dev24 documentation + Tutorial — Amaranth HDL toolchain 0.4.1.dev25 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@
    - 0.4.1.dev24+g4e1b245 + 0.4.1.dev25+gd851580