amaranth/nmigen/hdl
whitequark cce6b8687b build.plat: align pipeline with Fragment.prepare().
Since commit 7257c20a, platform code calls create_missing_domains()
before _propagate_domains_up() (as a part of prepare() call). Since
commit a7be3b48, without a platform, create_missing_domains() is
calle after _propagate_domains_up(); because of that, it adds
the missing domain to the fragment. When platform code then calls
prepare() again, this causes an assertion failure.

The true intent behind the platform code being written this way is
that it *overrides* a part of prepare()'s mechanism. Because it was
not changed when prepare() was modified in 7257c20a, the override,
which happened to work by coincidence, stopped working. This is
now fixed by inlining the relevant parts of Fragment.prepare() into
Platform.prepare().

This is not a great solution, but given the amount of breakage this
causes (no platform-using code works), it is acceptable for now.

Fixes #307.
2020-02-01 03:26:04 +00:00
..
__init__.py Remove everything deprecated in nmigen 0.1. 2020-01-12 13:59:26 +00:00
ast.py hdl.ast: warn on unused property statements (Assert, Assume, etc). 2020-02-01 02:03:23 +00:00
cd.py hdl.cd: add negedge clock domains. 2019-08-31 22:05:48 +00:00
dsl.py hdl.dsl: don't allow inheriting from Module. 2020-02-01 02:15:45 +00:00
ir.py build.plat: align pipeline with Fragment.prepare(). 2020-02-01 03:26:04 +00:00
mem.py hdl.mem: fix src_loc_at in ReadPort, WritePort. 2019-12-15 11:46:26 +00:00
rec.py Remove everything deprecated in nmigen 0.1. 2020-01-12 13:59:26 +00:00
xfrm.py hdl.ast: warn on unused property statements (Assert, Assume, etc). 2020-02-01 02:03:23 +00:00