Prevent TLWidthWidget from generating X outputs (#2815)
* Prevent TLWidthWidget from generating X outputs
Widening WidthWidgets contain an uninitialized data register. The first
transaction through the widget may propagate that register's contents
on the bus, which is logically correct but can propagates a X, violating
our constraint that we never provide X in the payload of a valid xact.
Fix by propagating in.bits.data, rather than the register, until the
register has been written at least once. This is cheaper than resetting
the register.
* Add comments to WidthWidget X fix
Co-authored-by:
Andrew Waterman <andrew@sifive.com>
parent
fbe0bb01
Please register or sign in to comment