diff --git a/CMakeLists.txt b/CMakeLists.txt index 84d5d8118..1fe8082dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ set(VERSION_PATCH 240) project(yosys_verific_rs) -set(YOSYS_VERIFIC ON) +set(YOSYS_VERIFIC OFF) if (APPLE) message(WARNING "MacOs build is temporarily disabled: EDA-799") @@ -78,7 +78,7 @@ if (PRODUCTION_BUILD) message("FLEX: " ${FLEX_LM_SRC_DIR}) endif() -option(ENABLE_VERIFIC "Enable Verific frontend" ON) +option(ENABLE_VERIFIC "Enable Verific frontend" OFF) option(YOSYS_LIB "Build Yosys also as library" OFF) if (APPLE) option(BUILD_YOSYS_PLUGINS "Enable build of yosys-plugins" OFF) @@ -87,20 +87,22 @@ else() endif() option(ENABLE_VALGRIND_TESTS "Enable Valgrind tests" OFF) -get_filename_component(VERIFIC_HOME "Raptor_Tools/verific_rs" +if(ENABLE_VERIFIC) + get_filename_component(VERIFIC_HOME "Raptor_Tools/verific_rs" + REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE) + message("VERIFIC_HOME: ${VERIFIC_HOME}") + + get_filename_component(READ_VERILOG_SRC_DIR "Raptor_Tools/gatelevel_readers/read_verilog" REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE) -message("VERIFIC_HOME: ${VERIFIC_HOME}") + message("READ_VERILOG_SRC_DIR: ${READ_VERILOG_SRC_DIR}") -get_filename_component(READ_VERILOG_SRC_DIR "Raptor_Tools/gatelevel_readers/read_verilog" -REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE) -message("READ_VERILOG_SRC_DIR: ${READ_VERILOG_SRC_DIR}") + if (NOT RAPTOR) + add_subdirectory(${READ_VERILOG_SRC_DIR}) + endif() -if (NOT RAPTOR) - add_subdirectory(${READ_VERILOG_SRC_DIR}) + set(LIB_READ_VERILOG ${CMAKE_BINARY_DIR}/Raptor_Tools/gatelevel_readers/read_verilog/libreadver.a) endif() -set(LIB_READ_VERILOG ${CMAKE_BINARY_DIR}/Raptor_Tools/gatelevel_readers/read_verilog/libreadver.a) - if (CMAKE_BUILD_TYPE STREQUAL "Debug") set(YOSYS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/yosys/debug-install) else() @@ -111,7 +113,7 @@ list(APPEND YOSYS_MK_ARGS "CONFIG=gcc" "PREFIX=${YOSYS_PATH}" "ABCEXTERNAL=abc" - "YOSYS_VERIFIC=1" + "YOSYS_VERIFIC=0" "YOSYS_VERIFIC_VER_STR=Yosys-Verific ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" ) @@ -134,16 +136,11 @@ if (PRODUCTION_BUILD) ) list(APPEND YOSYS_MK_ARGS "PRODUCTION_BUILD=1" - "EXTRA_LDLIBS=${FLEX_LM_LDLIBS} -lssl -lcrypto ${LIB_READ_VERILOG} -lstdc++" - "EXTRA_CXX_FLAGS=-I${FLEX_LM_SRC_DIR} -I${FLEX_LM_SRC_DIR}/machind -DPRODUCTION_BUILD=1 -I${READ_VERILOG_SRC_DIR}/src/read_nl/" + "EXTRA_LDLIBS=${FLEX_LM_LDLIBS} -lstdc++" + "EXTRA_CXX_FLAGS=-I${FLEX_LM_SRC_DIR} -I${FLEX_LM_SRC_DIR}/machind -DPRODUCTION_BUILD=1" "EXTRA_OBJS=${FLEX_LM_SRC_DIR}/x64_lsb/lm_new_pic.o" "EXTRA_LD_FLAGS=-fPIC -fvisibility=hidden -no-pie -lrt -Wl,--no-as-needed -ldl -pthread" ) -else() - list(APPEND YOSYS_MK_ARGS - "EXTRA_LDLIBS=${LIB_READ_VERILOG} -lssl -lcrypto -lstdc++" - "EXTRA_CXX_FLAGS=-I${READ_VERILOG_SRC_DIR}/src/read_nl/" - ) endif() if (YOSYS_LIB) @@ -175,15 +172,32 @@ add_custom_target( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/yosys COMMENT "Compile Yosys with given Makefile" ) -add_custom_target( - yosys_clean - COMMAND $(MAKE) clean - COMMAND ${CMAKE_COMMAND} -E remove_directory ${YOSYS_PATH} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/yosys - COMMENT "Clean Yosys/Yosys+Verific with given Makefile" -) -add_dependencies(yosys libreadver) +if(ENABLE_VERIFIC) + add_custom_target( + yosys_clean + COMMAND $(MAKE) clean + #COMMAND ${CMAKE_COMMAND} -E remove_directory ${YOSYS_PATH} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/yosys + if(YOSYS_VERIFIC) + COMMENT "Clean Yosys/Yosys+Verific with given Makefile" + else() + COMMENT "Clean Yosys/Yosys with given Makefile" + endif() + ) +else() + add_custom_target( + yosys_clean + COMMAND $(MAKE) clean + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/yosys + COMMAND ${CMAKE_COMMAND} -E remove_directory ${YOSYS_PATH} + COMMENT "Clean Yosys/Yosys with given Makefile" + ) +endif() + +if(ENABLE_VERIFIC) + add_dependencies(yosys libreadver) +endif() if (ENABLE_VERIFIC AND CMAKE_BUILD_TYPE STREQUAL "Debug") if (NOT RAPTOR) @@ -200,10 +214,12 @@ endif() add_subdirectory(logic_synthesis-rs) # TODO: Fix Mac OS build. -if (NOT APPLE) - # There are linking issues with Verific libraries on Mac OS. - # We need Mac OS environment to debug and fix the issue. - add_subdirectory(analyze) +if(ENABLE_VERIFIC) + if (NOT APPLE) + # There are linking issues with Verific libraries on Mac OS. + # We need Mac OS environment to debug and fix the issue. + add_subdirectory(analyze) + endif() endif() if (PRODUCTION_BUILD) diff --git a/Makefile b/Makefile index 725a03e3a..f4b1ff4e9 100644 --- a/Makefile +++ b/Makefile @@ -83,7 +83,7 @@ valgrind: ## |---> info : Clean unit tests ## |---> usage : make clean_test clean_test: - cmake --build build --target clean_analyze +# cmake --build build --target clean_analyze ifneq ("","$(wildcard yosys/install)") cd yosys-rs-plugin && $(MAKE) $@ YOSYS_PATH=$(shell pwd)/yosys/install endif diff --git a/Raptor_Tools b/Raptor_Tools index 1a2d5ec41..b3202daee 160000 --- a/Raptor_Tools +++ b/Raptor_Tools @@ -1 +1 @@ -Subproject commit 1a2d5ec41a2d46e356465734f2c915db703005fc +Subproject commit b3202daee278b9807ee4c246ef4afb586c9f1e4e diff --git a/analyze/CMakeLists.txt b/analyze/CMakeLists.txt index 0af37dee7..1c446aebe 100644 --- a/analyze/CMakeLists.txt +++ b/analyze/CMakeLists.txt @@ -13,11 +13,13 @@ if (PRODUCTION_BUILD) message("FLEX: " ${FLEX_LM_SRC_DIR}) endif(PRODUCTION_BUILD) -get_filename_component(READ_VERILOG_SRC_DIR "../Raptor_Tools/gatelevel_readers/read_verilog" - REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE) -if ((NOT RAPTOR) AND (NOT YOSYS_VERIFIC)) - add_subdirectory(${READ_VERILOG_SRC_DIR} "libreadver") - message("READ_VERILOG_SRC_DIR: ${READ_VERILOG_SRC_DIR}") +if(ENABLE_VERIFIC) + get_filename_component(READ_VERILOG_SRC_DIR "../Raptor_Tools/gatelevel_readers/read_verilog" + REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE) + if ((NOT RAPTOR) AND (NOT YOSYS_VERIFIC)) + add_subdirectory(${READ_VERILOG_SRC_DIR} "libreadver") + message("READ_VERILOG_SRC_DIR: ${READ_VERILOG_SRC_DIR}") + endif() endif() find_package(PkgConfig REQUIRED) @@ -60,11 +62,12 @@ file(GLOB_RECURSE SOURCE_FILES add_executable(analyze ${SOURCE_FILES}) -if (CMAKE_BUILD_TYPE STREQUAL "Debug") - add_dependencies(analyze verific) +if(ENABLE_VERIFIC) + if (CMAKE_BUILD_TYPE STREQUAL "Debug") + add_dependencies(analyze verific) + endif() endif() - list(APPEND ANALYZE_CXX_FLAGS_DEBUG -fPIC -Werror -Wall -O0 -g ${MEM_SANITIZER_FLAGS} ${CXX_DEFINES} ) @@ -72,14 +75,16 @@ list(APPEND ANALYZE_CXX_FLAGS_RELEASE -fPIC -Werror -Wall -O3 -DNDEBUG ${CXX_DEFINES} ) -get_filename_component(VERIFIC_HOME "../Raptor_Tools/verific_rs" - REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE) -message("VERIFIC_HOME: ${VERIFIC_HOME}") +if(ENABLE_VERIFIC) + get_filename_component(VERIFIC_HOME "../Raptor_Tools/verific_rs" + REALPATH BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE) + message("VERIFIC_HOME: ${VERIFIC_HOME}") -file(GLOB_RECURSE LIB_HEADERS - ${VERIFIC_HOME}/*/*.h) + file(GLOB_RECURSE LIB_HEADERS + ${VERIFIC_HOME}/*/*.h) -files_to_dirs(LIB_HEADERS LIB_INCLUDE_DIRS) + files_to_dirs(LIB_HEADERS LIB_INCLUDE_DIRS) +endif() if (PRODUCTION_BUILD) add_dependencies(analyze rs_licenseManager) @@ -90,7 +95,10 @@ endif(PRODUCTION_BUILD) target_include_directories(analyze PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/third_party/) target_include_directories(analyze PUBLIC ${LIB_INCLUDE_DIRS}) -target_include_directories(analyze PUBLIC ${READ_VERILOG_SRC_DIR}/src/read_nl/) + +if(ENABLE_VERIFIC) + target_include_directories(analyze PUBLIC ${READ_VERILOG_SRC_DIR}/src/read_nl/) +endif() if (APPLE) set(OS "mac") @@ -98,43 +106,52 @@ elseif (UNIX) set(OS "linux") endif() -list(APPEND VERIFIC_LIBS - ${VERIFIC_HOME}/verilog/verilog-${OS}.a - ${VERIFIC_HOME}/database/database-${OS}.a - ${VERIFIC_HOME}/util/util-${OS}.a - ${VERIFIC_HOME}/containers/containers-${OS}.a - ${VERIFIC_HOME}/hier_tree/hier_tree-${OS}.a - ${VERIFIC_HOME}/vhdl/vhdl-${OS}.a - ) - -add_dependencies(analyze libreadver) +if(ENABLE_VERIFIC) + list(APPEND VERIFIC_LIBS + ${VERIFIC_HOME}/verilog/verilog-${OS}.a + ${VERIFIC_HOME}/database/database-${OS}.a + ${VERIFIC_HOME}/util/util-${OS}.a + ${VERIFIC_HOME}/containers/containers-${OS}.a + ${VERIFIC_HOME}/hier_tree/hier_tree-${OS}.a + ${VERIFIC_HOME}/vhdl/vhdl-${OS}.a + ) + + add_dependencies(analyze libreadver) +endif() if (PRODUCTION_BUILD) target_link_libraries(analyze PUBLIC rs_licenseManager) endif() -target_link_libraries(analyze PUBLIC ${VERIFIC_LIBS}) -target_link_libraries(analyze PUBLIC libreadver) +if(ENABLE_VERIFIC) + target_link_libraries(analyze PUBLIC ${VERIFIC_LIBS}) + target_link_libraries(analyze PUBLIC libreadver) +endif() + target_link_libraries(analyze PUBLIC ${OPENSSL_LIBRARIES}) target_compile_options(analyze PUBLIC $<$:${ANALYZE_CXX_FLAGS_DEBUG}>) target_compile_options(analyze PUBLIC $<$:${ANALYZE_CXX_FLAGS_RELEASE}>) -add_custom_command(TARGET analyze - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory ${VERIFIC_HOME}/vhdl_packages ${SHARE_DIRECTORY}/vhdl_packages - ) +if(ENABLE_VERIFIC) + add_custom_command(TARGET analyze + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory ${VERIFIC_HOME}/vhdl_packages ${SHARE_DIRECTORY}/vhdl_packages + ) +endif() install( PROGRAMS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/analyze DESTINATION bin ) -install( - DIRECTORY ${SHARE_DIRECTORY} - DESTINATION share - USE_SOURCE_PERMISSIONS -) +if(ENABLE_VERIFIC) + install( + DIRECTORY ${SHARE_DIRECTORY} + DESTINATION share + USE_SOURCE_PERMISSIONS + ) +endif() add_custom_target( clean_analyze diff --git a/analyze/src/analyze.cc b/analyze/src/analyze.cc index d8ddf0691..bb79083a3 100644 --- a/analyze/src/analyze.cc +++ b/analyze/src/analyze.cc @@ -19,11 +19,11 @@ #include #include #endif - +#ifdef ENABLE_VERIFIC #include "ieee_1735.h" #include "port_dump.h" #include "hier_dump.h" - +#endif #ifdef PRODUCTION_BUILD #include "License_manager.hpp" #endif diff --git a/yosys-rs-plugin b/yosys-rs-plugin index a8beb07b0..b2bae3a13 160000 --- a/yosys-rs-plugin +++ b/yosys-rs-plugin @@ -1 +1 @@ -Subproject commit a8beb07b03d29b0b693df6fc247ca0a69cb641b4 +Subproject commit b2bae3a1350c074586639f8f18a6de3d06117866