TLM-2.0 Generic Payloadについて
Generic Payload(ジェネリック・ペイロード)とは
TLM-2.0において関数コールインターフェースの引数として受け渡しする統一された構造体。
これを使用することで、各モデルのインタフェースの共通性が向上される。
これを使用することで、各モデルのインタフェースの共通性が向上される。
tlm_generic_payloadについて
tlm_generic_payloadクラス
tlm_generic_payloadはtlm::tlm_mm_interfaceを継承している。
メンバ
メンバ変数はすべてprivateになっている。
よって、アクセスはすべてメソッドからとなる。
よって、アクセスはすべてメソッドからとなる。
型 | 変数名 | 説明 |
sc_dt::uint64 | m_address | 64ビットアドレス |
tlm_command | m_command | |
unsigned char* | m_data | データポインタ |
unsigned int | m_length | データ長(バイト数) |
tlm_response_status | m_response_status | |
bool | m_dmi | |
unsigneded char* | m_byte_enable | |
unsigned int | m_byte_enable_length | |
unsinged int | m_strewaming_width | |
tlm_array<tlm_extension_baase*> | m_extensions | |
tlm_mm_iinterface* | m_mm | |
unsigned int | m_ref_count |
メソッド(メンバ関数)
以下に基本的なメソッドをあげる。
詳細はここを参照。
詳細はここを参照。
m_ref_countへのアクセス
void acquire()
m_ref_countをインクリメント
void release()
m_ref_countをデクリメント
int get_ref_count()
m_ref_countの値を返す
m_mmへのアクセス
void set_mm(tlm_mm_interface *mm) bool has_mm()
reset() deep_copy_from(const tlm_generic_payload &other)
ペイロードのコピー。データのポインタの先も複製する。
m_commandへのアクセス
bool is_read() const
m_commandがTLM_READ_COMMANDのときtrueを返す。
void set_read()
m_commandにTLM_READ_COMMANDを設定する。
bool is_write() const
m_commandがTLM_WRITE_COMMANDのときtrueを返す。
void set_write()
m_commandにTLM_WRITE_COMMANDを設定する。
tlm_command get_command() const void set_command( const tlm_command command )
m_commandの設定/取得。
m_addressへのアクセス
sc_dt::uint64 get_address() const void set_address( const sc_dt::uint64 address )
m_addressの設定/取得。
m_dataへのアクセス
unsigned char* get_data_ptr() const void set_data_ptr( unsigned char* data )
m_data(データのポインタ)の設定/取得。
m_lengthへのアクセス
unsigned int get_data_length() const void set_data_length( const unsigned int length )
m_length(データ長byte)の設定/取得。
m_response_statusへのアクセス
bool is_response_ok() const
m_response_statusがTLM_OK_RESPONSEであればtrueを返す。
bool is_response_error() const
m_response_statusがエラー
(TLM_GENERIC_ERROR_RESPONSE、TLM_ADDRESS_ERROR_RESPONSE、
TLM_COMMAND_ERROR_RESPONSE、TLM_BURST_ERROR_RESPONSE、
TLM_BYTE_ENABLE_ERROR_RESPONSEのいずれか)であればtrueを返す。
(TLM_GENERIC_ERROR_RESPONSE、TLM_ADDRESS_ERROR_RESPONSE、
TLM_COMMAND_ERROR_RESPONSE、TLM_BURST_ERROR_RESPONSE、
TLM_BYTE_ENABLE_ERROR_RESPONSEのいずれか)であればtrueを返す。
tlm_response_status get_response_status() conset void set_response_status( const tlm_response_status response_status )
m_response_statusの設定/取得をする。
std::string get_response_string() const
m_response_statusの文字列を返す。
m_streaming_widthへのアクセス
unsigned int get_streaming_width() const void set_streaming_width( const unsigned int streaming_width )
m_streaming_widthの設定/取得。
m_byte_enableへのアクセス
unsigned char* get_byte_enable_ptr() const void set_byte_enable_ptr (unsigned char *byte_enable)
m_byte_enable_ptrの設定/取得。
m_byte_enable_lengthへのアクセス
unsigned int get_byte_enable_length() const void set_byte_enable_length (const unsigned int byte_enable_length)
m_byte_enable_lengthの設定/取得。
m_dmiへのアクセス
void set_dmi_allowed( bool dmi_allowed ) bool is_dmi_allowed() const
m_dmiの設定/取得
tlm_command列挙
次の3つがある。
TLM_READ_COMMAND | |
TLM_WRITE_COMMASND | |
TLM_IGNORE_COMMAND |
tlm_response_status列挙
次の7つがある。
TLM_OK_RESPONSE=1 | |
TLM_INCOMPLETE_RESPONSE=0 | |
TLM_GENERIC_ERROR_RESPONSE=-1 | エラー |
TLM_ADDRESS_ERROR_RESPONSE=-2 | エラー |
TLM_COMMAND_ERROR_RESPONSE=-3 | エラー |
TLM_BURST_ERROR_RESPONSE=-4 | エラー |
TLM_BYTE_ENABLE_ERROR_RESPONSE=-5 | エラー |