himbaechel: xilinx: misc `CMakeLists.txt` improvements (#1509)

* himbaechel: xilinx: replace `/usr/bin/pypy3` with `${Python3_EXECUTABLE}`

* himbaechel: xilinx: recognize `IMPORT_BBA_FILES` inside `CMakeLists.txt`

* himbaechel: xilinx: align CMake device selection behavior with gatemate
This commit is contained in:
José Miguel Sánchez García 2025-07-02 14:58:09 +02:00 committed by GitHub
parent cb9f3117ba
commit 1d4b0eeac4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 13 additions and 4 deletions

View File

@ -24,18 +24,27 @@ add_nextpnr_himbaechel_microarchitecture(${uarch}
set(HIMBAECHEL_PRJXRAY_DB "" CACHE STRING
"Path to a project x-ray database")
if (NOT HIMBAECHEL_PRJXRAY_DB)
if (NOT HIMBAECHEL_PRJXRAY_DB AND NOT IMPORT_BBA_FILES)
message(FATAL_ERROR "HIMBAECHEL_PRJXRAY_DB must be set to a prjxray database checkout")
endif()
set(HIMBAECHEL_XILINX_DEVICES "" CACHE STRING
"Include support for these Xilinx devices")
set(ALL_HIMBAECHEL_XILINX_DEVICES xc7a100t xc7a200t xc7a50t xc7s50 xc7z010 xc7z020)
set(HIMBAECHEL_XILINX_DEVICES ${ALL_HIMBAECHEL_XILINX_DEVICES} CACHE STRING
"Include support for these Xilinx devices (available: ${ALL_HIMBAECHEL_XILINX_DEVICES})")
if (HIMBAECHEL_XILINX_DEVICES STREQUAL "all")
set(HIMBAECHEL_XILINX_DEVICES ${ALL_HIMBAECHEL_XILINX_DEVICES})
endif()
message(STATUS "Enabled Himbaechel-Xilinx devices: ${HIMBAECHEL_XILINX_DEVICES}")
if (NOT XilinxChipdb_Python3_EXECUTABLE)
find_program(XilinxChipdb_Python3_EXECUTABLE NAMES pypy3 python3)
endif()
foreach (device ${HIMBAECHEL_XILINX_DEVICES})
add_bba_produce_command(
TARGET nextpnr-himbaechel-xilinx-bba
COMMAND /usr/bin/pypy3 ${CMAKE_CURRENT_SOURCE_DIR}/gen/xilinx_gen.py
COMMAND ${XilinxChipdb_Python3_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/gen/xilinx_gen.py
--xray ${HIMBAECHEL_PRJXRAY_DB}/artix7
--device ${device}
--bba ${CMAKE_CURRENT_BINARY_DIR}/chipdb-${device}.bba.new