Skip to content

Commit

Permalink
Merge pull request f4pga#1565 from andrewb1999/heterogeneous-synth-tiles
Browse files Browse the repository at this point in the history
Heterogeneous synth tiles
  • Loading branch information
litghost committed Jul 24, 2020
2 parents fbeff25 + 3bf921f commit 8b5c0cb
Show file tree
Hide file tree
Showing 10 changed files with 349 additions and 191 deletions.
1 change: 0 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ exclude =
xc7/utils/prjxray_assign_tile_pin_direction.py,
xc7/utils/prjxray_create_synth_tiles.py,
xc7/utils/prjxray_physical_tile_import.py,
xc7/utils/prjxray_synth_tiles_to_pinmap_csv.py,
xc7/utils/prjxray_tile_import.py,
xc7/utils/vivado_create_runme.py,
xc7/utils/prjxray_arch_import.py,
Expand Down
7 changes: 7 additions & 0 deletions utils/lib/rr_graph/graph2.py
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,13 @@ def create_pin_name_from_tile_type_and_pin(
):
return '{}.{}[{}]'.format(tile_type, port_name, pin_idx)

def create_pin_name_from_tile_type_sub_tile_num_and_pin(
self, tile_type, sub_tile_num, port_name, pin_idx=0
):
return '{}[{}].{}[{}]'.format(
tile_type, sub_tile_num, port_name, pin_idx
)

def get_nodes_for_pin(self, loc, pin_name):
block_type_id, pin_class_idx, pin_idx = self.pin_name_map[pin_name]
grid_loc = self.loc_map[loc]
Expand Down
16 changes: 9 additions & 7 deletions xc/common/cmake/device_define.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -95,19 +95,21 @@ function(ADD_XC_BOARD)

get_target_property_required(SYNTH_TILES ${DEVICE_TYPE} SYNTH_TILES)
get_file_location(SYNTH_TILES_LOCATION ${SYNTH_TILES})
set(SYNTH_TILES_TO_PINMAP_CSV ${symbiflow-arch-defs_SOURCE_DIR}/xc/common/utils/prjxray_synth_tiles_to_pinmap_csv.py)
set(PINMAP_CSV ${BOARD}_synth_tiles_pinmap.csv)

set(PINMAP_CSV_DEPS ${PYTHON3} ${SYNTH_TILES_TO_PINMAP_CSV})
set(CREATE_PINMAP_CSV ${symbiflow-arch-defs_SOURCE_DIR}/xc/common/utils/prjxray_create_pinmap_csv.py)
set(PINMAP_CSV ${BOARD}_pinmap.csv)
set(PINMAP_CSV_DEPS ${PYTHON3} ${CREATE_PINMAP_CSV})
append_file_dependency(PINMAP_CSV_DEPS ${CHANNELS_DB})
append_file_dependency(PINMAP_CSV_DEPS ${SYNTH_TILES})

add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PINMAP_CSV}
COMMAND ${PYTHON3} ${SYNTH_TILES_TO_PINMAP_CSV}
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PINMAP_CSV}
COMMAND ${PYTHON3} ${CREATE_PINMAP_CSV}
--connection_database ${CHANNELS_LOCATION}
--synth_tiles ${SYNTH_TILES_LOCATION}
--package_pins ${PRJRAY_DB_DIR}/${PRJRAY_ARCH}/${PART}/package_pins.csv
--output ${CMAKE_CURRENT_BINARY_DIR}/${PINMAP_CSV}
DEPENDS ${PINMAP_CSV_DEPS}
)
)
else()

set_target_properties(${BOARD}
Expand Down

0 comments on commit 8b5c0cb

Please sign in to comment.