soc.fu package¶
Subpackages¶
- soc.fu.alu package
- soc.fu.branch package
- soc.fu.compunits package
- Subpackages
- soc.fu.compunits.formal package
- soc.fu.compunits.test package
- Submodules
- soc.fu.compunits.test.test_alu_compunit module
- soc.fu.compunits.test.test_branch_compunit module
- soc.fu.compunits.test.test_compunit module
- soc.fu.compunits.test.test_cr_compunit module
- soc.fu.compunits.test.test_div_compunit module
- soc.fu.compunits.test.test_ldst_compunit module
- soc.fu.compunits.test.test_logical_compunit module
- soc.fu.compunits.test.test_shiftrot_compunit module
- soc.fu.compunits.test.test_spr_compunit module
- soc.fu.compunits.test.test_trap_compunit module
- Module contents
- Submodules
- soc.fu.compunits.compunits module
- Module contents
- Subpackages
- soc.fu.cr package
- soc.fu.div package
- Subpackages
- Submodules
- soc.fu.div.core_stages module
- soc.fu.div.fsm module
- soc.fu.div.input_stage module
- soc.fu.div.output_stage module
- soc.fu.div.pipe_data module
- soc.fu.div.pipeline module
- soc.fu.div.setup_stage module
- soc.fu.div.sim_only_core module
- Module contents
- soc.fu.ldst package
- soc.fu.logical package
- Subpackages
- Submodules
- soc.fu.logical.bpermd module
- soc.fu.logical.countzero module
- soc.fu.logical.input_stage module
- soc.fu.logical.logical_input_record module
- soc.fu.logical.main_stage module
- soc.fu.logical.output_stage module
- soc.fu.logical.pipe_data module
- soc.fu.logical.pipeline module
- soc.fu.logical.popcount module
- Module contents
- soc.fu.mmu package
- soc.fu.mul package
- soc.fu.shift_rot package
- Subpackages
- Submodules
- soc.fu.shift_rot.input_stage module
- soc.fu.shift_rot.main_stage module
- soc.fu.shift_rot.maskgen module
- soc.fu.shift_rot.output_stage module
- soc.fu.shift_rot.pipe_data module
- soc.fu.shift_rot.pipeline module
- soc.fu.shift_rot.rotator module
- soc.fu.shift_rot.rotl module
- soc.fu.shift_rot.sr_input_record module
- Module contents
- soc.fu.spr package
- soc.fu.test package
- soc.fu.trap package
Submodules¶
soc.fu.base_input_record module¶
soc.fu.common_input_stage module¶
soc.fu.common_output_stage module¶
soc.fu.pipe_data module¶
-
class
soc.fu.pipe_data.
CommonPipeSpec
(id_wid)¶ Bases:
object
CommonPipeSpec: base class for all pipeline specifications see README.md for explanation of members.
-
class
soc.fu.pipe_data.
IntegerData
(pspec, output)¶ Bases:
object
IntegerData: base class for all pipeline data structures
see README.md for explanation of parameters and purpose.
note the mode parameter - output. XXXInputData specs must have this set to “False”, and XXXOutputData specs (and anything that creates intermediary outputs which propagate through a pipeline to output) must have it set to “True”.
-
eq
(i)¶
-
ports
()¶
-
-
soc.fu.pipe_data.
get_rec_width
(rec)¶
soc.fu.regspec module¶
RegSpecs
see https://libre-soc.org/3d_gpu/architecture/regfile/ section on regspecs
this module is a key strategic module that links pipeline specifications (soc.fu.*.pipe_data and soc.fo.*.pipeline) to MultiCompUnits. MultiCompUnits know absolutely nothing about the data passing through them: all they know is: how many inputs they need to manage, and how many outputs.
regspecs tell MultiCompUnit what the ordering of the inputs is, how many to create, and how to connect them up to the ALU being “managed” by this CompUnit. likewise for outputs.
later (TODO) the Register Files will be connected to MultiCompUnits, and, again, the regspecs will say which Regfile (which type) is connected to which MultiCompUnit port, how wide the connection is, and so on.
-
class
soc.fu.regspec.
RegSpecALUAPI
(rwid, alu)¶ Bases:
soc.fu.regspec.RegSpecAPI
-
get_in
(i)¶
-
get_op
()¶
-
get_out
(i)¶
-
-
class
soc.fu.regspec.
RegSpecAPI
(rwid)¶ Bases:
object
-
get_in_name
(i)¶
-
get_in_spec
(i)¶
-
get_out_name
(i)¶
-
get_out_spec
(i)¶
-
-
soc.fu.regspec.
get_regspec_bitwidth
(regspec, srcdest, idx)¶