Open wmat opened 1 year ago
it is not possible right now.
Looks like imm[12]
and offset[12]
carry the same semantic information in the picture?
Would it make sense to do something like:
{reg: [
{bits: 7, name: 'opcode', attr: 'BRANCH'},
{bits: 5, name: 'imm', attr: 'offset[11|4:1]', type: 3},
{bits: 3, name: 'func3', attr: ['BEQ', 'BNE', 'BLT', 'BLTU', 'BGE', 'BGEU'], type: 4},
{bits: 5, name: 'rs1', attr: 'src1'},
{bits: 5, name: 'rs2', attr: 'src2'},
{bits: 7, name: 'imm', attr: 'offset[12|10:5]', type: 3}
]}
?
more examples: https://observablehq.com/@drom/wavedrom-bit-field-guide?collection=@drom/bitfield
Or maybe something even more explicit:
{reg: [
{bits: 7, name: 'opcode', attr: 'BRANCH'},
{bits: 1, name: '[11]', type: 3},
{bits: 1, name: '[1]', type: 3},
{bits: 1, name: '[2]', type: 3},
{bits: 1, name: '[3]', type: 3},
{bits: 1, name: '[4]', type: 3},
{bits: 3, name: 'func3', attr: ['BEQ', 'BNE', 'BLT', 'BLTU', 'BGE', 'BGEU'], type: 4},
{bits: 5, name: 'rs1', attr: 'src1'},
{bits: 5, name: 'rs2', attr: 'src2'},
{bits: 1, name: '[5]', type: 3},
{bits: 1, name: '[6]', type: 3},
{bits: 1, name: '[7]', type: 3},
{bits: 1, name: '[8]', type: 3},
{bits: 1, name: '[9]', type: 3},
{bits: 1, name: '[10]', type: 3},
{bits: 1, name: '[12]', type: 3}
]}
Is it possible for attrs to span multiple bits, such as the offsets are doing in this screenshot: