cxxrtl: add (*cxxrtl.{comb,sync}*) annotations on black box outputs.
cxxrtl: add (*cxxrtl.{comb,sync}*) annotations on black box outputs.

If the annotations are not used, this commit does not alter semantics
at all, other than removing elision of outputs of black box cells.
(Elision of such outputs is expected to be too rare to have any
noticeable benefit, and the implementation was somewhat of a hack.)

The (* cxxrtl.comb *) annotation alters the semantics of the output
of the black box it is applied to such that, if the black box
converges immediately, no additional delta cycle is necessary to
propagate the computed combinatorial value upwards in hierarchy.

The (* cxxrtl.sync *) annotation alters the semantics of the output
of the black box it is applied to such as to remove any uses of
the black box by the wires connected to this output, and break false
feedback arcs arising from conservative modeling of dependencies of
the black box.

Although currently these attributes are only recognized on black
boxes, if separate compilation is added in the future, it could also
emit and consume them.

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