[libre-riscv-dev] sv.setvl encoding

Luke Kenneth Casson Leighton lkcl at lkcl.net
Fri Jun 28 05:32:59 BST 2019

On Fri, Jun 28, 2019 at 4:54 AM Luke Kenneth Casson Leighton
<lkcl at lkcl.net> wrote:
> On Thu, Jun 27, 2019 at 11:38 PM Jacob Lifshay <programmerjake at gmail.com> wrote:
> >
> > I added the encoding I had originally planned under the "original encoding"
> > header.
> >
> > https://libre-riscv.org/simple_v_extension/specification/sv.setvl/
>  ok so SV is never going beyond RV64 without a major redesign as VL
> and MVL are compacted into 6 bits (RV128 has XLEN=1<<7).
>  so, the field named MAXVL, practically speaking, need only be 6 bits, not 11.
>  the MAXVL field fits across the rs2 field rather than the top
> immediate bits (normally a funct5/6/7).  which would complicate
> brownfield encoding that wanted an rs2.

 so with RV128 out of the picture (we haven't time to think about it
right now) it's the position of MAXVL that needs thought.  MAXVL in
bits 24:20 or MAXVL in bits 30:25?

 the reason i put them in 30:25 is because 30:25 is 6 bits.

if MAXVL is in 25:20 it crosses the boundary of an I/R-type encoding,
requiring a unique decoder path to do so.

if MAXVL is in 30:25, existing I/R-type decoding for funct7 can be
used, leaving rs2 decoding for brownfield paths.

that seems to have been the very-rapid (and probably subconscious)
choices, there.


More information about the libre-riscv-dev mailing list