Skip to content

Commit 9eede53

Browse files
Deploying to main from @ amaranth-lang/amaranth@f3bcdf4 🚀
1 parent 911a528 commit 9eede53

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1566
-144
lines changed

docs/amaranth/latest/.buildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: 23793f9efa7ce94ace63a2af8eb257a8
3+
config: abc98a8b53e790120ab6b52879da0721
44
tags: 645f666f9bcd5a90fca523b33c5a78b7
2.86 KB
Binary file not shown.
Binary file not shown.
433 Bytes
Binary file not shown.
Binary file not shown.
56.3 KB
Loading

docs/amaranth/latest/_sources/changes.rst.txt

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,23 @@ Migrating from version 0.4
2929

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

32+
* Update uses of :py:`reset=` keyword argument to :py:`init=`.
33+
* Ensure all elaboratables are subclasses of :class:`Elaboratable`.
3234
* Replace uses of :py:`m.Case()` with no patterns with :py:`m.Default()`.
3335
* Replace uses of :py:`Value.matches()` with no patterns with :py:`Const(1)`.
34-
* Update uses of :py:`amaranth.utils.log2_int(need_pow2=False)` to :func:`amaranth.utils.ceil_log2`.
35-
* Update uses of :py:`amaranth.utils.log2_int(need_pow2=True)` to :func:`amaranth.utils.exact_log2`.
36-
* Update uses of :py:`reset=` keyword argument to :py:`init=`.
37-
* Convert uses of :py:`Simulator.add_sync_process` used as testbenches to :meth:`Simulator.add_testbench <amaranth.sim.Simulator.add_testbench>`.
38-
* Convert other uses of :py:`Simulator.add_sync_process` to :meth:`Simulator.add_process <amaranth.sim.Simulator.add_process>`.
39-
* Convert simulator processes and testbenches to use the new async API.
40-
* Replace uses of :py:`amaranth.hdl.Memory` with :class:`amaranth.lib.memory.Memory`.
36+
* Ensure clock domains aren't used outside the module that defines them, or its submodules; move clock domain definitions upwards in the hierarchy as necessary
4137
* Replace imports of :py:`amaranth.asserts.Assert`, :py:`Assume`, and :py:`Cover` with imports from :py:`amaranth.hdl`.
4238
* Remove uses of :py:`name=` keyword argument of :py:`Assert`, :py:`Assume`, and :py:`Cover`; a message can be used instead.
43-
* Ensure all elaboratables are subclasses of :class:`Elaboratable`.
44-
* Ensure clock domains aren't used outside the module that defines them, or its submodules; move clock domain definitions upwards in the hierarchy as necessary
45-
* Remove uses of :py:`amaranth.lib.coding.*` by inlining or copying the implementation of the modules.
39+
* Replace uses of :py:`amaranth.hdl.Memory` with :class:`amaranth.lib.memory.Memory`.
4640
* Update uses of :py:`platform.request` to pass :py:`dir="-"` and use :mod:`amaranth.lib.io` buffers.
41+
* Remove uses of :py:`amaranth.lib.coding.*` by inlining or copying the implementation of the modules.
42+
* Convert uses of :py:`Simulator.add_sync_process` used as testbenches to :meth:`Simulator.add_testbench <amaranth.sim.Simulator.add_testbench>`.
43+
* Convert other uses of :py:`Simulator.add_sync_process` to :meth:`Simulator.add_process <amaranth.sim.Simulator.add_process>`.
44+
* Convert simulator processes and testbenches to use the new async API.
4745
* Update uses of :meth:`Simulator.add_clock <amaranth.sim.Simulator.add_clock>` with explicit :py:`phase` to take into account simulator no longer adding implicit :py:`period / 2`. (Previously, :meth:`Simulator.add_clock <amaranth.sim.Simulator.add_clock>` was documented to first toggle the clock at the time :py:`phase`, but actually first toggled the clock at :py:`period / 2 + phase`.)
4846
* Update uses of :meth:`Simulator.run_until <amaranth.sim.Simulator.run_until>` to remove the :py:`run_passive=True` argument. If the code uses :py:`run_passive=False`, ensure it still works with the new behavior.
47+
* Update uses of :py:`amaranth.utils.log2_int(need_pow2=False)` to :func:`amaranth.utils.ceil_log2`.
48+
* Update uses of :py:`amaranth.utils.log2_int(need_pow2=True)` to :func:`amaranth.utils.exact_log2`.
4949

5050

