amaranth/nmigen/build
whitequark 13316053e3 build.plat, hdl.ir: coordinate missing domain creation.
Platform.prepare() was completely broken after addition of local
clock domains, and only really worked before by a series of
accidents because there was a circular dependency between creation
of missing domains, fragment preparation, and insertion of pin
subfragments.

This commit untangles the dependency by adding a separate public
method Fragment.create_missing_domains(), used in build.plat.

It also makes DomainCollector consider both used and defined domains,
such that it will work on fragments before domain propagation, since
create_missing_domains() can be called by user code before prepare().

The fragment driving missing clock domain is not flattened anymore,
because flattening does not work well combined with local domains.
2019-08-19 22:52:01 +00:00
..
__init__.py build.{dsl,res,plat}: apply clock constraints to signals, not resources. 2019-06-05 08:52:30 +00:00
dsl.py build.dsl: add conn argument to Connector. 2019-08-18 19:56:25 +00:00
plat.py build.plat, hdl.ir: coordinate missing domain creation. 2019-08-19 22:52:01 +00:00
res.py build.{dsl,res}: allow platform-dependent attributes using callables. 2019-07-08 11:15:04 +00:00
run.py build.run: use keyword-only arguments where appropriate. 2019-08-03 22:52:58 +00:00