mtkcpu
mtkcpu copied to clipboard
DM: explicitely state register fields types in code, and generate HDL based on that, offline.
currently for Debug Module registers fields, like cmderr field of abstractcs, that due to Debug Specs is W1C (write 1 clears the corresponding bit) we need to explicitely write corresponding logic in HandlerDMI subclass:
comb += self.controller.command_finished.eq(1)
sync += self.reg_abstractcs.cmderr.eq(
self.reg_abstractcs.cmderr & (~write_value.cmderr)
)
Such logic could however be generated automatically for each field of W1C type, bassed on data.Struct fields annotated with field-type metadata.