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 |
|
whitequark
|
fa2af27bb0
|
hdl.mem: ensure transparent read port model has correct latency.
|
2018-12-21 13:01:08 +00:00 |
|
whitequark
|
af7db882c0
|
hdl.mem: use different naming for array signals.
It looks like [] is confusing gtkwave somehow.
|
2018-12-21 12:26:49 +00:00 |
|
whitequark
|
e58d9ec74d
|
hdl.mem: add simulation model for memory.
|
2018-12-21 11:54:32 +00:00 |
|
whitequark
|
c49211c76a
|
hdl.mem: add tests for all error conditions.
|
2018-12-21 06:07:16 +00:00 |
|
whitequark
|
a061bfaa6c
|
hdl.mem: tie rdport.en high for asynchronous or transparent ports.
|
2018-12-21 04:22:16 +00:00 |
|
whitequark
|
b0bd7bfaca
|
hdl.ir: correctly handle named output and inout ports.
|
2018-12-21 04:03:03 +00:00 |
|
whitequark
|
6d9a6b5d84
|
hdl.mem: implement memories.
|
2018-12-21 01:53:32 +00:00 |
|
whitequark
|
f7fec804ec
|
ir: allow non-Signals in Instance ports.
|
2018-12-20 23:40:40 +00:00 |
|
whitequark
|
0f2c7e7161
|
compat: import genlib.record from Migen.
|
2018-12-18 20:04:22 +00:00 |
|
whitequark
|
dbbcc49a71
|
hdl.ast: Cat.{operands→parts}
|
2018-12-18 19:15:50 +00:00 |
|
whitequark
|
7341d0d7ef
|
hdl.ast, hdl.xfrm: various microoptimizations to speed up pysim.
|
2018-12-18 16:13:29 +00:00 |
|
whitequark
|
c7f9386eab
|
fhdl.ir: add black-box fragments, fragment parameters, and Instance.
|
2018-12-17 22:55:39 +00:00 |
|
whitequark
|
8d1639a5a8
|
hdl, back: add and use SignalSet/SignalDict.
|
2018-12-17 17:21:29 +00:00 |
|
whitequark
|
8c4de99c0d
|
hdl.ast: factor out _MappedKeyDict, _MappedKeySet. NFC.
|
2018-12-17 17:21:29 +00:00 |
|
whitequark
|
850674637a
|
back.rtlil: implement Array.
|
2018-12-17 01:15:23 +00:00 |
|