soc.fu.spr package¶
Subpackages¶
Submodules¶
soc.fu.spr.main_stage module¶
SPR Pipeline
soc.fu.spr.pipe_data module¶
SPR Pipeline Data structures
Covers MFSPR and MTSPR. however given that the SPRs are split across XER (which is 3 separate registers), Fast-SPR and Slow-SPR regfiles, the data structures are slightly more involved than just “INT, SPR”.
Links: * https://bugs.libre-soc.org/show_bug.cgi?id=348 * https://libre-soc.org/openpower/isa/sprset/ * https://libre-soc.org/3d_gpu/architecture/regfile/
-
class
soc.fu.spr.pipe_data.
SPRInputData
(pspec)¶ Bases:
soc.fu.pipe_data.IntegerData
-
regspec
= [('INT', 'ra', '0:63'), ('SPR', 'spr1', '0:63'), ('FAST', 'fast1', '0:63'), ('XER', 'xer_so', '32'), ('XER', 'xer_ov', '33,44'), ('XER', 'xer_ca', '34,45')]¶
-
-
class
soc.fu.spr.pipe_data.
SPROutputData
(pspec)¶ Bases:
soc.fu.pipe_data.IntegerData
-
regspec
= [('INT', 'o', '0:63'), ('SPR', 'spr1', '0:63'), ('FAST', 'fast1', '0:63'), ('XER', 'xer_so', '32'), ('XER', 'xer_ov', '33,44'), ('XER', 'xer_ca', '34,45')]¶
-
-
class
soc.fu.spr.pipe_data.
SPRPipeSpec
(id_wid)¶ Bases:
soc.fu.pipe_data.CommonPipeSpec
-
opsubsetkls
¶
-
regspec
= ([('INT', 'ra', '0:63'), ('SPR', 'spr1', '0:63'), ('FAST', 'fast1', '0:63'), ('XER', 'xer_so', '32'), ('XER', 'xer_ov', '33,44'), ('XER', 'xer_ca', '34,45')], [('INT', 'o', '0:63'), ('SPR', 'spr1', '0:63'), ('FAST', 'fast1', '0:63'), ('XER', 'xer_so', '32'), ('XER', 'xer_ov', '33,44'), ('XER', 'xer_ca', '34,45')])¶
-
soc.fu.spr.pipeline module¶
soc.fu.spr.spr_input_record module¶
-
class
soc.fu.spr.spr_input_record.
CompSPROpSubset
(name=None)¶ Bases:
soc.fu.base_input_record.CompOpSubsetBase
a copy of the relevant subset information from Decode2Execute1Type needed for TRAP operations. use with eq_from_execute1 (below) to grab subsets.