scc 2025.09
SystemC components library
scc::sc_register_mem< DATATYPE, SIZE > Struct Template Reference

#include <register.h>

Inheritance diagram for scc::sc_register_mem< DATATYPE, SIZE >:
Collaboration diagram for scc::sc_register_mem< DATATYPE, SIZE >:

Public Types

using this_type = sc_register_mem<DATATYPE, SIZE>
using store_t = DATATYPE
Public Types inherited from scc::indexed_resource_access_if
using value_type = resource_access_if
using pointer = value_type*
using const_pointer = const value_type*
using reference = value_type&
using const_reference = const value_type&
using iterator = resource_access_if*
using const_iterator = const resource_access_if*

Public Member Functions

 sc_register_mem (sc_core::sc_module_name nm, std::array< DATATYPE, SIZE > &storage, const DATATYPE reset_val, resetable &owner)
 ~sc_register_mem () override
size_t size () override
reference operator[] (size_t idx) noexcept override
const_reference operator[] (size_t idx) const noexcept override
reference at (size_t idx) override
const_reference const at (size_t idx) const override
void set_read_cb (std::function< bool(const this_type &, size_t offset, DATATYPE &, sc_core::sc_time &)> read_cb)
 set the read callback
void set_write_cb (std::function< bool(this_type &, size_t offset, const DATATYPE &, sc_core::sc_time &)> write_cb)
 set the write callback triggered upon a write request
Public Member Functions inherited from scc::indexed_resource_access_if
virtual reference operator[] (std::size_t idx) noexcept=0
 get value at index
virtual const_reference operator[] (std::size_t idx) const noexcept=0
 get value at index
virtual reference at (std::size_t idx)=0
virtual const_reference at (std::size_t idx) const =0

Detailed Description

template<typename DATATYPE, size_t SIZE>
struct scc::sc_register_mem< DATATYPE, SIZE >

an indexed register aka a register file of a certain type

Definition at line 479 of file register.h.

Member Typedef Documentation

◆ store_t

template<typename DATATYPE, size_t SIZE>
using scc::sc_register_mem< DATATYPE, SIZE >::store_t = DATATYPE

Definition at line 481 of file register.h.

◆ this_type

template<typename DATATYPE, size_t SIZE>
using scc::sc_register_mem< DATATYPE, SIZE >::this_type = sc_register_mem<DATATYPE, SIZE>

Definition at line 480 of file register.h.

Constructor & Destructor Documentation

◆ sc_register_mem()

template<typename DATATYPE, size_t SIZE>
scc::sc_register_mem< DATATYPE, SIZE >::sc_register_mem ( sc_core::sc_module_name nm,
std::array< DATATYPE, SIZE > & storage,
const DATATYPE reset_val,
resetable & owner )
inline

the constructor

Parameters
nm
storage
reset_val
owner
rdmask
wrmask

Definition at line 545 of file register.h.

◆ ~sc_register_mem()

template<typename DATATYPE, size_t SIZE>
scc::sc_register_mem< DATATYPE, SIZE >::~sc_register_mem ( )
inlineoverride

the destructor

Definition at line 552 of file register.h.

Member Function Documentation

◆ at() [1/2]

template<typename DATATYPE, size_t SIZE>
const_reference const scc::sc_register_mem< DATATYPE, SIZE >::at ( size_t idx) const
inlineoverride

const element access operator

Parameters
idx
Returns
the data reference at the index

Definition at line 589 of file register.h.

◆ at() [2/2]

template<typename DATATYPE, size_t SIZE>
reference scc::sc_register_mem< DATATYPE, SIZE >::at ( size_t idx)
inlineoverride

Element access operator

Parameters
idxthe index
Returns
the data reference at the index

Definition at line 579 of file register.h.

◆ operator[]() [1/2]

template<typename DATATYPE, size_t SIZE>
const_reference scc::sc_register_mem< DATATYPE, SIZE >::operator[] ( size_t idx) const
inlineoverridenoexcept

const element access operator

Parameters
idx
Returns
the data reference at the index

Definition at line 572 of file register.h.

◆ operator[]() [2/2]

template<typename DATATYPE, size_t SIZE>
reference scc::sc_register_mem< DATATYPE, SIZE >::operator[] ( size_t idx)
inlineoverridenoexcept

Element access operator

Parameters
idxthe index
Returns
the data reference at the index

Definition at line 565 of file register.h.

◆ set_read_cb()

template<typename DATATYPE, size_t SIZE>
void scc::sc_register_mem< DATATYPE, SIZE >::set_read_cb ( std::function< bool(const this_type &, size_t offset, DATATYPE &, sc_core::sc_time &)> read_cb)
inline

set the read callback

The read callback functor triggered upon a read request.

Parameters
read_cbthe callback functor

Definition at line 600 of file register.h.

◆ set_write_cb()

template<typename DATATYPE, size_t SIZE>
void scc::sc_register_mem< DATATYPE, SIZE >::set_write_cb ( std::function< bool(this_type &, size_t offset, const DATATYPE &, sc_core::sc_time &)> write_cb)
inline

set the write callback triggered upon a write request

The write callback functor is triggered upon a write request.

Parameters
write_cbthe callback functor

Definition at line 608 of file register.h.

◆ size()

template<typename DATATYPE, size_t SIZE>
size_t scc::sc_register_mem< DATATYPE, SIZE >::size ( )
inlineoverridevirtual

get the size of the register file

Returns
the size

Implements scc::indexed_resource_access_if.

Definition at line 558 of file register.h.


The documentation for this struct was generated from the following file:
  • /home/eyck/Projects/MINRES/SystemC-Components/src/components/scc/register.h