5151
Implemented RFCs
@@ -55,6 +55,7 @@ Implemented RFCs
5555
.. _RFC 27: https://amaranth-lang.org/rfcs/0027-simulator-testbenches.html
5656
.. _RFC 30: https://amaranth-lang.org/rfcs/0030-component-metadata.html
5757
.. _RFC 36: https://amaranth-lang.org/rfcs/0036-async-testbench-functions.html
58+
.. _RFC 42: https://amaranth-lang.org/rfcs/0042-const-from-shape-castable.html
5859
.. _RFC 39: https://amaranth-lang.org/rfcs/0039-empty-case.html
5960
.. _RFC 43: https://amaranth-lang.org/rfcs/0043-rename-reset-to-init.html
6061
.. _RFC 45: https://amaranth-lang.org/rfcs/0045-lib-memory.html
@@ -65,6 +66,7 @@ Implemented RFCs
6566
.. _RFC 55: https://amaranth-lang.org/rfcs/0055-lib-io.html
6667
.. _RFC 58: https://amaranth-lang.org/rfcs/0058-valuecastable-format.html
6768
.. _RFC 59: https://amaranth-lang.org/rfcs/0059-no-domain-upwards-propagation.html
69+
.. _RFC 61: https://amaranth-lang.org/rfcs/0061-minimal-streams.html
6870
.. _RFC 62: https://amaranth-lang.org/rfcs/0062-memory-data.html
6971
.. _RFC 63: https://amaranth-lang.org/rfcs/0063-remove-lib-coding.html
7072
.. _RFC 65: https://amaranth-lang.org/rfcs/0065-format-struct-enum.html
@@ -74,6 +76,7 @@ Implemented RFCs
7476
* `RFC 30`_: Component metadata
7577
* `RFC 36`_: Async testbench functions
7678
* `RFC 39`_: Change semantics of no-argument ``m.Case()``
79+
* `RFC 42`_: ``Const`` from shape-castable
7780
* `RFC 43`_: Rename ``reset=`` to ``init=``
7881
* `RFC 45`_: Move ``hdl.Memory`` to ``lib.Memory``
7982
* `RFC 46`_: Change ``Shape.cast(range(1))`` to ``unsigned(0)``
@@ -83,6 +86,7 @@ Implemented RFCs
8386
* `RFC 55`_: New ``lib.io`` components
8487
* `RFC 58`_: Core support for ``ValueCastable`` formatting
8588
* `RFC 59`_: Get rid of upwards propagation of clock domains
89+
* `RFC 61`_: Minimal streams
8690
* `RFC 62`_: The ``MemoryData`` class
8791
* `RFC 63`_: Remove ``amaranth.lib.coding``
8892
* `RFC 65`_: Special formatting for structures and enums
@@ -103,6 +107,7 @@ Language changes
103107
* Changed: :py:`Value.matches()` with no patterns is :py:`Const(0)` instead of :py:`Const(1)`. (`RFC 39`_)
104108
* Changed: :py:`Signal(range(stop), init=stop)` warning has been changed into a hard error and made to trigger on any out-of range value.
105109
* Changed: :py:`Signal(range(0))` is now valid without a warning.
110+
* Changed: :py:`Const(value, shape)` now accepts shape-castable objects as :py:`shape`. (`RFC 42`_)
106111
* Changed: :py:`Shape.cast(range(1))` is now :py:`unsigned(0)`. (`RFC 46`_)
107112
* Changed: the :py:`reset=` argument of :class:`Signal`, :meth:`Signal.like`, :class:`amaranth.lib.wiring.Member`, :class:`amaranth.lib.cdc.FFSynchronizer`, and :py:`m.FSM()` has been renamed to :py:`init=`. (`RFC 43`_)
108113
* Changed: :class:`Shape` has been made immutable and hashable.
@@ -130,6 +135,7 @@ Standard library changes
130135
* Added: :class:`amaranth.lib.io.SingleEndedPort`, :class:`amaranth.lib.io.DifferentialPort`. (`RFC 55`_)
131136
* Added: :class:`amaranth.lib.io.Buffer`, :class:`amaranth.lib.io.FFBuffer`, :class:`amaranth.lib.io.DDRBuffer`. (`RFC 55`_)
132137
* Added: :mod:`amaranth.lib.meta`, :class:`amaranth.lib.wiring.ComponentMetadata`. (`RFC 30`_)
138+
* Added: :mod:`amaranth.lib.stream`. (`RFC 61`_)
133139
* Deprecated: :mod:`amaranth.lib.coding`. (`RFC 63`_)
134140
* Removed: (deprecated in 0.4) :mod:`amaranth.lib.scheduler`. (`RFC 19`_)
135141
* Removed: (deprecated in 0.4) :class:`amaranth.lib.fifo.FIFOInterface` with :py:`fwft=False`. (`RFC 20`_)

docs/amaranth/latest/_sources/stdlib.rst.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ Standard library
33

44
The :mod:`amaranth.lib` module, also known as the standard library, provides modules that falls into one of the three categories:
55

6-
1. Modules that will used by essentially all idiomatic Amaranth code, or which are necessary for interoperability. This includes :mod:`amaranth.lib.enum` (enumerations), :mod:`amaranth.lib.data` (data structures), :mod:`amaranth.lib.wiring` (interfaces and components), and :mod:`amaranth.lib.meta` (interface metadata).
7-
2. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes :mod:`amaranth.lib.cdc`, :mod:`amaranth.lib.memory`.
6+
1. Modules that will used by essentially all idiomatic Amaranth code, or which are necessary for interoperability. This includes :mod:`amaranth.lib.enum` (enumerations), :mod:`amaranth.lib.data` (data structures), :mod:`amaranth.lib.wiring` (interfaces and components), :mod:`amaranth.lib.meta` (interface metadata), and :mod:`amaranth.lib.stream` (data streams).
7+
2. Modules that abstract common functionality whose implementation differs between hardware platforms. This includes :mod:`amaranth.lib.memory` and :mod:`amaranth.lib.cdc`.
88
3. Modules that have essentially one correct implementation and are of broad utility in digital designs. This includes :mod:`amaranth.lib.coding`, :mod:`amaranth.lib.fifo`, and :mod:`amaranth.lib.crc`.
99

1010
As part of the Amaranth backwards compatibility guarantee, any behaviors described in these documents will not change from a version to another without at least one version including a warning about the impending change. Any nontrivial change to these behaviors must also go through the public review as a part of the `Amaranth Request for Comments process <https://amaranth-lang.org/rfcs/>`_.
@@ -18,6 +18,7 @@ The Amaranth standard library is separate from the Amaranth language: everything
1818
stdlib/data
1919
stdlib/wiring
2020
stdlib/meta
21+
stdlib/stream
2122
stdlib/memory
2223
stdlib/io
2324
stdlib/cdc

0 commit comments

Comments
 (0)