function(icestorm_setup)
  get_target_property_required(PYTHON3 env PYTHON3)

  set(ICESTORM_SRC ${f4pga-arch-defs_SOURCE_DIR}/third_party/icestorm CACHE PATH "Path to icestorm repository")
  set(PYUTILS_PATH ${f4pga-arch-defs_SOURCE_DIR}/utils:${f4pga-arch-defs_SOURCE_DIR}/lattice/ice40/utils/fasm_icebox)

  set(FASM2ASC ${f4pga-arch-defs_SOURCE_DIR}/lattice/ice40/utils/fasm_icebox/fasm2asc.py)
  add_custom_target(
    fasm2asc_deps
    DEPENDS ${FASM2ASC_DEPS} ${FASM2ASC} ${PYTHON3}
    )

  add_custom_target(
    ice40_import_timing_deps
    DEPENDS ${ICE40_IMPORT_TIMING} ${PYTHON3}
    )

  set_target_properties(
    ice40_import_timing_deps
    PROPERTIES ICE40_IMPORT_TIMING ${f4pga-arch-defs_SOURCE_DIR}/lattice/ice40/utils/ice40_import_bel_timing.py
    )

  get_target_property_required(ICEBOX_VLOG env ICEBOX_VLOG)
  get_target_property_required(ICEPACK env ICEPACK)
  get_target_property_required(ICETIME env ICETIME)
  get_target_property_required(ICEBOX_HLC2ASC env ICEBOX_HLC2ASC)

  get_filename_component(ICEBOX_PATH ${ICEBOX_VLOG} DIRECTORY)
  set(ICEBOX_SHARE ${ICEBOX_PATH}/../share/icebox CACHE PATH "")

  set(CELLS_SIM ${YOSYS_DATADIR}/ice40/cells_sim.v)
  add_file_target(FILE ${CELLS_SIM} ABSOLUTE)

  set(PYPATH_ARG "PYTHONPATH=\${ICEBOX_PATH}:${PYUTILS_PATH}")
  define_arch(
    ARCH ice40
    DEVICE_FULL_TEMPLATE \${DEVICE}-\${PACKAGE}
    VPR_ARCH_ARGS "\
      --clock_modeling route \
      --allow_unrelated_clustering off \
      --target_ext_pin_util 0.5 \
      --astar_fac 1.0 \
      --router_init_wirelength_abort_threshold 2 \
      --congested_routing_iteration_threshold 0.8"
    RR_PATCH_CMD "\${QUIET_CMD} \${CMAKE_COMMAND} -E env ${PYPATH_ARG} \
    \${PYTHON3} ${f4pga-arch-defs_SOURCE_DIR}/lattice/ice40/utils/ice40_import_routing_from_icebox.py \
    --device=\${DEVICE} \
    --read_rr_graph \${OUT_RRXML_VIRT} \
    --write_rr_graph \${OUT_RRXML_REAL}"
    PLACE_TOOL_CMD "\${QUIET_CMD}  \${CMAKE_COMMAND} -E env  ${PYPATH_ARG} \
    \${PYTHON3} ${f4pga-arch-defs_SOURCE_DIR}/lattice/ice40/utils/ice40_create_ioplace.py \
    --map \${PINMAP} \
    --blif \${OUT_EBLIF} \
    --pcf \${INPUT_IO_FILE} \
    --net \${OUT_NET}"
    CELLS_SIM ${CELLS_SIM}
    BIT_TO_V_CMD "${ICEBOX_VLOG} -D -c -n \${TOP} -p \${INPUT_IO_FILE} -d \${PACKAGE} \${OUT_BITSTREAM} > \${OUT_BIT_VERILOG}"
    BITSTREAM_EXTENSION asc
    BIT_TO_BIN ${ICEPACK}
    BIT_TO_BIN_CMD "${ICEPACK} \${OUT_BITSTREAM} > \${OUT_BIN}"
    BIT_TIME ${ICETIME}
    BIN_EXTENSION bin
    BIT_TIME_CMD "${ICETIME} -v -t -p \${INPUT_IO_FILE} -d \${DEVICE} \${OUT_BITSTREAM} -o \${OUT_TIME_VERILOG}"
    FASM_TO_BIT fasm2asc_deps
    FASM_TO_BIT_CMD "\${QUIET_CMD}  \${CMAKE_COMMAND} -E env  ${PYPATH_ARG} \
    \${PYTHON3} ${FASM2ASC} --device \${DEVICE} \${OUT_FASM} \${OUT_BITSTREAM}"
    USE_FASM
    ROUTE_CHAN_WIDTH 100
    NO_PLACE_CONSTR
  )

endfunction()
