self.w_ports = {'o': self.write_port("dest1"),
#'o1': self.write_port("dest2") # for now (LD/ST update)
}
- self.r_ports = {'rabc': self.read_port("src1"),
- #'rbc': self.read_port("src3"),
+ self.r_ports = {'ra': self.read_port("src1"),
+ 'rb': self.read_port("src2"),
+ 'rc': self.read_port("src3"),
'dmi': self.read_port("dmi")} # needed for Debug (DMI)
SRR1 = 4
def __init__(self):
super().__init__(64, 5)
- self.w_ports = {'fast1': self.write_port("dest3"),
+ self.w_ports = {'fast1': self.write_port("dest1"),
}
self.r_ports = {'fast1': self.read_port("src1"),
+ 'fast2': self.read_port("src2"),
}
# argh. an experiment to merge RA and RB in the INT regfile
# (we have too many read/write ports)
- if regfile == 'INT':
- fuspecs['rabc'] = [fuspecs.pop('rb')]
- fuspecs['rabc'].append(fuspecs.pop('rc'))
- fuspecs['rabc'].append(fuspecs.pop('ra'))
- if regfile == 'FAST':
- fuspecs['fast1'] = [fuspecs.pop('fast1')]
- fuspecs['fast1'].append(fuspecs.pop('fast2'))
+ #if regfile == 'INT':
+ #fuspecs['rabc'] = [fuspecs.pop('rb')]
+ #fuspecs['rabc'].append(fuspecs.pop('rc'))
+ #fuspecs['rabc'].append(fuspecs.pop('ra'))
+ #if regfile == 'FAST':
+ # fuspecs['fast1'] = [fuspecs.pop('fast1')]
+ # if 'fast2' in fuspecs:
+ # fuspecs['fast1'].append(fuspecs.pop('fast2'))
# for each named regfile port, connect up all FUs to that port
for (regname, fspec) in sort_fuspecs(fuspecs):
fuspecs['o'].append(fuspecs.pop('o1'))
if regfile == 'FAST':
fuspecs['fast1'] = [fuspecs.pop('fast1')]
- fuspecs['fast1'].append(fuspecs.pop('fast2'))
+ if 'fast2' in fuspecs:
+ fuspecs['fast1'].append(fuspecs.pop('fast2'))
for (regname, fspec) in sort_fuspecs(fuspecs):
self.connect_wrport(m, fu_bitdict, wrpickers,
if __name__ == '__main__':
- units = {'alu': 1, 'cr': 1, 'branch': 1, 'trap': 1, 'logical': 1,
+ units = {'alu': 1,
+ 'cr': 1, 'branch': 1, 'trap': 1,
+ 'logical': 1,
'spr': 1,
'div': 1,
'mul': 1,
- 'shiftrot': 1}
+ 'shiftrot': 1
+ }
pspec = TestMemPspec(ldst_ifacetype='bare_wb',
imem_ifacetype='bare_wb',
addr_wid=48,