In reply to NiLu:
try_next_item will always return whether the transaction is available or not. That is the definition of non-blocking You have to check if the sequence_item handle, req, is null or not. If it is null, do your idle cycle tasks and try again. The transaction may not always be ready. The seq_item_port.try_next_item(req) call should be in a do-while loop.