Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable Verific Front End #484

Merged
merged 13 commits into from
Sep 23, 2023
78 changes: 47 additions & 31 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down Expand Up @@ -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)
Expand All @@ -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()
Expand All @@ -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}"
)

Expand All @@ -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)
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion Raptor_Tools
89 changes: 53 additions & 36 deletions analyze/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -60,26 +62,29 @@ 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}
)
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)
Expand All @@ -90,51 +95,63 @@ 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")
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 $<$<CONFIG:DEBUG>:${ANALYZE_CXX_FLAGS_DEBUG}>)
target_compile_options(analyze PUBLIC $<$<CONFIG:RELEASE>:${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
Expand Down
4 changes: 2 additions & 2 deletions analyze/src/analyze.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
#include <Windows.h>
#include <limits>
#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
Expand Down
2 changes: 1 addition & 1 deletion yosys-rs-plugin
Loading