[Libre-soc-bugs] [Bug 737] in-order single-issue Power ISA 3.0 core
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Sat Oct 30 22:17:46 BST 2021
https://bugs.libre-soc.org/show_bug.cgi?id=737
--- Comment #2 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/regfile/regfiles.py;hb=HEAD
regfiles are created either binary-addressed or unary-addressed,
core.py shows how:
267 # select the required read port. these are pre-defined sizes
268 rfile = regs.rf[regfile.lower()]
...
329 if rfile.unary:
330 rens.append(addr_en)
331 else:
332 addrs.append(addr_en)
333 rens.append(rp)
therefore, for creating a bitvector class, the Regfiles.rf dict can be
enumerated, and a series of setter/getter ports added.
funnily enough, a good class to use for that would be... an unary-addressable
regfile!
probably: RegFileArray(32, 1) - 3 regs but 1 bit per reg.
there will only be one bit per "reg", but enough ports need to be added
so that issue can read all it needs and write all bits from all operands
simultaneously.
by that i mean:
* for LD with update there are 2 reads and 2 write regs (GPRs)
* ST with update, 3 reads 1 write
* mul-accumulate 3 read 1 write
therefore the INT reg bitvector "regfile" will need to be 2W
but only 1R because although you want to be able to write 2
bits simultaneously (LD-with-update) only the Issuer will be
reading the global vector.
similar analysis for CR file.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list