Commit graph

1637 commits

Author SHA1 Message Date
Catherine d557afdcd9 docs: avoid excessive font smallness in the sidebar. 2024-04-10 01:30:10 +00:00
Catherine 3103841eee docs/stdlib/data: use :py: role. NFC 2024-04-10 01:30:10 +00:00
Catherine 1a962cc405 docs: remove all generated WaveDrom diagrams. 2024-04-10 01:30:10 +00:00
Wanda 4f6b0f23c2 vendor.{_gowin,_lattice_*}: fix DDR buffer naming. 2024-04-10 00:15:42 +00:00
Wanda 545aee7733 vendor._lattice_ecp5: fix input domain in FFBuffer. 2024-04-09 23:42:24 +00:00
Wanda 16e80a7dcf vendor._lattice_machxo_2_3l: implement lib.io buffer primitives. 2024-04-09 22:41:23 +00:00
Sage Walker 514ff0bcbc build.run: fix execute_local_docker() not exiting docker container on SIGINT 2024-04-09 22:07:36 +00:00
Wanda cd083aac14 vendor._gowin: implement lib.io buffer primitives. 2024-04-09 19:46:19 +00:00
Catherine d28d15761d vendor: LatticeICE40Platform→SiliconBluePlatform.
Devices originally designed by SiliconBlue have one set of primitives,
and devices originally designed by AT&T, Alcatel-Lucent, or Lattice
have a different set of primitives. This is the first step in merging
the non-SiliconBlue Lattice platforms into one.
2024-04-09 19:31:51 +00:00
Wanda 0597ac08ff vendor._lattice_ecp5: implement lib.io buffer primitives. 2024-04-09 19:22:00 +00:00
Wanda 1b9290188b vendor._altera: implement lib.io buffer primitives. 2024-04-09 18:24:36 +00:00
Catherine 7dd93bea57 Document RFC 62.
This includes a few minor code changes:
- Removing redundant `lib.memory.Memory.Init = hdl.MemoryData.Init`
  re-export;
