back.rtlil: use a dummy wire, not 'x, when assigning to shorter LHS.
authorwhitequark <cz@m-labs.hk>
Sat, 3 Aug 2019 23:57:50 +0000 (23:57 +0000)
committerwhitequark <cz@m-labs.hk>
Sun, 4 Aug 2019 00:12:08 +0000 (00:12 +0000)
commit5de834cb82dda51dec26c8b829d2b602a446d88b
tree5a906cb674741030c51d1d18c7bb6a9362ee7ff5
parent3728e15bd64d0d53057484b3b9f8bd22c29bb15e
back.rtlil: use a dummy wire, not 'x, when assigning to shorter LHS.

Using 'x is legal RTLIL, in theory, but in practice it crashes Yosys
and when it doesn't, it causes Yosys to produce invalid Verilog.
Using a dummy wire is always safe and is not a major readability
issue as this is a rare corner case.

(It is not trivial to shorten the RHS in this case, because during
expansion of an ArrayProxy, match_shape() could be called in
a context far from the RHS handling logic.)
nmigen/back/rtlil.py