Added SystemC toplevel for comparison purposes

This commit is contained in:
Eyck Jentzsch 2019-01-01 14:45:58 +01:00
parent e633cc6134
commit 0120610f83
4 changed files with 55 additions and 4 deletions

View File

@ -72,6 +72,7 @@ include(sc-components/cmake/clang-format.cmake)
add_subdirectory(sc-components)
add_subdirectory(components)
add_subdirectory(top)
# CTest is a testing tool that can be used to test your project.
# enable_testing()

View File

@ -1,15 +1,12 @@
FILE(GLOB LibHeaders *.h)
set(LIB_HEADERS ${LibHeaders} )
set(LIB_SOURCES
initiator.cpp
logging.cpp
target.cpp
)
# Define two variables in order not to repeat ourselves.
set(LIBRARY_NAME components)
# Define the library
add_library(${LIBRARY_NAME} SHARED ${LIB_SOURCES})
target_link_libraries (${LIBRARY_NAME} LINK_PUBLIC sc-components)
target_include_directories (components PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

4
top/CMakeLists.txt Normal file
View File

@ -0,0 +1,4 @@
cmake_minimum_required(VERSION 3.3)
set(APP_NAME top)
add_executable(${APP_NAME} sc_main.cpp)
target_link_libraries (${APP_NAME} LINK_PUBLIC components)

49
top/sc_main.cpp Normal file
View File

@ -0,0 +1,49 @@
////////////////////////////////////////////////////////////////////////////////
// Copyright 2017 eyck@minres.com
//
// 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.
////////////////////////////////////////////////////////////////////////////////
/*
* sc_main.cpp
*
* Created on: 17.09.2017
* Author: eyck@minres.com
*/
#include "top.h"
#include <scc/report.h>
using namespace scc;
int sc_main(int argc, char *argv[]) {
///////////////////////////////////////////////////////////////////////////
// configure logging
///////////////////////////////////////////////////////////////////////////
scc::init_logging(logging::INFO);
///////////////////////////////////////////////////////////////////////////
// instantiate top level
///////////////////////////////////////////////////////////////////////////
Top i_top("i_top");
///////////////////////////////////////////////////////////////////////////
// run simulation
///////////////////////////////////////////////////////////////////////////
sc_start();
// todo: provide end-of-simulation macros
if (!sc_core::sc_end_of_simulation_invoked()) {
sc_core::sc_stop();
}
return 0;
}