package kelvin | |
import chisel3._ | |
import chisel3.util._ | |
case class VDecodeOp() { | |
// Format0 | |
val vadd = 0 | |
val vsub = 1 | |
val vrsub = 2 | |
val veq = 6 | |
val vne = 7 | |
val vlt = 8 | |
val vle = 10 | |
val vgt = 12 | |
val vge = 14 | |
val vabsd = 16 | |
val vmax = 18 | |
val vmin = 20 | |
val vadd3 = 24 | |
// Format1 | |
val vand = 0 | |
val vor = 1 | |
val vxor = 2 | |
val vnot = 3 | |
val vrev = 4 | |
val vror = 5 | |
val vclb = 8 | |
val vclz = 9 | |
val vcpop = 10 | |
val vmv = 12 | |
val vmvp = 13 | |
val acset = 16 | |
val actr = 17 | |
val adwinit = 18 | |
// Format2 | |
val vsll = 1 | |
val vsra = 2 | |
val vsrl = 3 | |
val vsha = 8 | |
val vshl = 9 | |
val vsrans = 16 | |
val vsraqs = 24 | |
// Format3 | |
val vmul = 0 | |
val vmuls = 2 | |
val vmulw = 4 | |
val vmulh = 8 | |
val vmulhu = 9 | |
val vdmulh = 16 | |
val vmacc = 20 | |
val vmadd = 21 | |
// Format4 | |
val vadds = 0 | |
val vsubs = 2 | |
val vaddw = 4 | |
val vsubw = 6 | |
val vacc = 10 | |
val vpadd = 12 | |
val vpsub = 14 | |
val vhadd = 16 | |
val vhsub = 20 | |
// Format6 | |
val vsliden = 0 | |
val vslidevn = 0 | |
val vslidehn = 4 | |
val vslidep = 8 | |
val vslidevp = 8 | |
val vslidehp = 12 | |
val vsel = 16 | |
val vevn = 24 | |
val vodd = 25 | |
val vevnodd = 26 | |
val vzip = 28 | |
// FormatVVV | |
val aconv = 8 | |
val vdwconv = 10 | |
} |