|  | 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} | 
|  | ) |