//---------------------------------------------------------------------- // Copyright 2010 Mentor Graphics Corporation // Copyright 2010 Synopsys, Inc. // All Rights Reserved Worldwide // // Licensed under the Apache License, Version 2.0 (the // "License"); you may not use this file except in // compliance with the License. You may obtain a copy of // the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in // writing, software distributed under the License is // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR // CONDITIONS OF ANY KIND, either express or implied. See // the License for the specific language governing // permissions and limitations under the License. //---------------------------------------------------------------------- //---------------------------------------------------------------------- // Title: TLM2 ports // // The following defines TLM2 port classes. // //---------------------------------------------------------------------- // class: uvm_tlm_b_transport_port // // Class providing the blocking transport port. // The port can be bound to one export. // There is no backward path for the blocking transport. class uvm_tlm_b_transport_port #(type T=uvm_tlm_generic_payload) extends uvm_port_base #(uvm_tlm_if #(T)); `UVM_PORT_COMMON(`UVM_TLM_B_MASK, "uvm_tlm_b_transport_port") `UVM_TLM_B_TRANSPORT_IMP(this.m_if, T, t, delay) endclass // class: uvm_tlm_nb_transport_fw_port // // Class providing the non-blocking backward transport port. // Transactions received from the producer, on the forward path, are // sent back to the producer on the backward path using this // non-blocking transport port. // The port can be bound to one export. // class uvm_tlm_nb_transport_fw_port #(type T=uvm_tlm_generic_payload, type P=uvm_tlm_phase_e) extends uvm_port_base #(uvm_tlm_if #(T,P)); `UVM_PORT_COMMON(`UVM_TLM_NB_FW_MASK, "uvm_tlm_nb_transport_fw_port") `UVM_TLM_NB_TRANSPORT_FW_IMP(this.m_if, T, P, t, p, delay) endclass // class: uvm_tlm_nb_transport_bw_port // // Class providing the non-blocking backward transport port. // Transactions received from the producer, on the forward path, are // sent back to the producer on the backward path using this // non-blocking transport port // The port can be bound to one export. // class uvm_tlm_nb_transport_bw_port #(type T=uvm_tlm_generic_payload, type P=uvm_tlm_phase_e) extends uvm_port_base #(uvm_tlm_if #(T,P)); // Function: new `UVM_PORT_COMMON(`UVM_TLM_NB_BW_MASK, "uvm_tlm_nb_transport_bw_port") `UVM_TLM_NB_TRANSPORT_BW_IMP(this.m_if, T, P, t, p, delay) endclass