whitequark
|
4948162f33
|
hdl.ir: rename .get_fragment() to .elaborate().
Closes #9.
|
2019-01-26 02:31:12 +00:00 |
|
whitequark
|
f71e0fffbb
|
hdl.ast: fix shape calculation for *.
This was carried over from Migen, and is wrong there too.
Counterexample: 1'sd-1 * 4'sd-4 = 4'sd-4 (but should be 5'sd4).
|
2019-01-26 00:56:40 +00:00 |
|
whitequark
|
38b3c4af31
|
hdl.ast: implement shape for modulo operator.
|
2019-01-19 09:27:56 +00:00 |
|
whitequark
|
5e2b46f727
|
hdl.ast: add Value.implies.
|
2019-01-19 08:56:44 +00:00 |
|
whitequark
|
c5d67b0461
|
hdl.xfrm: mark internal registers used in lowering Sample().
|
2019-01-19 07:27:32 +00:00 |
|
whitequark
|
b50b47d984
|
hdl.ast: give Assert and Assume their own src_loc.
This helps with patterns like `Assert(fsm.ongoing("IDLE"))`, which
would otherwise point into nMigen internals.
|
2019-01-19 00:08:51 +00:00 |
|
whitequark
|
66466a8a0e
|
back.rtlil: only emit each AnyConst/AnySeq cell once.
These are semantically like signals, not like constants.
|
2019-01-18 01:34:48 +00:00 |
|
whitequark
|
fa8e876356
|
hdl.ast: allow sampling ClockSignal, ResetSignal.
|
2019-01-17 05:23:06 +00:00 |
|
whitequark
|
8c96675580
|
hdl.ast: add Past, Stable, Rose, Fell.
|
2019-01-17 04:31:27 +00:00 |
|
whitequark
|
198efcad31
|
hdl.xfrm: add SampleLowerer.
|
2019-01-17 01:41:02 +00:00 |
|
whitequark
|
b3de114d67
|
hdl.ast: add Sample.
|
2019-01-17 01:36:27 +00:00 |
|
whitequark
|
cb2f18ee37
|
hdl.ast: fix naming of Signal.like() signals when tracer fails.
|
2019-01-16 17:20:38 +00:00 |
|
William D. Jones
|
77728c2dea
|
hdl.xfrm: Add on_AnyConst and on_AnySeq abstract methods for ValueVisitor and children.
|
2019-01-15 22:52:45 +00:00 |
|
William D. Jones
|
6fdbc3d885
|
hdl.ast: Add AnyConst and AnySeq value types.
|
2019-01-15 22:52:45 +00:00 |
|
whitequark
|
b534e92dd5
|
hdl.ir: allow explicitly requesting flattening.
|
2019-01-14 17:04:23 +00:00 |
|
whitequark
|
011bf2258e
|
hdl: make ClockSignal and ResetSignal usable on LHS.
Fixes #8.
|
2019-01-14 15:38:16 +00:00 |
|
whitequark
|
664b4bcb3a
|
hdl.dsl: cases wider than switch test value are unreachable.
In 3083c1d6 they were erroneously fixed via truncation.
|
2019-01-13 08:51:49 +00:00 |
|
whitequark
|
3083c1d6dd
|
hdl.dsl: accept (but warn on) cases wider than switch test value.
Fixes #13.
|
2019-01-13 08:46:28 +00:00 |
|
whitequark
|
a2b04d71d0
|
hdl.ast: allow slicing [n:n] into n-bit value.
|
2019-01-02 18:14:57 +00:00 |
|
William D. Jones
|
f77dc40256
|
hdl.xfrm: Add Assert and Assume abstract methods for StatementVisitor, implement for children.
|
2019-01-02 11:17:39 +00:00 |
|
William D. Jones
|
2412650f56
|
hdl.dsl: Support Assert and Assume where an Assign can occur.
|
2019-01-02 11:17:39 +00:00 |
|
William D. Jones
|
e6517a33c7
|
hdl.ast: Add Assert and Assign statements.
|
2019-01-02 11:17:39 +00:00 |
|
whitequark
|
ea7e19ed5c
|
hdl.ast: experimentally add Value._as_const.
Useful for writing e.g. decoders that accept Cat, etc as argument.
|
2019-01-01 09:50:39 +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
|
d78e6c155b
|
hdl.mem: add DummyPort, for testing and verification.
|
2019-01-01 03:08:10 +00:00 |
|
whitequark
|
39eb2e8fa7
|
lib.cdc: fix tests to actually run.
|
2018-12-29 15:02:44 +00:00 |
|
whitequark
|
92a96e1644
|
hdl.rec: add basic record support.
|
2018-12-28 13:22:10 +00:00 |
|
whitequark
|
d66bbb0df8
|
tracer: factor out get_src_loc().
|
2018-12-28 01:31:24 +00:00 |
|
whitequark
|
470d66934f
|
hdl.dsl: add support for fsm.ongoing().
|
2018-12-27 16:19:01 +00:00 |
|
whitequark
|
de50ccec90
|
hdl.mem: add missing __all__.
|
2018-12-27 16:19:01 +00:00 |
|
whitequark
|
35a44f017f
|
hdl.dsl: forbid m.next= inside of FSM but outside of FSM state, too.
|
2018-12-26 12:42:43 +00:00 |
|
whitequark
|
934546e633
|
hdl.dsl: provide generated values for FSMs.
|
2018-12-26 12:39:05 +00:00 |
|
whitequark
|
040811c2e5
|
hdl.ir: add an API for retrieving generated values, like FSM signal.
This is useful for tests.
|
2018-12-26 12:35:35 +00:00 |
|
whitequark
|
597d778cf6
|
examples: add an FSM usage example (UART receiver).
|
2018-12-26 10:10:27 +00:00 |
|
whitequark
|
72039b6072
|
hdl.dsl: add signal decoder to FSM state signal.
|
2018-12-26 09:45:12 +00:00 |
|
whitequark
|
54e3195dcb
|
hdl.dsl: implement FSM.
|
2018-12-26 08:55:04 +00:00 |
|
whitequark
|
f05bd2a137
|
hdl.mem: allow omitting memory simulation logic.
Trying to transform very large arrays is slow.
|
2018-12-24 11:53:59 +00:00 |
|
whitequark
|
98f554aa08
|
hdl.xfrm, back.rtlil: implement and use LHSGroupFilter.
This is a refactoring to simplify reusing the filtering code in
simulation, and separate that concern from backends in general.
|
2018-12-24 02:17:28 +00:00 |
|
whitequark
|
1c7c75a254
|
hdl.xfrm: implement SwitchCleaner, for pruning empty switches.
|
2018-12-24 02:02:59 +00:00 |
|
whitequark
|
621dddebfd
|
hdl.xfrm: avoid cycles in union-find graph in LHSGroupAnalyzer.
|
2018-12-22 22:19:14 +00:00 |
|
whitequark
|
68dae9f50e
|
hdl.ir: flatten hierarchy based on memory accesses, too.
|
2018-12-22 21:43:46 +00:00 |
|
whitequark
|
fd89d2fc9d
|
hdl.ir: factor out _merge_subfragment. NFC.
|
2018-12-22 19:04:49 +00:00 |
|
whitequark
|
ae0cb48fbb
|
hdl.xfrm: implement LHSGroupAnalyzer.
|
2018-12-22 06:58:24 +00:00 |
|
whitequark
|
98a9744be4
|
hdl.xfrm: Abstract*Transformer→*Visitor
|
2018-12-22 06:03:39 +00:00 |
|
whitequark
|
8730895d8c
|
hdl.mem: allow changing init value after creating memory.
|
2018-12-22 01:09:03 +00:00 |
|
whitequark
|
f6772759c8
|
hdl.ir: fix port propagation between siblings, in the other direction.
|
2018-12-22 00:31:31 +00:00 |
|
whitequark
|
a4183eba69
|
hdl.mem: use more informative signal naming for ports.
|
2018-12-21 23:55:02 +00:00 |
|
whitequark
|
913339c04a
|
hdl.ir: fix port propagation between siblings.
|
2018-12-21 23:53:18 +00:00 |
|
whitequark
|
fc7da1be2d
|
hdl.ir: do not flatten instances or collect ports from their statements.
This results in absurd behavior for memories.
|
2018-12-21 13:52:18 +00:00 |
|