2025-01-16 21:06:10 +01:00
|
|
|
set(SOURCES
|
|
|
|
|
cells.cc
|
|
|
|
|
constids.inc
|
|
|
|
|
extra_data.h
|
|
|
|
|
fasm.cc
|
|
|
|
|
pack_carry.cc
|
|
|
|
|
pack.cc
|
|
|
|
|
pack_clocking.cc
|
|
|
|
|
pack_dram.cc
|
|
|
|
|
pack_dsp_xc7.cc
|
|
|
|
|
pack.h
|
|
|
|
|
pack_io.cc
|
|
|
|
|
pins.cc
|
|
|
|
|
pins.h
|
|
|
|
|
xdc.cc
|
|
|
|
|
xilinx.cc
|
|
|
|
|
xilinx.h
|
|
|
|
|
xilinx_place.cc
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_nextpnr_himbaechel_microarchitecture(${uarch}
|
|
|
|
|
CORE_SOURCES ${SOURCES}
|
|
|
|
|
)
|
|
|
|
|
|
2023-10-16 14:06:41 +02:00
|
|
|
set(HIMBAECHEL_PRJXRAY_DB "" CACHE STRING
|
|
|
|
|
"Path to a project x-ray database")
|
2025-07-02 14:58:09 +02:00
|
|
|
if (NOT HIMBAECHEL_PRJXRAY_DB AND NOT IMPORT_BBA_FILES)
|
2025-01-15 17:20:21 +01:00
|
|
|
message(FATAL_ERROR "HIMBAECHEL_PRJXRAY_DB must be set to a prjxray database checkout")
|
|
|
|
|
endif()
|
2023-10-16 14:06:41 +02:00
|
|
|
|
2025-07-02 14:58:09 +02:00
|
|
|
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()
|
2025-01-15 17:20:21 +01:00
|
|
|
message(STATUS "Enabled Himbaechel-Xilinx devices: ${HIMBAECHEL_XILINX_DEVICES}")
|
2023-10-16 14:06:41 +02:00
|
|
|
|
2025-07-02 14:58:09 +02:00
|
|
|
if (NOT XilinxChipdb_Python3_EXECUTABLE)
|
|
|
|
|
find_program(XilinxChipdb_Python3_EXECUTABLE NAMES pypy3 python3)
|
|
|
|
|
endif()
|
|
|
|
|
|
2025-01-15 10:22:03 +01:00
|
|
|
foreach (device ${HIMBAECHEL_XILINX_DEVICES})
|
2025-01-15 17:20:21 +01:00
|
|
|
add_bba_produce_command(
|
2025-01-22 23:43:34 +01:00
|
|
|
TARGET nextpnr-himbaechel-xilinx-bba
|
2025-07-02 14:58:09 +02:00
|
|
|
COMMAND ${XilinxChipdb_Python3_EXECUTABLE}
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/gen/xilinx_gen.py
|
2025-01-15 17:20:21 +01:00
|
|
|
--xray ${HIMBAECHEL_PRJXRAY_DB}/artix7
|
|
|
|
|
--device ${device}
|
|
|
|
|
--bba ${CMAKE_CURRENT_BINARY_DIR}/chipdb-${device}.bba.new
|
|
|
|
|
OUTPUT
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/chipdb-${device}.bba
|
|
|
|
|
INPUTS
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/gen/xilinx_gen.py
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/constids.inc
|
|
|
|
|
)
|
2023-10-16 14:06:41 +02:00
|
|
|
|
2025-01-15 17:20:21 +01:00
|
|
|
add_bba_compile_command(
|
2025-01-16 21:06:10 +01:00
|
|
|
TARGET nextpnr-himbaechel-xilinx-chipdb
|
|
|
|
|
OUTPUT himbaechel/xilinx/chipdb-${device}.bin
|
2025-01-15 17:20:21 +01:00
|
|
|
INPUT ${CMAKE_CURRENT_BINARY_DIR}/chipdb-${device}.bba
|
|
|
|
|
MODE binary
|
|
|
|
|
)
|
2023-10-16 14:06:41 +02:00
|
|
|
endforeach()
|