- Renaming `FrozenError` to `FrozenMemory` and moving it to `.hdl`;
- Marking `ReadPort` and `WritePort` as `@final`.
2024-04-09 15:52:34 +00:00
Wanda 38ad35757b build.res: give a more specific error for add_clock_constraint(ClockSignal).
Fixes #542.
2024-04-07 09:54:47 +00:00
Catherine 6fb5f3f120 docs/memory: use wavedrom directive for diagrams. 2024-04-07 08:03:44 +00:00
Wanda 7936b87667 hdl._ir: add caches for Matches and PriorityMatch cells. 2024-04-06 10:25:42 +00:00
Catherine df589a54e0 _toolchain.yosys: fix amaranth-yosys version extractor. 2024-04-06 08:01:49 +00:00
Wanda 6857daff54 vendor._lattice_ice40: implement lib.io buffer primitives. 2024-04-05 04:07:29 +00:00
Wanda 4e3550db43 build.plat: use lib.io.*Buffer in default platform. 2024-04-04 23:57:48 +00:00
Wanda 9bd536bbf9 hdl._ir: fix SwitchValue LHS lowering. 2024-04-04 23:13:00 +00:00
Wanda 572d546e07 back.rtlil: fix use of deprecated Signal.width. 2024-04-04 22:35:42 +00:00
Catherine d94c97981a back.rtlil: implement remaining format specifiers.
This requires a Yosys version from git. The requirement should be bumped
to a proper release before Amaranth 0.5.
2024-04-04 03:03:09 +00:00
Wanda d3c5b958d3 back.rtlil: Opportunistically trim zero and sign extension on operands.
Fixes #1148.
2024-04-04 01:55:35 +00:00
Wanda 2d59242bf7 back.rtlil: refactor to use intermediate structures.
Fixes #1100.
2024-04-04 00:58:39 +00:00
Wanda 81c35a5922 hdl._ir: remove Fragment.drivers. 2024-04-04 00:55:06 +00:00
Wanda 262e24b564 hdl._ir: Remove uses of _[lr]hs_signals and _ioports. 2024-04-03 22:01:01 +00:00
Wanda 0e6d802de4 Implement RFC 58: Core support for ValueCastable formatting. 2024-04-03 19:59:19 +00:00
Wanda f21d3d0c6a hdl._ir: add all_undef_to_ff mode. 2024-04-03 18:47:45 +00:00
Wanda 767d69c703 hdl._mem: implement MemoryData._Row from RFC 62. 2024-04-03 17:15:02 +00:00
Wanda 93ef89626e docs: add links to more docs versions. 2024-04-03 16:15:25 +00:00
Wanda f71bee499d sim: evaluate simulator commands in-place instead of compiling them. 2024-04-03 14:45:19 +00:00
Catherine 967dabc2fe docs/{guide,reference}: clarify semantics of a.any() vs a.bool(). 2024-04-03 13:29:19 +00:00
Catherine 3c6f46717b lib.wiring: allow reset-less signals in interfaces.
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.
2024-04-03 12:01:48 +00:00
Wanda 606ebcd7a9 hdl._ast: Implement Mux in terms of SwitchValue.
Fixes #1075.
2024-04-03 11:00:58 +00:00
Wanda 466536efcf hdl._ir: raise an error when an elaboratable is duplicated in hierarchy.
Fixes #1194.
2024-04-03 10:11:07 +00:00
Wanda 2cf9bbf306 hdl._ast: add SwitchValue, reimplement ArrayProxy with it. 2024-04-03 10:01:44 +00:00
Wanda 2eb62a8b49 hdl._ast: change Switch to operate on list of cases. 2024-04-03 08:03:52 +00:00
Wanda cd6cbd71ca hdl.{_ast,_dsl}: factor out the pattern normalization logic. 2024-04-03 07:34:09 +00:00
Wanda 0e4c2de725 Implement RFC 59: Get rid of upwards propagation of clock domains 2024-04-02 17:00:42 +00:00
Wanda 09d5540430 hdl._mem: add MemoryData class.
This implements half of RFC 62. The `MemoryData._Row` class will be
implemented later, as a follow-up.
2024-04-02 14:58:23 +00:00
Wanda 1deaf70ad9 tracer: cover more CALL_* opcodes. 2024-04-02 13:30:02 +00:00
Wanda c4bbcc6f8a hdl._ast: enforce the ShapeCastable.const contract in Const(). 2024-04-02 10:24:34 +00:00
Wanda 5577f4e703 hdl._ir: Fix Array lowering with 0-width index. 2024-03-28 02:24:25 +00:00
Wanda 1d5de80347 lib.data: fix wrong class name on Struct and Union. 2024-03-27 15:00:09 +00:00
Catherine f261071f7c docs/guide: clarify section on IOBufferInstance.
There is no reason to assign names to `IOBufferInstance` submodules
because it's ignored anyways.
2024-03-26 23:21:29 +00:00
Catherine 738d8b7764 hdl: deprecate {Const,Signal}.{width,signed} accessors.
These accessors used to be necessary (in addition to `.shape()`) while
the AST nodes were mutable. However, after commit 2bf1b4da that made
AST nodes immutable, there is no technical requirement to keep them
around. Additionally:

- `len(value)` is shorter than `value.width` and works with any `value`
- `value.shape().signed` is longer than `value.signed` but works with
  any `value`
2024-03-26 22:56:17 +00:00
Wanda 0c041f2602 hdl._ir: rename Instance.named_ports to Instance.ports.
Made possible by the new port propagation code freeing up the name.
2024-03-26 20:36:12 +00:00
Thomas Watson fa2adbef84 hdl.dsl: use private names for FSM ongoing signals 2024-03-25 19:15:24 +00:00
Thomas Watson c7f719ab93 hdl.ast: allow Signals to be privately named using name=""
* Given a private name `$\d+` in RTLIL (as they are not named in the IR)

* Not automatically added to VCD files (as they are not named in the IR)

* Cannot be traced to a VCD (as they have no name to put in the file)

* Cannot be used with an unnamed top-level port (as there is no name)
2024-03-25 19:15:24 +00:00
Wanda 6ffafef794 lib.memory: raise an error on mutating already-elaborated memory. 2024-03-25 18:40:20 +00:00
Catherine 3d5c36a606 docs/reference: finish Value section. 2024-03-25 16:03:55 +00:00