| /***************************************************************************** | |
| 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 <systemc> | |
| #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; | |
| } |