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
)に発行できるようになる。