anchor.diff:     Bit#(13) imm13_SB;
      Bit#(20) imm20_U;
      Bit#(21) imm21_UJ;
  +
  +   // Vector Extension
  +   Bit#(6)  funct6;
  +   Bit#(9)  imm9_I;
  +   Bit#(9)  imm9_S;
   } Decoded_Fields deriving(Bits);
   
   function Instr_s fv_decode_instr(Instr instr);
  
positive.code:             rs3      :  instr_rs3      (instr),
              csr      :  instr_csr      (instr),
  
              funct3   :  instr_funct3   (instr),
              funct5   :  instr_funct5   (instr),
              funct7   :  instr_funct7   (instr),
              funct10  :  instr_funct10  (instr),
  
              imm12_I  :  instr_I_imm12  (instr),
              imm12_S  :  instr_S_imm12  (instr),
              imm13_SB :  instr_SB_imm13 (instr),
  
negative.code: function  RegName    instr_rs3    (Instr x); return x[31:27]; endfunction     // {F,D} Extension
  function  CSR_Addr   instr_csr    (Instr x); return unpack(x[31:20]); endfunction
  
  function  Bit#(9)    instr_I_imm9  (Instr x); return {x[31:28], x[24:20]}; endfunction
  function  Bit#(9)    instr_S_imm9  (Instr x); return {x[31:28], x[11:7]}; endfunction
  function  Bit#(12)   instr_I_imm12 (Instr x); return x[31:20]; endfunction
  function  Bit#(12)   instr_S_imm12 (Instr x); return { x[31:25], x[11:7] }; endfunction
  function  Bit#(13)   instr_SB_imm13(Instr x); return { x[31], x[7], x[30:25], x[11:8], 1'b0 }; endfunction
  