parent
640285755e
commit
1b3c8ea9c1
@ -10,6 +10,7 @@ option(USE_OPENMP "Use OpenMP to accelerate analytic placer" OFF)
|
|||||||
option(COVERAGE "Add code coverage info" OFF)
|
option(COVERAGE "Add code coverage info" OFF)
|
||||||
option(STATIC_BUILD "Create static build" OFF)
|
option(STATIC_BUILD "Create static build" OFF)
|
||||||
option(EXTERNAL_CHIPDB "Create build with pre-built chipdb binaries" OFF)
|
option(EXTERNAL_CHIPDB "Create build with pre-built chipdb binaries" OFF)
|
||||||
|
option(SERIALIZE_CHIPDB "Never build chipdb in parallel to reduce peak memory use" ON)
|
||||||
|
|
||||||
set(link_param "")
|
set(link_param "")
|
||||||
if (STATIC_BUILD)
|
if (STATIC_BUILD)
|
||||||
|
@ -35,18 +35,22 @@ if (NOT EXTERNAL_CHIPDB)
|
|||||||
if (MSVC)
|
if (MSVC)
|
||||||
target_sources(ecp5_chipdb PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/resource/embed.cc)
|
target_sources(ecp5_chipdb PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/resource/embed.cc)
|
||||||
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ecp5/resources/chipdb.rc PROPERTIES LANGUAGE RC)
|
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ecp5/resources/chipdb.rc PROPERTIES LANGUAGE RC)
|
||||||
|
set(PREV_DEV_CC_BBA_DB)
|
||||||
foreach (dev ${devices})
|
foreach (dev ${devices})
|
||||||
set(DEV_CC_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bin)
|
set(DEV_CC_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bin)
|
||||||
set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bba)
|
set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bba)
|
||||||
set(DEV_CONSTIDS_INC ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/constids.inc)
|
set(DEV_CONSTIDS_INC ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/constids.inc)
|
||||||
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
|
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
|
||||||
COMMAND ${ENV_CMD} python3 ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB}
|
COMMAND ${ENV_CMD} python3 ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB}
|
||||||
DEPENDS ${DB_PY}
|
DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB}
|
||||||
)
|
)
|
||||||
add_custom_command(OUTPUT ${DEV_CC_DB}
|
add_custom_command(OUTPUT ${DEV_CC_DB}
|
||||||
COMMAND bbasm ${DEV_CC_BBA_DB} ${DEV_CC_DB}
|
COMMAND bbasm ${DEV_CC_BBA_DB} ${DEV_CC_DB}
|
||||||
DEPENDS bbasm ${DEV_CC_BBA_DB}
|
DEPENDS bbasm ${DEV_CC_BBA_DB}
|
||||||
)
|
)
|
||||||
|
if (SERIALIZE_CHIPDB)
|
||||||
|
set(PREV_DEV_CC_BBA_DB ${DEV_CC_BBA_DB})
|
||||||
|
endif()
|
||||||
target_sources(ecp5_chipdb PRIVATE ${DEV_CC_DB})
|
target_sources(ecp5_chipdb PRIVATE ${DEV_CC_DB})
|
||||||
set_source_files_properties(${DEV_CC_DB} PROPERTIES HEADER_FILE_ONLY TRUE)
|
set_source_files_properties(${DEV_CC_DB} PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||||
foreach (target ${family_targets})
|
foreach (target ${family_targets})
|
||||||
@ -55,6 +59,7 @@ if (NOT EXTERNAL_CHIPDB)
|
|||||||
endforeach()
|
endforeach()
|
||||||
else()
|
else()
|
||||||
target_compile_options(ecp5_chipdb PRIVATE -g0 -O0 -w)
|
target_compile_options(ecp5_chipdb PRIVATE -g0 -O0 -w)
|
||||||
|
set(PREV_DEV_CC_BBA_DB)
|
||||||
foreach (dev ${devices})
|
foreach (dev ${devices})
|
||||||
set(DEV_CC_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.cc)
|
set(DEV_CC_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.cc)
|
||||||
set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bba)
|
set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bba)
|
||||||
@ -62,13 +67,16 @@ if (NOT EXTERNAL_CHIPDB)
|
|||||||
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
|
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
|
||||||
COMMAND ${ENV_CMD} python3 ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB}.new
|
COMMAND ${ENV_CMD} python3 ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB}.new
|
||||||
COMMAND mv ${DEV_CC_BBA_DB}.new ${DEV_CC_BBA_DB}
|
COMMAND mv ${DEV_CC_BBA_DB}.new ${DEV_CC_BBA_DB}
|
||||||
DEPENDS ${DB_PY}
|
DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB}
|
||||||
)
|
)
|
||||||
add_custom_command(OUTPUT ${DEV_CC_DB}
|
add_custom_command(OUTPUT ${DEV_CC_DB}
|
||||||
COMMAND bbasm --c ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new
|
COMMAND bbasm --c ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new
|
||||||
COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB}
|
COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB}
|
||||||
DEPENDS bbasm ${DEV_CC_BBA_DB}
|
DEPENDS bbasm ${DEV_CC_BBA_DB}
|
||||||
)
|
)
|
||||||
|
if (SERIALIZE_CHIPDB)
|
||||||
|
set(PREV_DEV_CC_BBA_DB ${DEV_CC_BBA_DB})
|
||||||
|
endif()
|
||||||
target_sources(ecp5_chipdb PRIVATE ${DEV_CC_DB})
|
target_sources(ecp5_chipdb PRIVATE ${DEV_CC_DB})
|
||||||
foreach (target ${family_targets})
|
foreach (target ${family_targets})
|
||||||
target_sources(${target} PRIVATE $<TARGET_OBJECTS:ecp5_chipdb>)
|
target_sources(${target} PRIVATE $<TARGET_OBJECTS:ecp5_chipdb>)
|
||||||
|
@ -19,6 +19,7 @@ if (NOT EXTERNAL_CHIPDB)
|
|||||||
if (MSVC)
|
if (MSVC)
|
||||||
target_sources(ice40_chipdb PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/ice40/resource/embed.cc)
|
target_sources(ice40_chipdb PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/ice40/resource/embed.cc)
|
||||||
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ice40/resources/chipdb.rc PROPERTIES LANGUAGE RC)
|
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ice40/resources/chipdb.rc PROPERTIES LANGUAGE RC)
|
||||||
|
set(PREV_DEV_CC_BBA_DB)
|
||||||
foreach (dev ${devices})
|
foreach (dev ${devices})
|
||||||
if (dev STREQUAL "5k")
|
if (dev STREQUAL "5k")
|
||||||
set(OPT_FAST "")
|
set(OPT_FAST "")
|
||||||
@ -40,12 +41,15 @@ if (NOT EXTERNAL_CHIPDB)
|
|||||||
set(DEV_GFXH ${CMAKE_CURRENT_SOURCE_DIR}/ice40/gfx.h)
|
set(DEV_GFXH ${CMAKE_CURRENT_SOURCE_DIR}/ice40/gfx.h)
|
||||||
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
|
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${DB_PY} -p ${DEV_CONSTIDS_INC} -g ${DEV_GFXH} ${OPT_FAST} ${OPT_SLOW} ${DEV_TXT_DB} > ${DEV_CC_BBA_DB}
|
COMMAND ${PYTHON_EXECUTABLE} ${DB_PY} -p ${DEV_CONSTIDS_INC} -g ${DEV_GFXH} ${OPT_FAST} ${OPT_SLOW} ${DEV_TXT_DB} > ${DEV_CC_BBA_DB}
|
||||||
DEPENDS ${DEV_CONSTIDS_INC} ${DEV_GFXH} ${DEV_TXT_DB} ${DB_PY}
|
DEPENDS ${DEV_CONSTIDS_INC} ${DEV_GFXH} ${DEV_TXT_DB} ${DB_PY} ${PREV_DEV_CC_BBA_DB}
|
||||||
)
|
)
|
||||||
add_custom_command(OUTPUT ${DEV_CC_DB}
|
add_custom_command(OUTPUT ${DEV_CC_DB}
|
||||||
COMMAND bbasm ${DEV_CC_BBA_DB} ${DEV_CC_DB}
|
COMMAND bbasm ${DEV_CC_BBA_DB} ${DEV_CC_DB}
|
||||||
DEPENDS bbasm ${DEV_CC_BBA_DB}
|
DEPENDS bbasm ${DEV_CC_BBA_DB}
|
||||||
)
|
)
|
||||||
|
if (SERIALIZE_CHIPDB)
|
||||||
|
set(PREV_DEV_CC_BBA_DB ${DEV_CC_BBA_DB})
|
||||||
|
endif()
|
||||||
target_sources(ice40_chipdb PRIVATE ${DEV_CC_DB})
|
target_sources(ice40_chipdb PRIVATE ${DEV_CC_DB})
|
||||||
set_source_files_properties(${DEV_CC_DB} PROPERTIES HEADER_FILE_ONLY TRUE)
|
set_source_files_properties(${DEV_CC_DB} PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||||
foreach (target ${family_targets})
|
foreach (target ${family_targets})
|
||||||
@ -54,6 +58,7 @@ if (NOT EXTERNAL_CHIPDB)
|
|||||||
endforeach()
|
endforeach()
|
||||||
else()
|
else()
|
||||||
target_compile_options(ice40_chipdb PRIVATE -g0 -O0 -w)
|
target_compile_options(ice40_chipdb PRIVATE -g0 -O0 -w)
|
||||||
|
set(PREV_DEV_CC_BBA_DB)
|
||||||
foreach (dev ${devices})
|
foreach (dev ${devices})
|
||||||
if (dev STREQUAL "5k")
|
if (dev STREQUAL "5k")
|
||||||
set(OPT_FAST "")
|
set(OPT_FAST "")
|
||||||
@ -76,13 +81,16 @@ if (NOT EXTERNAL_CHIPDB)
|
|||||||
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
|
add_custom_command(OUTPUT ${DEV_CC_BBA_DB}
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${DB_PY} -p ${DEV_CONSTIDS_INC} -g ${DEV_GFXH} ${OPT_FAST} ${OPT_SLOW} ${DEV_TXT_DB} > ${DEV_CC_BBA_DB}.new
|
COMMAND ${PYTHON_EXECUTABLE} ${DB_PY} -p ${DEV_CONSTIDS_INC} -g ${DEV_GFXH} ${OPT_FAST} ${OPT_SLOW} ${DEV_TXT_DB} > ${DEV_CC_BBA_DB}.new
|
||||||
COMMAND mv ${DEV_CC_BBA_DB}.new ${DEV_CC_BBA_DB}
|
COMMAND mv ${DEV_CC_BBA_DB}.new ${DEV_CC_BBA_DB}
|
||||||
DEPENDS ${DEV_CONSTIDS_INC} ${DEV_GFXH} ${DEV_TXT_DB} ${DB_PY}
|
DEPENDS ${DEV_CONSTIDS_INC} ${DEV_GFXH} ${DEV_TXT_DB} ${DB_PY} ${PREV_DEV_CC_BBA_DB}
|
||||||
)
|
)
|
||||||
add_custom_command(OUTPUT ${DEV_CC_DB}
|
add_custom_command(OUTPUT ${DEV_CC_DB}
|
||||||
COMMAND bbasm --c ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new
|
COMMAND bbasm --c ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new
|
||||||
COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB}
|
COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB}
|
||||||
DEPENDS bbasm ${DEV_CC_BBA_DB}
|
DEPENDS bbasm ${DEV_CC_BBA_DB}
|
||||||
)
|
)
|
||||||
|
if (SERIALIZE_CHIPDB)
|
||||||
|
set(PREV_DEV_CC_BBA_DB ${DEV_CC_BBA_DB})
|
||||||
|
endif()
|
||||||
target_sources(ice40_chipdb PRIVATE ${DEV_CC_DB})
|
target_sources(ice40_chipdb PRIVATE ${DEV_CC_DB})
|
||||||
foreach (target ${family_targets})
|
foreach (target ${family_targets})
|
||||||
target_sources(${target} PRIVATE $<TARGET_OBJECTS:ice40_chipdb>)
|
target_sources(${target} PRIVATE $<TARGET_OBJECTS:ice40_chipdb>)
|
||||||
|
Loading…
Reference in New Issue
Block a user