PandA-2024.02
Public Member Functions | Protected Member Functions
reg_binding_cs Class Reference

#include <reg_binding_cs.hpp>

Inheritance diagram for reg_binding_cs:
Inheritance graph
[legend]
Collaboration diagram for reg_binding_cs:
Collaboration graph
[legend]

Public Member Functions

 reg_binding_cs (const hlsRef &HLS, const HLS_managerRef HLSMgr_)
 Constructor. More...
 
 ~reg_binding_cs () override
 Destructor. More...
 
- Public Member Functions inherited from reg_binding
 reg_binding (const hlsRef &HLS, const HLS_managerRef HLSMgr_)
 Constructor. More...
 
 ~reg_binding () override
 Destructor. More...
 
void bind (unsigned int sv, unsigned int index)
 
unsigned int get_used_regs () const
 returns number of used register More...
 
void set_used_regs (unsigned int regs)
 sets number of used register More...
 
unsigned int get_register (unsigned int sv) const
 return the register index where the storage value is stored More...
 
bool is_all_regs_without_enable ()
 return true when all registers are without write enable: pipelining comes for free More...
 
void print_el (const_iterator &it) const override
 Function that print the register binding associated with a storage value. More...
 
generic_objRef get (const unsigned int &r) const
 Returns reference to register object associated to a given index. More...
 
const register_objoperator[] (unsigned int v)
 redefinition of the [] operator More...
 
virtual void add_to_SM (structural_objectRef clock_port, structural_objectRef reset_port)
 Add the resulting registers to the structural description of the datapath. More...
 
unsigned long long get_bitsize (unsigned int r) const
 return bitsize More...
 
- Public Member Functions inherited from variable2obj< generic_objRef >
 variable2obj ()=default
 Constructor. More...
 
virtual ~variable2obj ()=default
 Destructor. More...
 
virtual void print_el (typename variable2obj< generic_objRef >::const_iterator &it) const=0
 Function that print the information associated with a variable. More...
 
virtual void print () const
 Function that prints the class variable2obj. More...
 
const generic_objRef operator() (const unsigned int &__k) const
 
void resize (Iterator left, Iterator right, int val)
 

Protected Member Functions

std::string GetRegisterFUName (unsigned int i) override
 return the name of register to be used More...
 
void specialise_reg (structural_objectRef &reg, unsigned int r) override
 Specialise a register according to the type of the variables crossing it. More...
 
- Protected Member Functions inherited from reg_binding
void compute_is_without_enable ()
 compute the is with out enable relation More...
 

Additional Inherited Members

- Public Types inherited from reg_binding
using type_t = enum { STG=0, CDFG }
 
- Static Public Member Functions inherited from reg_binding
static reg_bindingRef create_reg_binding (const hlsRef &HLS, const HLS_managerRef HLSMgr_)
 
- Protected Attributes inherited from reg_binding
int debug
 level of the verbosity during the debugging More...
 
unsigned int used_regs
 number of used register More...
 
std::map< unsigned int, generic_objRefunique_table
 map between register index and object More...
 
std::map< unsigned int, generic_objRefstall_reg_table
 map between std register index and stall register object for pipelines More...
 
std::map< unsigned int, unsigned int > reverse_map
 bind the storage value with the register instance More...
 
std::map< unsigned int, unsigned long long > bitsize_map
 relation between registers and their bitsize More...
 
hlsRef HLS
 HLS data-structure. More...
 
const HLS_managerRef HLSMgr
 information about all the HLS synthesis More...
 
std::map< unsigned int, CustomOrderedSet< unsigned int > > reg2storage_values
 map between the register and the associated storage value More...
 
CustomOrderedSet< unsigned int > is_without_enable
 store the set of register without enable More...
 
bool all_regs_without_enable
 when true all registers do not require write enable: pipelining comes for free More...
 
const FunctionBehaviorConstRef FB
 
- Static Protected Attributes inherited from reg_binding
static std::string reset_type
 

Detailed Description

Definition at line 46 of file reg_binding_cs.hpp.

Constructor & Destructor Documentation

◆ reg_binding_cs()

reg_binding_cs::reg_binding_cs ( const hlsRef HLS,
const HLS_managerRef  HLSMgr_ 
)

Constructor.

STD include.

Definition at line 54 of file reg_binding_cs.cpp.

References ~reg_binding_cs().

Here is the call graph for this function:

◆ ~reg_binding_cs()

reg_binding_cs::~reg_binding_cs ( )
overridedefault

Destructor.

Referenced by reg_binding_cs().

Here is the caller graph for this function:

Member Function Documentation

◆ GetRegisterFUName()

std::string reg_binding_cs::GetRegisterFUName ( unsigned int  i)
overrideprotectedvirtual

return the name of register to be used

Parameters
iis the id of the register
Returns
std::string The FU name for the given register

Reimplemented from reg_binding.

Definition at line 60 of file reg_binding_cs.cpp.

◆ specialise_reg()

void reg_binding_cs::specialise_reg ( structural_objectRef reg,
unsigned int  r 
)
overrideprotectedvirtual

Specialise a register according to the type of the variables crossing it.

Parameters
regis the register
ris the id of the register

Reimplemented from reg_binding.

Definition at line 65 of file reg_binding_cs.cpp.

References ceil_log2(), structural_object::find_member(), reg_binding::HLS, hls::Param, port_o_K, SELECTOR_REGISTER_FILE, reg_binding::specialise_reg(), STR, and structural_object::type_resize().

Here is the call graph for this function:

The documentation for this class was generated from the following files:

Generated on Mon Feb 12 2024 13:04:02 for PandA-2024.02 by doxygen 1.8.13