Skip to content

Commit

Permalink
Merge branch 'main' of github.com:RapidSilicon/yosys_verific_rs
Browse files Browse the repository at this point in the history
  • Loading branch information
awaisabbas-rs committed Sep 27, 2023
2 parents edd0102 + 555f057 commit 6208f4f
Show file tree
Hide file tree
Showing 8 changed files with 108 additions and 75 deletions.
80 changes: 48 additions & 32 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ endif(NOT CMAKE_BUILD_TYPE)
set(VERSION_MAJOR 0)
set(VERSION_MINOR 0)

set(VERSION_PATCH 239)
set(VERSION_PATCH 241)

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 logic_synthesis-rs
2 changes: 1 addition & 1 deletion yosys
Submodule yosys updated from 57d4b0 to 6bf50b
2 changes: 1 addition & 1 deletion yosys-rs-plugin

0 comments on commit 6208f4f

Please sign in to comment.