outgoing_port)
に発行されたパケットに記載されている情報を元に、そ
れぞれに応じた処理を行う必要がある。
パケットに記載された情報は、次のようにすれば取得できる。
isim_processorの外部出力ポート(outgoing_port)
にport_Aという名の
外部システムのポートが接続されているとする。
if ( port_A.have_packet() && port_A.inst_id() != -1 ) {
int inst_id = port_A.inst_id();
md_addr_t addr = port_A.addr();
word_t data = port_A.data();
word_t data2 = port_A.data2();
half_t data_half = port_A.data_half();
byte_t data_byte = port_A.data_byte();
int data_size = port_A.data_size();
int rw = port_A.rw();
int puid = port_A.puid();
/* パケットを取得したので、初期化する */
port_A.reset_packet();
/* パケットに応じた処理を以下に記述 */
……………
……………
}
|
パケットの初期状態におけるinst_idの値は-1であり、
isim_processorから発行されるパケットのinst_idには
正の値が入るため、パケットの情報取得の条件に
port_A.inst_id() != -1
を入れることによって、無駄な処理を省くことができる。
また、情報を取得した後、
port_A.reset_packet(); |
outgoing_port)に発行できるようになる。