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. |
||
|---|---|---|
| .. | ||
| back | ||
| build | ||
| compat | ||
| hdl | ||
| lib | ||
| test | ||
| vendor | ||
| __init__.py | ||
| _version.py | ||
| asserts.py | ||
| cli.py | ||
| tools.py | ||
| tracer.py | ||