#ifndef ATOMIC_TAB_V1_H_ #define ATOMIC_TAB_V1_H_ #include #include #include #include "arithmetics.h" //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /* The atomic access tab */ //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// class AtomicTab{ typedef uint32_t size_t; typedef sc_dt::sc_uint<40> addr_t; private: size_t size_tab; // The size of the tab std::vector addr_tab; // Address entries std::vector valid_tab; // Valid entries public: AtomicTab() : addr_tab(0), valid_tab(0) { size_tab=0; } AtomicTab(size_t size_tab_i) : addr_tab(size_tab_i), valid_tab(size_tab_i) { size_tab=size_tab_i; } ///////////////////////////////////////////////////////////////////// /* The size() function returns the size of the tab */ ///////////////////////////////////////////////////////////////////// const size_t size(){ return size_tab; } ///////////////////////////////////////////////////////////////////// /* The init() function initializes the transaction tab entries */ ///////////////////////////////////////////////////////////////////// void init(){ for ( size_t i=0; i