[libre-riscv-dev] Named Records in nMigen

Jock Tanner tanner.of.kha at gmail.com
Mon Jun 1 08:17:33 BST 2020


Yehowshua,

In case you or anybody else come back to this question eventually: it
is possible to define a subsignal using built-in `slice()`. For
example, if the bits 4-7 of your instruction defines a source register,
you can do something similar to

  INSTR_SRC = slice(4, 8)

  # ...

  m.d.comb += self.src_reg.eq(instr[INSTR_SRC])

... or even wrap slices in standard `enum.Enum`:

  class InstrFormat(Enum):
    dst = slice(4)
    src = slice(4, 8)
    # ...

  m.d.comb += self.src_reg.eq(instr[InstrFormat.src])

Hope it helps.

On Mon, 2020-06-01 at 02:33 -0400, Yehowshua wrote:
> Actually - scratch that - I got it working fine.
> 
> Yehowshua
> 
> _______________________________________________
> libre-riscv-dev mailing list
> libre-riscv-dev at lists.libre-riscv.org
> http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev




More information about the libre-riscv-dev mailing list