Catherine
0140fe27e2
hdl._dsl: forbid empty string as submodule name.
...
This is semantically ambiguous and breaks the RTLIL emitter.
Fixes #1209 .
2024-06-10 12:29:20 +00:00
Wanda
77dab7884c
hdl._dsl: raise an error when modifying an already-elaborated Module
.
...
This renames the `FrozenMemory` exception to `AlreadyElaborated`
and reuses it for modules.
Fixes #1350 .
2024-05-18 00:59:00 +00:00
Wanda
625dac376a
hdl._dsl: improve error message on m.domains.cd_foo = ...
.
...
Fixes #1331 .
2024-04-15 00:32:09 +00:00
Wanda
81c35a5922
hdl._ir: remove Fragment.drivers
.
2024-04-04 00:55:06 +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
Thomas Watson
fa2adbef84
hdl.dsl: use private names for FSM ongoing signals
2024-03-25 19:15:24 +00:00
Wanda
bfe541a6d7
Implement RFC 50: Print
and string formatting.
...
Co-authored-by: Catherine <whitequark@whitequark.org>
2024-03-11 09:42:43 +00:00
Wanda
85bb5ee77c
hdl._dsl: Change FSM codegen to avoid mutating AST nodes.
...
Fixes #1066 .
2024-02-27 16:20:25 +00:00
Wanda
6d65dc1366
hdl, back.rtlil: track and emit module/submodule locations.
2024-02-19 21:41:32 +00:00
Wanda
24a392887a
Implement RFC 43: Rename reset=
to init=
.
2024-02-15 22:52:24 +00:00
Wanda
e3324e1456
hdl._dsl: fix using 0-width Switch
with integer keys.
...
Fixes #1133 .
2024-02-14 19:13:14 +00:00
Wanda
45dbce13df
hdl: consistently use "comb" for combinatorial domain.
...
Fixes #1097 .
2024-02-09 19:32:55 +00:00
Wanda
6e06fc013f
hdl.ir: associate statements with domains.
...
Fixes #1079 .
2024-02-09 05:33:16 +00:00
Catherine
5dd1223cf8
amaranth.hdl: start all private names with an underscore.
...
This change completes commit 9dc0617e and makes all the tests pass.
It corresponds with the ongoing langauge reference documentation effort.
Fixes #781 .
2024-01-30 17:20:45 +00:00
Catherine
8678d5fa14
hdl.dsl: warn if a case is defined after a default case.
2024-01-30 02:54:48 +00:00
Wanda
86d14f584e
Implement RFC 39: Change semantics of no-argument m.Case()
.
2024-01-13 22:33:54 +00:00
Catherine
750cbbc3c7
hdl: remove deprecated Sample
, Past
, Stable
, Rose
, Fell
.
2023-12-13 11:13:14 +00:00
Catherine
a4402b507f
hdl.dsl: py3.12+: turn off heuristic warning on ~True
and ~False
.
...
There is now an upstream deprecation warning for the same.
We don't have to duplicate it.
2023-06-02 13:45:15 +01:00
Catherine
54d5c4c047
Implement RFC 9: Constant initialization for shape-castable objects.
...
See amaranth-lang/rfcs#9 and #771 .
2023-05-12 23:41:57 +01:00
Catherine
0ee5de036c
hdl.ast: deprecate Sample
, Past
, Rose
, Fell
, Stable
.
...
See #526 .
2023-02-28 14:30:04 +00:00
Catherine
57612f1dce
lib.enum: add Enum wrappers that allow specifying shape.
...
See #756 and amaranth-lang/rfcs#3 .
2023-02-28 13:00:41 +00:00
Catherine
58721ee4fe
hdl: implement constant-castable expressions.
...
See #755 and amaranth-lang/rfcs#4 .
2023-02-27 22:38:38 +00:00
whitequark
909a3b8be7
Rename nMigen to Amaranth HDL.
2021-12-10 10:34:13 +00:00
Thomas Watson
d09dedfb48
tests.hdl.dsl: add tests for mis-nested Switch/Case and FSM/State statements
2021-05-11 02:41:32 +00:00
Thomas Watson
7443f89200
hdl.dsl: raise SyntaxError for mis-nested If/Elif/Else statements
2021-05-11 02:41:32 +00:00
whitequark
9d62cbefa5
hdl.dsl: error on Elif immediately nested in an If.
...
I.e. on this code, which is currently not only wrongly accepted but
also results in completely unexpected RTL:
with m.If(...):
with m.Elif(...):
...
Fixes #500 .
2020-10-22 13:23:06 +00:00
whitequark
67b957d4f4
tests: move out of the main package.
...
Compared to tests in the repository root, tests in the package have
many downsides:
* Unless explicitly excluded in find_packages(), tests and their
support code effectively become a part of public API.
This, unfortunately, happened with FHDLTestCase, which was never
intended for downstream use.
* Even if explicitly excluded from the setuptools package, using
an editable install, or setting PYTHONPATH still allows accessing
the tests.
* Having a sub-package that is present in the source tree but not
exported (or, worse, exported only sometimes) is confusing.
* The name `nmigen.test` cannot be used for anything else, such as
testing utilities that *are* intended for downstream use.
2020-08-27 00:33:31 +00:00