Transaction-Level Modeling Framework for Space Applications
#include <sc_register.h>
Public Member Functions | |
sc_register_b (const char *name, const T &reset_val) | |
sc_register_b (const char *name, const T &reset_val, const char *desc) | |
virtual | ~sc_register_b () |
void | reset () |
virtual const T & | read () const |
virtual void | write (const T &) |
void | update () |
unsigned int | number_of_fields () const |
const sc_register_field_vec & | get_all_fields () const |
virtual const T & | get_mask () const |
scireg_ns::scireg_response | scireg_read (scireg_ns::vector_byte &v, sc_dt::uint64 size, sc_dt::uint64 offset) const |
Read a vector of "size" bytes at given offset in this region: More... | |
scireg_ns::scireg_response | scireg_write (const scireg_ns::vector_byte &v, sc_dt::uint64 size, sc_dt::uint64 offset) |
Write a vector of "size" bytes at given offset in this region: More... | |
sc_dt::uint64 | scireg_get_bit_width () const |
Get bit width and byte width of this region. More... | |
scireg_ns::scireg_response | scireg_add_callback (scireg_ns::scireg_callback &cb) |
Add/Delete Callback objects associated with this region. More... | |
scireg_ns::scireg_response | scireg_remove_callback (scireg_ns::scireg_callback &cb) |
Public Member Functions inherited from sc_register_base | |
sc_register_base () | |
sc_register_base (const char *name) | |
sc_register_base (const char *name, const char *desc) | |
virtual | ~sc_register_base () |
virtual const char * | kind () const |
const char * | desc () const |
virtual sc_register_access_mode | access_mode () const =0 |
Public Member Functions inherited from scireg_ns::scireg_region_if | |
scireg_region_if () | |
virtual | ~scireg_region_if () |
virtual scireg_response | scireg_get_bit_attributes (vector_byte &v, scireg_bit_attributes_type t, sc_dt::uint64 size, sc_dt::uint64 offset=0) const |
Get bit attributes of type "t" into "v". "size" represents number of bytes returned, offset can be used to constrain the range. More... | |
virtual sc_dt::uint64 | scireg_get_byte_width () const |
virtual sc_dt::uint64 | scireg_get_low_pos () const |
If this region is a register field, these functions return low bit and high bit positions: More... | |
virtual sc_dt::uint64 | scireg_get_high_pos () const |
virtual scireg_response | scireg_get_parent_regions (std::vector< scireg_region_if * > &v) const |
Get parent regions of this region. More... | |
virtual scireg_response | scireg_get_target_sockets (std::vector< sc_core::sc_object * > &v) const |
Get SC TLM2 Target socket associated with this region. More... | |
virtual scireg_response | scireg_get_value_info (std::vector< scireg_value_info > &v) const |
Get a vector of value_info objects for this region. More... | |
virtual scireg_response | scireg_get_dmi_granted (bool &granted, sc_dt::uint64 size, sc_dt::uint64 offset=0) const |
Query to see if DMI access has been granted to this region. "size" and offset can be used to constrain the range. More... | |
Protected Member Functions | |
void | add_field (sc_register_field_base *f) |
virtual const T & | mask_read (const T &, unsigned int) const |
virtual void | mask_write (const T &, const T &, unsigned int) |
void | check_and_init () |
Protected Member Functions inherited from sc_register_base | |
virtual scireg_ns::scireg_response | scireg_get_string_attribute (const char *&s, scireg_ns::scireg_string_attribute_type t) const |
Get string attributes of type "t" associated with this region. The returned string is assigned to "s". More... | |
virtual scireg_ns::scireg_response | scireg_get_region_type (scireg_ns::scireg_region_type &t) const |
Get the region_type of this region: More... | |
scireg_ns::scireg_response | scireg_get_child_regions (std::vector< scireg_ns::scireg_mapped_region > &mapped_regions, sc_dt::uint64 size, sc_dt::uint64 offset) const |
virtual scireg_ns::scireg_response | scireg_get_parent_modules (std::vector< sc_core::sc_module * > &v) const |
Get parent SystemC modules associated with this region. More... | |
Protected Attributes | |
T | m_cur_val |
T | m_reset_val |
sc_core::sc_event * | m_probe_event |
::std::vector < scireg_ns::scireg_callback * > | scireg_callback_vec |
T | m_mask |
sc_register_field_vec | m_fields |
Protected Attributes inherited from sc_register_base | |
::std::string | m_desc |
Friends | |
class | sc_register_field_b< T > |
Additional Inherited Members | |
Static Public Member Functions inherited from sc_register_base | |
static const char * | access_type_to_str (sc_register_access_type accessType) |
static const char * | access_mode_to_str (sc_register_access_mode accessMode) |
T is the datatype of register. It models the register value transferred over bus.
A register's base class, argumented with T (datatype), implements register APIs.
Register's read()/write() methods are defined in this class, instead of in sc_register<T,M>, reduces the number of specialazations of these methods.