def __init__(self):
n_sprs = len(SPR)
super().__init__(64, n_sprs)
- self.w_ports = [self.write_port("dest")]
+ self.w_ports = [self.write_port(name="dest")]
self.r_ports = [self.read_port("src")]
+# class containing all regfiles: int, cr, xer, fast, spr
class RegFiles:
def __init__(self):
- self.int = IntRegs()
- self.cr = CRRegs()
- self.xer = XERRegs()
- self.fasr = FastRegs()
- self.spr = SPRRegs()
+ self.rf = {}
+ for (name, kls) in [('int', IntRegs),
+ ('cr', CRRegs),
+ ('xer', XERRegs),
+ ('fasr', FastRegs),
+ ('spr', SPRRegs),]:
+ rf = self.rf[name] = kls()
+ setattr(self, name, rf)
+
+ def elaborate_into(self, m, platform):
+ for (name, rf) in self.rf.items():
+ setattr(m.submodules, name, rf)
+ return m