whitequark
da48c05bdf
_tools: extract most utility methods to a private package.
...
We don't want to guarantee backwards compatibility for most of them.
2019-10-12 22:40:48 +00:00
whitequark
b90687c988
Rename remaining wrap
methods to cast
.
...
Following commit d72d4a55
.
2019-10-11 13:28:26 +00:00
whitequark
a658cb2bbf
hdl.ast: deprecate shapes like (1, True)
in favor of signed(1)
.
...
This is a great improvement in clarity.
2019-10-11 13:22:08 +00:00
whitequark
6aabdc0a73
hdl.ast: add an explicit Shape class, included in prelude.
...
Shapes have long been a part of nMigen, but represented using tuples.
This commit adds a Shape class (using namedtuple for backwards
compatibility), and accepts anything castable to Shape (including
enums, ranges, etc) anywhere a tuple was accepted previously.
In addition, `signed(n)` and `unsigned(n)` are added as aliases for
`Shape(n, signed=True)` and `Shape(n, signed=False)`, transforming
code such as `Signal((8, True))` to `Signal(signed(8))`.
These aliases are also included in prelude.
Preparation for #225 .
2019-10-11 12:52:41 +00:00
whitequark
1976310bf0
hdl.rec: fix using Enum subclass as shape if direction is specified.
...
Also improves error messages.
Fixes #224 .
2019-09-22 17:23:32 +00:00
whitequark
4c582ef609
hdl.rec: allow using Enum subclass as shape.
...
Fixes #223 .
2019-09-22 15:17:40 +00:00
whitequark
0ab0a74ec1
hdl.rec: respect modifications to signals in Record.like().
...
Fixes #126 .
2019-07-08 10:59:15 +00:00
whitequark
7059cb4931
hdl.rec: thread src_loc_at to all inner Signals and Records.
2019-07-03 14:49:20 +00:00
whitequark
5800f00776
hdl.rec: accept Record(src_loc_at=...).
2019-07-03 14:35:48 +00:00
whitequark
6b843b5be6
hdl.rec: implement slicing by component names.
...
Fixes #121 .
2019-07-02 17:46:53 +00:00
whitequark
34f110100a
hdl.rec: implement Record.like.
...
Fixes #120 .
2019-07-02 17:46:53 +00:00
whitequark
a1940c5528
hdl.rec: unbreak hasattr(rec, ...).
...
hasattr() requires that AttributeError be raised. Change __getitem__
to raise AttributeError, too, since it is fundamentally just sugar
for getattr().
2019-06-03 07:43:31 +00:00
whitequark
2b7dc37ffe
hdl.rec: allow providing fields during construction.
...
This allows creating records populated with e.g. signals with custom
names, or sub-records that are instances of Record subclasses.
2019-05-25 22:06:56 +00:00
whitequark
744e33f42d
hdl: make all public Value classes other than Record final.
...
In some cases, nMigen uses type() instead of isinstance() to dispatch
on types. Make sure all such uses of type() are robust; in addition,
make it clear that nMigen AST classes are not meant to be subclassed.
(Record is an exception.)
Fixes #65 .
2019-05-12 05:40:17 +00:00
whitequark
ce1eff5464
hdl.rec: implement Record.connect.
...
Fixes #31 .
2019-04-21 06:37:08 +00:00
whitequark
611c25f909
hdl.rec: fix slicing of records.
2019-04-19 19:55:39 +00:00
anuejn
3c95299c4e
hdl.rec: separate record and signal name with __, not _.
...
This makes names of signals within records less ambiguous, in case
they themselves have underscores within them.
2019-03-25 14:26:00 +00:00
whitequark
e93bf4bf4b
tracer: factor out get_var_name(default=).
2019-03-03 18:21:22 +00:00
whitequark
cac4b10b82
hdl.rec: remove __slots__.
...
Left in by mistake.
2019-03-03 18:21:22 +00:00
whitequark
3c07d8d52c
hdl.rec: include record name in error message.
2019-01-01 03:39:12 +00:00
whitequark
031a9e2616
hdl.rec: use a helpful error on unknown field reference.
2019-01-01 03:35:34 +00:00
whitequark
92a96e1644
hdl.rec: add basic record support.
2018-12-28 13:22:10 +00:00