I am trying to get yosys to synthesize my design to structural verilog for a tool which doesn't understand the syntax {A, B}
to specify the concatenation of values A
and B
.
So for example when yosys generates statements like
assign C = {A,B};
assign {D,E} = F;
the tool chokes. I thought of using the splitnets
pass to eliminate multibit wires, but the multibit ports still cause yosys to generate the {}
syntax. Even running splitnets -ports
leaves some assignments like
assign {A, B} = {C, D}
I was finally able to get these assignments to disappear using an additional run of opt
. But this seems to be a very messy way of eliminating the {}
construct.
Is there some nicer way to eliminate this construct without splitting all the input ports?