write_cxxrtl: add support for hierarchical designs.
write_cxxrtl: add support for hierarchical designs.

Hierarchical design simulations are generally much slower, but this
comes with a major increase in flexibility:
 1. Since the `flatten` pass currently does not support flattening
    of designs with processes, this is the only way to simulate such
    designs with cxxrtl.
 2. Support for hierarchy paves way for simulation black boxes,
    which are necessary for e.g. replacing PHYs with C++ code that
    integrates with the host system.

antmicro/yosys,SymbiFlow/yosys,SymbiFlow/yosys,SymbiFlow/yosys,SymbiFlow/yosys,antmicro/yosys,SymbiFlow/yosys,YosysHQ/yosys,YosysHQ/yosys,YosysHQ/yosys,antmicro/yosys,antmicro/yosys,YosysHQ/yosys,cliffordwolf/yosys,YosysHQ/yosys,SymbiFlow/yosys,cliffordwolf/yosys,SymbiFlow/yosys,cliffordwolf/yosys,antmicro/yosys,cliffordwolf/yosys,SymbiFlow/yosys,antmicro/yosys,cliffordwolf/yosys,YosysHQ/yosys,cliffordwolf/yosys,YosysHQ/yosys,cliffordwolf/yosys,cliffordwolf/yosys,antmicro/yosys,YosysHQ/yosys,cliffordwolf/yosys,antmicro/yosys