[libre-riscv-dev] Power ISA and associated Challenges
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Sun Mar 1 16:01:27 GMT 2020
whooaa, i just took a look at the opcode 31 decoder in yosys: waaa
that's a big block.
the problem is that the selection field for opcode 31 is 10 bits long,
and does not appear to be regularised in any obvious way:
https://libre-riscv.org/openpower/isatables/
that's a *lot* of operations. ISEL and ADD are pretty obvious: ISEL
(first 5 bits 0b01111) for example, however LD/ST are a dog's dinner
mess.
that will be what people *may* be referring to about decode
complexity. what yosys creates by default for that, based on a
straight "case" statement loop, is just a mess: in one case it creates
a 129-bit OR and in another it creates a 127-bit OR gate. (!!)
we really can't have that.
l.
More information about the libre-riscv-dev
mailing list