Added SCC and refactored CMake files
This commit is contained in:
parent
262f093eb5
commit
e633cc6134
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "sc-components"]
|
||||||
|
path = sc-components
|
||||||
|
url = https://git.minres.com/SystemC/SystemC-Components.git
|
|
@ -1,32 +1,77 @@
|
||||||
project(TransactionExample CXX)
|
cmake_minimum_required(VERSION 3.3)
|
||||||
cmake_minimum_required(VERSION 3.9)
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_CURRENT_SOURCE_DIR}/sc-components/cmake)
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
|
||||||
|
|
||||||
|
set(ENABLE_SCV TRUE CACHE BOOL "Enable use of SCV")
|
||||||
|
set(ENABLE_SHARED TRUE CACHE BOOL "Build shared libraries")
|
||||||
|
|
||||||
|
include(GitFunctions)
|
||||||
|
get_branch_from_git()
|
||||||
|
|
||||||
|
### set the directory names of the submodules
|
||||||
|
set(GIT_SUBMODULES sc-components)
|
||||||
|
set(GIT_SUBMODULE_DIR_sc-components .)
|
||||||
|
### set each submodules's commit or tag that is to be checked out
|
||||||
|
### (leave empty if you want master)
|
||||||
|
#set(GIT_SUBMODULE_VERSION_sc-components 3af6b9836589b082c19d9131c5d0b7afa8ddd7cd)
|
||||||
|
set(GIT_SUBMODULE_BRANCH_sc-components ${GIT_BRANCH})
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
include(Submodules)
|
||||||
include(Conan)
|
include(Conan)
|
||||||
setup_conan()
|
include(BuildType)
|
||||||
|
|
||||||
conan_basic_setup(TARGETS)
|
#enable_testing()
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
add_library(components SHARED
|
include(CheckCXXCompilerFlag)
|
||||||
components/tx_example_mods.cpp
|
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
|
||||||
components/initiator.cpp
|
if(COMPILER_SUPPORTS_MARCH_NATIVE)
|
||||||
components/target.cpp
|
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
||||||
components/logging.cpp)
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
||||||
target_link_libraries(components PUBLIC CONAN_PKG::SystemC)
|
elseif(NOT(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo"))
|
||||||
target_link_libraries(components PUBLIC CONAN_PKG::SystemCVerification)
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(TransactionExample
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
components/tx_example.cpp
|
set(warnings "-Wall -Wextra -Werror")
|
||||||
components/txtop.cpp)
|
set(CMAKE_CXX_FLAG_RELEASE "-O3 -DNDEBUG")
|
||||||
target_link_libraries(TransactionExample components)
|
set(CMAKE_C_FLAG_RELEASE "-O3 -DNDEBUG")
|
||||||
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||||
|
set(warnings "/W4 /WX /EHsc")
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(router_example
|
setup_conan()
|
||||||
components/router_example.cpp)
|
|
||||||
target_link_libraries(router_example components)
|
# This line finds the boost lib and headers.
|
||||||
|
set(Boost_NO_BOOST_CMAKE ON) # Don't do a find_package in config mode before searching for a regular boost install.
|
||||||
|
find_package(Boost COMPONENTS program_options filesystem system thread REQUIRED)
|
||||||
|
|
||||||
|
# set-up SystemC and SCV
|
||||||
|
find_package(SystemC)
|
||||||
|
if(SystemC_FOUND)
|
||||||
|
add_definitions(-DWITH_SYSTEMC)
|
||||||
|
include_directories(${SystemC_INCLUDE_DIRS})
|
||||||
|
link_directories(${SystemC_LIBRARY_DIRS})
|
||||||
|
else()
|
||||||
|
message( FATAL_ERROR "SystemC library not found." )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CCI_FOUND)
|
||||||
|
include_directories(${CCI_INCLUDE_DIRS})
|
||||||
|
link_directories(${CCI_LIBRARY_DIRS})
|
||||||
|
else()
|
||||||
|
message( FATAL_ERROR "SystemC CCI library not found." )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(sc-components/cmake/clang-format.cmake)
|
||||||
|
|
||||||
|
add_subdirectory(sc-components)
|
||||||
|
add_subdirectory(components)
|
||||||
|
|
||||||
# CTest is a testing tool that can be used to test your project.
|
# CTest is a testing tool that can be used to test your project.
|
||||||
# enable_testing()
|
# enable_testing()
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Function to link between sub-projects
|
||||||
|
function(add_dependent_subproject subproject_name)
|
||||||
|
#if (NOT TARGET ${subproject_name}) # target unknown
|
||||||
|
if(NOT PROJECT_${subproject_name}) # var unknown because we build only this subproject
|
||||||
|
find_package(${subproject_name} CONFIG REQUIRED)
|
||||||
|
else () # we know the target thus we are doing a build from the top directory
|
||||||
|
include_directories(../${subproject_name}/incl)
|
||||||
|
endif ()
|
||||||
|
endfunction(add_dependent_subproject)
|
||||||
|
|
||||||
|
# Make sure we tell the topdir CMakeLists that we exist (if build from topdir)
|
||||||
|
get_directory_property(hasParent PARENT_DIRECTORY)
|
||||||
|
if(hasParent)
|
||||||
|
set(PROJECT_${PROJECT_NAME} true PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Function to link between sub-projects
|
||||||
|
function(add_dependent_header subproject_name)
|
||||||
|
include_directories(../${subproject_name}/incl)
|
||||||
|
endfunction(add_dependent_header)
|
|
@ -0,0 +1,130 @@
|
||||||
|
# - Returns a version string from Git
|
||||||
|
#
|
||||||
|
# These functions force a re-configure on each git commit so that you can
|
||||||
|
# trust the values of the variables in your build system.
|
||||||
|
#
|
||||||
|
# get_git_head_revision(<refspecvar> <hashvar> [<additional arguments to git describe> ...])
|
||||||
|
#
|
||||||
|
# Returns the refspec and sha hash of the current head revision
|
||||||
|
#
|
||||||
|
# git_describe(<var> [<additional arguments to git describe> ...])
|
||||||
|
#
|
||||||
|
# Returns the results of git describe on the source tree, and adjusting
|
||||||
|
# the output so that it tests false if an error occurs.
|
||||||
|
#
|
||||||
|
# git_get_exact_tag(<var> [<additional arguments to git describe> ...])
|
||||||
|
#
|
||||||
|
# Returns the results of git describe --exact-match on the source tree,
|
||||||
|
# and adjusting the output so that it tests false if there was no exact
|
||||||
|
# matching tag.
|
||||||
|
#
|
||||||
|
# Requires CMake 2.6 or newer (uses the 'function' command)
|
||||||
|
#
|
||||||
|
# Original Author:
|
||||||
|
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
|
||||||
|
# http://academic.cleardefinition.com
|
||||||
|
# Iowa State University HCI Graduate Program/VRAC
|
||||||
|
#
|
||||||
|
# Copyright Iowa State University 2009-2010.
|
||||||
|
# Distributed under the Boost Software License, Version 1.0.
|
||||||
|
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
# http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
if(__get_git_revision_description)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__get_git_revision_description YES)
|
||||||
|
|
||||||
|
# We must run the following at "include" time, not at function call time,
|
||||||
|
# to find the path to this module rather than the path to a calling list file
|
||||||
|
get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
|
||||||
|
|
||||||
|
function(get_git_head_revision _refspecvar _hashvar)
|
||||||
|
set(GIT_PARENT_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
||||||
|
while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories
|
||||||
|
set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}")
|
||||||
|
get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH)
|
||||||
|
if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT)
|
||||||
|
# We have reached the root directory, we are not in git
|
||||||
|
set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
|
||||||
|
set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
|
||||||
|
endwhile()
|
||||||
|
# check if this is a submodule
|
||||||
|
if(NOT IS_DIRECTORY ${GIT_DIR})
|
||||||
|
file(READ ${GIT_DIR} submodule)
|
||||||
|
string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule})
|
||||||
|
get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
|
||||||
|
get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE)
|
||||||
|
endif()
|
||||||
|
set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
|
||||||
|
if(NOT EXISTS "${GIT_DATA}")
|
||||||
|
file(MAKE_DIRECTORY "${GIT_DATA}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT EXISTS "${GIT_DIR}/HEAD")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(HEAD_FILE "${GIT_DATA}/HEAD")
|
||||||
|
configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY)
|
||||||
|
|
||||||
|
configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in"
|
||||||
|
"${GIT_DATA}/grabRef.cmake"
|
||||||
|
@ONLY)
|
||||||
|
include("${GIT_DATA}/grabRef.cmake")
|
||||||
|
|
||||||
|
set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE)
|
||||||
|
set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(git_describe _var)
|
||||||
|
if(NOT GIT_FOUND)
|
||||||
|
find_package(Git QUIET)
|
||||||
|
endif()
|
||||||
|
get_git_head_revision(refspec hash)
|
||||||
|
if(NOT GIT_FOUND)
|
||||||
|
set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
if(NOT hash)
|
||||||
|
set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# TODO sanitize
|
||||||
|
#if((${ARGN}" MATCHES "&&") OR
|
||||||
|
# (ARGN MATCHES "||") OR
|
||||||
|
# (ARGN MATCHES "\\;"))
|
||||||
|
# message("Please report the following error to the project!")
|
||||||
|
# message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
|
||||||
|
#endif()
|
||||||
|
|
||||||
|
#message(STATUS "Arguments to execute_process: ${ARGN}")
|
||||||
|
|
||||||
|
execute_process(COMMAND
|
||||||
|
"${GIT_EXECUTABLE}"
|
||||||
|
describe
|
||||||
|
${hash}
|
||||||
|
${ARGN}
|
||||||
|
WORKING_DIRECTORY
|
||||||
|
"${CMAKE_SOURCE_DIR}"
|
||||||
|
RESULT_VARIABLE
|
||||||
|
res
|
||||||
|
OUTPUT_VARIABLE
|
||||||
|
out
|
||||||
|
ERROR_QUIET
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
if(NOT res EQUAL 0)
|
||||||
|
set(out "${out}-${res}-NOTFOUND")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(${_var} "${out}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function(git_get_exact_tag _var)
|
||||||
|
git_describe(out --exact-match ${ARGN})
|
||||||
|
set(${_var} "${out}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
|
@ -0,0 +1,41 @@
|
||||||
|
#
|
||||||
|
# Internal file for GetGitRevisionDescription.cmake
|
||||||
|
#
|
||||||
|
# Requires CMake 2.6 or newer (uses the 'function' command)
|
||||||
|
#
|
||||||
|
# Original Author:
|
||||||
|
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
|
||||||
|
# http://academic.cleardefinition.com
|
||||||
|
# Iowa State University HCI Graduate Program/VRAC
|
||||||
|
#
|
||||||
|
# Copyright Iowa State University 2009-2010.
|
||||||
|
# Distributed under the Boost Software License, Version 1.0.
|
||||||
|
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
# http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
set(HEAD_HASH)
|
||||||
|
|
||||||
|
file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024)
|
||||||
|
|
||||||
|
string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS)
|
||||||
|
if(HEAD_CONTENTS MATCHES "ref")
|
||||||
|
# named branch
|
||||||
|
string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
|
||||||
|
if(EXISTS "@GIT_DIR@/${HEAD_REF}")
|
||||||
|
configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
|
||||||
|
else()
|
||||||
|
configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
|
||||||
|
file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
|
||||||
|
if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
|
||||||
|
set(HEAD_HASH "${CMAKE_MATCH_1}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
# detached HEAD
|
||||||
|
configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT HEAD_HASH)
|
||||||
|
file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
|
||||||
|
string(STRIP "${HEAD_HASH}" HEAD_HASH)
|
||||||
|
endif()
|
|
@ -0,0 +1,22 @@
|
||||||
|
if(__git_functions)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__git_functions YES)
|
||||||
|
|
||||||
|
function( get_branch_from_git )
|
||||||
|
execute_process(
|
||||||
|
COMMAND git rev-parse --abbrev-ref HEAD
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||||
|
RESULT_VARIABLE git_result
|
||||||
|
OUTPUT_VARIABLE git_branch
|
||||||
|
ERROR_VARIABLE git_error
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
ERROR_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
if( NOT git_result EQUAL 0 )
|
||||||
|
message( FATAL_ERROR "Failed to execute Git: ${git_error}" )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set( GIT_BRANCH ${git_branch} PARENT_SCOPE )
|
||||||
|
endfunction( get_branch_from_git )
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
if(EXISTS "${PROJECT_SOURCE_DIR}/.gitmodules")
|
||||||
|
message(STATUS "Updating submodules to their latest/fixed versions")
|
||||||
|
message(STATUS "(this can take a while, please be patient)")
|
||||||
|
|
||||||
|
### First, get all submodules in
|
||||||
|
if(${GIT_SUBMODULES_CHECKOUT_QUIET})
|
||||||
|
execute_process(
|
||||||
|
COMMAND git submodule update --init --recursive
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||||
|
OUTPUT_QUIET
|
||||||
|
ERROR_QUIET
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
execute_process(
|
||||||
|
COMMAND git submodule update --init --recursive
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
### Then, checkout each submodule to the specified commit
|
||||||
|
# Note: Execute separate processes here, to make sure each one is run,
|
||||||
|
# should one crash (because of branch not existing, this, that ... whatever)
|
||||||
|
foreach(GIT_SUBMODULE ${GIT_SUBMODULES})
|
||||||
|
|
||||||
|
if( "${GIT_SUBMODULE_VERSION_${GIT_SUBMODULE}}" STREQUAL "" )
|
||||||
|
message(STATUS "no specific version given for submodule ${GIT_SUBMODULE}, checking out master")
|
||||||
|
if( "${GIT_SUBMODULE_BRANCH_${GIT_SUBMODULE}}" STREQUAL "" )
|
||||||
|
set(GIT_SUBMODULE_VERSION_${GIT_SUBMODULE} "master")
|
||||||
|
else()
|
||||||
|
set(GIT_SUBMODULE_VERSION_${GIT_SUBMODULE} ${GIT_SUBMODULE_BRANCH_${GIT_SUBMODULE}})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if( "${GIT_SUBMODULE_DIR_${GIT_SUBMODULE}}" STREQUAL "" )
|
||||||
|
set(GIT_SUBMODULES_DIRECTORY external)
|
||||||
|
else()
|
||||||
|
set(GIT_SUBMODULES_DIRECTORY ${GIT_SUBMODULE_DIR_${GIT_SUBMODULE}})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(${GIT_SUBMODULES_CHECKOUT_QUIET})
|
||||||
|
execute_process(
|
||||||
|
COMMAND git checkout ${GIT_SUBMODULE_VERSION_${GIT_SUBMODULE}}
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/${GIT_SUBMODULES_DIRECTORY}/${GIT_SUBMODULE}
|
||||||
|
OUTPUT_QUIET
|
||||||
|
ERROR_QUIET
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS "checking out ${GIT_SUBMODULE}'s commit/tag ${GIT_SUBMODULE_VERSION_${GIT_SUBMODULE}}")
|
||||||
|
execute_process(
|
||||||
|
COMMAND git checkout ${GIT_SUBMODULE_VERSION_${GIT_SUBMODULE}}
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/${GIT_SUBMODULES_DIRECTORY}/${GIT_SUBMODULE}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
endforeach(${GIT_SUBMODULE})
|
||||||
|
|
||||||
|
endif()
|
|
@ -0,0 +1,15 @@
|
||||||
|
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)
|
|
@ -9,8 +9,7 @@
|
||||||
#define COMPONENTS_H_
|
#define COMPONENTS_H_
|
||||||
|
|
||||||
//#include "tx_example_mods.h"
|
//#include "tx_example_mods.h"
|
||||||
#include <systemc.h>
|
//#include "logging.h"
|
||||||
#include "logging.h"
|
|
||||||
#include "initiator.h"
|
#include "initiator.h"
|
||||||
#include "router.h"
|
#include "router.h"
|
||||||
#include "target.h"
|
#include "target.h"
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "initiator.h"
|
#include "initiator.h"
|
||||||
#include "logging.h"
|
|
||||||
|
#include <scc/report.h>
|
||||||
|
|
||||||
|
|
||||||
Initiator::Initiator(::sc_core::sc_module_name nm)
|
Initiator::Initiator(::sc_core::sc_module_name nm)
|
||||||
|
@ -51,7 +52,7 @@ void Initiator::thread_process() {
|
||||||
wait( dmi_data.get_write_latency() );
|
wait( dmi_data.get_write_latency() );
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_INFO << "DMI = { " << (cmd ? 'W' : 'R') << ", " << hex << i
|
SCINFO() << "DMI = { " << (cmd ? 'W' : 'R') << ", " << hex << i
|
||||||
<< " } , data = " << hex << data << " at time " << sc_time_stamp();
|
<< " } , data = " << hex << data << " at time " << sc_time_stamp();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -97,7 +98,7 @@ void Initiator::thread_process() {
|
||||||
dmi_ptr_valid = socket->get_direct_mem_ptr( *trans, dmi_data );
|
dmi_ptr_valid = socket->get_direct_mem_ptr( *trans, dmi_data );
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_INFO << "trans = { " << (cmd ? 'W' : 'R') << ", " << hex << i
|
SCINFO() << "trans = { " << (cmd ? 'W' : 'R') << ", " << hex << i
|
||||||
<< " } , data = " << hex << data << " at time " << sc_time_stamp();
|
<< " } , data = " << hex << data << " at time " << sc_time_stamp();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,7 +116,7 @@ void Initiator::thread_process() {
|
||||||
|
|
||||||
for (unsigned int i = 0; i < n_bytes; i += 4)
|
for (unsigned int i = 0; i < n_bytes; i += 4)
|
||||||
{
|
{
|
||||||
LOG_INFO << "mem[" << (A + i) << "] = "
|
SCINFO() << "mem[" << (A + i) << "] = "
|
||||||
<< *(reinterpret_cast<unsigned int*>( &data[i] ));
|
<< *(reinterpret_cast<unsigned int*>( &data[i] ));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +128,7 @@ void Initiator::thread_process() {
|
||||||
|
|
||||||
for (unsigned int i = 0; i < n_bytes; i += 4)
|
for (unsigned int i = 0; i < n_bytes; i += 4)
|
||||||
{
|
{
|
||||||
LOG_INFO << "mem[" << (A + i) << "] = "
|
SCINFO() << "mem[" << (A + i) << "] = "
|
||||||
<< *(reinterpret_cast<unsigned int*>( &data[i] ));
|
<< *(reinterpret_cast<unsigned int*>( &data[i] ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,12 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "logging.h"
|
|
||||||
#include <systemc>
|
#include <systemc>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
#include "logging_.h"
|
||||||
|
|
||||||
using namespace sc_core;
|
using namespace sc_core;
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
[requires]
|
[requires]
|
||||||
|
fmt/5.2.1@bincrafters/stable
|
||||||
SystemC/2.3.2@minres/stable
|
SystemC/2.3.2@minres/stable
|
||||||
SystemCVerification/2.0.1@minres/stable
|
SystemC-CCI/1.0.0@minres/stable
|
||||||
|
|
||||||
[generators]
|
[generators]
|
||||||
cmake
|
cmake
|
||||||
|
|
||||||
[options]
|
[options]
|
||||||
|
fmt:header_only=True
|
||||||
SystemC:stdcxx=11
|
SystemC:stdcxx=11
|
||||||
SystemC:shared=True
|
SystemC:shared=True
|
||||||
SystemCVerification:stdcxx=11
|
SystemC-CCI:stdcxx=11
|
|
@ -8,12 +8,17 @@ import pysysc as scpy
|
||||||
myDir = os.path.dirname( os.path.realpath(__file__))
|
myDir = os.path.dirname( os.path.realpath(__file__))
|
||||||
conan_err = scpy.read_config_from_conan(os.path.join(myDir, 'conanfile.txt'))
|
conan_err = scpy.read_config_from_conan(os.path.join(myDir, 'conanfile.txt'))
|
||||||
scpy.load_systemc()
|
scpy.load_systemc()
|
||||||
|
print("Loading SC-Components lib")
|
||||||
|
scpy.add_include_path(os.path.join(myDir, 'sc-components/incl'))
|
||||||
|
scpy.add_library('scc.h', os.path.join(myDir, 'build/Debug/lib/libsc-components.so'))
|
||||||
|
print("Loading Components lib")
|
||||||
scpy.add_include_path(os.path.join(myDir, 'components'))
|
scpy.add_include_path(os.path.join(myDir, 'components'))
|
||||||
scpy.add_library('components.h', os.path.join(myDir, 'build/Debug/lib/libcomponents.so'))
|
scpy.add_library('components.h', os.path.join(myDir, 'build/Debug/lib/libcomponents.so'))
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# configure
|
# configure
|
||||||
###############################################################################
|
###############################################################################
|
||||||
cpp.init_logging(5)
|
#cpp.IoRedirector.get().start()
|
||||||
|
cpp.scc.init_logging(cpp.logging.INFO, False);
|
||||||
cpp.sc_core.sc_report_handler.set_actions(cpp.sc_core.SC_ID_MORE_THAN_ONE_SIGNAL_DRIVER_, cpp.sc_core.SC_DO_NOTHING);
|
cpp.sc_core.sc_report_handler.set_actions(cpp.sc_core.SC_ID_MORE_THAN_ONE_SIGNAL_DRIVER_, cpp.sc_core.SC_DO_NOTHING);
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# instantiate
|
# instantiate
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit a066d508a097fdd7134aeecbe72fdbabaae0aff3
|
Loading…
Reference in New Issue