Instruction Decode

The Rv32GroupDecoder module maps a 32-bit RISC-V instruction encoding onto a representation of an instruction called a “macro-op.”


class ember.decode.DecodeRequest(param: EmberParams)

Request to decode a single instruction.

class ember.decode.DecodeResponse(param: EmberParams)
class ember.decode.Rv32GroupDecoder(*args, src_loc_at=0, **kwargs)

A decoder that maps a single RV32 instruction onto a macro-op.

Warning

For now, this decoder probably synthesizes into many cascading levels of logic. This is probably fine for simple testing, but the delay on actual hardware is probably too great to be clocked very high.

Instead, you probably want to check all cases in parallel, priority encode the resulting bits, and then use the index to access a table of macro-op constants.