| add_subdirectory(utils) | |
| # Copy map files to binary dir. | |
| get_filename_component(FAMILY_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME) | |
| add_custom_target(QL_CELLS_SIM_DEPS) | |
| include(cells_sim_gen.cmake) | |
| set(CELLS_SIM_FILE ${symbiflow-arch-defs_BINARY_DIR}/quicklogic/${FAMILY_NAME}/techmap/cells_sim.v) | |
| add_subdirectory(primitives) | |
| set(CELLS_MAP_DEST_DIR ${symbiflow-arch-defs_BINARY_DIR}/quicklogic/${FAMILY_NAME}/techmap/) | |
| file(COPY "techmap/cells_map.v" DESTINATION ${CELLS_MAP_DEST_DIR}) | |
| file(COPY "techmap/lut2tomux4.v" DESTINATION ${CELLS_MAP_DEST_DIR}) | |
| file(COPY "techmap/lut2tomux2.v" DESTINATION ${CELLS_MAP_DEST_DIR}) | |
| file(COPY "techmap/lut3tomux2.v" DESTINATION ${CELLS_MAP_DEST_DIR}) | |
| file(COPY "techmap/mux4tomux2.v" DESTINATION ${CELLS_MAP_DEST_DIR}) | |
| add_cells_sim_target(${CELLS_SIM_FILE} ${FAMILY_NAME}) | |
| set(SDF_TIMING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/timings) | |
| get_target_property_required(QLFASM env QLFASM) | |
| set(YOSYS_SYNTH_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/yosys/synth.tcl) | |
| set(YOSYS_CONV_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/yosys/conv.tcl) | |
| set(VPR_ARCH_ARGS "\ | |
| --clock_modeling route \ | |
| --place_delay_model delta_override \ | |
| --router_lookahead extended_map \ | |
| --check_route quick \ | |
| --strict_checks off \ | |
| --allow_dangling_combinational_nodes on \ | |
| --disable_errors check_unbuffered_edges:check_route \ | |
| --congested_routing_iteration_threshold 0.8 \ | |
| --incremental_reroute_delay_ripup off \ | |
| --base_cost_type delay_normalized_length_bounded \ | |
| --bb_factor 10 \ | |
| --initial_pres_fac 4.0 \ | |
| --check_rr_graph off \ | |
| --pack_high_fanout_threshold PB-LOGIC:18 \ | |
| --suppress_warnings \${OUT_NOISY_WARNINGS},sum_pin_class:check_unbuffered_edges:load_rr_indexed_data_T_values:check_rr_node:trans_per_R:check_route:set_rr_graph_tool_comment " | |
| ) | |
| define_arch( | |
| ARCH ql-s3 | |
| FAMILY pp3 | |
| YOSYS_SYNTH_SCRIPT ${YOSYS_SYNTH_SCRIPT} | |
| YOSYS_CONV_SCRIPT ${YOSYS_CONV_SCRIPT} | |
| YOSYS_TECHMAP ${symbiflow-arch-defs_BINARY_DIR}/quicklogic/${FAMILY_NAME}/techmap | |
| DEVICE_FULL_TEMPLATE \${DEVICE} | |
| VPR_ARCH_ARGS ${VPR_ARCH_ARGS} | |
| RR_PATCH_TOOL | |
| ${symbiflow-arch-defs_SOURCE_DIR}/quicklogic/pp3/utils/routing_import.py | |
| RR_PATCH_CMD "\${CMAKE_COMMAND} -E env \ | |
| PYTHONPATH=${symbiflow-arch-defs_SOURCE_DIR}/utils:$PYTHONPATH \ | |
| \${PYTHON3} \${RR_PATCH_TOOL} \ | |
| --vpr-db ${CMAKE_CURRENT_BINARY_DIR}/devices/\${DEVICE_TYPE}/db_vpr.pickle \ | |
| --rr-graph-in \${OUT_RRXML_VIRT} \ | |
| --rr-graph-out \${OUT_RRXML_REAL}" | |
| PLACE_TOOL | |
| ${symbiflow-arch-defs_SOURCE_DIR}/quicklogic/pp3/utils/create_ioplace.py | |
| PLACE_TOOL_CMD "${CMAKE_COMMAND} -E env \ | |
| PYTHONPATH=${symbiflow-arch-defs_SOURCE_DIR}/utils:$PYTHONPATH \ | |
| ${PYTHON3} \${PLACE_TOOL} \ | |
| --map \${PINMAP} \ | |
| --blif \${OUT_EBLIF} \ | |
| --pcf \${INPUT_IO_FILE} \ | |
| --net \${OUT_NET}" | |
| PLACE_CONSTR_TOOL | |
| ${symbiflow-arch-defs_SOURCE_DIR}/quicklogic/pp3/utils/create_place_constraints.py | |
| PLACE_CONSTR_TOOL_CMD "${CMAKE_COMMAND} -E env \ | |
| PYTHONPATH=${symbiflow-arch-defs_SOURCE_DIR}/utils \ | |
| \${PYTHON3} \${PLACE_CONSTR_TOOL} \ | |
| --map ${symbiflow-arch-defs_BINARY_DIR}/quicklogic/${FAMILY_NAME}/\${BOARD}_clkmap.csv \ | |
| --blif \${OUT_EBLIF} \ | |
| --i /dev/stdin \ | |
| --o /dev/stdout \ | |
| \${PLACE_CONSTR_TOOL_EXTRA_ARGS}" | |
| FASM_TO_BIT | |
| ${QLFASM} | |
| FASM_TO_BIT_CMD "\${PYTHON3} \ | |
| \${QLFASM} \ | |
| \${OUT_FASM} | |
| \${OUT_BITSTREAM} | |
| \${FASM_TO_BIT_EXTRA_ARGS}" | |
| BITSTREAM_EXTENSION bit | |
| CELLS_SIM | |
| ${CELLS_SIM_FILE} | |
| NO_BIT_TO_BIN | |
| BIT_TO_V | |
| ${symbiflow-arch-defs_SOURCE_DIR}/quicklogic/pp3/utils/fasm2bels.py | |
| BIT_TO_V_CMD | |
| "${CMAKE_COMMAND} -E env PYTHONPATH=${symbiflow-arch-defs_SOURCE_DIR}/utils:$PYTHONPATH \ | |
| \${PYTHON3} \${BIT_TO_V} \${OUT_BITSTREAM} | |
| --vpr-db ${CMAKE_CURRENT_BINARY_DIR}/devices/\${DEVICE_TYPE}/db_phy.pickle | |
| --package-name PD64 | |
| --input-type bitstream | |
| --output-verilog \${OUT_BIT_VERILOG} | |
| --input-pcf \${INPUT_IO_FILE}" | |
| BIT_TO_V_DEPS | |
| ${symbiflow-arch-defs_SOURCE_DIR}/quicklogic/pp3/utils/verilogmodule.py | |
| ${CMAKE_CURRENT_BINARY_DIR}/devices/\${DEVICE_TYPE}/db_vpr.pickle | |
| NO_BIT_TIME | |
| ROUTE_CHAN_WIDTH 100 | |
| USE_FASM | |
| ) | |
| add_subdirectory(devices) | |
| include(boards.cmake) | |
| add_subdirectory(tests) | |
| define_ql_toolchain_target( | |
| FAMILY pp3 | |
| ARCH ql-s3 | |
| ROUTE_CHAN_WIDTH 100 | |
| CELLS_SIM ${CELLS_SIM_FILE} | |
| VPR_ARCH_ARGS ${VPR_ARCH_ARGS} | |
| CONV_SCRIPT ${YOSYS_CONV_SCRIPT} | |
| SYNTH_SCRIPT ${YOSYS_SYNTH_SCRIPT} | |
| ) |