This commit includes additional non-documentation changes, related to
issues found while documenting it:
- `Simulator.run_until()` no longer accepts a `run_passive=` argument.
Passive no longer exist and in any case defaulting to `False` does not
make a lot of sense from an API perspective.
- `add_clock()`'s `phase=` argument, when specified, no longer has
`period/2` added to it. This wasn't the documented behavior in first
place and it makes no sense to do that.
- `add_clock()` raises a `NameError` if a clock domain does not exist,
instead of `ValueError`.
- `add_clock()` raises a `DriverConflict` if a clock domain is already
being driven by a clock, instead of `ValueError`.
- GTKWave is no longer a part of the installation instructions, and both
Surfer and GTKWave are recommended (in this order).
This also changes `decoder` a bit: when an enum is used as a decoder,
it is converted to a `Format.Enum` instead. The original enum is still
stored on the `decoder` attribute, so that it can be propagated
on `Signal.like`.
This check was originally added out of abundance of caution, but since
then it was observed that reset-less-ness is purely an implementation
detail (see #1220), and furthermore it interferes with adaptation of
`FIFOInterface`` signals (where `[rw]_data` are reset-less) for RFC 61.
Reexports of `amaranth.utils` functions are removed from
`amaranth._utils` to avoid a circular import issue (for `deprecated`).
Since this is a private module, this should not be a problem.
The build scripts generated by Amaranth are designed to be invoked by
directly running them with any shell (some of them will re-invoke
themselves with `bash` specifically, when it's a toolchain requirement),
and they're not currently marked executable, so there's no shebang.
Add a shebang line to improve compatibility with cases where they are
treated as executables in their own right.