
Currently the lookahead is disabled by default because of the time to compute and RAM usage. However it does appear to work reasonably well in testing. Further effort is required to lower RAM usage after initial computation, and explore trade-off for cheaper time to compute. Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
55 lines
2.1 KiB
CMake
55 lines
2.1 KiB
CMake
find_package(TCL)
|
|
if(NOT ${TCL_FOUND})
|
|
message(FATAL_ERROR "Tcl is required for FPGA interchange Arch.")
|
|
endif()
|
|
|
|
find_package(ZLIB REQUIRED)
|
|
|
|
set(RAPIDWRIGHT_PATH $ENV{HOME}/RapidWright CACHE PATH "Path to RapidWright")
|
|
set(INVOKE_RAPIDWRIGHT ${RAPIDWRIGHT_PATH}/scripts/invoke_rapidwright.sh CACHE PATH "Path to RapidWright invocation script")
|
|
# FIXME: Make patch data available in the python package and remove this cached var
|
|
set(PYTHON_INTERCHANGE_PATH $ENV{HOME}/python-fpga-interchange CACHE PATH "Path to the FPGA interchange python library")
|
|
set(INTERCHANGE_SCHEMA_PATH ${PROJECT_SOURCE_DIR}/3rdparty/fpga-interchange-schema/interchange CACHE PATH "Path to the FPGA interchange schema dir")
|
|
|
|
add_subdirectory(3rdparty/fpga-interchange-schema/cmake/cxx_static)
|
|
|
|
include(${family}/examples/chipdb.cmake)
|
|
include(${family}/examples/tests.cmake)
|
|
|
|
set(chipdb_dir ${CMAKE_CURRENT_BINARY_DIR}/${family}/chipdb)
|
|
file(MAKE_DIRECTORY ${chipdb_dir})
|
|
|
|
add_custom_target(all-${family}-tests)
|
|
add_custom_target(all-${family}-archcheck-tests)
|
|
add_subdirectory(${family}/examples/devices)
|
|
add_subdirectory(${family}/examples/tests)
|
|
|
|
set(PROTOS lookahead.capnp)
|
|
set(CAPNP_SRCS)
|
|
set(CAPNP_HDRS)
|
|
find_package(CapnProto REQUIRED)
|
|
foreach (proto ${PROTOS})
|
|
capnp_generate_cpp(CAPNP_SRC CAPNP_HDR fpga_interchange/${proto})
|
|
list(APPEND CAPNP_HDRS ${CAPNP_HDR})
|
|
list(APPEND CAPNP_SRCS ${CAPNP_SRC})
|
|
endforeach()
|
|
|
|
add_library(extra_capnp STATIC ${CAPNP_SRCS})
|
|
target_link_libraries(extra_capnp PRIVATE CapnProto::capnp)
|
|
|
|
target_include_directories(extra_capnp INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/fpga_interchange)
|
|
|
|
foreach (target ${family_targets})
|
|
target_include_directories(${target} PRIVATE ${TCL_INCLUDE_PATH})
|
|
target_link_libraries(${target} PRIVATE ${TCL_LIBRARY})
|
|
target_link_libraries(${target} PRIVATE fpga_interchange_capnp)
|
|
target_link_libraries(${target} PRIVATE extra_capnp)
|
|
target_link_libraries(${target} PRIVATE z)
|
|
endforeach()
|
|
|
|
if(BUILD_GUI)
|
|
target_link_libraries(gui_${family} fpga_interchange_capnp)
|
|
target_link_libraries(gui_${family} extra_capnp)
|
|
target_link_libraries(gui_${family} z)
|
|
endif()
|