scc 2025.09
SystemC components library
intor_if.h
1/*******************************************************************************
2 * Copyright 2020-2022 MINRES Technologies GmbH
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *******************************************************************************/
16
17#ifndef SCC_INCL_TLM_PE_INTOR_IF_H_
18#define SCC_INCL_TLM_PE_INTOR_IF_H_
19
20#include <tlm>
21
23namespace tlm {
25namespace scc {
27namespace pe {
32enum class type { NB, BL };
33
34template <type TYPE> struct intor_fw : public sc_core::sc_interface {
41 virtual void transport(tlm::tlm_generic_payload& payload, bool lt_transport = false) = 0;
48 virtual void snoop_resp(tlm::tlm_generic_payload& payload, bool sync = false) = 0;
49};
50
51template <type TYPE> struct intor_bw : public sc_core::sc_interface {
58 virtual unsigned transport(tlm::tlm_generic_payload& payload) = 0;
59};
60
61struct intor_fw_b : public intor_fw<type::BL> {};
62struct intor_fw_nb : public intor_fw<type::NB> {};
63struct intor_bw_b : public intor_bw<type::BL> {};
64struct intor_bw_nb : public intor_bw<type::NB> {};
65} // namespace pe
66} // namespace scc
67} // namespace tlm
68
69#endif /* SCC_INCL_TLM_PE_INTOR_IF_H_ */
SCC protocol engines.
Definition intor_if.h:27
SCC TLM utilities.
Definition axis_tlm.h:56
SystemC TLM.
Definition dmi_mgr.h:19
virtual unsigned transport(tlm::tlm_generic_payload &payload)=0
virtual void snoop_resp(tlm::tlm_generic_payload &payload, bool sync=false)=0
virtual void transport(tlm::tlm_generic_payload &payload, bool lt_transport=false)=0