self.sv_pred_dm = Signal() # TODO: SIMD width
# issue/valid/busy signalling
- self.ii_valid = Signal(reset_less=True) # instruction is valid
+ self.ivalid_i = Signal(reset_less=True) # instruction is valid
self.issue_i = Signal(reset_less=True)
self.busy_o = Signal(name="corebusy_o", reset_less=True)
sync += counter.eq(counter - 1)
comb += self.busy_o.eq(1)
- with m.If(self.ii_valid): # run only when valid
+ with m.If(self.ivalid_i): # run only when valid
with m.Switch(self.e.do.insn_type):
# check for ATTN: halt if true
with m.Case(MicrOp.OP_ATTN):
# temporaries
core_busy_o = core.busy_o # core is busy
- core_ii_valid = core.ii_valid # instruction is valid
+ core_ivalid_i = core.ivalid_i # instruction is valid
core_issue_i = core.issue_i # instruction is issued
insn_type = core.e.do.insn_type # instruction MicroOp type
with m.State("INSN_START"):
comb += exec_insn_o_ready.eq(1)
with m.If(exec_insn_i_valid):
- comb += core_ii_valid.eq(1) # instruction is valid
+ comb += core_ivalid_i.eq(1) # instruction is valid
comb += core_issue_i.eq(1) # and issued
sync += sv_changed.eq(0)
sync += pc_changed.eq(0)
# instruction started: must wait till it finishes
with m.State("INSN_ACTIVE"):
with m.If(insn_type != MicrOp.OP_NOP):
- comb += core_ii_valid.eq(1) # instruction is valid
+ comb += core_ivalid_i.eq(1) # instruction is valid
# note changes to PC and SVSTATE
with m.If(self.state_nia.wen & (1<<StateRegs.SVSTATE)):
sync += sv_changed.eq(1)
m = Module()
comb = m.d.comb
instruction = Signal(32)
- ii_valid = Signal()
+ ivalid_i = Signal()
pspec = TestMemPspec(ldst_ifacetype='testpi',
imem_ifacetype='',
l0 = core.l0
comb += core.raw_opcode_i.eq(instruction)
- comb += core.ii_valid.eq(ii_valid)
+ comb += core.ivalid_i.eq(ivalid_i)
# temporary hack: says "go" immediately for both address gen and ST
ldst = core.fus.fus['ldst0']
# ask the decoder to decode this binary data (endian'd)
yield core.bigendian_i.eq(bigendian) # little / big?
yield instruction.eq(ins) # raw binary instr.
- yield ii_valid.eq(1)
+ yield ivalid_i.eq(1)
yield Settle()
# fn_unit = yield pdecode2.e.fn_unit
#fuval = self.funit.value
yield Settle()
yield from wait_for_busy_clear(core)
- yield ii_valid.eq(0)
+ yield ivalid_i.eq(0)
yield
print("sim", code)