У меня есть требование, когда мне нужно иметь два класса uvm_tlm_b_target_socket
, поскольку он будет получать транзакцию от двух разных агентов. Мне нужно обработать данные, полученные из двух сокетов по-разному, поэтому я не могу выполнить одну задачу b_transport
. Есть ли что-то эквивалентное для целевого сокета терминатору портов анализа, мы могли бы использовать макрос uvm_analysis_imp_decl
, который позволяет нам иметь другую реализацию функции write
? В справочном руководстве по классу я мог найти этот макрос uvm_blocking_transport_imp_decl
, но не смог найти пример того, как его использовать. В итоге я пытаюсь сделать этоМожет ли быть два «uvm_tlm_b_target_socket» и две соответствующие реализации «b_transport» в одном объекте?
uvm_tlm_b_target_socket A;
umv_tlm_b_target_socket B;
// b_transport task implementation for socket "A"
task b_transport;
// b_transport task implementation for socket "B"
task b_transport;
может 'uvm_tlm_b_initiator_socket' подключиться к' uvm_transport_imp'? – Gautam