Open proppy opened 6 months ago
Note this might require additional tagging in the IR as it looks like struct are currently flattend as tuple:
top fn __user_module__muladd(op: (bits[8], bits[8], bits[8])) -> bits[8] {
op_a: bits[8] = tuple_index(op, index=0, id=2, pos=[(0,9,6)])
op_b: bits[8] = tuple_index(op, index=1, id=3, pos=[(0,9,13)])
op_c: bits[8] = tuple_index(op, index=2, id=5, pos=[(0,9,20)])
}
See also https://github.com/google/xls/issues/195 and https://github.com/google/xls/issues/394 (may be a dupe of the latter)
Currently we flatten all struct into a single bus, ex:
will generate:
It would be nice if instead we generated the corresponding SystemVerilog struct construct as defined in section 7.2.1 of the 1800-2017 standard and preserve the fields names for improved readibility: