diff --git a/fuzzers/075-pins/generate.tcl b/fuzzers/075-pins/generate.tcl index 1e0a1b8d..2b86aa8a 100644 --- a/fuzzers/075-pins/generate.tcl +++ b/fuzzers/075-pins/generate.tcl @@ -3,7 +3,7 @@ set_property design_mode PinPlanning [current_fileset] open_io_design -name io_1 set fp [open $::env(XRAY_PART)_package_pins.csv w] -puts $fp "pin,site,tile,pin_function" +puts $fp "pin,bank,site,tile,pin_function" foreach pin [get_package_pins] { set site [get_sites -quiet -of_object $pin] if { $site == "" } { @@ -11,7 +11,8 @@ foreach pin [get_package_pins] { } set tile [get_tiles -of_object $site] + set pin_bank [get_property BANK [get_package_pins $pin]] set pin_function [get_property PIN_FUNC [get_package_pins $pin]] - puts $fp "$pin,$site,$tile,$pin_function" + puts $fp "$pin,$pin_bank,$site,$tile,$pin_function" } diff --git a/utils/fasm2frames.py b/utils/fasm2frames.py index 1efd2a4e..6fe2c7bd 100755 --- a/utils/fasm2frames.py +++ b/utils/fasm2frames.py @@ -7,6 +7,9 @@ import argparse import json import os import os.path +import csv + +from collections import defaultdict from prjxray import fasm_assembler from prjxray.db import Database @@ -79,6 +82,18 @@ def find_pudc_b(db): return pudc_b_tile_site +def get_iob_sites(db, tile_name): + """ + Yields prjxray site names for given IOB tile name + """ + grid = db.grid() + gridinfo = grid.gridinfo_at_tilename(tile_name) + + for site in gridinfo.sites: + site_y = int(site[-1]) % 2 + yield "IOB_Y{}".format(site_y) + + def run( db_root, part, @@ -91,6 +106,27 @@ def run( db = Database(db_root) assembler = fasm_assembler.FasmAssembler(db) + set_features = set() + + def feature_callback(feature): + set_features.add(feature) + + assembler.set_feature_callback(feature_callback) + + # Build mapping of tile to IO bank + tile_to_bank = {} + bank_to_tile = defaultdict(lambda: set()) + + if part is not None: + with open(os.path.join(db_root, part + "_package_pins.csv"), + "r") as fp: + reader = csv.DictReader(fp) + package_pins = [l for l in reader] + + for pin in package_pins: + bank_to_tile[pin["bank"]].add(pin["tile"]) + tile_to_bank[pin["tile"]] = pin["bank"] + if emit_pudc_b_pullup: pudc_b_in_use = False pudc_b_tile_site = find_pudc_b(db) @@ -147,6 +183,46 @@ def run( if missing_features: raise fasm_assembler.FasmLookupError('\n'.join(missing_features)) + if part is not None: + # Make a set of all used IOB tiles and sites. Look for the "STEPDOWN" + # feature. If one is set for an IOB then set it for all other IOBs of + # the same bank. + stepdown_tags = set() + stepdown_banks = set() + used_iob_sites = set() + + for set_feature in set_features: + feature = set_feature.feature + parts = feature.split(".") + if len(parts) >= 3: + tile, site, tag = feature.split(".", maxsplit=2) + if "IOB33" in tile: + used_iob_sites.add(( + tile, + site, + )) + if "STEPDOWN" in tag: + stepdown_banks.add(tile_to_bank[tile]) + stepdown_tags.add(tag) + + # Set the feature for unused IOBs + missing_features = [] + + for bank in stepdown_banks: + for tile in bank_to_tile[bank]: + for site in get_iob_sites(db, tile): + + if (tile, site) in used_iob_sites: + continue + + for tag in stepdown_tags: + feature = "{}.{}.{}".format(tile, site, tag) + for line in fasm.parse_fasm_string(feature): + assembler.add_fasm_line(line, missing_features) + + if missing_features: + raise fasm_assembler.FasmLookupError('\n'.join(missing_features)) + frames = assembler.get_frames(sparse=sparse) if debug: diff --git a/utils/test_data/db/segbits_liob33.db b/utils/test_data/db/segbits_liob33.db new file mode 100644 index 00000000..8b8cdccd --- /dev/null +++ b/utils/test_data/db/segbits_liob33.db @@ -0,0 +1,6 @@ +LIOB33.IOB_Y0.SOMETHING.IN 00_01 +LIOB33.IOB_Y0.SOMETHING.OUT 00_02 +LIOB33.IOB_Y0.SOMETHING.STEPDOWN 00_03 +LIOB33.IOB_Y1.SOMETHING.IN 00_01 +LIOB33.IOB_Y1.SOMETHING.OUT 00_02 +LIOB33.IOB_Y1.SOMETHING.STEPDOWN 00_03 diff --git a/utils/test_data/db/segbits_riob33.db b/utils/test_data/db/segbits_riob33.db new file mode 100644 index 00000000..a47f41bf --- /dev/null +++ b/utils/test_data/db/segbits_riob33.db @@ -0,0 +1,6 @@ +RIOB33.IOB_Y0.SOMETHING.IN 00_01 +RIOB33.IOB_Y0.SOMETHING.OUT 00_02 +RIOB33.IOB_Y0.SOMETHING.STEPDOWN 00_03 +RIOB33.IOB_Y1.SOMETHING.IN 00_01 +RIOB33.IOB_Y1.SOMETHING.OUT 00_02 +RIOB33.IOB_Y1.SOMETHING.STEPDOWN 00_03 diff --git a/utils/test_data/db/tile_type_LIOB33.json b/utils/test_data/db/tile_type_LIOB33.json new file mode 100644 index 00000000..f55822fa --- /dev/null +++ b/utils/test_data/db/tile_type_LIOB33.json @@ -0,0 +1,1569 @@ +{ + "pips": { + "LIOB33.IOB_DIFFO_IN1->>IOB_PADOUT1": { + "can_invert": "0", + "dst_to_src": { + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "in_cap": null, + "res": "0.0" + }, + "dst_wire": "IOB_PADOUT1", + "is_directional": "1", + "is_pass_transistor": 0, + "is_pseudo": "1", + "src_to_dst": { + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "in_cap": null, + "res": "0.0" + }, + "src_wire": "IOB_DIFFO_IN1" + }, + "LIOB33.IOB_DIFFO_OUT0->IOB_DIFFO_IN1": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_DIFFO_IN1", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_DIFFO_OUT0" + }, + "LIOB33.IOB_O0->>IOB_O_OUT0": { + "can_invert": "0", + "dst_to_src": { + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "in_cap": null, + "res": "0.0" + }, + "dst_wire": "IOB_O_OUT0", + "is_directional": "1", + "is_pass_transistor": 0, + "is_pseudo": "1", + "src_to_dst": { + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "in_cap": null, + "res": "0.0" + }, + "src_wire": "IOB_O0" + }, + "LIOB33.IOB_O_OUT0->IOB_O_IN1": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_O_IN1", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_O_OUT0" + }, + "LIOB33.IOB_PADOUT0->IOB_DIFFI_IN1": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_DIFFI_IN1", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_PADOUT0" + }, + "LIOB33.IOB_PADOUT0->LIOB_MONITOR_P": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "LIOB_MONITOR_P", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_PADOUT0" + }, + "LIOB33.IOB_PADOUT1->IOB_DIFFI_IN0": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_DIFFI_IN0", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_PADOUT1" + }, + "LIOB33.IOB_PADOUT1->LIOB_MONITOR_N": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "LIOB_MONITOR_N", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_PADOUT1" + }, + "LIOB33.IOB_T0->>IOB_T_OUT0": { + "can_invert": "0", + "dst_to_src": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "in_cap": null, + "res": "0.0" + }, + "dst_wire": "IOB_T_OUT0", + "is_directional": "1", + "is_pass_transistor": 0, + "is_pseudo": "1", + "src_to_dst": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "in_cap": null, + "res": "0.0" + }, + "src_wire": "IOB_T0" + }, + "LIOB33.IOB_T_OUT0->IOB_T_IN1": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_T_IN1", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_T_OUT0" + } + }, + "sites": [ + { + "name": "X0Y0", + "prefix": "IOB", + "site_pins": { + "DIFFI_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_DIFFI_IN1" + }, + "DIFFO_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_DIFFO_IN1" + }, + "DIFFO_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_DIFFO_OUT1" + }, + "DIFF_TERM_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_DIFF_TERM_INT_EN" + }, + "I": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_IBUF1" + }, + "IBUFDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_IBUF_DISABLE1" + }, + "INTERMDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "LIOB_IN_TERM1" + }, + "KEEPER_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_KEEPER_INT_EN_0" + }, + "O": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_O1" + }, + "O_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_O_IN1" + }, + "O_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_O_OUT1" + }, + "PADOUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_PADOUT1" + }, + "PD_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PD_INT_EN_0" + }, + "PU_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PU_INT_EN_0" + }, + "T": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_T1" + }, + "T_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_T_IN1" + }, + "T_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_T_OUT1" + } + }, + "type": "IOB33S", + "x_coord": 0, + "y_coord": 0 + }, + { + "name": "X0Y1", + "prefix": "IOB", + "site_pins": { + "DIFFI_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_DIFFI_IN0" + }, + "DIFFO_IN": null, + "DIFFO_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_DIFFO_OUT0" + }, + "DIFF_TERM_INT_EN": null, + "I": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_IBUF0" + }, + "IBUFDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_IBUF_DISABLE0" + }, + "INTERMDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "LIOB_IN_TERM0" + }, + "KEEPER_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_KEEPER_INT_EN_1" + }, + "O": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_O0" + }, + "O_IN": null, + "O_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_O_OUT0" + }, + "PADOUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_PADOUT0" + }, + "PD_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PD_INT_EN_1" + }, + "PU_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PU_INT_EN_1" + }, + "T": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_T0" + }, + "T_IN": null, + "T_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_T_OUT0" + } + }, + "type": "IOB33M", + "x_coord": 0, + "y_coord": 1 + } + ], + "tile_type": "LIOB33", + "wires": { + "IOB_DIFFI_IN0": null, + "IOB_DIFFI_IN1": null, + "IOB_DIFFO_IN0": null, + "IOB_DIFFO_IN1": null, + "IOB_DIFFO_OUT0": null, + "IOB_DIFFO_OUT1": null, + "IOB_DIFF_TERM_INT_EN": null, + "IOB_DIFF_TERM_INT_EN_STUB": null, + "IOB_IBUF0": null, + "IOB_IBUF1": null, + "IOB_IBUF_DISABLE0": null, + "IOB_IBUF_DISABLE1": null, + "IOB_KEEPER_INT_EN_0": null, + "IOB_KEEPER_INT_EN_1": null, + "IOB_O0": null, + "IOB_O1": null, + "IOB_O_IN0": null, + "IOB_O_IN1": null, + "IOB_O_OUT0": null, + "IOB_O_OUT1": null, + "IOB_PADOUT0": null, + "IOB_PADOUT1": null, + "IOB_PD_INT_EN_0": null, + "IOB_PD_INT_EN_1": null, + "IOB_PU_INT_EN_0": null, + "IOB_PU_INT_EN_1": null, + "IOB_T0": null, + "IOB_T1": null, + "IOB_T_IN0": null, + "IOB_T_IN1": null, + "IOB_T_OUT0": null, + "IOB_T_OUT1": null, + "LIOB_EE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_IN_TERM0": null, + "LIOB_IN_TERM1": null, + "LIOB_LH10_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH10_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH11_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH11_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH12_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH12_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH1_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH1_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH2_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH2_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH3_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH3_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH4_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH4_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH5_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH5_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH6_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH6_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH7_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH7_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH8_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH8_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH9_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH9_1": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_MONITOR_N": null, + "LIOB_MONITOR_P": null, + "LIOB_NE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END3_1": { + "cap": "150.000", + "res": "1024.400" + } + } +} diff --git a/utils/test_data/db/tile_type_LIOB33_SING.json b/utils/test_data/db/tile_type_LIOB33_SING.json new file mode 100644 index 00000000..be6e6507 --- /dev/null +++ b/utils/test_data/db/tile_type_LIOB33_SING.json @@ -0,0 +1,655 @@ +{ + "pips": {}, + "sites": [ + { + "name": "X0Y0", + "prefix": "IOB", + "site_pins": { + "DIFFI_IN": null, + "DIFFO_IN": null, + "DIFFO_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_DIFFO_OUT0" + }, + "DIFF_TERM_INT_EN": null, + "I": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_IBUF0" + }, + "IBUFDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_IBUF_DISABLE0" + }, + "INTERMDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "LIOB_IN_TERM0" + }, + "KEEPER_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_KEEPER_INT_EN_1" + }, + "O": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_O0" + }, + "O_IN": null, + "O_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_O_OUT0" + }, + "PADOUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_PADOUT0" + }, + "PD_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PD_INT_EN_1" + }, + "PU_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PU_INT_EN_1" + }, + "T": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_T0" + }, + "T_IN": null, + "T_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_T_OUT0" + } + }, + "type": "IOB33", + "x_coord": 0, + "y_coord": 0 + } + ], + "tile_type": "LIOB33_SING", + "wires": { + "IOB_DIFFI_IN0": null, + "IOB_DIFFO_IN0": null, + "IOB_DIFFO_OUT0": null, + "IOB_DIFF_TERM_INT_EN_STUB": null, + "IOB_IBUF0": null, + "IOB_IBUF_DISABLE0": null, + "IOB_KEEPER_INT_EN_1": null, + "IOB_O0": null, + "IOB_O_IN0": null, + "IOB_O_OUT0": null, + "IOB_PADOUT0": null, + "IOB_PD_INT_EN_1": null, + "IOB_PU_INT_EN_1": null, + "IOB_T0": null, + "IOB_T_IN0": null, + "IOB_T_OUT0": null, + "LIOB_EE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE2BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4B3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_EL1BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_ER1BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_IN_TERM0": null, + "LIOB_LH10_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH11_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH12_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH1_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH2_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH3_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH4_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH5_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH6_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH7_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH8_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_LH9_0": { + "cap": "194.420", + "res": "48.990" + }, + "LIOB_NE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_NW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_SW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WL1END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WR1END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW2END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4B3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "LIOB_WW4END3_0": { + "cap": "150.000", + "res": "1024.400" + } + } +} diff --git a/utils/test_data/db/tile_type_RIOB33.json b/utils/test_data/db/tile_type_RIOB33.json new file mode 100644 index 00000000..ea38b3a6 --- /dev/null +++ b/utils/test_data/db/tile_type_RIOB33.json @@ -0,0 +1,1541 @@ +{ + "pips": { + "RIOB33.IOB_DIFFO_OUT0->IOB_DIFFO_IN1": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_DIFFO_IN1", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_DIFFO_OUT0" + }, + "RIOB33.IOB_O0->>IOB_O_OUT0": { + "can_invert": "0", + "dst_to_src": { + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "in_cap": null, + "res": "0.0" + }, + "dst_wire": "IOB_O_OUT0", + "is_directional": "1", + "is_pass_transistor": 0, + "is_pseudo": "1", + "src_to_dst": { + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "in_cap": null, + "res": "0.0" + }, + "src_wire": "IOB_O0" + }, + "RIOB33.IOB_O_OUT0->IOB_O_IN1": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_O_IN1", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_O_OUT0" + }, + "RIOB33.IOB_PADOUT0->IOB_DIFFI_IN1": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_DIFFI_IN1", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_PADOUT0" + }, + "RIOB33.IOB_PADOUT0->RIOB_MONITOR_P": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "RIOB_MONITOR_P", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_PADOUT0" + }, + "RIOB33.IOB_PADOUT1->IOB_DIFFI_IN0": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_DIFFI_IN0", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_PADOUT1" + }, + "RIOB33.IOB_PADOUT1->RIOB_MONITOR_N": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "RIOB_MONITOR_N", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_PADOUT1" + }, + "RIOB33.IOB_T0->>IOB_T_OUT0": { + "can_invert": "0", + "dst_to_src": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "in_cap": null, + "res": "0.0" + }, + "dst_wire": "IOB_T_OUT0", + "is_directional": "1", + "is_pass_transistor": 0, + "is_pseudo": "1", + "src_to_dst": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "in_cap": null, + "res": "0.0" + }, + "src_wire": "IOB_T0" + }, + "RIOB33.IOB_T_OUT0->IOB_T_IN1": { + "can_invert": "0", + "dst_to_src": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "dst_wire": "IOB_T_IN1", + "is_directional": "1", + "is_pass_transistor": 1, + "is_pseudo": "0", + "src_to_dst": { + "delay": null, + "in_cap": null, + "res": "0.000" + }, + "src_wire": "IOB_T_OUT0" + } + }, + "sites": [ + { + "name": "X0Y0", + "prefix": "IOB", + "site_pins": { + "DIFFI_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_DIFFI_IN1" + }, + "DIFFO_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_DIFFO_IN1" + }, + "DIFFO_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_DIFFO_OUT1" + }, + "DIFF_TERM_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_DIFF_TERM_INT_EN" + }, + "I": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_IBUF1" + }, + "IBUFDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_IBUF_DISABLE1" + }, + "INTERMDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "LIOB_IN_TERM1" + }, + "KEEPER_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_KEEPER_INT_EN_0" + }, + "O": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_O1" + }, + "O_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_O_IN1" + }, + "O_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_O_OUT1" + }, + "PADOUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_PADOUT1" + }, + "PD_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PD_INT_EN_0" + }, + "PU_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PU_INT_EN_0" + }, + "T": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_T1" + }, + "T_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_T_IN1" + }, + "T_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_T_OUT1" + } + }, + "type": "IOB33S", + "x_coord": 0, + "y_coord": 0 + }, + { + "name": "X0Y1", + "prefix": "IOB", + "site_pins": { + "DIFFI_IN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_DIFFI_IN0" + }, + "DIFFO_IN": null, + "DIFFO_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_DIFFO_OUT0" + }, + "DIFF_TERM_INT_EN": null, + "I": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_IBUF0" + }, + "IBUFDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_IBUF_DISABLE0" + }, + "INTERMDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "LIOB_IN_TERM0" + }, + "KEEPER_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_KEEPER_INT_EN_1" + }, + "O": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_O0" + }, + "O_IN": null, + "O_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_O_OUT0" + }, + "PADOUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_PADOUT0" + }, + "PD_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PD_INT_EN_1" + }, + "PU_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PU_INT_EN_1" + }, + "T": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_T0" + }, + "T_IN": null, + "T_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_T_OUT0" + } + }, + "type": "IOB33M", + "x_coord": 0, + "y_coord": 1 + } + ], + "tile_type": "RIOB33", + "wires": { + "IOB_DIFFI_IN0": null, + "IOB_DIFFI_IN1": null, + "IOB_DIFFO_IN0": null, + "IOB_DIFFO_IN1": null, + "IOB_DIFFO_OUT0": null, + "IOB_DIFFO_OUT1": null, + "IOB_DIFF_TERM_INT_EN": null, + "IOB_DIFF_TERM_INT_EN_STUB": null, + "IOB_IBUF0": null, + "IOB_IBUF1": null, + "IOB_IBUF_DISABLE0": null, + "IOB_IBUF_DISABLE1": null, + "IOB_KEEPER_INT_EN_0": null, + "IOB_KEEPER_INT_EN_1": null, + "IOB_O0": null, + "IOB_O1": null, + "IOB_O_IN0": null, + "IOB_O_IN1": null, + "IOB_O_OUT0": null, + "IOB_O_OUT1": null, + "IOB_PADOUT0": null, + "IOB_PADOUT1": null, + "IOB_PD_INT_EN_0": null, + "IOB_PD_INT_EN_1": null, + "IOB_PU_INT_EN_0": null, + "IOB_PU_INT_EN_1": null, + "IOB_T0": null, + "IOB_T1": null, + "IOB_T_IN0": null, + "IOB_T_IN1": null, + "IOB_T_OUT0": null, + "IOB_T_OUT1": null, + "LIOB_IN_TERM0": null, + "LIOB_IN_TERM1": null, + "RIOB_EE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_LH10_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH10_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH11_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH11_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH12_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH12_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH1_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH1_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH2_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH2_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH3_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH3_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH4_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH4_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH5_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH5_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH6_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH6_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH7_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH7_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH8_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH8_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH9_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH9_1": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_MONITOR_N": null, + "RIOB_MONITOR_P": null, + "RIOB_NE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C3_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END0_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END1_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END2_1": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END3_1": { + "cap": "150.000", + "res": "1024.400" + } + } +} diff --git a/utils/test_data/db/tile_type_RIOB33_SING.json b/utils/test_data/db/tile_type_RIOB33_SING.json new file mode 100644 index 00000000..d751ab12 --- /dev/null +++ b/utils/test_data/db/tile_type_RIOB33_SING.json @@ -0,0 +1,655 @@ +{ + "pips": {}, + "sites": [ + { + "name": "X0Y0", + "prefix": "IOB", + "site_pins": { + "DIFFI_IN": null, + "DIFFO_IN": null, + "DIFFO_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_DIFFO_OUT0" + }, + "DIFF_TERM_INT_EN": null, + "I": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_IBUF0" + }, + "IBUFDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_IBUF_DISABLE0" + }, + "INTERMDISABLE": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "LIOB_IN_TERM0" + }, + "KEEPER_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_KEEPER_INT_EN_1" + }, + "O": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_O0" + }, + "O_IN": null, + "O_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_O_OUT0" + }, + "PADOUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_PADOUT0" + }, + "PD_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PD_INT_EN_1" + }, + "PU_INT_EN": { + "cap": "0.000", + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "wire": "IOB_PU_INT_EN_1" + }, + "T": { + "cap": "0.001", + "delay": [ + "0.001", + "0.001", + "0.001", + "0.001" + ], + "wire": "IOB_T0" + }, + "T_IN": null, + "T_OUT": { + "delay": [ + "0.000", + "0.000", + "0.000", + "0.000" + ], + "res": "0.0", + "wire": "IOB_T_OUT0" + } + }, + "type": "IOB33", + "x_coord": 0, + "y_coord": 0 + } + ], + "tile_type": "RIOB33_SING", + "wires": { + "IOB_DIFFI_IN0": null, + "IOB_DIFFO_IN0": null, + "IOB_DIFFO_OUT0": null, + "IOB_DIFF_TERM_INT_EN_STUB": null, + "IOB_IBUF0": null, + "IOB_IBUF_DISABLE0": null, + "IOB_KEEPER_INT_EN_1": null, + "IOB_O0": null, + "IOB_O_IN0": null, + "IOB_O_OUT0": null, + "IOB_PADOUT0": null, + "IOB_PD_INT_EN_1": null, + "IOB_PU_INT_EN_1": null, + "IOB_T0": null, + "IOB_T_IN0": null, + "IOB_T_OUT0": null, + "LIOB_IN_TERM0": null, + "RIOB_EE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE2BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4B3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_EL1BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_ER1BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_LH10_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH11_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH12_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH1_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH2_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH3_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH4_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH5_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH6_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH7_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH8_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_LH9_0": { + "cap": "194.420", + "res": "48.990" + }, + "RIOB_NE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_NW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4BEG3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SE4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_SW4END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WL1END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WR1END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW2END3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4A3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4B3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4C3_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END0_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END1_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END2_0": { + "cap": "150.000", + "res": "1024.400" + }, + "RIOB_WW4END3_0": { + "cap": "150.000", + "res": "1024.400" + } + } +} diff --git a/utils/test_data/db/tilegrid.json b/utils/test_data/db/tilegrid.json index 48b5f7ac..d5370531 100644 --- a/utils/test_data/db/tilegrid.json +++ b/utils/test_data/db/tilegrid.json @@ -54,5 +54,141 @@ "TIEOFF_X11Y102": "TIEOFF" }, "type": "INT_L" + }, + "LIOB33_SING_X0Y0": { + "bits": { + "CLB_IO_CLK": { + "alias": { + "sites": { + "IOB33_Y0": "IOB33_Y0" + }, + "start_offset": 2, + "type": "LIOB33" + }, + "baseaddr": "0x00400000", + "frames": 42, + "offset": 0, + "words": 2 + } + }, + "grid_x": 0, + "grid_y": 155, + "pin_functions": { + "IOB_X0Y0": "IO_25_14" + }, + "sites": { + "IOB_X0Y0": "IOB33" + }, + "type": "LIOB33_SING" + }, + "LIOB33_X0Y1": { + "bits": { + "CLB_IO_CLK": { + "baseaddr": "0x00400000", + "frames": 42, + "offset": 2, + "words": 4 + } + }, + "grid_x": 0, + "grid_y": 154, + "pin_functions": { + "IOB_X0Y1": "IO_L24N_T3_A00_D16_14", + "IOB_X0Y2": "IO_L24P_T3_A01_D17_14" + }, + "sites": { + "IOB_X0Y1": "IOB33S", + "IOB_X0Y2": "IOB33M" + }, + "type": "LIOB33" + }, + "LIOB33_X0Y3": { + "bits": { + "CLB_IO_CLK": { + "baseaddr": "0x00400000", + "frames": 42, + "offset": 6, + "words": 4 + } + }, + "grid_x": 0, + "grid_y": 152, + "pin_functions": { + "IOB_X0Y3": "IO_L23N_T3_A02_D18_14", + "IOB_X0Y4": "IO_L23P_T3_A03_D19_14" + }, + "sites": { + "IOB_X0Y3": "IOB33S", + "IOB_X0Y4": "IOB33M" + }, + "type": "LIOB33" + }, + "RIOB33_SING_X43Y0": { + "bits": { + "CLB_IO_CLK": { + "alias": { + "sites": { + "IOB33_Y0": "IOB33_Y0" + }, + "start_offset": 2, + "type": "RIOB33" + }, + "baseaddr": "0x00401580", + "frames": 42, + "offset": 0, + "words": 2 + } + }, + "grid_x": 114, + "grid_y": 155, + "pin_functions": { + "IOB_X1Y0": "IO_25_34" + }, + "sites": { + "IOB_X1Y0": "IOB33" + }, + "type": "RIOB33_SING" + }, + "RIOB33_X43Y1": { + "bits": { + "CLB_IO_CLK": { + "baseaddr": "0x00401580", + "frames": 42, + "offset": 2, + "words": 4 + } + }, + "grid_x": 114, + "grid_y": 154, + "pin_functions": { + "IOB_X1Y1": "IO_L24N_T3_34", + "IOB_X1Y2": "IO_L24P_T3_34" + }, + "sites": { + "IOB_X1Y1": "IOB33S", + "IOB_X1Y2": "IOB33M" + }, + "type": "RIOB33" + }, + "RIOB33_X43Y3": { + "bits": { + "CLB_IO_CLK": { + "baseaddr": "0x00401580", + "frames": 42, + "offset": 6, + "words": 4 + } + }, + "grid_x": 114, + "grid_y": 152, + "pin_functions": { + "IOB_X1Y3": "IO_L23N_T3_34", + "IOB_X1Y4": "IO_L23P_T3_34" + }, + "sites": { + "IOB_X1Y3": "IOB33S", + "IOB_X1Y4": "IOB33M" + }, + "type": "RIOB33" } } diff --git a/utils/test_data/db/xc7_package_pins.csv b/utils/test_data/db/xc7_package_pins.csv new file mode 100644 index 00000000..2d0543e2 --- /dev/null +++ b/utils/test_data/db/xc7_package_pins.csv @@ -0,0 +1,11 @@ +pin,bank,site,tile,pin_function +U14,99,IOB_X0Y0,LIOB33_SING_X0Y0,IO_25_14 +V13,99,IOB_X0Y2,LIOB33_X0Y1,IO_L24P_T3_A01_D17_14 +V14,99,IOB_X0Y1,LIOB33_X0Y1,IO_L24N_T3_A00_D16_14 +U15,99,IOB_X0Y4,LIOB33_X0Y3,IO_L23P_T3_A03_D19_14 +U16,99,IOB_X0Y3,LIOB33_X0Y3,IO_L23N_T3_A02_D18_14 +X00,66,IOB_X0Y0,RIOB33_SING_X43Y0,whatever +X01,66,IOB_X0Y2,RIOB33_X43Y1,whatever +X02,66,IOB_X0Y1,RIOB33_X43Y1,whatever +X03,66,IOB_X0Y4,RIOB33_X43Y3,anything +X04,66,IOB_X0Y3,RIOB33_X43Y3,not_important diff --git a/utils/test_data/iob/liob_stepdown.bits b/utils/test_data/iob/liob_stepdown.bits new file mode 100644 index 00000000..21a6caf0 --- /dev/null +++ b/utils/test_data/iob/liob_stepdown.bits @@ -0,0 +1,5 @@ +bit_00400000_002_01 +bit_00400000_002_03 +bit_00400000_006_03 +bit_00400000_099_03 +bit_00401580_002_02 diff --git a/utils/test_data/iob/liob_stepdown.fasm b/utils/test_data/iob/liob_stepdown.fasm new file mode 100644 index 00000000..f1e7046f --- /dev/null +++ b/utils/test_data/iob/liob_stepdown.fasm @@ -0,0 +1,3 @@ +LIOB33_X0Y1.IOB_Y0.SOMETHING.IN +LIOB33_X0Y1.IOB_Y0.SOMETHING.STEPDOWN +RIOB33_X43Y1.IOB_Y1.SOMETHING.OUT diff --git a/utils/test_data/iob/riob_stepdown.bits b/utils/test_data/iob/riob_stepdown.bits new file mode 100644 index 00000000..198ac448 --- /dev/null +++ b/utils/test_data/iob/riob_stepdown.bits @@ -0,0 +1,5 @@ +bit_00400000_006_01 +bit_00401580_002_03 +bit_00401580_006_03 +bit_00401580_099_02 +bit_00401580_099_03 diff --git a/utils/test_data/iob/riob_stepdown.fasm b/utils/test_data/iob/riob_stepdown.fasm new file mode 100644 index 00000000..488c2711 --- /dev/null +++ b/utils/test_data/iob/riob_stepdown.fasm @@ -0,0 +1,3 @@ +RIOB33_SING_X43Y0.IOB_Y0.SOMETHING.OUT +RIOB33_SING_X43Y0.IOB_Y0.SOMETHING.STEPDOWN +LIOB33_X0Y3.IOB_Y0.SOMETHING.IN diff --git a/utils/test_fasm2frames.py b/utils/test_fasm2frames.py index 69c32a44..9b1e1258 100755 --- a/utils/test_fasm2frames.py +++ b/utils/test_fasm2frames.py @@ -70,7 +70,7 @@ class TestStringMethods(unittest.TestCase): fout = StringIO() fasm2frames.run( - self.filename_test_data('db'), None, fin.name, fout, **kw) + self.filename_test_data('db'), "xc7", fin.name, fout, **kw) return fout.getvalue() @@ -167,6 +167,14 @@ CLBLM_L_X10Y102.SLICEM_X0.SRUSEDMUX 1 # It will still be decent size though since even sparse occupies all columns in that area self.assertGreaterEqual(len(fout_full_txt), len(fout_sparse_txt) * 4) + def test_stepdown_1(self): + self.bitread_frm_equals( + 'iob/liob_stepdown.fasm', 'iob/liob_stepdown.bits') + + def test_stepdown_2(self): + self.bitread_frm_equals( + 'iob/riob_stepdown.fasm', 'iob/riob_stepdown.bits') + if __name__ == '__main__': unittest.main()