Verification Engineerの戯言
SimpleBusTLInitiator1_DMIクラスのinitTransactionメソッド内で各トランザクションへの
パラメータを次のように設定しています。
これは前回runメソッドで説明したtrans.get_dmi_allowed()に対する初期化です。
コンストラクタの引数nrOfTransactions(デフォルト値は、5)で指定した数ライト・トランザクションを実行します。
その後、同じ数のリード・トランザクションを実行します。
パラメータを次のように設定しています。
bool initTransaction(transaction_type& trans) { // initialize DMI hint: trans.set_dmi_allowed(false); if (mTransactionCount < mNrOfTransactions) { trans.set_address(mBaseAddress + 4*mTransactionCount); mData = mTransactionCount; trans.set_data_ptr(reinterpret_cast<unsigned char*>(&mData)); trans.set_command(tlm::TLM_WRITE_COMMAND); } else if (mTransactionCount < 2 * mNrOfTransactions) { trans.set_address(mBaseAddress + 4*(mTransactionCount-mNrOfTransactions)); mData = 0; trans.set_data_ptr(reinterpret_cast<unsigned char*>(&mData)); trans.set_command(tlm::TLM_READ_COMMAND); } else { return false; } ++mTransactionCount; return true; }最初にtrans.set_dmi_allowed(false)しています。
これは前回runメソッドで説明したtrans.get_dmi_allowed()に対する初期化です。
コンストラクタの引数nrOfTransactions(デフォルト値は、5)で指定した数ライト・トランザクションを実行します。
その後、同じ数のリード・トランザクションを実行します。
トランザクションのアドレスは、set_addressメソッドで、
トランザクションのタイプは、set_commandメソッドで、
トランザクションのデータ・ポインタは、set_data_ptrメソッドで設定します。
トランザクションのタイプは、set_commandメソッドで、
トランザクションのデータ・ポインタは、set_data_ptrメソッドで設定します。
トランザクションへの設定は、このようにすべてメソッドを使って行います。
これでSimpleTLInitiator1(_DMI)クラスについて、大体説明できました。
次回は、SimpleTLInitiator2(_DMI)クラスについてSimpleTLInitiator1(_DMI)クラスとの差分について説明します。