amaranth/nmigen
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
..
back lib.cdc: use a local clock domain in ResetSynchronizer. 2019-08-19 21:45:08 +00:00
build build.plat, hdl.ir: coordinate missing domain creation. 2019-08-19 22:52:01 +00:00
compat back.{rtlil,verilog}: split convert_fragment() off convert(). 2019-08-19 19:49:51 +00:00
hdl build.plat, hdl.ir: coordinate missing domain creation. 2019-08-19 22:52:01 +00:00
lib lib.cdc: use a local clock domain in ResetSynchronizer. 2019-08-19 21:45:08 +00:00
test build.plat, hdl.ir: coordinate missing domain creation. 2019-08-19 22:52:01 +00:00
vendor vendor.lattice_ice40: use a local clock domain in create_missing_domain(). 2019-08-19 21:46:44 +00:00
__init__.py Clean up imports. 2019-06-04 08:18:50 +00:00
_version.py Add versioneer. 2019-05-26 11:20:13 +00:00
asserts.py formal→asserts 2019-08-19 20:23:24 +00:00
cli.py hdl.ir: rename .get_fragment() to .elaborate(). 2019-01-26 02:31:12 +00:00
tools.py hdl: make all public Value classes other than Record final. 2019-05-12 05:40:17 +00:00
tracer.py tracer: fix typo. 2019-08-19 20:20:18 +00:00