blob: 195d16621378d12b9e948b234a7b15f9a3d82cbb [file] [log] [blame] [edit]
get_filename_component(FAMILY ${CMAKE_CURRENT_SOURCE_DIR} NAME)
add_subdirectory(techmap)
# Common VPR args for the qlf_k4n8 architecture
#
# There is no modeling of clock routing. The global clock network is implicit
# and non-configurable in the hardware so there is no reason why VPR should
# consider it. Each tile has a separate clock input multiplexer. Its selection
# is established during the VPR packing stage.
#
# TODO: The LUT buffer absorption is currently turned off as the repacker
# inserts some LUT buffers to allow maintaining the top level IO ports.
# With the LUT buffer absorption enabled, the patched netlist and blif
# out of the repacker will be out of sync, causing a VPR failure. The solution
# likely requires a revision of the repacker code to correctly and robustly
# handle the top level I/Os.
set(VPR_ARCH_ARGS "\
--clock_modeling ideal \
--place_delta_delay_matrix_calculation_method dijkstra \
--place_delay_model delta_override \
--router_lookahead extended_map \
--allow_dangling_combinational_nodes on \
--absorb_buffer_luts off "
)
# Define the architecture
quicklogic_define_qlf_arch(
FAMILY ${FAMILY}
ARCH qlf_k4n8
VPR_ARGS ${VPR_ARCH_ARGS}
ROUTE_CHAN_WIDTH 10 # Will be overriden by each device
)
add_subdirectory(devices)
include(boards.cmake)
add_subdirectory(tests)
# Define toolchain installation target
set(FAMILY_DIR ${f4pga-arch-defs_SOURCE_DIR}/quicklogic/${FAMILY})
define_ql_toolchain_target(
FAMILY ${FAMILY}
ARCH qlf_k4n8
ROUTE_CHAN_WIDTH 100
CELLS_SIM ${FAMILY_DIR}/techmap/cells_sim.v
VPR_ARCH_ARGS ${VPR_ARCH_ARGS}
)