blob: c2df50d0ea48e61b1b0a77d146e27b95ea2c37b7 [file] [log] [blame] [edit]
set(BASE_TEST_NAME bram_test)
get_target_property_required(UART_SOURCES uart_library SOURCES)
list(APPEND SOURCES ${f4pga-arch-defs_SOURCE_DIR}/library/lfsr.v ${COMMON}/error_output_logic.v ${COMMON}/ram_test.v)
get_target_property_required(DEVICE basys3 DEVICE)
get_target_property_required(ARCH ${DEVICE} ARCH)
# Symmetric modes only
set(BRAM18_WIDTHS 1 2 4 9 18)
set(BRAM36_WIDTHS 1 2 4 9 18 36)
add_file_target(FILE bram_test.v SCANNER_TYPE verilog)
get_target_property_required(PYTHON3 env PYTHON3)
set(GENERATE_DEPS ${CMAKE_CURRENT_SOURCE_DIR}/generate_test.py ${PYTHON3})
add_custom_target(all_xc7_bram_diff_fasm)
set(ANY_BRAM_DIFF_FASM FALSE)
foreach(type 18 36)
foreach(width ${BRAM${type}_WIDTHS})
set(FNAME ${BASE_TEST_NAME}_${type}_${width}.v)
add_custom_command(
OUTPUT ${FNAME}
COMMAND ${PYTHON3}
${CMAKE_CURRENT_SOURCE_DIR}/generate_test.py
--type ${type}
--width ${width}
> ${CMAKE_CURRENT_BINARY_DIR}/${FNAME}
DEPENDS ${GENERATE_DEPS})
add_file_target(FILE ${FNAME} GENERATED)
get_file_target(TARGET_NAME ${FNAME})
set_target_properties(
${TARGET_NAME}
PROPERTIES
INCLUDE_FILES bram_test.v)
add_fpga_target(
NAME ${BASE_TEST_NAME}_${type}_${width}
BOARD basys3
INPUT_IO_FILE ${COMMON}/basys3.pcf
SOURCES ${UART_SOURCES} ${SOURCES} ${FNAME}
EXPLICIT_ADD_FILE_TARGET
)
get_target_property_required(SYNTH_V ${BASE_TEST_NAME}_${type}_${width} SYNTH_V)
add_autosim(
NAME ${BASE_TEST_NAME}_${type}_${width}_autosim_synth
TOP top
ARCH ${ARCH}
SOURCES ${SYNTH_V}
CYCLES 3000
)
add_vivado_target(
NAME bram_test_${type}_${width}_vivado
PARENT_NAME bram_test_${type}_${width}
CLOCK_PINS clk
CLOCK_PERIODS 10.0
)
if(${ALL_XC7_DIFF_FASM_VERILOG})
set(DIFF_FASM_TARGET bram_test_${type}_${width}_vivado_diff_fasm)
if(TARGET ${DIFF_FASM_TARGET})
add_dependencies(all_xc7_bram_diff_fasm ${DIFF_FASM_TARGET})
set(ANY_BRAM_DIFF_FASM TRUE)
endif()
endif()
if(${ALL_XC7_DIFF_FASM_INTERCHANGE})
set(DIFF_FASM_TARGET bram_test_${type}_${width}_vivado_interchange_diff_fasm)
if(TARGET ${DIFF_FASM_TARGET})
add_dependencies(all_xc7_bram_diff_fasm ${DIFF_FASM_TARGET})
set(ANY_BRAM_DIFF_FASM TRUE)
endif()
endif()
endforeach()
endforeach()
if(NOT ${ANY_BRAM_DIFF_FASM})
add_custom_target(
no_bram_diff_fasm_targets
COMMAND ${CMAKE_COMMAND} -E echo "No targets for all_xc7_bram_diff_fasm, check CMake configure messages for details.")
add_dependencies(all_xc7_bram_diff_fasm no_bram_diff_fasm_targets)
endif()