bambooflow Note

tlm_generic_payload

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

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_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 エラー
記事メニュー
目安箱バナー