blob: 1bbfa5399c4e393057b236686415fb6dcaa64381 [file] [log] [blame]
/*
* Copyright 2023 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
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
}