Commit graph

1349 commits

Author SHA1 Message Date
whitequark
120d817123 back.pysim: undriven sync signals should return to previous value. 2018-12-14 17:25:48 +00:00
whitequark
4f5b4a9bf4 back.pysim: in simulator sync processes, start by waiting for a tick.
This matches Migen behavior and also makes more sense.
2018-12-14 17:05:11 +00:00
whitequark
e230383aac back.pysim: make initial phase configurable. 2018-12-14 16:46:16 +00:00
whitequark
0ef5ced492 compat.sim: match clock period. 2018-12-14 16:39:52 +00:00
whitequark
17d26c8329 compat: add run_simulation shim. 2018-12-14 16:22:18 +00:00
whitequark
88970ee29f pysim.back: fix add_sync_process wrapper to handle signals correctly. 2018-12-14 16:21:53 +00:00
whitequark
3bc3647380 compat.fhdl.module: fix specials. 2018-12-14 16:14:08 +00:00
whitequark
3b23645fb7 compat: add fhdl.specials.TSTriple shim. 2018-12-14 16:09:51 +00:00
whitequark
7200346249 genlib.io: import TSTriple from Migen. 2018-12-14 16:09:51 +00:00
whitequark
50ba443f92 fhdl.ast: fix Switch with constant test. 2018-12-14 16:09:51 +00:00
whitequark
a0d555a9fc compat: add genlib.cdc.MultiReg shim. 2018-12-14 16:01:38 +00:00
whitequark
baba47251c compat.fhdl.module: update deprecation messages. 2018-12-14 16:01:38 +00:00
whitequark
9307a31678 back.pysim: Simulator({gtkw_signals→traces}=). 2018-12-14 15:23:22 +00:00
whitequark
e3f32a1faf back.pysim: better naming. NFC. 2018-12-14 15:21:13 +00:00
whitequark
68f8dabb29 Travis: install pyvcd. 2018-12-14 14:47:03 +00:00
whitequark
474d46ced8 back.pysim: implement most operators and add tests. 2018-12-14 14:21:22 +00:00
whitequark
d9aaf0114b back.pysim: close .vcd/.gtkw files on context manager exit. 2018-12-14 13:59:03 +00:00
whitequark
1655b59d1b back.pysim: show more legible names for processes in errors. 2018-12-14 13:50:19 +00:00
whitequark
625c55a3b8 back.pysim: throw exceptions back at processes. 2018-12-14 13:43:25 +00:00
whitequark
654722ce14 back.pysim: add gtkw traces even more robustly. 2018-12-14 13:43:08 +00:00
whitequark
7d3f7f277a back.pysim: accept (and evaluate) generator functions. 2018-12-14 13:32:30 +00:00
whitequark
7fc9f98b98 back.pysim: skip VCD signal population if VCD is not requested. 2018-12-14 13:32:30 +00:00
whitequark
3ad79ec690 back.pysim: allow processes to evaluate expressions. 2018-12-14 13:32:30 +00:00
whitequark
151d079f01 fhdl.ir: oops, we defined DomainError twice. 2018-12-14 12:59:54 +00:00
whitequark
dd00b5e2d6 back.pysim: more general clean-up. 2018-12-14 12:46:04 +00:00
whitequark
1b7f8c7950 back.pysim: general clean-up. 2018-12-14 12:22:03 +00:00
whitequark
105113f1d8 back.pysim: accept any valid assignments from processes. 2018-12-14 12:18:41 +00:00
whitequark
240a40c2c2 back.pysim: robustly retrieve vcd names for clk/rst when writing gtkw. 2018-12-14 10:57:13 +00:00
whitequark
7d91dd56c8 fhdl.xfrm: implement DomainLowerer. 2018-12-14 10:56:53 +00:00
whitequark
b34c1a9ad0 back.pysim: undriven comb signals should return to reset value. 2018-12-14 09:12:38 +00:00
whitequark
b58715c5dc ast, back.pysim: allow specifying user-defined decoders for signals. 2018-12-14 09:02:29 +00:00
whitequark
bb843cb40c back.pysim: fix completely broken codegen for Switch. 2018-12-14 08:51:36 +00:00
whitequark
6aefd0c04c back.pysim: raise an exception if delta cycles blow a process deadline. 2018-12-14 08:10:21 +00:00
whitequark
a10791e160 back.pysim: if requested, write a gtkw file with a useful preset. 2018-12-14 08:04:29 +00:00
whitequark
cb998d891b back.pysim: explain how delta cycles work. 2018-12-14 07:26:26 +00:00
whitequark
e4d08d2855 back.pysim: delay clock processes by one half period.
Makes it easier to see initial delta cycles.
2018-12-14 05:17:43 +00:00
whitequark
3bb7a87e0f back.pysim: implement "sync processes", like migen.sim generators. 2018-12-14 05:13:58 +00:00
whitequark
d791b77cc8 back.pysim: allow suspending processes until a tick in a domain. 2018-12-14 04:33:06 +00:00
whitequark
3e59d857e1 back.pysim: use bare ints for signal values (-5% runtime). 2018-12-14 03:05:57 +00:00
whitequark
55e729f68a setup: add missing import. 2018-12-14 02:32:37 +00:00
whitequark
b09f4b10ee back.pysim: collect handlers before running (-5% runtime). 2018-12-13 18:34:44 +00:00
whitequark
a7ebc02bdd back.pysim: allow multiple registered handlers per signal. 2018-12-13 18:28:11 +00:00
whitequark
6a4004ef8d back.pysim: fix handling of process termination. 2018-12-13 18:17:58 +00:00
whitequark
fb27c2520b back.pysim: new simulator backend (WIP). 2018-12-13 18:02:46 +00:00
whitequark
71f1f717c4 fhdl.cd: rename ClockDomain signals together with domain. 2018-12-13 15:24:55 +00:00
whitequark
07c818e077 fhdl.ir: move Fragment prepare logic from back.rtlil. 2018-12-13 14:34:07 +00:00
whitequark
ac498414ab back.verilog: remove debug code. 2018-12-13 13:42:54 +00:00
whitequark
90f1503c91 fhdl.ir: record port direction explicitly.
No point in recalculating this in the backend when writing RTLIL or
Verilog port directions.
2018-12-13 13:12:31 +00:00
whitequark
6251c95d4e compat.genlib.fsm: import/wrap Migen code. 2018-12-13 12:41:19 +00:00
whitequark
9661e897e6 fhdl.ir: a subfragment's input that we don't drive is also our input. 2018-12-13 11:50:56 +00:00