| package kelvin | |
| import chisel3._ | |
| import chisel3.util._ | |
| // Opcode list will maintain unique IDs even if not populated in command queue. | |
| case class VEncodeOp() { | |
| val undef = 0 | |
| // Duplicate | |
| val vdup = 1 | |
| // Load/Store | |
| val vld = 2 | |
| val vst = 3 | |
| val vstq = 4 | |
| // Misc | |
| val vcget = 5 | |
| // Format0 | |
| val vadd = 6 | |
| val vsub = 7 | |
| val vrsub = 8 | |
| val veq = 9 | |
| val vne = 10 | |
| val vlt = 11 | |
| val vle = 12 | |
| val vgt = 13 | |
| val vge = 14 | |
| val vabsd = 15 | |
| val vmax = 16 | |
| val vmin = 17 | |
| val vadd3 = 18 | |
| // Format1 | |
| val vand = 19 | |
| val vor = 20 | |
| val vxor = 21 | |
| val vnot = 22 | |
| val vrev = 23 | |
| val vror = 24 | |
| val vclb = 25 | |
| val vclz = 26 | |
| val vcpop = 27 | |
| val vmv = 28 | |
| val vmv2 = 29 | |
| val vmvp = 30 | |
| val acset = 31 | |
| val actr = 32 | |
| val adwinit = 33 | |
| // Format2 | |
| val vshl = 34 | |
| val vshr = 35 | |
| val vshf = 36 | |
| val vsrans = 37 | |
| val vsraqs = 38 | |
| // Format3 | |
| val vmul = 39 | |
| val vmul2 = 40 | |
| val vmuls = 41 | |
| val vmuls2 = 42 | |
| val vmulh = 43 | |
| val vmulh2 = 44 | |
| val vdmulh = 45 | |
| val vdmulh2 = 46 | |
| val vmulw = 47 | |
| val vmadd = 48 | |
| // Format4 | |
| val vadds = 49 | |
| val vsubs = 50 | |
| val vaddw = 51 | |
| val vsubw = 52 | |
| val vacc = 53 | |
| val vpadd = 54 | |
| val vpsub = 55 | |
| val vhadd = 56 | |
| val vhsub = 57 | |
| // Format6 | |
| val vslidevn = 58 | |
| val vslidehn = 59 | |
| val vslidehn2 = 60 | |
| val vslidevp = 61 | |
| val vslidehp = 62 | |
| val vslidehp2 = 63 | |
| val vsel = 64 | |
| val vevn = 65 | |
| val vodd = 66 | |
| val vevnodd = 67 | |
| val vzip = 68 | |
| // FormatVVV | |
| val aconv = 69 | |
| val vdwconv = 70 | |
| val adwconv = 71 | |
| // Entries | |
| val entries = 72 | |
| val bits = log2Ceil(entries) | |
| } |