blob: 1292222c052f81f662cfc06a215aa2fcc21d5a91 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// See LICENSE for license details.
package chiselTests
import chisel3._
import org.scalatest._
import org.scalatest.prop._
import chisel3.testers.BasicTester
class BitwiseOpsTester(w: Int, _a: Int, _b: Int) extends BasicTester {
val mask = (1 << w) - 1
val a = _a.asUInt(w.W)
val b = _b.asUInt(w.W)
assert(~a === (mask & ~_a).asUInt)
assert((a & b) === (_a & _b).asUInt)
assert((a | b) === (_a | _b).asUInt)
assert((a ^ b) === (_a ^ _b).asUInt)
stop()
}
class BitwiseOpsSpec extends ChiselPropSpec {
property("All bit-wise ops should return the correct result") {
forAll(safeUIntPair) { case(w: Int, a: Int, b: Int) =>
assertTesterPasses{ new BitwiseOpsTester(w, a, b) }
}
}
}
|