//----------------------------------------------------------------------
// 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 [docs]uvm_tlm_b_transport_port #(type T=uvm_tlm_generic_payload)
extends uvm_port_base #(uvm_tlm_if #(T));
[docs]`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 [docs]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));
[docs]`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 [docs]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
[docs]`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