amaranth
amaranth copied to clipboard
A modern hardware definition language and toolchain based on Python
Consider the following scenario: 1. A module defines a new clock domain. 2. The module defines an `AsyncFIFO` to transfer data from the `sync` domain into the new clock domain....
Repro: ```python from amaranth import * from amaranth.lib import io from amaranth.sim import Simulator port = io.SimulationPort("io", 2) m = Module() m.submodules.p0 = p0 = io.FFBuffer("io", port[0]) m.submodules.p1 = p1...
Using the functional API to create a `enum` does not allow for specifing a `shape`. RFC 3 does not mention the functional API at all, so I guess this is...
Take the following example: ```python #!/usr/bin/env python3 from amaranth import * from amaranth.lib.enum import Enum from amaranth.lib import data from amaranth.back.rtlil import convert m = Module() class test(Enum): a =...
Right now those are called `U$nn` where `nn` is some number, which is [really not helpful](https://apfelaudio.github.io/tiliqua/dsp.html#tiliqua.dsp.named_submodules). Now that `Fragment.origins` (experimentally) exists, we should be able to give a sensible name...
- RFC PR: https://github.com/amaranth-lang/rfcs/pull/73 - Implementation PR: N/A - Documentation PR: N/A - Removal of deprecation PR: N/A
The first argument to `connect()` is the module that the connections should be added to, but the documentation doesn't state this clearly. It becomes clear once you understand it (the...
When awaiting a TriggerCombination that waits for both a delay() to expire and a signal to change, if the delay expires at the same time as when the signal changes,...
Right now it is only documented in my head, which is suboptimal.
Version: [9167910](https://github.com/amaranth-lang/amaranth/commit/916791022cb9cf96a552756d0e00efe2a4b16aba) If I remove `1 MHz` in the example from the documentation, ``` sim.add_clock(Period(MHz=1)) ``` (from https://github.com/amaranth-lang/amaranth-lang.github.io/blob/0856ab9702c05600e159de2fc9c4ccbf2dcf3cf6/docs/amaranth/latest/_code/up_counter.py#L71) then the VCD ends like this and does not contain any value...