1 from nmigen
import Module
, Signal
, Elaboratable
2 from nmigen
.asserts
import Assert
, AnyConst
3 from nmigen
.test
.utils
import FHDLTestCase
5 from soc
.decoder
.power_decoder
import create_pdecode
, PowerOp
6 from soc
.decoder
.power_enums
import In1Sel
, In2Sel
, In3Sel
7 from soc
.decoder
.power_decoder2
import (PowerDecode2
,
11 class Driver(Elaboratable
):
14 def elaborate(self
, platform
):
17 instruction
= Signal(32)
19 comb
+= instruction
.eq(AnyConst(32))
21 pdecode
= create_pdecode()
23 m
.submodules
.pdecode2
= pdecode2
= PowerDecode2(pdecode
)
24 comb
+= pdecode2
.dec
.opcode_in
.eq(instruction
)
26 self
.test_in1(m
, pdecode2
, pdecode
)
30 def test_in1(self
, m
, pdecode2
, pdecode
):
31 with m
.If(pdecode
.op
.in1_sel
== In1Sel
.RA
):
32 m
.d
.comb
+= Assert(pdecode2
.e
.read_reg1
.ok
== 1)
35 class Decoder2TestCase(FHDLTestCase
):
36 def test_decoder2(self
):
38 self
.assertFormal(module
, mode
="bmc", depth
=4)
40 if __name__
== '__main__':