From 16fa8d7cc8c92f5ab879e4cf9c6c0bbb3567860f Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Thu, 24 May 2018 01:37:55 -0700 Subject: systemc: Import tests from the Accellera systemc distribution. Change-Id: Iad76b398949a55d768a34d027a2d8e3739953da6 Reviewed-on: https://gem5-review.googlesource.com/10845 Reviewed-by: Giacomo Travaglini Maintainer: Gabe Black --- src/systemc/tests/tlm/bus/bus.cpp | 81 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/systemc/tests/tlm/bus/bus.cpp (limited to 'src/systemc/tests/tlm/bus/bus.cpp') diff --git a/src/systemc/tests/tlm/bus/bus.cpp b/src/systemc/tests/tlm/bus/bus.cpp new file mode 100644 index 000000000..0f3f5ae65 --- /dev/null +++ b/src/systemc/tests/tlm/bus/bus.cpp @@ -0,0 +1,81 @@ +/***************************************************************************** + + Licensed to Accellera Systems Initiative Inc. (Accellera) under one or + more contributor license agreements. See the NOTICE file distributed + with this work for additional information regarding copyright ownership. + Accellera licenses this file to you 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. + + *****************************************************************************/ +#define SC_INCLUDE_DYNAMIC_PROCESSES +#include +#include "tlm.h" + +#include "SimpleLTInitiator1.h" +#include "SimpleLTTarget1.h" +#include "SimpleLTInitiator2.h" +#include "SimpleLTTarget2.h" +#include "SimpleATInitiator1.h" +#include "SimpleATInitiator2.h" +#include "SimpleATTarget1.h" +#include "SimpleATInitiator2.h" +#include "SimpleATTarget2.h" +#include "CoreDecouplingLTInitiator.h" +#include "ExplicitLTTarget.h" +#include "ExplicitATTarget.h" +#include "SimpleBusAT.h" + +int sc_main(int argc, char* argv[]) +{ + SimpleLTInitiator1 initiator1("initiator1", 10, 0x00000000); + SimpleLTTarget1 target1("target1"); + + SimpleLTInitiator2 initiator2("initiator2", 10, 0x10000000); + SimpleLTTarget2 target2("target2"); + + SimpleATInitiator1 initiator3("initiator3", 10, 0x20000000); + SimpleATTarget1 target3("target3"); + + SimpleATInitiator2 initiator4("initiator4", 10, 0x30000000); + SimpleATTarget2 target4("target4"); + + SimpleATInitiator2 initiator5("initiator5", 10, 0x40000000); + SimpleATTarget2 target5("target5"); + + CoreDecouplingLTInitiator initiator6("initiator6", 10, 0x50000000); + ExplicitLTTarget target6("target6"); + + CoreDecouplingLTInitiator initiator7("initiator7", 10, 0x60000000); + ExplicitATTarget target7("target7"); + + SimpleBusAT<7, 7> bus("bus"); + + initiator1.socket(bus.target_socket[0]); + initiator2.socket(bus.target_socket[1]); + initiator3.socket(bus.target_socket[2]); + initiator4.socket(bus.target_socket[3]); + initiator5.socket(bus.target_socket[4]); + initiator6.socket(bus.target_socket[5]); + initiator7.socket(bus.target_socket[6]); + bus.initiator_socket[0](target1.socket); + bus.initiator_socket[1](target2.socket); + bus.initiator_socket[2](target3.socket); + bus.initiator_socket[3](target4.socket); + bus.initiator_socket[4](target5.socket); + bus.initiator_socket[5](target6.socket); + bus.initiator_socket[6](target7.socket); + + sc_core::sc_start(); + sc_core::sc_stop(); + + return 0; +} -- cgit v1.2.3