diff --git a/.classpath b/.classpath index 1cb8d151e..71aecb3fd 100644 --- a/.classpath +++ b/.classpath @@ -33,9 +33,9 @@ - + - + diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65b5d7839..3cf72a435 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ on: pull_request: env: - RAPIDWRIGHT_VERSION: v2024.1.3-beta + RAPIDWRIGHT_VERSION: v2024.2.0-beta jobs: build: diff --git a/RELEASE_NOTES.TXT b/RELEASE_NOTES.TXT index 0ec4d8221..4aa08dede 100644 --- a/RELEASE_NOTES.TXT +++ b/RELEASE_NOTES.TXT @@ -1,3 +1,62 @@ +============= RapidWright 2024.2.0-beta released on 2024-12-04 ================ +Notes: + - Remove reliance on gap routing test (#1117) + - [ModuleInst] Fix placement behavior when requesting no overlaps (#1108) + - [RWRoute] Clock router for Versal architecture (#1102) + - Various preprocessing fixes for Versal routing (#1115) + - [CUFR] CUFR and PartialCUFR to default to --hus (#1111) + - [TestNet] Improve testSetPinsMultiSrcStatic to track many sources (#1082) + - Changes to support new array-based cell pin mappings (#1101) + - Update tests to reflect bug fixes and minor behavior changes (#1110) + - [RWRoute] Yet more cleanup (#1107) + - [RWRoute] Preserve nodes of Laguna sinks (#1104) + - [GlobalSignalRouting] routeStaticNets() to take a list of static pins (#1105) + - [RWRoute] Fix typo -- not an exclusive sink (#1106) + - [RWRoute] Versal optimizations (#1093) + - [RWRoute] RouteNode.setType() to accept any locals (#1103) + - [RWRoute] Further divide LOCAL nodes into EAST/WEST for UltraScale(+) (#1098) + - [Utils] isClocking() to include TileTypeEnum.CMT_L (#1100) + - TileGroup and DeviceBrowser Improvements (#1094) + - [RWRoute] Divide nodes into LOCAL and NON_LOCAL (#1095) + - Update actions and do not limit to 5G RAM (#1092) + - [HandPlacer] Cleanup snapping code in hand placer (#1091) + - [LUTTools] Add zero padding to LUT INIT strings (#1090) + - [NetTools] Add getNodeTrees() method and NodeTree class (#1089) + - [YosysTools] Add synthXilinx() wrapper for Yosys (#1086) + - [EDIFWriteLegalNameCache] busCollisionRenames to be a ConcurrentHashMap (#1088) + - Add ReportRouteStatus utility (#1087) + - [RWRoute] Signal router for Versal architecture (#1077) + - [FileTools] Add runCommand(String[] ...) & getExecutablePath(String) (#1085) + - [RouterHelper] findPathBetweenNodes() allow clocking if src/sink is so (#1083) + - [RouterHelper] projectOutputPinToINTNode() to breadth-first-search (#1081) + - [RouterHelper] projectInputPinToINTNode() to return solitary node (#1080) + - [RouterHelper] findPathBetweenNodes() to ignore clocking tiles (#1079) + - [RouterHelper] invertPossibleGndPinsToVccPins() to support Versal LUTs (#1078) + - [DesignTools] Fix createCeSrRstPinsToVCC() for US BRAMs (#1075) + - [DesignTools] Add LDCE/LDPE to types that need VCC (#1076) + - [NetTools] Add NetTools.isGlobalClock() (#1057) + - Static router for Versal architecture (#1073) + - [EDIFNetlist] getPhysicalPins() to call getPhysical{Gnd,Vcc}Pins() (#1074) + - Fix Null SLR References in Tiles in xcvp1902 + - Add Implements Serializable to All RapidWright Classes + - [SiteInst] Improve memory usage of site routing using array instead of maps + - [Cell] Changes pin mappings from a map to an array to improve memory usage + - [BEL] Deprecate isSRIMR() in favour of more general isIMR() + - [Tile] Add getMaxUniqueAddress() + - [Net] Add support for multiple output sources + +API Additions: + - com.xilinx.rapidwright.design.Cell "public Pair getFirstPhysicalPinMapping()" + - com.xilinx.rapidwright.design.Cell "public int getUsedPhysicalPinsCount()" + - com.xilinx.rapidwright.design.Cell "public Set getUsedPhysicalPins()" + - com.xilinx.rapidwright.design.Cell "public String[] getPhysicalPinMappings()" + - com.xilinx.rapidwright.design.Cell "public boolean usesPhysicalPin(String physicalPinName)" + - com.xilinx.rapidwright.design.Design "public boolean placeCell(Cell c, Site site, BEL bel, String[] physPinMappings)" + - com.xilinx.rapidwright.design.Net "public List getAlternateSources()" + - com.xilinx.rapidwright.device.BEL "public boolean isIMR()" + - com.xilinx.rapidwright.device.Tile "public int getMaxUniqueAddress()" + + ============= RapidWright 2024.1.3-beta released on 2024-10-02 ================ Notes: - [RWRoute] Further cleanup (#1070) diff --git a/src/com/xilinx/rapidwright/design/DesignTools.java b/src/com/xilinx/rapidwright/design/DesignTools.java index 855c948ec..cb1954231 100644 --- a/src/com/xilinx/rapidwright/design/DesignTools.java +++ b/src/com/xilinx/rapidwright/design/DesignTools.java @@ -289,7 +289,7 @@ public static ArrayList getCorrespondingBELInputPins(BELPin outputPin, S Net net = inst.getNetFromSiteWire(siteWireName); if (net == null) continue; if (net.isStaticNet()) continue; - if (!cell.getPinMappingsP2L().containsKey(pin.getName())) continue; + if (!cell.usesPhysicalPin(pin.getName())) continue; inputs.add(pin); } break; @@ -325,7 +325,8 @@ public static ArrayList getCorrespondingBELOutputPins(BELPin inputPin, S if (net == null) continue; if (net.isStaticNet()) continue; if (net.getName().equals(Net.USED_NET)) continue; - if (!cell.getPinMappingsP2L().containsKey(pin.getName())) continue; + if (!cell.usesPhysicalPin(pin.getName())) + continue; outputs.add(pin); } @@ -445,7 +446,7 @@ public static String invertLutInput (Cell lut, String physicalPinName) { long oldVal = new BigInteger(hexValueStr, 16).longValue(); int numLutRows = Integer.parseInt(numLutRowsStr); int numInput = (int)(Math.log(numLutRows)/Math.log(2)); - String logicalPinName = lut.getPinMappingsP2L().get(physicalPinName); + String logicalPinName = lut.getLogicalPinMapping(physicalPinName); int invertCol = getInvertCol(logicalPinName.substring(logicalPinName.length()-1)); if (invertCol == -1) { System.err.println("Inverted Column is -1 is Function DesignTools.invertLutInput"); @@ -1563,12 +1564,11 @@ public static List unrouteCellPinSiteRouting(Cell cell, String logi if (otherCell.isRoutethru()) { BELPin otherPin = null; if (pin.isOutput()) { - assert(otherCell.getPinMappingsP2L().size() == 1); - String otherPinName = otherCell.getPinMappingsP2L().keySet().iterator().next(); - otherPin = pin.getBEL().getPin(otherPinName); + assert (otherCell.getUsedPhysicalPinsCount() == 1); + otherPin = otherCell.getFirstPhysicalPinMapping().getFirst(); } else { // Make sure we are coming in on the routed-thru pin - String otherPinName = otherCell.getPinMappingsP2L().keySet().iterator().next(); + String otherPinName = otherCell.getFirstPhysicalPinMapping().getFirst().getName(); if (pin.getName().equals(otherPinName)) { otherPin = LUTTools.getLUTOutputPin(pin.getBEL()); } @@ -1777,7 +1777,8 @@ public static void makeBlackBox(Design d, EDIFHierCellInst hierarchicalCell) { } // Remove all physical nets first - for (String logPin : c.getPinMappingsP2L().values()) { + for (String logPin : c.getPhysicalPinMappings()) { + if (logPin == null) continue; List removePins = unrouteCellPinSiteRouting(c, logPin); for (SitePinInst pin : removePins) { pinsToRemove.computeIfAbsent(pin.getNet(), $ -> new HashSet<>()).add(pin); @@ -1971,7 +1972,7 @@ public static boolean stampPlacement(Design design, Module stamp, Map getAllRoutedSitePinsFromPhysicalPin(Cell cell, Net ne } } else { if (possibleRouteThru.isRoutethru()) { - String routeThru = possibleRouteThru.getPinMappingsP2L().keySet().iterator().next(); - queue.add(bel.getPin(routeThru)); + BELPin routeThru = possibleRouteThru.getFirstPhysicalPinMapping().getFirst(); + queue.add(routeThru); } } } @@ -3005,14 +3006,19 @@ private static void copySiteRouting(Cell copy, Cell orig, Map src } EDIFHierCellInst cellInst = destNetlist.getHierCellInstFromName(copy.getName()); - for (Entry e : copy.getPinMappingsP2L().entrySet()) { - EDIFPortInst portInst = cellInst.getInst().getPortInst(e.getValue()); + String[] physPinNames = copy.getPhysicalPinMappings(); + for (int i = 0; i < physPinNames.length; i++) { + String logPinName = physPinNames[i]; + if (logPinName == null) continue; + String physPinName = copy.getBEL().getPin(i).getName(); + + EDIFPortInst portInst = cellInst.getInst().getPortInst(logPinName); if (portInst == null) continue; EDIFNet edifNet = portInst.getNet(); String netName = new EDIFHierNet(cellInst.getParent(), edifNet).getHierarchicalNetName(); - String siteWireName = orig.getSiteWireNameFromPhysicalPin(e.getKey()); + String siteWireName = orig.getSiteWireNameFromPhysicalPin(physPinName); Net origNet = origSiteInst.getNetFromSiteWire(siteWireName); if (origNet == null) continue; Net net = null; @@ -3029,7 +3035,7 @@ private static void copySiteRouting(Cell copy, Cell orig, Map src } } - BELPin curr = copy.getBEL().getPin(e.getKey()); + BELPin curr = copy.getBEL().getPin(physPinName); dstSiteInst.routeIntraSiteNet(net, curr, curr); boolean routingForward = curr.isOutput(); Queue q = new LinkedList(); @@ -3068,7 +3074,7 @@ private static void copySiteRouting(Cell copy, Cell orig, Map src Cell rtCopy = tmpCell .copyCell(newCellName, tmpCell.getEDIFHierCellInst(), dstSiteInst); dstSiteInst.getCellMap().put(belName, rtCopy); - for (String belPinName : rtCopy.getPinMappingsP2L().keySet()) { + for (String belPinName : rtCopy.getUsedPhysicalPins()) { BELPin tmp = rtCopy.getBEL().getPin(belPinName); if (tmp.isInput()) { curr = tmp; diff --git a/src/com/xilinx/rapidwright/design/NetTools.java b/src/com/xilinx/rapidwright/design/NetTools.java index 827a6d18e..8b8658780 100644 --- a/src/com/xilinx/rapidwright/design/NetTools.java +++ b/src/com/xilinx/rapidwright/design/NetTools.java @@ -144,4 +144,18 @@ public static List getNodeTrees(Net net) { return subtrees; } + + /** + * Checks if the provided net drives a clock site pin input. + * + * @param net The net to examine. + * @return True if the net has a site pin clock input, false otherwise. + */ + public static boolean hasClockSinks(Net net) { + for (SitePinInst sink : net.getPins()) { + if (sink.isOutPin()) continue; + if (sink.getName().contains("CLK")) return true; + } + return false; + } } diff --git a/src/com/xilinx/rapidwright/design/Unisim.java b/src/com/xilinx/rapidwright/design/Unisim.java index ae3cf10ea..568becef2 100644 --- a/src/com/xilinx/rapidwright/design/Unisim.java +++ b/src/com/xilinx/rapidwright/design/Unisim.java @@ -33,12 +33,32 @@ import com.xilinx.rapidwright.edif.EDIFLibrary; /** - * Generated on: Wed May 01 19:57:08 MDT 2024 + * Generated on: Thu Nov 21 13:34:09 MST 2024 * by: com.xilinx.rapidwright.release.UnisimParser * * Enumerates supported Unisim primitives that map to Xilinx devices. */ public enum Unisim { + AIE2PS_NOC_M_AXI, + AIE2PS_NOC_M_AXIS, + AIE2PS_NOC_S_AXI, + AIE2PS_NOC_S_AXIS, + AIE2PS_PL_M_AXIS128, + AIE2PS_PL_M_AXIS32, + AIE2PS_PL_M_AXIS64, + AIE2PS_PL_M_EVENTS, + AIE2PS_PL_S_AXIS128, + AIE2PS_PL_S_AXIS32, + AIE2PS_PL_S_AXIS64, + AIE2PS_PL_S_EVENTS, + AIE2P_PL_M_AXIS128, + AIE2P_PL_M_AXIS32, + AIE2P_PL_M_AXIS64, + AIE2P_PL_M_EVENTS, + AIE2P_PL_S_AXIS128, + AIE2P_PL_S_AXIS32, + AIE2P_PL_S_AXIS64, + AIE2P_PL_S_EVENTS, AIE_ML_NOC_M_AXI, AIE_ML_NOC_M_AXIS, AIE_ML_NOC_S_AXI, @@ -85,6 +105,8 @@ public enum Unisim { AND5B4, AND5B5, AUTOBUF, + AXI32, + BFR_FT, BFR_MATMULX, BIBUF, BITSLICE_CONTROL, @@ -157,8 +179,10 @@ public enum Unisim { DDRMC, DDRMC5, DDRMC5C, + DDRMC5E, DDRMC_RIU, DFE_CFR, + DFE_CHANNELIZER, DFE_DUC_DDC, DFE_FFT, DFE_FIR, @@ -258,6 +282,7 @@ public enum Unisim { FRAME_ECCE3, FRAME_ECCE4, FRAME_ECC_VIRTEX6, + FUSE_CLK, GND, GTF_CHANNEL, GTF_COMMON, @@ -769,6 +794,7 @@ public enum Unisim { NOC2_NMU256, NOC2_NMU512, NOC2_NPS5555, + NOC2_NPS6X, NOC2_NPS7575, NOC2_NSU128, NOC2_NSU256, @@ -1193,6 +1219,7 @@ public enum Unisim { PLLE4_BASE, PLL_ADV, PLL_BASE, + PS11, PS7, PS8, PS9, @@ -1290,9 +1317,11 @@ public enum Unisim { RAMS64E1, RAMS64E5, RFADC, + RFADCE5, RFADC_13B4W_M0, RFADC_13B4W_M1, RFDAC, + RFDACE5, RIU_OR, ROM128X1, ROM16X1, @@ -1301,8 +1330,10 @@ public enum Unisim { ROM64X1, RXTX_BITSLICE, RX_BITSLICE, + SDFEC_LD, SIM_CONFIGE2, SIM_CONFIGE3, + SIM_CONFIGE4, SRL16, SRL16E, SRL16E_1, diff --git a/src/com/xilinx/rapidwright/design/tools/LUTTools.java b/src/com/xilinx/rapidwright/design/tools/LUTTools.java index 3916c1edf..0f8e1bb29 100644 --- a/src/com/xilinx/rapidwright/design/tools/LUTTools.java +++ b/src/com/xilinx/rapidwright/design/tools/LUTTools.java @@ -390,9 +390,9 @@ public static EDIFPropertyValue configureLUT(EDIFCellInst c, String equation) { */ public static String getLUTEquation(Cell c) { if (c.isRoutethru()) { - Set> entrySet = c.getPinMappingsP2L().entrySet(); - assert (entrySet.size() == 1); - return "O" + c.getBELName().charAt(1) + "=" + entrySet.iterator().next().getKey(); + BELPin rtEntry = c.getFirstPhysicalPinMapping().getFirst(); + assert (c.getUsedPhysicalPinsCount() == 1); + return "O" + c.getBELName().charAt(1) + "=" + rtEntry.getName(); } return getLUTEquation(c.getEDIFCellInst()); } diff --git a/src/com/xilinx/rapidwright/design/tools/RelocationTools.java b/src/com/xilinx/rapidwright/design/tools/RelocationTools.java index 93db9e7bc..9ac37c335 100644 --- a/src/com/xilinx/rapidwright/design/tools/RelocationTools.java +++ b/src/com/xilinx/rapidwright/design/tools/RelocationTools.java @@ -39,6 +39,7 @@ import com.xilinx.rapidwright.design.DesignTools; import com.xilinx.rapidwright.design.Module; import com.xilinx.rapidwright.design.Net; +import com.xilinx.rapidwright.design.NetTools; import com.xilinx.rapidwright.design.SiteInst; import com.xilinx.rapidwright.design.SitePinInst; import com.xilinx.rapidwright.design.blocks.PBlock; @@ -284,7 +285,7 @@ public static boolean relocate(Design design, } } - boolean isClockNet = n.isClockNet() || n.hasGapRouting(); + boolean isClockNet = n.isClockNet() || NetTools.hasClockSinks(n); n.getPIPs().removeIf((sp) -> { Tile st = sp.getTile(); Tile dt = st.getTileXYNeighbor(tileColOffset, tileRowOffset); diff --git a/src/com/xilinx/rapidwright/device/FamilyType.java b/src/com/xilinx/rapidwright/device/FamilyType.java index 45f4b124f..10840389d 100644 --- a/src/com/xilinx/rapidwright/device/FamilyType.java +++ b/src/com/xilinx/rapidwright/device/FamilyType.java @@ -27,7 +27,7 @@ /** - * Generated on: Wed May 01 19:03:12 MDT 2024 + * Generated on: Thu Nov 21 13:06:39 MST 2024 * by: com.xilinx.rapidwright.release.PartNamePopulator * * Set of all Supported Xilinx families in RapidWright @@ -54,7 +54,9 @@ public enum FamilyType { QKINTEXUPLUS, QRKINTEXU, QRVERSALAICORE, + QRVERSALAIEDGE, QVERSALAICORE, + QVERSALAIEDGE, QVERSALPREMIUM, QVERSALPRIME, QVIRTEX7, diff --git a/src/com/xilinx/rapidwright/device/IOBankType.java b/src/com/xilinx/rapidwright/device/IOBankType.java index 07fc63e3d..6d789054b 100644 --- a/src/com/xilinx/rapidwright/device/IOBankType.java +++ b/src/com/xilinx/rapidwright/device/IOBankType.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Author: Chris Lavin, Advanced Micro Devices, Inc. @@ -27,7 +27,7 @@ /** - * Generated on: Wed May 17 23:03:43 2023 + * Generated on: Thu Nov 21 13:34:08 MST 2024 * by: com.xilinx.rapidwright.release.SiteAndTileTypeUpdater * * Enumeration of IOBankType type for all valid devices within Vivado. @@ -41,5 +41,7 @@ public enum IOBankType { BT_MGT, BT_NO_USER_IO, BT_PSS, + BT_X5, + BT_X5IO, BT_XP, } diff --git a/src/com/xilinx/rapidwright/device/IOStandard.java b/src/com/xilinx/rapidwright/device/IOStandard.java index e2c2b1f13..67d865c5b 100644 --- a/src/com/xilinx/rapidwright/device/IOStandard.java +++ b/src/com/xilinx/rapidwright/device/IOStandard.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Author: Chris Lavin, Advanced Micro Devices, Inc. @@ -27,7 +27,7 @@ /** - * Generated on: Wed May 17 23:03:43 2023 + * Generated on: Thu Nov 21 13:34:08 MST 2024 * by: com.xilinx.rapidwright.release.SiteAndTileTypeUpdater * * Enumeration of IOStandard type for all valid devices within Vivado. @@ -53,13 +53,18 @@ public enum IOStandard { DIFF_HSTL_I_DCI_18, DIFF_HSUL_12, DIFF_HSUL_12_DCI, + DIFF_LVSTL05_10, + DIFF_LVSTL05_10_HS, DIFF_LVSTL06_12, DIFF_LVSTL_11, DIFF_MOBILE_DDR, DIFF_POD10, DIFF_POD10_DCI, + DIFF_POD11, DIFF_POD12, DIFF_POD12_DCI, + DIFF_SSTL10, + DIFF_SSTL11, DIFF_SSTL12, DIFF_SSTL12_DCI, DIFF_SSTL12_LVAUX, @@ -96,6 +101,8 @@ public enum IOStandard { HSTL_I_DCI_18, HSUL_12, HSUL_12_DCI, + LVCMOS10, + LVCMOS11, LVCMOS12, LVCMOS12_LVAUX, LVCMOS15, @@ -107,14 +114,18 @@ public enum IOStandard { LVDCI_DV2_15, LVDCI_DV2_18, LVDS, + LVDS12, LVDS12_LVAUX, LVDS15, LVDS_25, LVPECL, + LVSTL05_10, + LVSTL05_10_HS, LVSTL06_12, LVSTL_11, LVTTL, MINI_LVDS_25, + MIPI_CPHY, MIPI_DPHY, MIPI_DPHY_DCI, MIPI_DPHY_LVAUX, @@ -122,12 +133,15 @@ public enum IOStandard { PCI33_3, POD10, POD10_DCI, + POD11, POD12, POD12_DCI, PPDS_25, RSDS_25, SLVS_400_18, SLVS_400_25, + SSTL10, + SSTL11, SSTL12, SSTL12_DCI, SSTL12_LVAUX, diff --git a/src/com/xilinx/rapidwright/device/Part.java b/src/com/xilinx/rapidwright/device/Part.java index a2e5f899b..5d58b6db8 100644 --- a/src/com/xilinx/rapidwright/device/Part.java +++ b/src/com/xilinx/rapidwright/device/Part.java @@ -30,7 +30,7 @@ import java.util.HashSet; /** - * Generated on: Wed May 01 19:03:12 MDT 2024 + * Generated on: Thu Nov 21 13:06:39 MST 2024 * by: com.xilinx.rapidwright.release.PartNamePopulator * * Class used to uniquely represent a Xilinx part. @@ -260,7 +260,9 @@ public Series getSeries() { versalTypes = new FamilyType[] { FamilyType.AVERSALAIEDGE, FamilyType.QRVERSALAICORE, + FamilyType.QRVERSALAIEDGE, FamilyType.QVERSALAICORE, + FamilyType.QVERSALAIEDGE, FamilyType.QVERSALPREMIUM, FamilyType.QVERSALPRIME, FamilyType.VERSAL, diff --git a/src/com/xilinx/rapidwright/device/PartNameTools.java b/src/com/xilinx/rapidwright/device/PartNameTools.java index c40e6c3a1..714282645 100644 --- a/src/com/xilinx/rapidwright/device/PartNameTools.java +++ b/src/com/xilinx/rapidwright/device/PartNameTools.java @@ -36,7 +36,7 @@ import com.xilinx.rapidwright.util.FileTools; /** - * Generated on: Wed May 01 19:03:12 MDT 2024 + * Generated on: Thu Nov 21 13:06:39 MST 2024 * by: com.xilinx.rapidwright.release.PartNamePopulator * * Class to hold utility APIs dealing with Parts and device names. @@ -146,7 +146,9 @@ public static FamilyType getArchitectureFromFamilyType(FamilyType type) { case QKINTEXUPLUS: return FamilyType.KINTEXUPLUS; case QRKINTEXU: return FamilyType.KINTEXU; case QRVERSALAICORE: return FamilyType.VERSAL; + case QRVERSALAIEDGE: return FamilyType.VERSAL; case QVERSALAICORE: return FamilyType.VERSAL; + case QVERSALAIEDGE: return FamilyType.VERSAL; case QVERSALPREMIUM: return FamilyType.VERSAL; case QVERSALPRIME: return FamilyType.VERSAL; case QVIRTEX7: return FamilyType.VIRTEX7; @@ -200,7 +202,9 @@ public static String getFullArchitectureName(FamilyType type) { case QKINTEXUPLUS: return "Kintex UltraScale+"; case QRKINTEXU: return "Kintex UltraScale"; case QRVERSALAICORE: return "Versal ACAP"; + case QRVERSALAIEDGE: return "Versal ACAP"; case QVERSALAICORE: return "Versal ACAP"; + case QVERSALAIEDGE: return "Versal ACAP"; case QVERSALPREMIUM: return "Versal ACAP"; case QVERSALPRIME: return "Versal ACAP"; case QVIRTEX7: return "Virtex-7"; @@ -255,7 +259,9 @@ public static Series getSeriesFromFamilyType(FamilyType type) { case QKINTEXUPLUS: return Series.UltraScalePlus; case QRKINTEXU: return Series.UltraScale; case QRVERSALAICORE: return Series.Versal; + case QRVERSALAIEDGE: return Series.Versal; case QVERSALAICORE: return Series.Versal; + case QVERSALAIEDGE: return Series.Versal; case QVERSALPREMIUM: return Series.Versal; case QVERSALPRIME: return Series.Versal; case QVIRTEX7: return Series.Series7; diff --git a/src/com/xilinx/rapidwright/device/SiteTypeEnum.java b/src/com/xilinx/rapidwright/device/SiteTypeEnum.java index 1a0cf2547..5b54799bd 100644 --- a/src/com/xilinx/rapidwright/device/SiteTypeEnum.java +++ b/src/com/xilinx/rapidwright/device/SiteTypeEnum.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Author: Chris Lavin, Advanced Micro Devices, Inc. @@ -27,7 +27,7 @@ /** - * Generated on: Wed May 17 23:03:43 2023 + * Generated on: Thu Nov 21 13:34:08 MST 2024 * by: com.xilinx.rapidwright.release.SiteAndTileTypeUpdater * * Enumeration of SiteTypeEnum type for all valid devices within Vivado. @@ -124,6 +124,7 @@ public enum SiteTypeEnum { DCMAC, DDRMC, DDRMC5, + DDRMC5C, DDRMC_RIU, DFE_A, DFE_B, diff --git a/src/com/xilinx/rapidwright/device/TileTypeEnum.java b/src/com/xilinx/rapidwright/device/TileTypeEnum.java index 63d910dd5..bf89b2ab4 100644 --- a/src/com/xilinx/rapidwright/device/TileTypeEnum.java +++ b/src/com/xilinx/rapidwright/device/TileTypeEnum.java @@ -27,7 +27,7 @@ /** - * Generated on: Wed May 01 19:57:08 MDT 2024 + * Generated on: Thu Nov 21 13:34:08 MST 2024 * by: com.xilinx.rapidwright.release.SiteAndTileTypeUpdater * * Enumeration of TileTypeEnum type for all valid devices within Vivado. @@ -533,6 +533,8 @@ public enum TileTypeEnum { CPM_G5N2X_TILE, CPM_G5_TILE, DCMAC_TILE, + DDRMC5C_DMC_CORE, + DDRMC5C_DMC_CORE_MY, DDRMC5_DMC_CORE, DDRMC5_DMC_CORE_MY, DDRMC_DMC_CORE, @@ -1201,6 +1203,7 @@ public enum TileTypeEnum { NOC_XPIO_NCRB_CORE, NOC_XPIO_NCRB_CORE_MX, NPI2_NIR_TILE, + NPI2_RPTR_CORE, NPI_VNPI_BOT_NOLS_TILE, NPI_VNPI_BOT_TILE, NPI_VNPI_BOT_TILE_MY, @@ -1339,6 +1342,7 @@ public enum TileTypeEnum { RBRK_XPIPE_CORE, RCLK_AMS_CFGIO, RCLK_BRAM_CLKBUF_CORE, + RCLK_BRAM_CLKBUF_NOPD_CORE, RCLK_BRAM_CORE, RCLK_BRAM_CORE_MY, RCLK_BRAM_INTF_L, @@ -1567,6 +1571,7 @@ public enum TileTypeEnum { TERM_B_CIDB_CORE, TERM_B_CLE_LAG_CORE, TERM_B_CPIPE_CORE, + TERM_B_CPIPE_TERMR_CORE, TERM_B_CPIPE_TERMR_XPIO_CORE, TERM_B_DSP_CORE, TERM_B_GTCLK_CORE, diff --git a/src/com/xilinx/rapidwright/edif/EDIFCell.java b/src/com/xilinx/rapidwright/edif/EDIFCell.java index 00270d628..f742aded8 100644 --- a/src/com/xilinx/rapidwright/edif/EDIFCell.java +++ b/src/com/xilinx/rapidwright/edif/EDIFCell.java @@ -497,7 +497,7 @@ public void setLibrary(EDIFLibrary library) { this.library = library; } - protected void clearLibrary() { + public void clearLibrary() { this.library = null; } diff --git a/src/com/xilinx/rapidwright/tests/PinMapTester.java b/src/com/xilinx/rapidwright/tests/PinMapTester.java index 24c22814a..bdc124609 100644 --- a/src/com/xilinx/rapidwright/tests/PinMapTester.java +++ b/src/com/xilinx/rapidwright/tests/PinMapTester.java @@ -26,30 +26,26 @@ package com.xilinx.rapidwright.tests; import java.util.ArrayList; -import java.util.List; import java.util.HashMap; +import java.util.List; import java.util.Map; -import java.util.Set; +import com.xilinx.rapidwright.design.Cell; +import com.xilinx.rapidwright.design.Design; +import com.xilinx.rapidwright.design.SiteInst; +import com.xilinx.rapidwright.design.Unisim; +import com.xilinx.rapidwright.design.VivadoProp; import com.xilinx.rapidwright.device.BEL; import com.xilinx.rapidwright.device.Device; import com.xilinx.rapidwright.device.Part; import com.xilinx.rapidwright.device.PartNameTools; import com.xilinx.rapidwright.device.Site; import com.xilinx.rapidwright.device.SiteTypeEnum; - import com.xilinx.rapidwright.edif.EDIFCell; import com.xilinx.rapidwright.edif.EDIFDesign; -import com.xilinx.rapidwright.edif.EDIFCellInst; import com.xilinx.rapidwright.edif.EDIFLibrary; import com.xilinx.rapidwright.edif.EDIFNetlist; -import com.xilinx.rapidwright.design.Design; -import com.xilinx.rapidwright.design.Cell; -import com.xilinx.rapidwright.design.Unisim; -import com.xilinx.rapidwright.design.SiteInst; -import com.xilinx.rapidwright.design.VivadoProp; - public class PinMapTester { public static void main(String[] args) { @@ -127,13 +123,14 @@ public static void main(String[] args) { System.out.printf("Cell type %s at %s/%s in part %s, pin map:\n", cellTypeName, site.getName(), belName, partName); - for (Map.Entry pinMap : physCell.getPinMappingsP2L().entrySet()) { - System.out.printf(" - %s <= %s\n", pinMap.getKey(), pinMap.getValue()); + String[] physPinNames = physCell.getPhysicalPinMappings(); + for (int i = 0; i < physPinNames.length; i++) { + String logPinName = physPinNames[i]; + if (logPinName == null) + continue; + String physPinName = physCell.getBEL().getPin(i).getName(); + System.out.printf(" - %s <= %s\n", physPinName, logPinName); } - - //for (Map.Entry> pinMap : physCell.getPinMappingsL2P().entrySet()) { - // System.out.printf(" - //} } } diff --git a/src/com/xilinx/rapidwright/timing/TimingGraph.java b/src/com/xilinx/rapidwright/timing/TimingGraph.java index d6f4ab6ad..7c5ef55ce 100644 --- a/src/com/xilinx/rapidwright/timing/TimingGraph.java +++ b/src/com/xilinx/rapidwright/timing/TimingGraph.java @@ -1573,7 +1573,7 @@ public int addNetDelayEdges(Net net) { physPinName = cell.getPhysicalPinMapping(portName); } else { BEL lut = cell.getBEL(); - for (String pin : cell.getPinMappingsP2L().keySet()) { + for (String pin : cell.getUsedPhysicalPins()) { BELPin belPin = lut.getPin(pin); if (belPin.isInput()) { physPinName = belPin.getConnectedSitePinName(); diff --git a/src/com/xilinx/rapidwright/util/DataVersions.java b/src/com/xilinx/rapidwright/util/DataVersions.java index c7e0645c7..259a151e0 100644 --- a/src/com/xilinx/rapidwright/util/DataVersions.java +++ b/src/com/xilinx/rapidwright/util/DataVersions.java @@ -29,7 +29,7 @@ import java.util.Map; /** - * Generated on: Mon Jul 01 15:12:48 MDT 2024 + * Generated on: Wed Dec 04 17:06:07 MST 2024 * by: com.xilinx.rapidwright.release.UploadFilesToAzure * * Versioned list of data files to use in current RapidWright environment @@ -38,338 +38,352 @@ public class DataVersions { public static Map> dataVersionMap; static { dataVersionMap = new HashMap<>(); - dataVersionMap.put("data/cell_pin_defaults.dat", new Pair<>("cell-pin-defaults-dat", "eaf0585297cd82e43ec7786eee34a13b")); - dataVersionMap.put("data/devices/artix7/xa7a100t_db.dat", new Pair<>("xa7a100t-db-dat", "c462dd564961e834b232a0781d9a7f67")); - dataVersionMap.put("data/devices/artix7/xa7a12t_db.dat", new Pair<>("xa7a12t-db-dat", "d722e08c269fe653c7e56d5d72c8751f")); - dataVersionMap.put("data/devices/artix7/xa7a15t_db.dat", new Pair<>("xa7a15t-db-dat", "efed28db2139f369e35345f3d2687e99")); - dataVersionMap.put("data/devices/artix7/xa7a25t_db.dat", new Pair<>("xa7a25t-db-dat", "7a4891a8a52d5aada8c0d887f6d91c1e")); - dataVersionMap.put("data/devices/artix7/xa7a35t_db.dat", new Pair<>("xa7a35t-db-dat", "20f791600525512495ddf575223a3e2b")); - dataVersionMap.put("data/devices/artix7/xa7a50t_db.dat", new Pair<>("xa7a50t-db-dat", "2ed92875aaeca32788f0348d870b1f01")); - dataVersionMap.put("data/devices/artix7/xa7a75t_db.dat", new Pair<>("xa7a75t-db-dat", "108ffadd9e481cd2b3c3af54ff3541b6")); - dataVersionMap.put("data/devices/artix7/xc7a100t_db.dat", new Pair<>("xc7a100t-db-dat", "89a6b3b0adf37c20e5ea6f5ed7ddaf0e")); - dataVersionMap.put("data/devices/artix7/xc7a100ti_db.dat", new Pair<>("xc7a100ti-db-dat", "13399c29157eb3c71d80d92bdaedd426")); - dataVersionMap.put("data/devices/artix7/xc7a100tl_db.dat", new Pair<>("xc7a100tl-db-dat", "20fd5ffed5267d4248631e474b3527ff")); - dataVersionMap.put("data/devices/artix7/xc7a12t_db.dat", new Pair<>("xc7a12t-db-dat", "318e5ffb3fbf3f73aa973c2b2fbaf115")); - dataVersionMap.put("data/devices/artix7/xc7a12ti_db.dat", new Pair<>("xc7a12ti-db-dat", "eb26c3f7cdd49fa1ce4d686dab3b15ed")); - dataVersionMap.put("data/devices/artix7/xc7a12tl_db.dat", new Pair<>("xc7a12tl-db-dat", "f73af6bd6aa0cfd99a4753c9d4f7a399")); - dataVersionMap.put("data/devices/artix7/xc7a15t_db.dat", new Pair<>("xc7a15t-db-dat", "a6ba7398ebddad033c3c9edebc0887ed")); - dataVersionMap.put("data/devices/artix7/xc7a15ti_db.dat", new Pair<>("xc7a15ti-db-dat", "b82d776cd3319b15e37313c6fd7dc91d")); - dataVersionMap.put("data/devices/artix7/xc7a15tl_db.dat", new Pair<>("xc7a15tl-db-dat", "50217e1c8515e2a76a060f4c35531755")); - dataVersionMap.put("data/devices/artix7/xc7a200t_db.dat", new Pair<>("xc7a200t-db-dat", "ec5f934346106b0480140cfdfcc631c4")); - dataVersionMap.put("data/devices/artix7/xc7a200ti_db.dat", new Pair<>("xc7a200ti-db-dat", "9a571754cc710135994c69ce73d0bc30")); - dataVersionMap.put("data/devices/artix7/xc7a200tl_db.dat", new Pair<>("xc7a200tl-db-dat", "d9e3ffb848d406ffaa013dd42541df6f")); - dataVersionMap.put("data/devices/artix7/xc7a25t_db.dat", new Pair<>("xc7a25t-db-dat", "56fd1cee45942cdefa44164bc2092e30")); - dataVersionMap.put("data/devices/artix7/xc7a25ti_db.dat", new Pair<>("xc7a25ti-db-dat", "c0626c42a74d35d4387f54b93506384c")); - dataVersionMap.put("data/devices/artix7/xc7a25tl_db.dat", new Pair<>("xc7a25tl-db-dat", "972fe0f507edec0acf7328b13a4d3ead")); - dataVersionMap.put("data/devices/artix7/xc7a35t_db.dat", new Pair<>("xc7a35t-db-dat", "16183e2ffa5e66b530ca049d4595496a")); - dataVersionMap.put("data/devices/artix7/xc7a35ti_db.dat", new Pair<>("xc7a35ti-db-dat", "4b83ea9792676d3fc1e65e1138de80ed")); - dataVersionMap.put("data/devices/artix7/xc7a35tl_db.dat", new Pair<>("xc7a35tl-db-dat", "d64a8c15aafee7d4e835ff01f0e71c6e")); - dataVersionMap.put("data/devices/artix7/xc7a50t_db.dat", new Pair<>("xc7a50t-db-dat", "d8b4894507c995fd8246a40165e2e82c")); - dataVersionMap.put("data/devices/artix7/xc7a50ti_db.dat", new Pair<>("xc7a50ti-db-dat", "8d0e5e31e0d43d0803d6bd4d2fca12e9")); - dataVersionMap.put("data/devices/artix7/xc7a50tl_db.dat", new Pair<>("xc7a50tl-db-dat", "8fb582a0aefbb1b2d38e2917b8bba2ad")); - dataVersionMap.put("data/devices/artix7/xc7a75t_db.dat", new Pair<>("xc7a75t-db-dat", "f05568a070cb3567c648c24965f31316")); - dataVersionMap.put("data/devices/artix7/xc7a75ti_db.dat", new Pair<>("xc7a75ti-db-dat", "0c75a673be05a7cd5c112693a29555d8")); - dataVersionMap.put("data/devices/artix7/xc7a75tl_db.dat", new Pair<>("xc7a75tl-db-dat", "f99114deda83af2e00d0b2b1b89c665c")); - dataVersionMap.put("data/devices/artix7/xq7a100t_db.dat", new Pair<>("xq7a100t-db-dat", "63490f3b3f0b67bf2cbdc0c1ac299f10")); - dataVersionMap.put("data/devices/artix7/xq7a200t_db.dat", new Pair<>("xq7a200t-db-dat", "17c70c4e493bbf1f608ed0aebe5e88f3")); - dataVersionMap.put("data/devices/artix7/xq7a50t_db.dat", new Pair<>("xq7a50t-db-dat", "45b7a9dcbb19493f2c4995927c3d231f")); - dataVersionMap.put("data/devices/kintex7/xa7k160t_db.dat", new Pair<>("xa7k160t-db-dat", "a6e8b276c510f90c23f5ed9ed92803ea")); - dataVersionMap.put("data/devices/kintex7/xc7k160t_db.dat", new Pair<>("xc7k160t-db-dat", "b43f565dacd96c58d3f6a89a4caf8f71")); - dataVersionMap.put("data/devices/kintex7/xc7k160ti_db.dat", new Pair<>("xc7k160ti-db-dat", "b1aaa2268eb8eff42f5180e6735e3da9")); - dataVersionMap.put("data/devices/kintex7/xc7k160tl_db.dat", new Pair<>("xc7k160tl-db-dat", "48173313170dc3db30abd6fbd8d81f5c")); - dataVersionMap.put("data/devices/kintex7/xc7k325t_db.dat", new Pair<>("xc7k325t-db-dat", "6108bd9a169ee6f603df7e8ebf4a8739")); - dataVersionMap.put("data/devices/kintex7/xc7k325ti_db.dat", new Pair<>("xc7k325ti-db-dat", "74fb7324efbee35aea9f134363e811a2")); - dataVersionMap.put("data/devices/kintex7/xc7k325tl_db.dat", new Pair<>("xc7k325tl-db-dat", "06c3559b4359d6ad1131ccf138fbce40")); - dataVersionMap.put("data/devices/kintex7/xc7k355t_db.dat", new Pair<>("xc7k355t-db-dat", "db6aab39fb967f57c4eafbd789fb3e00")); - dataVersionMap.put("data/devices/kintex7/xc7k355ti_db.dat", new Pair<>("xc7k355ti-db-dat", "38d8f830628e43654d380e49885a75ec")); - dataVersionMap.put("data/devices/kintex7/xc7k355tl_db.dat", new Pair<>("xc7k355tl-db-dat", "acc5c15ce611fc1a4742cabbb31dc033")); - dataVersionMap.put("data/devices/kintex7/xc7k410t_db.dat", new Pair<>("xc7k410t-db-dat", "a7cbedf6ada3cb666a60c92fbc1f43ce")); - dataVersionMap.put("data/devices/kintex7/xc7k410ti_db.dat", new Pair<>("xc7k410ti-db-dat", "2ab984f40a14bccc067287ceada40898")); - dataVersionMap.put("data/devices/kintex7/xc7k410tl_db.dat", new Pair<>("xc7k410tl-db-dat", "cc3941b61a756b225d7cdfe30d2c0721")); - dataVersionMap.put("data/devices/kintex7/xc7k420t_db.dat", new Pair<>("xc7k420t-db-dat", "f488697534f5731eee83e4261a86e0f2")); - dataVersionMap.put("data/devices/kintex7/xc7k420ti_db.dat", new Pair<>("xc7k420ti-db-dat", "ce3927c58712adb7f19a3b834bbc0e2e")); - dataVersionMap.put("data/devices/kintex7/xc7k420tl_db.dat", new Pair<>("xc7k420tl-db-dat", "3b880396e4d8c49eb7375686142510c2")); - dataVersionMap.put("data/devices/kintex7/xc7k480t_db.dat", new Pair<>("xc7k480t-db-dat", "2ed6efd1590fdfc0329b21e7388282e1")); - dataVersionMap.put("data/devices/kintex7/xc7k480ti_db.dat", new Pair<>("xc7k480ti-db-dat", "9485d66e1b67021f56c4da46d5d85057")); - dataVersionMap.put("data/devices/kintex7/xc7k480tl_db.dat", new Pair<>("xc7k480tl-db-dat", "4a7927025133e534638eb881c948e685")); - dataVersionMap.put("data/devices/kintex7/xc7k70t_db.dat", new Pair<>("xc7k70t-db-dat", "fe9291ad2c62c77645c99426d5ad5f65")); - dataVersionMap.put("data/devices/kintex7/xc7k70tl_db.dat", new Pair<>("xc7k70tl-db-dat", "458549ee0d33abbc668c72daa482bb30")); - dataVersionMap.put("data/devices/kintex7/xq7k325t_db.dat", new Pair<>("xq7k325t-db-dat", "ddbbb5570b11cad7fc7fd2f4ab09094f")); - dataVersionMap.put("data/devices/kintex7/xq7k325tl_db.dat", new Pair<>("xq7k325tl-db-dat", "ebdcff8b94e993a32ea2c52b27df8f8f")); - dataVersionMap.put("data/devices/kintex7/xq7k410t_db.dat", new Pair<>("xq7k410t-db-dat", "e0857e8c6dbbb6cca741ca52a4a3ab73")); - dataVersionMap.put("data/devices/kintex7/xq7k410tl_db.dat", new Pair<>("xq7k410tl-db-dat", "8b9dbc52d0fb0dc3b7a57d3f28f7ab72")); - dataVersionMap.put("data/devices/kintexu/xcku025_db.dat", new Pair<>("xcku025-db-dat", "bfc8f57bf09c9c5e1f45125ff05fd574")); - dataVersionMap.put("data/devices/kintexu/xcku035_db.dat", new Pair<>("xcku035-db-dat", "738d51e6b8432626133dacb1e05fb2bf")); - dataVersionMap.put("data/devices/kintexu/xcku040_db.dat", new Pair<>("xcku040-db-dat", "5447ad976f7de37ab343e5c0d739f37b")); - dataVersionMap.put("data/devices/kintexu/xcku060_CIV_db.dat", new Pair<>("xcku060-civ-db-dat", "dedd66f23e4d6ab8486673d2362a55ff")); - dataVersionMap.put("data/devices/kintexu/xcku060_db.dat", new Pair<>("xcku060-db-dat", "be13359ec1ed700af444fa54882a4448")); - dataVersionMap.put("data/devices/kintexu/xcku085_CIV_db.dat", new Pair<>("xcku085-civ-db-dat", "cf25052d0b53a9290a2b6b3d930f026f")); - dataVersionMap.put("data/devices/kintexu/xcku085_db.dat", new Pair<>("xcku085-db-dat", "45171045071a2c9e1aea9bb34aadfe61")); - dataVersionMap.put("data/devices/kintexu/xcku095_CIV_db.dat", new Pair<>("xcku095-civ-db-dat", "55fe9076d6346b487c589912171815d0")); - dataVersionMap.put("data/devices/kintexu/xcku095_db.dat", new Pair<>("xcku095-db-dat", "01d01d03b0f4def80db50218a0f5f97c")); - dataVersionMap.put("data/devices/kintexu/xcku115_CIV_db.dat", new Pair<>("xcku115-civ-db-dat", "1833c7d564de9ab64710e7cc0457afa5")); - dataVersionMap.put("data/devices/kintexu/xcku115_db.dat", new Pair<>("xcku115-db-dat", "32a27e811cdc6560944ffeea24f5fd3c")); - dataVersionMap.put("data/devices/kintexu/xqku040_db.dat", new Pair<>("xqku040-db-dat", "37c4377376bcdec50e78e545a727d34d")); - dataVersionMap.put("data/devices/kintexu/xqku060_db.dat", new Pair<>("xqku060-db-dat", "ef45b9b5603dfc71db39936893f89527")); - dataVersionMap.put("data/devices/kintexu/xqku095_db.dat", new Pair<>("xqku095-db-dat", "dcb27462df771dcfbb1cc3946bc0e757")); - dataVersionMap.put("data/devices/kintexu/xqku115_db.dat", new Pair<>("xqku115-db-dat", "b19ba11c93db0dfc7de5cf19a62bfe4f")); - dataVersionMap.put("data/devices/kintexu/xqrku060_db.dat", new Pair<>("xqrku060-db-dat", "8ba0a00dcbf9dc32ec880d637ae90191")); - dataVersionMap.put("data/devices/kintexuplus/xaau10p_db.dat", new Pair<>("xaau10p-db-dat", "59524b97601a9472a1677619130e2c77")); - dataVersionMap.put("data/devices/kintexuplus/xaau15p_db.dat", new Pair<>("xaau15p-db-dat", "13f2f636162171ea31fd1608cfee6c36")); - dataVersionMap.put("data/devices/kintexuplus/xaau7p_db.dat", new Pair<>("xaau7p-db-dat", "36e075516dac2ec7bb3f6597c1436614")); - dataVersionMap.put("data/devices/kintexuplus/xcau10p_db.dat", new Pair<>("xcau10p-db-dat", "8fd293ba069eabd24a626146e7dde04c")); - dataVersionMap.put("data/devices/kintexuplus/xcau15p_db.dat", new Pair<>("xcau15p-db-dat", "3abd941c71b0eeab0920e77282964b30")); - dataVersionMap.put("data/devices/kintexuplus/xcau20p_db.dat", new Pair<>("xcau20p-db-dat", "e138a4ee79d5269e5399a7ebf9076829")); - dataVersionMap.put("data/devices/kintexuplus/xcau25p_db.dat", new Pair<>("xcau25p-db-dat", "280cd3c6ecce172ef8af46f51994a922")); - dataVersionMap.put("data/devices/kintexuplus/xcau7p_db.dat", new Pair<>("xcau7p-db-dat", "23ecb7b87c0ed9913233be132a1331ca")); - dataVersionMap.put("data/devices/kintexuplus/xcku11p_CIV_db.dat", new Pair<>("xcku11p-civ-db-dat", "585450536bf1714546cd0d35dcde8a90")); - dataVersionMap.put("data/devices/kintexuplus/xcku11p_db.dat", new Pair<>("xcku11p-db-dat", "dbcf86fb83e456bf48f02d36153b81ad")); - dataVersionMap.put("data/devices/kintexuplus/xcku13p_db.dat", new Pair<>("xcku13p-db-dat", "bed8d33493e0984bb157ef200be16a96")); - dataVersionMap.put("data/devices/kintexuplus/xcku15p_CIV_db.dat", new Pair<>("xcku15p-civ-db-dat", "3e6e1376a0b3cfccf21cde03d0ed0fbc")); - dataVersionMap.put("data/devices/kintexuplus/xcku15p_db.dat", new Pair<>("xcku15p-db-dat", "a9dfe7349fad1de425bf6973085e29a9")); - dataVersionMap.put("data/devices/kintexuplus/xcku19p_CIV_db.dat", new Pair<>("xcku19p-civ-db-dat", "6f4cbd7137c1af75c4051d4c7340c99c")); - dataVersionMap.put("data/devices/kintexuplus/xcku19p_db.dat", new Pair<>("xcku19p-db-dat", "4dbe9d2a1f9c52bfd31238bc75ff0b1b")); - dataVersionMap.put("data/devices/kintexuplus/xcku3p_db.dat", new Pair<>("xcku3p-db-dat", "ad2d43b0152546657dbb62114953e070")); - dataVersionMap.put("data/devices/kintexuplus/xcku5p_db.dat", new Pair<>("xcku5p-db-dat", "9086c97154cac1804f3145b60c69a050")); - dataVersionMap.put("data/devices/kintexuplus/xcku9p_db.dat", new Pair<>("xcku9p-db-dat", "bdacb15f9f97ec6c80209951f72f2d18")); - dataVersionMap.put("data/devices/kintexuplus/xqku15p_db.dat", new Pair<>("xqku15p-db-dat", "ea16079501211f6a56776a7f647ea793")); - dataVersionMap.put("data/devices/kintexuplus/xqku5p_db.dat", new Pair<>("xqku5p-db-dat", "32d5ba2f7858c8f6a2837555e6092b61")); - dataVersionMap.put("data/devices/spartan7/xa7s100_db.dat", new Pair<>("xa7s100-db-dat", "67ab253f14bb7ce65358d90b3ed2be90")); - dataVersionMap.put("data/devices/spartan7/xa7s15_db.dat", new Pair<>("xa7s15-db-dat", "b242ff8589e5d85cdf1777de430294e3")); - dataVersionMap.put("data/devices/spartan7/xa7s25_db.dat", new Pair<>("xa7s25-db-dat", "e044ef45ea5d2a67ec75741d905288da")); - dataVersionMap.put("data/devices/spartan7/xa7s50_db.dat", new Pair<>("xa7s50-db-dat", "85603a88c4ef3a41d0aaf5c2b7a610ac")); - dataVersionMap.put("data/devices/spartan7/xa7s6_db.dat", new Pair<>("xa7s6-db-dat", "882b26a45bdaf0195bd83d3053b87c17")); - dataVersionMap.put("data/devices/spartan7/xa7s75_db.dat", new Pair<>("xa7s75-db-dat", "dcc679fa39d68c2947277da070aaebb6")); - dataVersionMap.put("data/devices/spartan7/xc7s100_db.dat", new Pair<>("xc7s100-db-dat", "b91c71f1a0c2df6a6e0fa2e9ea20dac2")); - dataVersionMap.put("data/devices/spartan7/xc7s15_db.dat", new Pair<>("xc7s15-db-dat", "1dd2e45130df98f90835ddf59940f1bb")); - dataVersionMap.put("data/devices/spartan7/xc7s25_db.dat", new Pair<>("xc7s25-db-dat", "bb970c50c0076f10bb399447c61a8a73")); - dataVersionMap.put("data/devices/spartan7/xc7s50_db.dat", new Pair<>("xc7s50-db-dat", "718533451f74816516f848aed05a4ac9")); - dataVersionMap.put("data/devices/spartan7/xc7s6_db.dat", new Pair<>("xc7s6-db-dat", "1ced054c4c07cd1fe0f30c4aec966220")); - dataVersionMap.put("data/devices/spartan7/xc7s75_db.dat", new Pair<>("xc7s75-db-dat", "0222b0141daa170330b7ea13f8229561")); - dataVersionMap.put("data/devices/versal/xave1752_db.dat", new Pair<>("xave1752-db-dat", "9647d8c3c02da18d248115186ab1f309")); - dataVersionMap.put("data/devices/versal/xcv80_db.dat", new Pair<>("xcv80-db-dat", "beff67d91d75d48d8f6bf7df9a24faaf")); - dataVersionMap.put("data/devices/versal/xcvc1502_db.dat", new Pair<>("xcvc1502-db-dat", "095de11fa44a560bf4b8369e2304ccf2")); - dataVersionMap.put("data/devices/versal/xcvc1702_db.dat", new Pair<>("xcvc1702-db-dat", "1a23a849a9c0e0a2b1ef0885e9817d7e")); - dataVersionMap.put("data/devices/versal/xcvc1802_db.dat", new Pair<>("xcvc1802-db-dat", "98e3a90ff0079f29600f497503503c38")); - dataVersionMap.put("data/devices/versal/xcvc1902_db.dat", new Pair<>("xcvc1902-db-dat", "a61a878106984675b70ec9d5d2f73f28")); - dataVersionMap.put("data/devices/versal/xcvc2602_db.dat", new Pair<>("xcvc2602-db-dat", "2d3d85a216146d926c91ef905314f40c")); - dataVersionMap.put("data/devices/versal/xcvc2802_db.dat", new Pair<>("xcvc2802-db-dat", "10cb5900515037a0d7fd446b5cd5f1f3")); - dataVersionMap.put("data/devices/versal/xcve1752_db.dat", new Pair<>("xcve1752-db-dat", "3dd190a91517bc2e749d64b31cd8c58a")); - dataVersionMap.put("data/devices/versal/xcve2002_db.dat", new Pair<>("xcve2002-db-dat", "e8ffb30d328d961ca7be17518666f399")); - dataVersionMap.put("data/devices/versal/xcve2102_db.dat", new Pair<>("xcve2102-db-dat", "7a141875eacff72fdc5adc0bdf27713c")); - dataVersionMap.put("data/devices/versal/xcve2202_db.dat", new Pair<>("xcve2202-db-dat", "55b240329ed8c99f06f63bb60345ba42")); - dataVersionMap.put("data/devices/versal/xcve2302_db.dat", new Pair<>("xcve2302-db-dat", "787dfa93d3621ffe603b02a553ee339a")); - dataVersionMap.put("data/devices/versal/xcve2602_db.dat", new Pair<>("xcve2602-db-dat", "d2f263072de3eda5d8fce0c375f12d41")); - dataVersionMap.put("data/devices/versal/xcve2802_db.dat", new Pair<>("xcve2802-db-dat", "9a64655af770531a9109c147202d7842")); - dataVersionMap.put("data/devices/versal/xcvh1522_db.dat", new Pair<>("xcvh1522-db-dat", "48399b6242055b6045e4a5865b5ba923")); - dataVersionMap.put("data/devices/versal/xcvh1542_db.dat", new Pair<>("xcvh1542-db-dat", "fd104d6b565130654f4b10f047901a11")); - dataVersionMap.put("data/devices/versal/xcvh1582_db.dat", new Pair<>("xcvh1582-db-dat", "b3d5809413dbf9fe5faf329f53455712")); - dataVersionMap.put("data/devices/versal/xcvh1742_db.dat", new Pair<>("xcvh1742-db-dat", "42ee694090074973df8bae88e41963ad")); - dataVersionMap.put("data/devices/versal/xcvh1782_db.dat", new Pair<>("xcvh1782-db-dat", "21eb6ae143da4179a887fdd9bb60bd04")); - dataVersionMap.put("data/devices/versal/xcvm1102_db.dat", new Pair<>("xcvm1102-db-dat", "830e2c7022da5ae7996317411491f825")); - dataVersionMap.put("data/devices/versal/xcvm1302_db.dat", new Pair<>("xcvm1302-db-dat", "c262310de1ce097d09f5b3caebc9b74f")); - dataVersionMap.put("data/devices/versal/xcvm1402_db.dat", new Pair<>("xcvm1402-db-dat", "53a071baa129237927d0686dc8d1b173")); - dataVersionMap.put("data/devices/versal/xcvm1502_db.dat", new Pair<>("xcvm1502-db-dat", "340c2d570e6943baefab1069919e1837")); - dataVersionMap.put("data/devices/versal/xcvm1802_db.dat", new Pair<>("xcvm1802-db-dat", "512acb1d095d4f6a018a47a264be614d")); - dataVersionMap.put("data/devices/versal/xcvm2202_db.dat", new Pair<>("xcvm2202-db-dat", "ace765c3daad25c1c5c804d8ffa57f8b")); - dataVersionMap.put("data/devices/versal/xcvm2302_db.dat", new Pair<>("xcvm2302-db-dat", "9301da8d54f7c3a39e25a9dc4c277a9c")); - dataVersionMap.put("data/devices/versal/xcvm2502_db.dat", new Pair<>("xcvm2502-db-dat", "168343a213c0901c32bba7974b9150d7")); - dataVersionMap.put("data/devices/versal/xcvm2902_db.dat", new Pair<>("xcvm2902-db-dat", "780eeebe663c17699676d3ac9eedbe36")); - dataVersionMap.put("data/devices/versal/xcvp1002_db.dat", new Pair<>("xcvp1002-db-dat", "93614d27e616ad00c0f09063f60b00bf")); - dataVersionMap.put("data/devices/versal/xcvp1052_db.dat", new Pair<>("xcvp1052-db-dat", "b6efaa8d9bbc266953c36c71108cddf5")); - dataVersionMap.put("data/devices/versal/xcvp1102_db.dat", new Pair<>("xcvp1102-db-dat", "8632dfccbe341abef9f3504fbf0b5bce")); - dataVersionMap.put("data/devices/versal/xcvp1202_db.dat", new Pair<>("xcvp1202-db-dat", "0d3d43ad85ecfd8a370144653c0dcae4")); - dataVersionMap.put("data/devices/versal/xcvp1402_db.dat", new Pair<>("xcvp1402-db-dat", "4a96e13eccf7efb2eea45586ff4eecab")); - dataVersionMap.put("data/devices/versal/xcvp1502_db.dat", new Pair<>("xcvp1502-db-dat", "664eaae2420cfcce9c38e3a65907fe6e")); - dataVersionMap.put("data/devices/versal/xcvp1552_db.dat", new Pair<>("xcvp1552-db-dat", "b638dd9fa21c9bf1b32ff244b2fc8097")); - dataVersionMap.put("data/devices/versal/xcvp1702_db.dat", new Pair<>("xcvp1702-db-dat", "e45eeae7f2c446b747d2c32b1e740966")); - dataVersionMap.put("data/devices/versal/xcvp1802_db.dat", new Pair<>("xcvp1802-db-dat", "5193742d00799abca9e09cc4d420cf96")); - dataVersionMap.put("data/devices/versal/xcvp1902_db.dat", new Pair<>("xcvp1902-db-dat", "75bc9e93b9f51779f8fde3090f049a1c")); - dataVersionMap.put("data/devices/versal/xcvp2502_db.dat", new Pair<>("xcvp2502-db-dat", "6df88f501601c922a76a91dfa8fdbe40")); - dataVersionMap.put("data/devices/versal/xcvp2802_db.dat", new Pair<>("xcvp2802-db-dat", "6190c436f390d434fd5d3b6c11663dec")); - dataVersionMap.put("data/devices/versal/xqrvc1902_db.dat", new Pair<>("xqrvc1902-db-dat", "d8b094b89dc88d7d5ee95ecf072eb745")); - dataVersionMap.put("data/devices/versal/xqvc1702_db.dat", new Pair<>("xqvc1702-db-dat", "f53ba0b4a08339e7cde0ec246235f3ee")); - dataVersionMap.put("data/devices/versal/xqvc1902_db.dat", new Pair<>("xqvc1902-db-dat", "b83164afbc5f38024d28f551cc3a1901")); - dataVersionMap.put("data/devices/versal/xqvm1402_db.dat", new Pair<>("xqvm1402-db-dat", "ea17c682326443b3bd365d94557b7861")); - dataVersionMap.put("data/devices/versal/xqvm1502_db.dat", new Pair<>("xqvm1502-db-dat", "b1408f8ecabe3a96af1430697d2a293e")); - dataVersionMap.put("data/devices/versal/xqvm1802_db.dat", new Pair<>("xqvm1802-db-dat", "8573f43ba22cb1770984a0375165fe76")); - dataVersionMap.put("data/devices/versal/xqvp1202_db.dat", new Pair<>("xqvp1202-db-dat", "8ce42b96c01868c1c9a846f62bf690db")); - dataVersionMap.put("data/devices/versal/xqvp1402_db.dat", new Pair<>("xqvp1402-db-dat", "94b19c5b58aa96f8f7ad8a824dc46d3b")); - dataVersionMap.put("data/devices/versal/xqvp1502_db.dat", new Pair<>("xqvp1502-db-dat", "3fb790fe4fd1934bff38cb3166d651db")); - dataVersionMap.put("data/devices/virtex7/xc7v2000t_db.dat", new Pair<>("xc7v2000t-db-dat", "92d0393f7face5876bb50a053ec4feca")); - dataVersionMap.put("data/devices/virtex7/xc7v585t_db.dat", new Pair<>("xc7v585t-db-dat", "c1f34b8edfecbad5175ae15a001a5a0e")); - dataVersionMap.put("data/devices/virtex7/xc7vh580t_db.dat", new Pair<>("xc7vh580t-db-dat", "78d8cb5036dac18446cfe7ee9385ff5c")); - dataVersionMap.put("data/devices/virtex7/xc7vh870t_db.dat", new Pair<>("xc7vh870t-db-dat", "f926445f11f764566091d7bd17be504a")); - dataVersionMap.put("data/devices/virtex7/xc7vx1140t_db.dat", new Pair<>("xc7vx1140t-db-dat", "8e043da034346ced8ac74d3466590dde")); - dataVersionMap.put("data/devices/virtex7/xc7vx330t_db.dat", new Pair<>("xc7vx330t-db-dat", "f15cfb07c59972149a04052092089ece")); - dataVersionMap.put("data/devices/virtex7/xc7vx415t_CIV_db.dat", new Pair<>("xc7vx415t-civ-db-dat", "29071f4d73bb2b27c0890a21c6782132")); - dataVersionMap.put("data/devices/virtex7/xc7vx415t_db.dat", new Pair<>("xc7vx415t-db-dat", "56499db6ea7ef4836a5b286b5cce91ab")); - dataVersionMap.put("data/devices/virtex7/xc7vx485t_db.dat", new Pair<>("xc7vx485t-db-dat", "3c1d751df7f0457d715739597b484a48")); - dataVersionMap.put("data/devices/virtex7/xc7vx550t_CIV_db.dat", new Pair<>("xc7vx550t-civ-db-dat", "a518d9ae5cfbf43776260fd8f49f0fa1")); - dataVersionMap.put("data/devices/virtex7/xc7vx550t_db.dat", new Pair<>("xc7vx550t-db-dat", "d5aad888cba247f788478cfdc615d897")); - dataVersionMap.put("data/devices/virtex7/xc7vx690t_CIV_db.dat", new Pair<>("xc7vx690t-civ-db-dat", "4c59f34584c56f22181e6ae8219f539a")); - dataVersionMap.put("data/devices/virtex7/xc7vx690t_db.dat", new Pair<>("xc7vx690t-db-dat", "b665906e7979c0633e612e8b557bdf20")); - dataVersionMap.put("data/devices/virtex7/xc7vx980t_db.dat", new Pair<>("xc7vx980t-db-dat", "878b9d14fced5e55a6671312cd7907bb")); - dataVersionMap.put("data/devices/virtex7/xq7v585t_db.dat", new Pair<>("xq7v585t-db-dat", "9b3767f09398312811f2d049a01f3388")); - dataVersionMap.put("data/devices/virtex7/xq7vx330t_db.dat", new Pair<>("xq7vx330t-db-dat", "3d9d11729b0afa0928ea6ec226f998e5")); - dataVersionMap.put("data/devices/virtex7/xq7vx485t_db.dat", new Pair<>("xq7vx485t-db-dat", "3ee6a7714d60ae81ef8ebfcee11cb3d2")); - dataVersionMap.put("data/devices/virtex7/xq7vx690t_db.dat", new Pair<>("xq7vx690t-db-dat", "514f776fd60d1941316392832f83d438")); - dataVersionMap.put("data/devices/virtex7/xq7vx980t_db.dat", new Pair<>("xq7vx980t-db-dat", "5d3523e34d29438bbc2867da4046a623")); - dataVersionMap.put("data/devices/virtexu/xcvu065_CIV_db.dat", new Pair<>("xcvu065-civ-db-dat", "0452e6f1de6a12bedbb54aa2fe572726")); - dataVersionMap.put("data/devices/virtexu/xcvu065_db.dat", new Pair<>("xcvu065-db-dat", "e9024fd561d499f131f3d8593bc0c3fb")); - dataVersionMap.put("data/devices/virtexu/xcvu080_CIV_db.dat", new Pair<>("xcvu080-civ-db-dat", "30c60ef49287b5a455b6a7e874823b26")); - dataVersionMap.put("data/devices/virtexu/xcvu080_db.dat", new Pair<>("xcvu080-db-dat", "fb381473f731a1c93904f9bff217fdc7")); - dataVersionMap.put("data/devices/virtexu/xcvu095_CIV_db.dat", new Pair<>("xcvu095-civ-db-dat", "66224d8e0d7f02e81e18efb06c82ba76")); - dataVersionMap.put("data/devices/virtexu/xcvu095_db.dat", new Pair<>("xcvu095-db-dat", "b194e6fbce0d5020d650c1d152be88a7")); - dataVersionMap.put("data/devices/virtexu/xcvu125_CIV_db.dat", new Pair<>("xcvu125-civ-db-dat", "c1b86231ef81a96b44ed577c4d23959b")); - dataVersionMap.put("data/devices/virtexu/xcvu125_db.dat", new Pair<>("xcvu125-db-dat", "befa7845542b36ca9f213a83ba2dc4bd")); - dataVersionMap.put("data/devices/virtexu/xcvu160_CIV_db.dat", new Pair<>("xcvu160-civ-db-dat", "3c5d9e3b54d494751e5638eae6efe33f")); - dataVersionMap.put("data/devices/virtexu/xcvu160_db.dat", new Pair<>("xcvu160-db-dat", "e75e1364d6ee2db9cef7461c1c3ae9c7")); - dataVersionMap.put("data/devices/virtexu/xcvu190_CIV_db.dat", new Pair<>("xcvu190-civ-db-dat", "f88a35b7382948ed3e683a7ad0a3b49e")); - dataVersionMap.put("data/devices/virtexu/xcvu190_db.dat", new Pair<>("xcvu190-db-dat", "9b62cb1fb4ff8f7f1dfb65917e9a81a5")); - dataVersionMap.put("data/devices/virtexu/xcvu440_CIV_db.dat", new Pair<>("xcvu440-civ-db-dat", "d22ffd26ff6a73f27a632123dcef3e33")); - dataVersionMap.put("data/devices/virtexu/xcvu440_db.dat", new Pair<>("xcvu440-db-dat", "067a1c41071a690b66c378d6c9e7762c")); - dataVersionMap.put("data/devices/virtexuplus/xcu200_db.dat", new Pair<>("xcu200-db-dat", "5d99756969b0a41b050d6de78a321c5e")); - dataVersionMap.put("data/devices/virtexuplus/xcu250_db.dat", new Pair<>("xcu250-db-dat", "274131605e6b130a4bcef99fbf08bd4a")); - dataVersionMap.put("data/devices/virtexuplus/xcvu11p_CIV_db.dat", new Pair<>("xcvu11p-civ-db-dat", "e467ccc8ab779303398b761f43cd53aa")); - dataVersionMap.put("data/devices/virtexuplus/xcvu11p_db.dat", new Pair<>("xcvu11p-db-dat", "1749af62857f4aafa1f213591cb1ea58")); - dataVersionMap.put("data/devices/virtexuplus/xcvu13p_CIV_db.dat", new Pair<>("xcvu13p-civ-db-dat", "5701d014fe5bad6f6743ae0d9ef87115")); - dataVersionMap.put("data/devices/virtexuplus/xcvu13p_db.dat", new Pair<>("xcvu13p-db-dat", "d4c48189ff4e9add69c6653bb7a260af")); - dataVersionMap.put("data/devices/virtexuplus/xcvu19p_CIV_db.dat", new Pair<>("xcvu19p-civ-db-dat", "8e42ccf2301a00e4a90023867e7ec193")); - dataVersionMap.put("data/devices/virtexuplus/xcvu19p_db.dat", new Pair<>("xcvu19p-db-dat", "1bc92e443d2cd769ae96794e4a1d0da1")); - dataVersionMap.put("data/devices/virtexuplus/xcvu3p_CIV_db.dat", new Pair<>("xcvu3p-civ-db-dat", "2ee7a3dee107ebe03edbaf490990f13c")); - dataVersionMap.put("data/devices/virtexuplus/xcvu3p_db.dat", new Pair<>("xcvu3p-db-dat", "f805e161cd76bac1ff913158f20d6d6d")); - dataVersionMap.put("data/devices/virtexuplus/xcvu5p_CIV_db.dat", new Pair<>("xcvu5p-civ-db-dat", "0a50b9f5dbad1071d37cd34bfc59dfaa")); - dataVersionMap.put("data/devices/virtexuplus/xcvu5p_db.dat", new Pair<>("xcvu5p-db-dat", "41162bc914052cd59d24f3d250f2ab04")); - dataVersionMap.put("data/devices/virtexuplus/xcvu7p_CIV_db.dat", new Pair<>("xcvu7p-civ-db-dat", "13d2660ebe5bb2509798467827ecd713")); - dataVersionMap.put("data/devices/virtexuplus/xcvu7p_db.dat", new Pair<>("xcvu7p-db-dat", "356e51a118f9311bfcda74e078f4f7b3")); - dataVersionMap.put("data/devices/virtexuplus/xcvu9p_CIV_db.dat", new Pair<>("xcvu9p-civ-db-dat", "148aedb68120e01253864a25d0f134f0")); - dataVersionMap.put("data/devices/virtexuplus/xcvu9p_db.dat", new Pair<>("xcvu9p-db-dat", "a055fe54f71b077cdc14493f1a3de778")); - dataVersionMap.put("data/devices/virtexuplus/xqvu11p_db.dat", new Pair<>("xqvu11p-db-dat", "badd6c2ec2af3864ac58bf362bfdc5b5")); - dataVersionMap.put("data/devices/virtexuplus/xqvu13p_db.dat", new Pair<>("xqvu13p-db-dat", "a91dee76ae90b430bc54beb00ae149b3")); - dataVersionMap.put("data/devices/virtexuplus/xqvu3p_db.dat", new Pair<>("xqvu3p-db-dat", "02dfd5b15500a3a598d4e13da4dd3d7a")); - dataVersionMap.put("data/devices/virtexuplus/xqvu7p_db.dat", new Pair<>("xqvu7p-db-dat", "fae68aa52ab95b09584ccbc9989ba002")); - dataVersionMap.put("data/devices/virtexuplus/xqvu9p_db.dat", new Pair<>("xqvu9p-db-dat", "0b8d6768fce3b43da9aa9c1d284c161c")); - dataVersionMap.put("data/devices/virtexuplus58g/xcu26_db.dat", new Pair<>("xcu26-db-dat", "16c47a607386d282c88a0819ccb90b06")); - dataVersionMap.put("data/devices/virtexuplus58g/xcux35_db.dat", new Pair<>("xcux35-db-dat", "76d92db8a64a68a4f62f9b1bd77d6b2c")); - dataVersionMap.put("data/devices/virtexuplus58g/xcvu23p_CIV_db.dat", new Pair<>("xcvu23p-civ-db-dat", "532631fd16803d1a9d371867909a15e9")); - dataVersionMap.put("data/devices/virtexuplus58g/xcvu23p_db.dat", new Pair<>("xcvu23p-db-dat", "7a402a8aa1fc19a2ddd345b59c0f92a6")); - dataVersionMap.put("data/devices/virtexuplus58g/xcvu27p_db.dat", new Pair<>("xcvu27p-db-dat", "ae2fe858e3aa6c868dbb521180134ec7")); - dataVersionMap.put("data/devices/virtexuplus58g/xcvu29p_CIV_db.dat", new Pair<>("xcvu29p-civ-db-dat", "21a39c93719cec9782e01118e69c1ddb")); - dataVersionMap.put("data/devices/virtexuplus58g/xcvu29p_db.dat", new Pair<>("xcvu29p-db-dat", "c9adeb4229782a48d628d1e9b79d5f85")); - dataVersionMap.put("data/devices/virtexuplushbm/xcu280_db.dat", new Pair<>("xcu280-db-dat", "ee607e7acc31dd410bb52847db491779")); - dataVersionMap.put("data/devices/virtexuplushbm/xcu50_db.dat", new Pair<>("xcu50-db-dat", "94adbe337bda80262a92fcc91134e526")); - dataVersionMap.put("data/devices/virtexuplushbm/xcu55c_db.dat", new Pair<>("xcu55c-db-dat", "fc3f7906b84a56d87fdb535330631a7f")); - dataVersionMap.put("data/devices/virtexuplushbm/xcu55n_db.dat", new Pair<>("xcu55n-db-dat", "c35073c30c01fa7735d775487fdce538")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu31p_CIV_db.dat", new Pair<>("xcvu31p-civ-db-dat", "c260523b70d33784a4daec16cd8c6746")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu31p_db.dat", new Pair<>("xcvu31p-db-dat", "fff4e230b2a9884e55029d4f6586434d")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu33p_CIV_db.dat", new Pair<>("xcvu33p-civ-db-dat", "cd199c8cfd0ed8066d2ad7169a6c07b1")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu33p_db.dat", new Pair<>("xcvu33p-db-dat", "5952be515b1d44fab892aba4b0193c2b")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu35p_CIV_db.dat", new Pair<>("xcvu35p-civ-db-dat", "21eb26cd6f6ea454c1c9e23d2622d273")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu35p_db.dat", new Pair<>("xcvu35p-db-dat", "5428b2cbd6a3753a33a83bd2dee284cd")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu37p_CIV_db.dat", new Pair<>("xcvu37p-civ-db-dat", "43f7a97781c2eb90eafdd3640e767b65")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu37p_db.dat", new Pair<>("xcvu37p-db-dat", "b4a10ab72e1017811281dfc0c8eaec94")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu45p_CIV_db.dat", new Pair<>("xcvu45p-civ-db-dat", "f231fbc253ae6c415079fa16544b25ff")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu45p_db.dat", new Pair<>("xcvu45p-db-dat", "db8573aac1d3e88b7c4ef4811faa7acd")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu47p_CIV_db.dat", new Pair<>("xcvu47p-civ-db-dat", "4ab61a70b3477c7089d0346d3b0f6b3b")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu47p_db.dat", new Pair<>("xcvu47p-db-dat", "1cf99371b29b0c8aa641d629e06a65f3")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu57p_CIV_db.dat", new Pair<>("xcvu57p-civ-db-dat", "d8ffecd79281bc83a3d896395a616142")); - dataVersionMap.put("data/devices/virtexuplushbm/xcvu57p_db.dat", new Pair<>("xcvu57p-db-dat", "7c72a0c5bdeff5bdd73bca0417f2cd9e")); - dataVersionMap.put("data/devices/virtexuplushbm/xqvu37p_db.dat", new Pair<>("xqvu37p-db-dat", "92cab74440a204d17a784b09d2a1c326")); - dataVersionMap.put("data/devices/zynq/xa7z010_db.dat", new Pair<>("xa7z010-db-dat", "092bdce0907123acd5cca412d07a3122")); - dataVersionMap.put("data/devices/zynq/xa7z020_db.dat", new Pair<>("xa7z020-db-dat", "d76154945850c125ca02dc53ec004427")); - dataVersionMap.put("data/devices/zynq/xa7z030_db.dat", new Pair<>("xa7z030-db-dat", "6a5eb14fdc1bd5f345d7dfb7f46c0572")); - dataVersionMap.put("data/devices/zynq/xc7z007s_db.dat", new Pair<>("xc7z007s-db-dat", "b666abd637b6156a85e2d256841cfc37")); - dataVersionMap.put("data/devices/zynq/xc7z010_db.dat", new Pair<>("xc7z010-db-dat", "a66bfb860439663cfa24c10f816f70af")); - dataVersionMap.put("data/devices/zynq/xc7z010i_db.dat", new Pair<>("xc7z010i-db-dat", "56a093e1f293c5417bb8c0cb857cd27d")); - dataVersionMap.put("data/devices/zynq/xc7z012s_db.dat", new Pair<>("xc7z012s-db-dat", "a2157b50e4bf143820f1f93362a8cbe8")); - dataVersionMap.put("data/devices/zynq/xc7z014s_db.dat", new Pair<>("xc7z014s-db-dat", "bbbf6b0c8ae79f56cc60deaf17b64671")); - dataVersionMap.put("data/devices/zynq/xc7z015_db.dat", new Pair<>("xc7z015-db-dat", "7c1a3164c7882c19171f752610d5c038")); - dataVersionMap.put("data/devices/zynq/xc7z015i_db.dat", new Pair<>("xc7z015i-db-dat", "6673be982383404c2f3396aa969f3860")); - dataVersionMap.put("data/devices/zynq/xc7z020_db.dat", new Pair<>("xc7z020-db-dat", "fc5bebe46572f592245e4aed441c029e")); - dataVersionMap.put("data/devices/zynq/xc7z020i_db.dat", new Pair<>("xc7z020i-db-dat", "0249d0f1023f154cd1a968a64b1332f6")); - dataVersionMap.put("data/devices/zynq/xc7z030_db.dat", new Pair<>("xc7z030-db-dat", "06c61846a7d995cb03a0658f6928d008")); - dataVersionMap.put("data/devices/zynq/xc7z030i_db.dat", new Pair<>("xc7z030i-db-dat", "0b4b0dc8c010ddb33a9694ef92733eb0")); - dataVersionMap.put("data/devices/zynq/xc7z035_db.dat", new Pair<>("xc7z035-db-dat", "b7cb1c466e37987091f3b595ab818f21")); - dataVersionMap.put("data/devices/zynq/xc7z035i_db.dat", new Pair<>("xc7z035i-db-dat", "1f31559106e7c627e423dd479bef3262")); - dataVersionMap.put("data/devices/zynq/xc7z045_db.dat", new Pair<>("xc7z045-db-dat", "6c836f4fa698ddab028a8609e063336c")); - dataVersionMap.put("data/devices/zynq/xc7z045i_db.dat", new Pair<>("xc7z045i-db-dat", "d5741ded66bdc354e239c99cd9cfd34c")); - dataVersionMap.put("data/devices/zynq/xc7z100_db.dat", new Pair<>("xc7z100-db-dat", "0e81da2a7413068bb53735a1d0c928b4")); - dataVersionMap.put("data/devices/zynq/xc7z100i_db.dat", new Pair<>("xc7z100i-db-dat", "0609a0c20edd5d5f403c56c4671641f0")); - dataVersionMap.put("data/devices/zynq/xq7z020_db.dat", new Pair<>("xq7z020-db-dat", "7853e053b22d1a08f5d993696584415b")); - dataVersionMap.put("data/devices/zynq/xq7z030_db.dat", new Pair<>("xq7z030-db-dat", "de2799d72680d0182c6946b210d53528")); - dataVersionMap.put("data/devices/zynq/xq7z045_db.dat", new Pair<>("xq7z045-db-dat", "7fe706467a4e6b2002b9418fb59bfcbd")); - dataVersionMap.put("data/devices/zynq/xq7z100_db.dat", new Pair<>("xq7z100-db-dat", "0ef14d93d813d9d4aad8c532758c5014")); - dataVersionMap.put("data/devices/zynquplus/xazu11eg_db.dat", new Pair<>("xazu11eg-db-dat", "8e09f078863d76c0f0d3905822774f0a")); - dataVersionMap.put("data/devices/zynquplus/xazu1eg_db.dat", new Pair<>("xazu1eg-db-dat", "119cc5a7544511182a7814284c0c6a1d")); - dataVersionMap.put("data/devices/zynquplus/xazu2eg_db.dat", new Pair<>("xazu2eg-db-dat", "cdfe3c4fb1002069b149268fb3cf312b")); - dataVersionMap.put("data/devices/zynquplus/xazu3eg_db.dat", new Pair<>("xazu3eg-db-dat", "178047a3a9ea48b78a1822f2ce573dd2")); - dataVersionMap.put("data/devices/zynquplus/xazu3teg_db.dat", new Pair<>("xazu3teg-db-dat", "edd9aafa5776632f351deb52fd82aad9")); - dataVersionMap.put("data/devices/zynquplus/xazu4ev_db.dat", new Pair<>("xazu4ev-db-dat", "884a12969e2c02fee0e411c97dc3ddf8")); - dataVersionMap.put("data/devices/zynquplus/xazu5ev_db.dat", new Pair<>("xazu5ev-db-dat", "ee0bf0ddb9d88ce68d7a280571ad91d6")); - dataVersionMap.put("data/devices/zynquplus/xazu7ev_db.dat", new Pair<>("xazu7ev-db-dat", "21624f0ac0aa2efa331073107cbe2f9c")); - dataVersionMap.put("data/devices/zynquplus/xck24_db.dat", new Pair<>("xck24-db-dat", "bf4bb6a50161fe8fd44a5773ae4d7256")); - dataVersionMap.put("data/devices/zynquplus/xck26_db.dat", new Pair<>("xck26-db-dat", "82dee8e70adf8cbc6562c1b7fa33f977")); - dataVersionMap.put("data/devices/zynquplus/xcu25_db.dat", new Pair<>("xcu25-db-dat", "59ab1a1ff5c6a2f49f64014eff10d6e6")); - dataVersionMap.put("data/devices/zynquplus/xcu30_db.dat", new Pair<>("xcu30-db-dat", "4829ba3a398cab16f143c5ae8fc69980")); - dataVersionMap.put("data/devices/zynquplus/xczu11eg_db.dat", new Pair<>("xczu11eg-db-dat", "d73f3caecf1c7d0f82436b1a6347a06d")); - dataVersionMap.put("data/devices/zynquplus/xczu15eg_db.dat", new Pair<>("xczu15eg-db-dat", "091773b1d05b7cf519de04a4f86675bc")); - dataVersionMap.put("data/devices/zynquplus/xczu17eg_db.dat", new Pair<>("xczu17eg-db-dat", "bcbe252a7c570e59cdc9b56aa4ca14ce")); - dataVersionMap.put("data/devices/zynquplus/xczu19eg_db.dat", new Pair<>("xczu19eg-db-dat", "2c449091c0529de78ee7182f6c66b0f8")); - dataVersionMap.put("data/devices/zynquplus/xczu1cg_db.dat", new Pair<>("xczu1cg-db-dat", "5c86df9a5949d2ff51f0e01042b53a9d")); - dataVersionMap.put("data/devices/zynquplus/xczu1eg_db.dat", new Pair<>("xczu1eg-db-dat", "0c047213bf2f01633deb26bfbdcfdb31")); - dataVersionMap.put("data/devices/zynquplus/xczu2cg_db.dat", new Pair<>("xczu2cg-db-dat", "cd1017fb8aa545611e2c0b51de130d3b")); - dataVersionMap.put("data/devices/zynquplus/xczu2eg_db.dat", new Pair<>("xczu2eg-db-dat", "c404f5dd97b87379dada0d6630b47e11")); - dataVersionMap.put("data/devices/zynquplus/xczu3cg_db.dat", new Pair<>("xczu3cg-db-dat", "6a8853ac468e0ecc3990f8e03405b78e")); - dataVersionMap.put("data/devices/zynquplus/xczu3eg_db.dat", new Pair<>("xczu3eg-db-dat", "b5b2daf125c096867612d14c45d60688")); - dataVersionMap.put("data/devices/zynquplus/xczu3tcg_db.dat", new Pair<>("xczu3tcg-db-dat", "224956d66a5234f12948844a735a6a14")); - dataVersionMap.put("data/devices/zynquplus/xczu3teg_db.dat", new Pair<>("xczu3teg-db-dat", "9d0da7857b48d246108815323bc67443")); - dataVersionMap.put("data/devices/zynquplus/xczu4cg_db.dat", new Pair<>("xczu4cg-db-dat", "5a4f5d95cb0a7be253ae0881977137a6")); - dataVersionMap.put("data/devices/zynquplus/xczu4eg_db.dat", new Pair<>("xczu4eg-db-dat", "2676f986833030e6de5c065f0d09d87a")); - dataVersionMap.put("data/devices/zynquplus/xczu4ev_db.dat", new Pair<>("xczu4ev-db-dat", "a11e6149d4f698a16e798cc04eedbc11")); - dataVersionMap.put("data/devices/zynquplus/xczu5cg_db.dat", new Pair<>("xczu5cg-db-dat", "2bdd991f8e0e43c21101504ccbb5863c")); - dataVersionMap.put("data/devices/zynquplus/xczu5eg_db.dat", new Pair<>("xczu5eg-db-dat", "2d2c8082c7c04872cfe5d5d139157adf")); - dataVersionMap.put("data/devices/zynquplus/xczu5ev_db.dat", new Pair<>("xczu5ev-db-dat", "7cbd727a5f9e5cc1ee86fb4ecabdf138")); - dataVersionMap.put("data/devices/zynquplus/xczu6cg_db.dat", new Pair<>("xczu6cg-db-dat", "efd5b1ea19983508da2bab0796959c98")); - dataVersionMap.put("data/devices/zynquplus/xczu6eg_db.dat", new Pair<>("xczu6eg-db-dat", "b9eb6150ba77bff6942a32eb86d2244b")); - dataVersionMap.put("data/devices/zynquplus/xczu7cg_db.dat", new Pair<>("xczu7cg-db-dat", "86f8738a321430e66c1d04503cee4960")); - dataVersionMap.put("data/devices/zynquplus/xczu7eg_db.dat", new Pair<>("xczu7eg-db-dat", "3bf622b6ec0c623e5c44b922ba788548")); - dataVersionMap.put("data/devices/zynquplus/xczu7ev_db.dat", new Pair<>("xczu7ev-db-dat", "f3ae53bdf1c1b9d2ce00bcf76499b72c")); - dataVersionMap.put("data/devices/zynquplus/xczu9cg_db.dat", new Pair<>("xczu9cg-db-dat", "60f1c447b47949130d95e5f9eb561cb7")); - dataVersionMap.put("data/devices/zynquplus/xczu9eg_db.dat", new Pair<>("xczu9eg-db-dat", "18250e4b9735ee21e51b4cd4895856b6")); - dataVersionMap.put("data/devices/zynquplus/xqzu11eg_db.dat", new Pair<>("xqzu11eg-db-dat", "8334c9659089035896ff07c842bb865c")); - dataVersionMap.put("data/devices/zynquplus/xqzu15eg_db.dat", new Pair<>("xqzu15eg-db-dat", "3f81282b9090239c108cd33f85465691")); - dataVersionMap.put("data/devices/zynquplus/xqzu19eg_db.dat", new Pair<>("xqzu19eg-db-dat", "1e368717545941751963f8078d1eef76")); - dataVersionMap.put("data/devices/zynquplus/xqzu3eg_db.dat", new Pair<>("xqzu3eg-db-dat", "bfdccc96cda47d6ef4aff5ec09fe486b")); - dataVersionMap.put("data/devices/zynquplus/xqzu4eg_db.dat", new Pair<>("xqzu4eg-db-dat", "a623fde3083dab1ebe58f20003d5b98a")); - dataVersionMap.put("data/devices/zynquplus/xqzu5ev_db.dat", new Pair<>("xqzu5ev-db-dat", "8ed19803bc456528e04bb6107a8b5da5")); - dataVersionMap.put("data/devices/zynquplus/xqzu7ev_db.dat", new Pair<>("xqzu7ev-db-dat", "7f8a225012f4c9a32d1cac15ec9774a3")); - dataVersionMap.put("data/devices/zynquplus/xqzu9eg_db.dat", new Pair<>("xqzu9eg-db-dat", "e1faf2d2828c86cae6762ec2835e62d2")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu21dr_db.dat", new Pair<>("xczu21dr-db-dat", "89a73b024f8e263c4d50907ea0f386fc")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu25dr_db.dat", new Pair<>("xczu25dr-db-dat", "2b8a32c7fb40856cde10ed0f57f2a2c2")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu27dr_db.dat", new Pair<>("xczu27dr-db-dat", "9257b5751e10d24a3e442b9f6526df5e")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu28dr_db.dat", new Pair<>("xczu28dr-db-dat", "f0a31ab48b54716343ceb4a8b79f323a")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu29dr_db.dat", new Pair<>("xczu29dr-db-dat", "6a4441793068d3ba2f36fae949d746df")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu39dr_db.dat", new Pair<>("xczu39dr-db-dat", "ca2b52361c39e4fdff8fd9944cc2802d")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu42dr_db.dat", new Pair<>("xczu42dr-db-dat", "de7df190ea053052dcc7c08726170f01")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu43dr_db.dat", new Pair<>("xczu43dr-db-dat", "4ff7bc887e1d2656b0a314cf882d1d80")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu46dr_db.dat", new Pair<>("xczu46dr-db-dat", "8b8e3456190e119267a25d98b689c1ef")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu47dr_db.dat", new Pair<>("xczu47dr-db-dat", "bedc4f98154ec578c5b692ea8daa0beb")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu48dr_db.dat", new Pair<>("xczu48dr-db-dat", "f003d622ff5c9be1c45a0831f1ce82a0")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu49dr_db.dat", new Pair<>("xczu49dr-db-dat", "5a599490a93571c56e9fbee972c4ac17")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu63dr_db.dat", new Pair<>("xczu63dr-db-dat", "7f30a1d869b91b91a1d3cc8f53c09d96")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu64dr_db.dat", new Pair<>("xczu64dr-db-dat", "8e3ef8c4420e865189dbc601dba37898")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu65dr_db.dat", new Pair<>("xczu65dr-db-dat", "b3ce53b99ff5ed2d09746c90fd43eca3")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xczu67dr_db.dat", new Pair<>("xczu67dr-db-dat", "240c0f0df5feceeb641a74bb4293a4fe")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu21dr_db.dat", new Pair<>("xqzu21dr-db-dat", "3e25885e218724b1c7819e15dd18ded4")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu28dr_db.dat", new Pair<>("xqzu28dr-db-dat", "2196728df335cde3e249cd48851883d8")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu29dr_db.dat", new Pair<>("xqzu29dr-db-dat", "e3c7e69380c23716bcc39eb93563904c")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu48dr_db.dat", new Pair<>("xqzu48dr-db-dat", "37366cd092792f9cd6f45dca239d09ad")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu49dr_db.dat", new Pair<>("xqzu49dr-db-dat", "7679cff74241eac6a9daee28c5a9966a")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu65dr_db.dat", new Pair<>("xqzu65dr-db-dat", "f15adefc7ab374462079410477aec96b")); - dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu67dr_db.dat", new Pair<>("xqzu67dr-db-dat", "143425fe53e695b473ca16676db07680")); - dataVersionMap.put("data/partdump.csv", new Pair<>("partdump-csv", "7c9bd6bf647f18f869c91944e8cd6b15")); - dataVersionMap.put("data/parts.db", new Pair<>("parts-db", "5600d0879f1c7cd2d8dac6dada2f52aa")); - dataVersionMap.put("data/unisim_data.dat", new Pair<>("unisim-data-dat", "4c693316fa695c9147b6f987f0686446")); + dataVersionMap.put("data/cell_pin_defaults.dat", new Pair<>("cell-pin-defaults-dat", "2d2c9c4a896f51376498054abc650e3c")); + dataVersionMap.put("data/devices/artix7/xa7a100t_db.dat", new Pair<>("xa7a100t-db-dat", "45a46f75b9247d5efa7e1619c2e4ff70")); + dataVersionMap.put("data/devices/artix7/xa7a12t_db.dat", new Pair<>("xa7a12t-db-dat", "b277526a30f077bb1abfa3ade1d0eab9")); + dataVersionMap.put("data/devices/artix7/xa7a15t_db.dat", new Pair<>("xa7a15t-db-dat", "18c3627fef689d88c04ea41e26b5d93f")); + dataVersionMap.put("data/devices/artix7/xa7a25t_db.dat", new Pair<>("xa7a25t-db-dat", "fce72c383b0362fd26015d79cf8c1a7c")); + dataVersionMap.put("data/devices/artix7/xa7a35t_db.dat", new Pair<>("xa7a35t-db-dat", "aaaf82471c2a3562a4911711e47e811e")); + dataVersionMap.put("data/devices/artix7/xa7a50t_db.dat", new Pair<>("xa7a50t-db-dat", "622fd90cd66de6c13b2e35255a1ece86")); + dataVersionMap.put("data/devices/artix7/xa7a75t_db.dat", new Pair<>("xa7a75t-db-dat", "1c7aeddb62c55007ed5a5cd57dc97edd")); + dataVersionMap.put("data/devices/artix7/xc7a100t_db.dat", new Pair<>("xc7a100t-db-dat", "4d99b64a543c695f176b21f32d2f8a9d")); + dataVersionMap.put("data/devices/artix7/xc7a100ti_db.dat", new Pair<>("xc7a100ti-db-dat", "22b084ed0fa1f09b9cc1ea9abb8ae1f7")); + dataVersionMap.put("data/devices/artix7/xc7a100tl_db.dat", new Pair<>("xc7a100tl-db-dat", "2db0391cd0dd802009edb50ef2418643")); + dataVersionMap.put("data/devices/artix7/xc7a12t_db.dat", new Pair<>("xc7a12t-db-dat", "b573cfd27770b825094caf6cbb8378fe")); + dataVersionMap.put("data/devices/artix7/xc7a12ti_db.dat", new Pair<>("xc7a12ti-db-dat", "17c1f0b1b3fb462600a04e5430be2f54")); + dataVersionMap.put("data/devices/artix7/xc7a12tl_db.dat", new Pair<>("xc7a12tl-db-dat", "c7c8278addd88edc695f31de318de3af")); + dataVersionMap.put("data/devices/artix7/xc7a15t_db.dat", new Pair<>("xc7a15t-db-dat", "e8b46327c91427623e4abafcb77a2818")); + dataVersionMap.put("data/devices/artix7/xc7a15ti_db.dat", new Pair<>("xc7a15ti-db-dat", "bdf0c10a5aa0f85c43466542442c4b3b")); + dataVersionMap.put("data/devices/artix7/xc7a15tl_db.dat", new Pair<>("xc7a15tl-db-dat", "36b8abccde0f26bf00bac6fad8d49265")); + dataVersionMap.put("data/devices/artix7/xc7a200t_db.dat", new Pair<>("xc7a200t-db-dat", "c8319bf7c8182f843abd04b0187017b7")); + dataVersionMap.put("data/devices/artix7/xc7a200ti_db.dat", new Pair<>("xc7a200ti-db-dat", "20080e9ab2a1c1e06c07fb64d54a94c5")); + dataVersionMap.put("data/devices/artix7/xc7a200tl_db.dat", new Pair<>("xc7a200tl-db-dat", "37cfec45d2018f41c9661d407086464c")); + dataVersionMap.put("data/devices/artix7/xc7a25t_db.dat", new Pair<>("xc7a25t-db-dat", "afbee8577f7b560789dae9fe776108e3")); + dataVersionMap.put("data/devices/artix7/xc7a25ti_db.dat", new Pair<>("xc7a25ti-db-dat", "2be7a2b7875ca206c55df00a4f1b0735")); + dataVersionMap.put("data/devices/artix7/xc7a25tl_db.dat", new Pair<>("xc7a25tl-db-dat", "14d6bd6bc88caf28630fc1c86837bf33")); + dataVersionMap.put("data/devices/artix7/xc7a35t_db.dat", new Pair<>("xc7a35t-db-dat", "69bf771bda9b8b0f232e4740942bfd8d")); + dataVersionMap.put("data/devices/artix7/xc7a35ti_db.dat", new Pair<>("xc7a35ti-db-dat", "0167d0721be1b0286a2f98b7ab2ee22f")); + dataVersionMap.put("data/devices/artix7/xc7a35tl_db.dat", new Pair<>("xc7a35tl-db-dat", "262eea6f53e036215b65cf2c2f92539e")); + dataVersionMap.put("data/devices/artix7/xc7a50t_db.dat", new Pair<>("xc7a50t-db-dat", "294d8bc00d908a3c5a27c5189f3c5521")); + dataVersionMap.put("data/devices/artix7/xc7a50ti_db.dat", new Pair<>("xc7a50ti-db-dat", "33946d734d119e1c96bcc90e4b213d82")); + dataVersionMap.put("data/devices/artix7/xc7a50tl_db.dat", new Pair<>("xc7a50tl-db-dat", "c28eb101b6f98a865255f96d93f750fc")); + dataVersionMap.put("data/devices/artix7/xc7a75t_db.dat", new Pair<>("xc7a75t-db-dat", "be1b18d113d79c6be5fdbee653247d9c")); + dataVersionMap.put("data/devices/artix7/xc7a75ti_db.dat", new Pair<>("xc7a75ti-db-dat", "e7e6c35ce467dae6c8ee887566f1ef2d")); + dataVersionMap.put("data/devices/artix7/xc7a75tl_db.dat", new Pair<>("xc7a75tl-db-dat", "268ee8a56c213c9ca4cc18ae5617b59f")); + dataVersionMap.put("data/devices/artix7/xq7a100t_db.dat", new Pair<>("xq7a100t-db-dat", "f58516a1c2488366f75164e16cc3926f")); + dataVersionMap.put("data/devices/artix7/xq7a200t_db.dat", new Pair<>("xq7a200t-db-dat", "f997883176ace0f0988239be7c95c390")); + dataVersionMap.put("data/devices/artix7/xq7a50t_db.dat", new Pair<>("xq7a50t-db-dat", "088d6a40a9b67cfddd3bb8be35b2a03e")); + dataVersionMap.put("data/devices/kintex7/xa7k160t_db.dat", new Pair<>("xa7k160t-db-dat", "92a3dda218892ff09ffe3dcecf2218b1")); + dataVersionMap.put("data/devices/kintex7/xc7k160t_db.dat", new Pair<>("xc7k160t-db-dat", "e0fd2836e8143bd8f7a80c1ee7e874cd")); + dataVersionMap.put("data/devices/kintex7/xc7k160ti_db.dat", new Pair<>("xc7k160ti-db-dat", "ce317ec6706e8202c56cb93d9dfed0a6")); + dataVersionMap.put("data/devices/kintex7/xc7k160tl_db.dat", new Pair<>("xc7k160tl-db-dat", "ed04c2ab765109f46e5467d0b85f7625")); + dataVersionMap.put("data/devices/kintex7/xc7k325t_db.dat", new Pair<>("xc7k325t-db-dat", "a500dba1ee744b8846c1240cd86548a3")); + dataVersionMap.put("data/devices/kintex7/xc7k325ti_db.dat", new Pair<>("xc7k325ti-db-dat", "ede191e23a85775d7fdc1bd62a430d0e")); + dataVersionMap.put("data/devices/kintex7/xc7k325tl_db.dat", new Pair<>("xc7k325tl-db-dat", "b1d5662f1a9a4306322eb2dc73088ae7")); + dataVersionMap.put("data/devices/kintex7/xc7k355t_db.dat", new Pair<>("xc7k355t-db-dat", "6b3773a25050c18958b7f63999fcc5fb")); + dataVersionMap.put("data/devices/kintex7/xc7k355ti_db.dat", new Pair<>("xc7k355ti-db-dat", "9ef1f68ac59ec6c6e0b0b30c295ef0e3")); + dataVersionMap.put("data/devices/kintex7/xc7k355tl_db.dat", new Pair<>("xc7k355tl-db-dat", "10c8cbc66b0e5ae44c57f1faa591e1ec")); + dataVersionMap.put("data/devices/kintex7/xc7k410t_db.dat", new Pair<>("xc7k410t-db-dat", "88250cde0a187521efc963cf1a8701f7")); + dataVersionMap.put("data/devices/kintex7/xc7k410ti_db.dat", new Pair<>("xc7k410ti-db-dat", "f0119d74c0581fa5f4bc5fe21ca79d1e")); + dataVersionMap.put("data/devices/kintex7/xc7k410tl_db.dat", new Pair<>("xc7k410tl-db-dat", "0b1f7f3fad2b52b2c436e3a6b21a3b05")); + dataVersionMap.put("data/devices/kintex7/xc7k420t_db.dat", new Pair<>("xc7k420t-db-dat", "98c1a79bd669f153d448f729d6990733")); + dataVersionMap.put("data/devices/kintex7/xc7k420ti_db.dat", new Pair<>("xc7k420ti-db-dat", "6897d79957308a2c67b97b18a3e4b30e")); + dataVersionMap.put("data/devices/kintex7/xc7k420tl_db.dat", new Pair<>("xc7k420tl-db-dat", "414898f015b2d8be9878608727e5cc43")); + dataVersionMap.put("data/devices/kintex7/xc7k480t_db.dat", new Pair<>("xc7k480t-db-dat", "4578b9bcd56b03a32a4cdc33b4106dd0")); + dataVersionMap.put("data/devices/kintex7/xc7k480ti_db.dat", new Pair<>("xc7k480ti-db-dat", "6900d8bc940c0e25f83955e5ba9bd772")); + dataVersionMap.put("data/devices/kintex7/xc7k480tl_db.dat", new Pair<>("xc7k480tl-db-dat", "10c4d464b2f395e04cddf9850cc712fe")); + dataVersionMap.put("data/devices/kintex7/xc7k70t_db.dat", new Pair<>("xc7k70t-db-dat", "98dfcdff69607d0b465421a1705460d8")); + dataVersionMap.put("data/devices/kintex7/xc7k70tl_db.dat", new Pair<>("xc7k70tl-db-dat", "fd9ce48cb712dbf5f4973ad95f4c5190")); + dataVersionMap.put("data/devices/kintex7/xq7k325t_db.dat", new Pair<>("xq7k325t-db-dat", "40f6f1bef73d45f0978d6bce9b3b8dda")); + dataVersionMap.put("data/devices/kintex7/xq7k325tl_db.dat", new Pair<>("xq7k325tl-db-dat", "c02164deb80467c5b92517bcfa4d1207")); + dataVersionMap.put("data/devices/kintex7/xq7k410t_db.dat", new Pair<>("xq7k410t-db-dat", "1235d36d81ebdb079b89564ac66650ad")); + dataVersionMap.put("data/devices/kintex7/xq7k410tl_db.dat", new Pair<>("xq7k410tl-db-dat", "549e6a58301cd9b0faac87ae33a756f6")); + dataVersionMap.put("data/devices/kintexu/xcku025_db.dat", new Pair<>("xcku025-db-dat", "6786ba059c6718c794745f314e9c32d9")); + dataVersionMap.put("data/devices/kintexu/xcku035_db.dat", new Pair<>("xcku035-db-dat", "c70e1b7fb1d9379df150adee3fcacc5a")); + dataVersionMap.put("data/devices/kintexu/xcku040_db.dat", new Pair<>("xcku040-db-dat", "7e1cd10b35fa23eaef5a4ae9187f825b")); + dataVersionMap.put("data/devices/kintexu/xcku060_CIV_db.dat", new Pair<>("xcku060-civ-db-dat", "a0b44ed755c88acc232d13ee5c2eaf5a")); + dataVersionMap.put("data/devices/kintexu/xcku060_db.dat", new Pair<>("xcku060-db-dat", "ed1f0b4f27b60f9e2ab4125a8d0233b3")); + dataVersionMap.put("data/devices/kintexu/xcku085_CIV_db.dat", new Pair<>("xcku085-civ-db-dat", "ab612569cec9246e83ea3dcf506f7b55")); + dataVersionMap.put("data/devices/kintexu/xcku085_db.dat", new Pair<>("xcku085-db-dat", "363c0d1829d167082a52b7378bfd9ec4")); + dataVersionMap.put("data/devices/kintexu/xcku095_CIV_db.dat", new Pair<>("xcku095-civ-db-dat", "83527062f52dd9f8fced9126d39a572f")); + dataVersionMap.put("data/devices/kintexu/xcku095_db.dat", new Pair<>("xcku095-db-dat", "9eded79546c0eca2fc740604a9198f6d")); + dataVersionMap.put("data/devices/kintexu/xcku115_CIV_db.dat", new Pair<>("xcku115-civ-db-dat", "6dee5244bf5a9dc55494b7ff5b6c6202")); + dataVersionMap.put("data/devices/kintexu/xcku115_db.dat", new Pair<>("xcku115-db-dat", "9945f5f69d740fb475d942d8d165b2b2")); + dataVersionMap.put("data/devices/kintexu/xqku040_db.dat", new Pair<>("xqku040-db-dat", "d221fb5bef20f2b275f9c6ba0d97a21f")); + dataVersionMap.put("data/devices/kintexu/xqku060_db.dat", new Pair<>("xqku060-db-dat", "a78b3120af4018d7fe340aa27b9cd915")); + dataVersionMap.put("data/devices/kintexu/xqku095_db.dat", new Pair<>("xqku095-db-dat", "64dcf461b29d1d44a630481dfa2cdf94")); + dataVersionMap.put("data/devices/kintexu/xqku115_db.dat", new Pair<>("xqku115-db-dat", "bc18dabac14c107c24ea44e3a5024594")); + dataVersionMap.put("data/devices/kintexu/xqrku060_db.dat", new Pair<>("xqrku060-db-dat", "2cb5d52dc74ff49a1ed51e20eb2a6458")); + dataVersionMap.put("data/devices/kintexuplus/xaau10p_db.dat", new Pair<>("xaau10p-db-dat", "5c5321c378fe7b8d2b4ce03d6b37c750")); + dataVersionMap.put("data/devices/kintexuplus/xaau15p_db.dat", new Pair<>("xaau15p-db-dat", "dbef66512c40a8a85387ae0e7ceef51f")); + dataVersionMap.put("data/devices/kintexuplus/xaau7p_db.dat", new Pair<>("xaau7p-db-dat", "725c7e60767e749ac2108abb210619cb")); + dataVersionMap.put("data/devices/kintexuplus/xcau10p_db.dat", new Pair<>("xcau10p-db-dat", "4c7ee26359217cb10aa5f75265be8585")); + dataVersionMap.put("data/devices/kintexuplus/xcau15p_db.dat", new Pair<>("xcau15p-db-dat", "04bf3b2a61c66e58ac14fe0c7fdb7df7")); + dataVersionMap.put("data/devices/kintexuplus/xcau20p_db.dat", new Pair<>("xcau20p-db-dat", "c168696d042575a94bc4730814f95855")); + dataVersionMap.put("data/devices/kintexuplus/xcau25p_db.dat", new Pair<>("xcau25p-db-dat", "02113677a50becad7e9aac8d48b22938")); + dataVersionMap.put("data/devices/kintexuplus/xcau7p_db.dat", new Pair<>("xcau7p-db-dat", "622f9504c13c75af0b9877bd3717b006")); + dataVersionMap.put("data/devices/kintexuplus/xcku11p_CIV_db.dat", new Pair<>("xcku11p-civ-db-dat", "5f6b4fb6e81e9f01d998b7099c06e0b1")); + dataVersionMap.put("data/devices/kintexuplus/xcku11p_db.dat", new Pair<>("xcku11p-db-dat", "8e0b79eade305b5781238fe82928e30f")); + dataVersionMap.put("data/devices/kintexuplus/xcku13p_db.dat", new Pair<>("xcku13p-db-dat", "74dd5c9d7de9311101f3800c0e0e8ee1")); + dataVersionMap.put("data/devices/kintexuplus/xcku15p_CIV_db.dat", new Pair<>("xcku15p-civ-db-dat", "2e6d47f192e4868c6b631a94c01c3e97")); + dataVersionMap.put("data/devices/kintexuplus/xcku15p_db.dat", new Pair<>("xcku15p-db-dat", "f47acb026b2cb7ab736769b205d385de")); + dataVersionMap.put("data/devices/kintexuplus/xcku19p_CIV_db.dat", new Pair<>("xcku19p-civ-db-dat", "ec3fd302d132792a967b029a08500676")); + dataVersionMap.put("data/devices/kintexuplus/xcku19p_db.dat", new Pair<>("xcku19p-db-dat", "40dd544f67619a4bad3b89f80f95cfcb")); + dataVersionMap.put("data/devices/kintexuplus/xcku3p_db.dat", new Pair<>("xcku3p-db-dat", "7391d206f088ffe54f89482619672830")); + dataVersionMap.put("data/devices/kintexuplus/xcku5p_db.dat", new Pair<>("xcku5p-db-dat", "0d6af65ecc2248c090683b7600f07276")); + dataVersionMap.put("data/devices/kintexuplus/xcku9p_db.dat", new Pair<>("xcku9p-db-dat", "e721dba79df3981bbe1ec0f16685d1ed")); + dataVersionMap.put("data/devices/kintexuplus/xqku15p_db.dat", new Pair<>("xqku15p-db-dat", "27c1f9e39ef3935060f6facd707b2fb0")); + dataVersionMap.put("data/devices/kintexuplus/xqku5p_db.dat", new Pair<>("xqku5p-db-dat", "f0c65214d29811d744301ccdd326eb5a")); + dataVersionMap.put("data/devices/spartan7/xa7s100_db.dat", new Pair<>("xa7s100-db-dat", "a75b8b95422459558b3152079203a146")); + dataVersionMap.put("data/devices/spartan7/xa7s15_db.dat", new Pair<>("xa7s15-db-dat", "ebb08ed90379836df80e7d7388711650")); + dataVersionMap.put("data/devices/spartan7/xa7s25_db.dat", new Pair<>("xa7s25-db-dat", "de98e43784e13c648ded020c98f4108f")); + dataVersionMap.put("data/devices/spartan7/xa7s50_db.dat", new Pair<>("xa7s50-db-dat", "214d51df7346fad0f7d8b2fce6d24de7")); + dataVersionMap.put("data/devices/spartan7/xa7s6_db.dat", new Pair<>("xa7s6-db-dat", "a6493e840130dc52f5431b919525410f")); + dataVersionMap.put("data/devices/spartan7/xa7s75_db.dat", new Pair<>("xa7s75-db-dat", "072bfb16785271f7d426b5ce7e46dccd")); + dataVersionMap.put("data/devices/spartan7/xc7s100_db.dat", new Pair<>("xc7s100-db-dat", "680e46a3aa2ae6353a89813698f39148")); + dataVersionMap.put("data/devices/spartan7/xc7s15_db.dat", new Pair<>("xc7s15-db-dat", "6fd92b568e4a44106ab101c55c61f98a")); + dataVersionMap.put("data/devices/spartan7/xc7s25_db.dat", new Pair<>("xc7s25-db-dat", "e19af5e8ec2b1037500236f4f85d0a92")); + dataVersionMap.put("data/devices/spartan7/xc7s50_db.dat", new Pair<>("xc7s50-db-dat", "8091436ec2c00f3372dad11077f882e3")); + dataVersionMap.put("data/devices/spartan7/xc7s6_db.dat", new Pair<>("xc7s6-db-dat", "eea51ccde2294ac92adf34878a55c9fa")); + dataVersionMap.put("data/devices/spartan7/xc7s75_db.dat", new Pair<>("xc7s75-db-dat", "4168148faf47a1256a616e2d76508de4")); + dataVersionMap.put("data/devices/versal/xave1752_db.dat", new Pair<>("xave1752-db-dat", "e32ac3e52b19f5e12e771f7730e82c5f")); + dataVersionMap.put("data/devices/versal/xave2002_db.dat", new Pair<>("xave2002-db-dat", "e3b322d94c0197fb6a64120628f7f2ac")); + dataVersionMap.put("data/devices/versal/xave2102_db.dat", new Pair<>("xave2102-db-dat", "49c904e79a37771e4708b566da6788e1")); + dataVersionMap.put("data/devices/versal/xave2202_db.dat", new Pair<>("xave2202-db-dat", "dee6e1c982c28f9754aefd3b62c75a5e")); + dataVersionMap.put("data/devices/versal/xave2302_db.dat", new Pair<>("xave2302-db-dat", "ac9bdb3f8da763eda2a62630561f5079")); + dataVersionMap.put("data/devices/versal/xave2602_db.dat", new Pair<>("xave2602-db-dat", "26a56204a79858d8fe5b59ab9490564c")); + dataVersionMap.put("data/devices/versal/xave2802_db.dat", new Pair<>("xave2802-db-dat", "d76e6960ad0a30261eb262a26217bba9")); + dataVersionMap.put("data/devices/versal/xcv80_db.dat", new Pair<>("xcv80-db-dat", "bdea2557b3626a445c2b7878c6f1486f")); + dataVersionMap.put("data/devices/versal/xcvc1502_db.dat", new Pair<>("xcvc1502-db-dat", "43f40ac8bad4e4f3dd2ab4b53c6d48e6")); + dataVersionMap.put("data/devices/versal/xcvc1702_db.dat", new Pair<>("xcvc1702-db-dat", "bf4618929854d60d729fb2316dde1ed3")); + dataVersionMap.put("data/devices/versal/xcvc1802_db.dat", new Pair<>("xcvc1802-db-dat", "cf7b18a73a50f1be008fd39a42dc3da4")); + dataVersionMap.put("data/devices/versal/xcvc1902_db.dat", new Pair<>("xcvc1902-db-dat", "6e50e5236b82272113b859aa6958cb24")); + dataVersionMap.put("data/devices/versal/xcvc2602_db.dat", new Pair<>("xcvc2602-db-dat", "f8a9219829750f27f097dc4a02e85c87")); + dataVersionMap.put("data/devices/versal/xcvc2802_db.dat", new Pair<>("xcvc2802-db-dat", "bb134d52eb588735b203f89619bd76d1")); + dataVersionMap.put("data/devices/versal/xcve1752_db.dat", new Pair<>("xcve1752-db-dat", "2d5e4e7f461e9bdf5ec24a9bb58704a8")); + dataVersionMap.put("data/devices/versal/xcve2002_db.dat", new Pair<>("xcve2002-db-dat", "e9f676e46286d99e830503fb17b88fa1")); + dataVersionMap.put("data/devices/versal/xcve2102_db.dat", new Pair<>("xcve2102-db-dat", "b002e5744d2365a235da5365c4c9206e")); + dataVersionMap.put("data/devices/versal/xcve2202_db.dat", new Pair<>("xcve2202-db-dat", "264bcfc285aaf237326fcb3bdd9dfff7")); + dataVersionMap.put("data/devices/versal/xcve2302_db.dat", new Pair<>("xcve2302-db-dat", "a1a0f6378e6162278f25c9009873e3bd")); + dataVersionMap.put("data/devices/versal/xcve2602_db.dat", new Pair<>("xcve2602-db-dat", "964322295afde8782d95ca2a44b35d28")); + dataVersionMap.put("data/devices/versal/xcve2802_db.dat", new Pair<>("xcve2802-db-dat", "618fd8979147fb1fb2f141b6023056c0")); + dataVersionMap.put("data/devices/versal/xcvh1522_db.dat", new Pair<>("xcvh1522-db-dat", "054ac352522667a6001c295f70f6be7c")); + dataVersionMap.put("data/devices/versal/xcvh1542_db.dat", new Pair<>("xcvh1542-db-dat", "cc76ec8bbecbf4b0a1f188c8424ba215")); + dataVersionMap.put("data/devices/versal/xcvh1582_db.dat", new Pair<>("xcvh1582-db-dat", "835f75b23b08a3741dcf9fe45018163e")); + dataVersionMap.put("data/devices/versal/xcvh1742_db.dat", new Pair<>("xcvh1742-db-dat", "fbc30dcbe842d0e2fc8661ca0a33283a")); + dataVersionMap.put("data/devices/versal/xcvh1782_db.dat", new Pair<>("xcvh1782-db-dat", "57d8cd62447b3e889d556a9263eb69fc")); + dataVersionMap.put("data/devices/versal/xcvm1102_db.dat", new Pair<>("xcvm1102-db-dat", "35047ac140e1cc0bf4f085694c6cad95")); + dataVersionMap.put("data/devices/versal/xcvm1302_db.dat", new Pair<>("xcvm1302-db-dat", "0312e784c8d5b228899ad50afeca655b")); + dataVersionMap.put("data/devices/versal/xcvm1402_db.dat", new Pair<>("xcvm1402-db-dat", "61c6972d8198367d647ba91315c12158")); + dataVersionMap.put("data/devices/versal/xcvm1502_db.dat", new Pair<>("xcvm1502-db-dat", "0eb4c7edb683887f2b909bb398cfaf85")); + dataVersionMap.put("data/devices/versal/xcvm1802_db.dat", new Pair<>("xcvm1802-db-dat", "26cb89f55f1b8476a868999b29e99ef5")); + dataVersionMap.put("data/devices/versal/xcvm2152_db.dat", new Pair<>("xcvm2152-db-dat", "066f0ff8dc819dd2da8abcafbb45d634")); + dataVersionMap.put("data/devices/versal/xcvm2202_db.dat", new Pair<>("xcvm2202-db-dat", "fd37ab4ce7b0cf16974151b323773cc7")); + dataVersionMap.put("data/devices/versal/xcvm2302_db.dat", new Pair<>("xcvm2302-db-dat", "213a812052a69f945e4ff80946844ddd")); + dataVersionMap.put("data/devices/versal/xcvm2502_db.dat", new Pair<>("xcvm2502-db-dat", "9e41002527c52603ddf73d9d9dd556db")); + dataVersionMap.put("data/devices/versal/xcvm2902_db.dat", new Pair<>("xcvm2902-db-dat", "5d6f041b1af4142d001509f929849369")); + dataVersionMap.put("data/devices/versal/xcvp1002_db.dat", new Pair<>("xcvp1002-db-dat", "373e5d0b917994725adc8247f74fdf23")); + dataVersionMap.put("data/devices/versal/xcvp1052_db.dat", new Pair<>("xcvp1052-db-dat", "152642ff12aab7b30ed844b75e6c5d04")); + dataVersionMap.put("data/devices/versal/xcvp1102_db.dat", new Pair<>("xcvp1102-db-dat", "dad1d46c5fd7e9aff431a72356b3313c")); + dataVersionMap.put("data/devices/versal/xcvp1202_db.dat", new Pair<>("xcvp1202-db-dat", "b0a98414d6c8efefb5ac73c665adb6a5")); + dataVersionMap.put("data/devices/versal/xcvp1402_db.dat", new Pair<>("xcvp1402-db-dat", "9060df7da297bb13b4b71b35e944a852")); + dataVersionMap.put("data/devices/versal/xcvp1502_db.dat", new Pair<>("xcvp1502-db-dat", "5da2a97660f22f2bc975fe2af53d2c40")); + dataVersionMap.put("data/devices/versal/xcvp1552_db.dat", new Pair<>("xcvp1552-db-dat", "b3d9e9b4b603c3f50f6d3293b89ffaff")); + dataVersionMap.put("data/devices/versal/xcvp1702_db.dat", new Pair<>("xcvp1702-db-dat", "29f35bb7909cc39b777c33e15d6e4f95")); + dataVersionMap.put("data/devices/versal/xcvp1802_db.dat", new Pair<>("xcvp1802-db-dat", "0ce2ca0dc7fa41fd91ae6945fc360be0")); + dataVersionMap.put("data/devices/versal/xcvp1902_db.dat", new Pair<>("xcvp1902-db-dat", "1a066d39bff12a95f94f95a5731bdf54")); + dataVersionMap.put("data/devices/versal/xcvp2502_db.dat", new Pair<>("xcvp2502-db-dat", "32308ab881ca23988080e28e143adff3")); + dataVersionMap.put("data/devices/versal/xcvp2802_db.dat", new Pair<>("xcvp2802-db-dat", "e1b0b2c250ef56a03dcab6e501da7e91")); + dataVersionMap.put("data/devices/versal/xqrvc1902_db.dat", new Pair<>("xqrvc1902-db-dat", "80c34a552d3514dc1ad1e4576a513831")); + dataVersionMap.put("data/devices/versal/xqrve2302_db.dat", new Pair<>("xqrve2302-db-dat", "ae4b2a332bafb5e8b2710d20bf8ab1d1")); + dataVersionMap.put("data/devices/versal/xqvc1702_db.dat", new Pair<>("xqvc1702-db-dat", "6e210d13b7f3b778f89e65a756e7849f")); + dataVersionMap.put("data/devices/versal/xqvc1902_db.dat", new Pair<>("xqvc1902-db-dat", "0420e545e1995ca8b51505033c7c2382")); + dataVersionMap.put("data/devices/versal/xqve2102_db.dat", new Pair<>("xqve2102-db-dat", "3793676b65ec019a0385f6fcceb51ad8")); + dataVersionMap.put("data/devices/versal/xqve2302_db.dat", new Pair<>("xqve2302-db-dat", "0beba46125b078b18191ffb188808572")); + dataVersionMap.put("data/devices/versal/xqvm1102_db.dat", new Pair<>("xqvm1102-db-dat", "d3b0ffda9f457e68687c33766084e945")); + dataVersionMap.put("data/devices/versal/xqvm1402_db.dat", new Pair<>("xqvm1402-db-dat", "7507b1733001df21f3c0edd0c3af9bc9")); + dataVersionMap.put("data/devices/versal/xqvm1502_db.dat", new Pair<>("xqvm1502-db-dat", "7be040972308814dec34ffbb587a51b5")); + dataVersionMap.put("data/devices/versal/xqvm1802_db.dat", new Pair<>("xqvm1802-db-dat", "444893da335b3b9868788c0cee8a988a")); + dataVersionMap.put("data/devices/versal/xqvp1052_db.dat", new Pair<>("xqvp1052-db-dat", "0d9e42b14cc4808297f6ab855115b49b")); + dataVersionMap.put("data/devices/versal/xqvp1202_db.dat", new Pair<>("xqvp1202-db-dat", "8e35ecd1d960de4e6e6303d294a7b4c1")); + dataVersionMap.put("data/devices/versal/xqvp1402_db.dat", new Pair<>("xqvp1402-db-dat", "289bf9515a8ae27b6484e7f68ac07e4a")); + dataVersionMap.put("data/devices/versal/xqvp1502_db.dat", new Pair<>("xqvp1502-db-dat", "ce8b9ae5cbf0b87f10bd01c136ccb3d3")); + dataVersionMap.put("data/devices/versal/xqvp1702_db.dat", new Pair<>("xqvp1702-db-dat", "4958c9de7d0611f9ad87563c1cc3de1a")); + dataVersionMap.put("data/devices/versal/xqvp2502_db.dat", new Pair<>("xqvp2502-db-dat", "b264f920c4f3bcfe7e789715616f55ac")); + dataVersionMap.put("data/devices/virtex7/xc7v2000t_db.dat", new Pair<>("xc7v2000t-db-dat", "556c3ec2670c574ace4cbebab0c42b07")); + dataVersionMap.put("data/devices/virtex7/xc7v585t_db.dat", new Pair<>("xc7v585t-db-dat", "03e7b13c6886c2b7276994d322ef6a03")); + dataVersionMap.put("data/devices/virtex7/xc7vh580t_db.dat", new Pair<>("xc7vh580t-db-dat", "1a452484397ae698a7d19f1c381fc739")); + dataVersionMap.put("data/devices/virtex7/xc7vh870t_db.dat", new Pair<>("xc7vh870t-db-dat", "51f711ad36ddb923d5c0098ec813ac5a")); + dataVersionMap.put("data/devices/virtex7/xc7vx1140t_db.dat", new Pair<>("xc7vx1140t-db-dat", "99067d4c65763b19937a98f46f45c527")); + dataVersionMap.put("data/devices/virtex7/xc7vx330t_db.dat", new Pair<>("xc7vx330t-db-dat", "fea297c81e9feac8ce020323d4868b41")); + dataVersionMap.put("data/devices/virtex7/xc7vx415t_CIV_db.dat", new Pair<>("xc7vx415t-civ-db-dat", "1ca1710b8ccefca422a482f5f6b1ef3e")); + dataVersionMap.put("data/devices/virtex7/xc7vx415t_db.dat", new Pair<>("xc7vx415t-db-dat", "7e4f884e8e6a8a04d8e2ca0a14e01cdd")); + dataVersionMap.put("data/devices/virtex7/xc7vx485t_db.dat", new Pair<>("xc7vx485t-db-dat", "11985f4ce6a8726ab2a41d242a55aec9")); + dataVersionMap.put("data/devices/virtex7/xc7vx550t_CIV_db.dat", new Pair<>("xc7vx550t-civ-db-dat", "22c9cde1ef4f2028ea475ca10d24ddae")); + dataVersionMap.put("data/devices/virtex7/xc7vx550t_db.dat", new Pair<>("xc7vx550t-db-dat", "be56195486ed78810affda8d1a40d2d6")); + dataVersionMap.put("data/devices/virtex7/xc7vx690t_CIV_db.dat", new Pair<>("xc7vx690t-civ-db-dat", "a782c570bcf5696d5c55eab9eced0692")); + dataVersionMap.put("data/devices/virtex7/xc7vx690t_db.dat", new Pair<>("xc7vx690t-db-dat", "3356a9a56c4ba5117303216fd031f2e9")); + dataVersionMap.put("data/devices/virtex7/xc7vx980t_db.dat", new Pair<>("xc7vx980t-db-dat", "45c26dbbc2ca5de09f88fa0a002894cf")); + dataVersionMap.put("data/devices/virtex7/xq7v585t_db.dat", new Pair<>("xq7v585t-db-dat", "610c5ef36d92186377d4a6ff0c2da383")); + dataVersionMap.put("data/devices/virtex7/xq7vx330t_db.dat", new Pair<>("xq7vx330t-db-dat", "4f933fab9a3e04139e40d5e597cb1688")); + dataVersionMap.put("data/devices/virtex7/xq7vx485t_db.dat", new Pair<>("xq7vx485t-db-dat", "2bdc76a26b912c78b37115f9cecb08af")); + dataVersionMap.put("data/devices/virtex7/xq7vx690t_db.dat", new Pair<>("xq7vx690t-db-dat", "eb479e4bc70bc27d9fb4be0957b105b9")); + dataVersionMap.put("data/devices/virtex7/xq7vx980t_db.dat", new Pair<>("xq7vx980t-db-dat", "f161ed3423864b58fc8883abe69058c2")); + dataVersionMap.put("data/devices/virtexu/xcvu065_CIV_db.dat", new Pair<>("xcvu065-civ-db-dat", "c281e021c280a7f16fb68a51d5d4b409")); + dataVersionMap.put("data/devices/virtexu/xcvu065_db.dat", new Pair<>("xcvu065-db-dat", "58642796640467c4eb0a37d820b3558d")); + dataVersionMap.put("data/devices/virtexu/xcvu080_CIV_db.dat", new Pair<>("xcvu080-civ-db-dat", "08d75a8191077a24debb91bc7957cf56")); + dataVersionMap.put("data/devices/virtexu/xcvu080_db.dat", new Pair<>("xcvu080-db-dat", "eba8cf47097ce35f50ea5b4e7d294053")); + dataVersionMap.put("data/devices/virtexu/xcvu095_CIV_db.dat", new Pair<>("xcvu095-civ-db-dat", "c83522ccec009af945fc9b39a8d972da")); + dataVersionMap.put("data/devices/virtexu/xcvu095_db.dat", new Pair<>("xcvu095-db-dat", "043cd0fdd3cad0a7fcc97c7e3e593de6")); + dataVersionMap.put("data/devices/virtexu/xcvu125_CIV_db.dat", new Pair<>("xcvu125-civ-db-dat", "da5c33c1165761f0e6f0211a685a787b")); + dataVersionMap.put("data/devices/virtexu/xcvu125_db.dat", new Pair<>("xcvu125-db-dat", "e70fb497bb10e6b9347a2c72a55452ea")); + dataVersionMap.put("data/devices/virtexu/xcvu160_CIV_db.dat", new Pair<>("xcvu160-civ-db-dat", "67c44683eddf66a766513b12663a9cfc")); + dataVersionMap.put("data/devices/virtexu/xcvu160_db.dat", new Pair<>("xcvu160-db-dat", "8546145cd209841883639f15625d0d0e")); + dataVersionMap.put("data/devices/virtexu/xcvu190_CIV_db.dat", new Pair<>("xcvu190-civ-db-dat", "be53aa7965e44c287437e06fdfb4be9a")); + dataVersionMap.put("data/devices/virtexu/xcvu190_db.dat", new Pair<>("xcvu190-db-dat", "d93535c5a731b69455ff6dd5fa72806b")); + dataVersionMap.put("data/devices/virtexu/xcvu440_CIV_db.dat", new Pair<>("xcvu440-civ-db-dat", "197f78c1758c353e1ad634840905f531")); + dataVersionMap.put("data/devices/virtexu/xcvu440_db.dat", new Pair<>("xcvu440-db-dat", "1660bd487d1079420c2afe180eaacceb")); + dataVersionMap.put("data/devices/virtexuplus/xcu200_db.dat", new Pair<>("xcu200-db-dat", "573ddb40ff86e15ff6d88186b8ab8587")); + dataVersionMap.put("data/devices/virtexuplus/xcu250_db.dat", new Pair<>("xcu250-db-dat", "2c7ceade7df60c559d80a690418f5f8d")); + dataVersionMap.put("data/devices/virtexuplus/xcvu11p_CIV_db.dat", new Pair<>("xcvu11p-civ-db-dat", "383db8d639a17b20e0622ac9936b72ed")); + dataVersionMap.put("data/devices/virtexuplus/xcvu11p_db.dat", new Pair<>("xcvu11p-db-dat", "52a8a2700903973fb7eb01f25559523e")); + dataVersionMap.put("data/devices/virtexuplus/xcvu13p_CIV_db.dat", new Pair<>("xcvu13p-civ-db-dat", "2612786474bbe989c445a07b364df4e9")); + dataVersionMap.put("data/devices/virtexuplus/xcvu13p_db.dat", new Pair<>("xcvu13p-db-dat", "d95eab560153727d3e19e76165974a4d")); + dataVersionMap.put("data/devices/virtexuplus/xcvu19p_CIV_db.dat", new Pair<>("xcvu19p-civ-db-dat", "46440b9cdb3dfd22c895929b1a4fffcb")); + dataVersionMap.put("data/devices/virtexuplus/xcvu19p_db.dat", new Pair<>("xcvu19p-db-dat", "d5d0a42ef1021760afb9eea0442b6e89")); + dataVersionMap.put("data/devices/virtexuplus/xcvu3p_CIV_db.dat", new Pair<>("xcvu3p-civ-db-dat", "18ef6de80398bf95b17aa8a46f73df70")); + dataVersionMap.put("data/devices/virtexuplus/xcvu3p_db.dat", new Pair<>("xcvu3p-db-dat", "fdeae797898c54180c82813daac44303")); + dataVersionMap.put("data/devices/virtexuplus/xcvu5p_CIV_db.dat", new Pair<>("xcvu5p-civ-db-dat", "537567a10ca15f128591c243d5892dd1")); + dataVersionMap.put("data/devices/virtexuplus/xcvu5p_db.dat", new Pair<>("xcvu5p-db-dat", "01ff62ea775822a27585345bb7d0efee")); + dataVersionMap.put("data/devices/virtexuplus/xcvu7p_CIV_db.dat", new Pair<>("xcvu7p-civ-db-dat", "ba5b17ffc73cc3b093e20d43c5bee8bb")); + dataVersionMap.put("data/devices/virtexuplus/xcvu7p_db.dat", new Pair<>("xcvu7p-db-dat", "549495d6129141154639dbee2ce1142a")); + dataVersionMap.put("data/devices/virtexuplus/xcvu9p_CIV_db.dat", new Pair<>("xcvu9p-civ-db-dat", "5368f6d841fd69c3cb5ce75b50232357")); + dataVersionMap.put("data/devices/virtexuplus/xcvu9p_db.dat", new Pair<>("xcvu9p-db-dat", "eaffe35c0933142b9cd18a43229e7cd3")); + dataVersionMap.put("data/devices/virtexuplus/xqvu11p_db.dat", new Pair<>("xqvu11p-db-dat", "e9cb2c310d82decb33ed073cae60eae1")); + dataVersionMap.put("data/devices/virtexuplus/xqvu13p_db.dat", new Pair<>("xqvu13p-db-dat", "dce1ccacfc2755a69c278f4d2bab8939")); + dataVersionMap.put("data/devices/virtexuplus/xqvu3p_db.dat", new Pair<>("xqvu3p-db-dat", "19816a751791e17c4251505a4e49ead1")); + dataVersionMap.put("data/devices/virtexuplus/xqvu7p_db.dat", new Pair<>("xqvu7p-db-dat", "b82591b7e93667645e456a3fef423a21")); + dataVersionMap.put("data/devices/virtexuplus/xqvu9p_db.dat", new Pair<>("xqvu9p-db-dat", "370097789eb418fdf01b43bf72f725fb")); + dataVersionMap.put("data/devices/virtexuplus58g/xcu26_db.dat", new Pair<>("xcu26-db-dat", "7f781caabbbfa0f4d670fad828d7d4c6")); + dataVersionMap.put("data/devices/virtexuplus58g/xcux35_db.dat", new Pair<>("xcux35-db-dat", "3364121af3ce9fcf44142c530e499b49")); + dataVersionMap.put("data/devices/virtexuplus58g/xcvu23p_CIV_db.dat", new Pair<>("xcvu23p-civ-db-dat", "d5a6facb62ff5ec58e73448671ac1a9d")); + dataVersionMap.put("data/devices/virtexuplus58g/xcvu23p_db.dat", new Pair<>("xcvu23p-db-dat", "c33f88ff852c02d372cfa3b707e15c62")); + dataVersionMap.put("data/devices/virtexuplus58g/xcvu27p_db.dat", new Pair<>("xcvu27p-db-dat", "2aaca971db9f3a2d30b9aab08adfb53b")); + dataVersionMap.put("data/devices/virtexuplus58g/xcvu29p_CIV_db.dat", new Pair<>("xcvu29p-civ-db-dat", "d704df04735b4e7d319d5dca23a7e600")); + dataVersionMap.put("data/devices/virtexuplus58g/xcvu29p_db.dat", new Pair<>("xcvu29p-db-dat", "d2002671bc66b73ac5a227d228b415d6")); + dataVersionMap.put("data/devices/virtexuplushbm/xcu280_db.dat", new Pair<>("xcu280-db-dat", "855d7ddd2da77a90bc71f90684ab0553")); + dataVersionMap.put("data/devices/virtexuplushbm/xcu50_db.dat", new Pair<>("xcu50-db-dat", "9f492044506ac76537b31578b624e8d7")); + dataVersionMap.put("data/devices/virtexuplushbm/xcu55c_db.dat", new Pair<>("xcu55c-db-dat", "71afb75ee5e960b6dd55dd62e9847c00")); + dataVersionMap.put("data/devices/virtexuplushbm/xcu55n_db.dat", new Pair<>("xcu55n-db-dat", "d17a34026add98ab0756ef7510ff0ea9")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu31p_CIV_db.dat", new Pair<>("xcvu31p-civ-db-dat", "8c4bac7d3c247218f5c9b00db4061574")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu31p_db.dat", new Pair<>("xcvu31p-db-dat", "097a574d983286c3a17dd252232fb75d")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu33p_CIV_db.dat", new Pair<>("xcvu33p-civ-db-dat", "7b077edb0964763c6d0f0192cea131a8")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu33p_db.dat", new Pair<>("xcvu33p-db-dat", "5f4c881c16c2b2b20f9352346ba33cc9")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu35p_CIV_db.dat", new Pair<>("xcvu35p-civ-db-dat", "a53e66c03a5387024c2220b35580c5ee")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu35p_db.dat", new Pair<>("xcvu35p-db-dat", "f938e524e0805e77292d610f947c7b4e")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu37p_CIV_db.dat", new Pair<>("xcvu37p-civ-db-dat", "c6b315411a052af153b7666ed3c27815")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu37p_db.dat", new Pair<>("xcvu37p-db-dat", "0c9fc1982909e73fcbb30bf2470fc35a")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu45p_CIV_db.dat", new Pair<>("xcvu45p-civ-db-dat", "47254a85313aef95f0c91186ed654415")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu45p_db.dat", new Pair<>("xcvu45p-db-dat", "2e8ce776975d5e5f4a1a597e869fdbec")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu47p_CIV_db.dat", new Pair<>("xcvu47p-civ-db-dat", "f46affa6516d1ebc68374697b48860a1")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu47p_db.dat", new Pair<>("xcvu47p-db-dat", "0693634916963a2dc52c8a6afe9052b3")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu57p_CIV_db.dat", new Pair<>("xcvu57p-civ-db-dat", "73b6a83c3c8effa8a660cd17c66e53d1")); + dataVersionMap.put("data/devices/virtexuplushbm/xcvu57p_db.dat", new Pair<>("xcvu57p-db-dat", "743d0e105dfb943b09c7eca89fe7d34b")); + dataVersionMap.put("data/devices/virtexuplushbm/xqvu37p_db.dat", new Pair<>("xqvu37p-db-dat", "0cd5f8abc7bd9023cf511003b50b8a79")); + dataVersionMap.put("data/devices/zynq/xa7z010_db.dat", new Pair<>("xa7z010-db-dat", "ddb4b618e2c87d65fbad4effa5d7fdaa")); + dataVersionMap.put("data/devices/zynq/xa7z020_db.dat", new Pair<>("xa7z020-db-dat", "7a1ea31c8206a2a9ffc918c49a7aa304")); + dataVersionMap.put("data/devices/zynq/xa7z030_db.dat", new Pair<>("xa7z030-db-dat", "4fe120a1f20c685d2f75cbae3cef454a")); + dataVersionMap.put("data/devices/zynq/xc7z007s_db.dat", new Pair<>("xc7z007s-db-dat", "7deaa82447694c0876c07927b0ac03ed")); + dataVersionMap.put("data/devices/zynq/xc7z010_db.dat", new Pair<>("xc7z010-db-dat", "949a510cee9be1bc67b4ce56a3fdf5a5")); + dataVersionMap.put("data/devices/zynq/xc7z010i_db.dat", new Pair<>("xc7z010i-db-dat", "f788bbddbbd14fba45f8f46ac6a43a6f")); + dataVersionMap.put("data/devices/zynq/xc7z012s_db.dat", new Pair<>("xc7z012s-db-dat", "f7be1364f5b8f75f077dcc036e9a83e6")); + dataVersionMap.put("data/devices/zynq/xc7z014s_db.dat", new Pair<>("xc7z014s-db-dat", "d3316a039c929278689faee23037c607")); + dataVersionMap.put("data/devices/zynq/xc7z015_db.dat", new Pair<>("xc7z015-db-dat", "84e2ba28ab3ccbaecfda67f8b09983fa")); + dataVersionMap.put("data/devices/zynq/xc7z015i_db.dat", new Pair<>("xc7z015i-db-dat", "73b96fa7b8191465adb36bfc31bbb9ad")); + dataVersionMap.put("data/devices/zynq/xc7z020_db.dat", new Pair<>("xc7z020-db-dat", "25f5b3f6261205b95368cfa5692921ef")); + dataVersionMap.put("data/devices/zynq/xc7z020i_db.dat", new Pair<>("xc7z020i-db-dat", "59e9f3c577c4d97320223293cd630d4a")); + dataVersionMap.put("data/devices/zynq/xc7z030_db.dat", new Pair<>("xc7z030-db-dat", "b6c1c968495908998decf57b719589d9")); + dataVersionMap.put("data/devices/zynq/xc7z030i_db.dat", new Pair<>("xc7z030i-db-dat", "a470a1f1610f09443895b98063110917")); + dataVersionMap.put("data/devices/zynq/xc7z035_db.dat", new Pair<>("xc7z035-db-dat", "8dd1a94c76abcdb3a2d78ebfbcb25c09")); + dataVersionMap.put("data/devices/zynq/xc7z035i_db.dat", new Pair<>("xc7z035i-db-dat", "6560b60b4c324eab1e57ccff81cb90ea")); + dataVersionMap.put("data/devices/zynq/xc7z045_db.dat", new Pair<>("xc7z045-db-dat", "9dfcd9c1f2690c5a049a29b541a99eec")); + dataVersionMap.put("data/devices/zynq/xc7z045i_db.dat", new Pair<>("xc7z045i-db-dat", "f2076177d1795982615380d8b9f6f206")); + dataVersionMap.put("data/devices/zynq/xc7z100_db.dat", new Pair<>("xc7z100-db-dat", "6a6e6498cfc8ccdf4dfdc63c8987498d")); + dataVersionMap.put("data/devices/zynq/xc7z100i_db.dat", new Pair<>("xc7z100i-db-dat", "9828586f7981f662abf6b672c45c08a7")); + dataVersionMap.put("data/devices/zynq/xq7z020_db.dat", new Pair<>("xq7z020-db-dat", "43c773a0615ebdeb5ccdddeff2767577")); + dataVersionMap.put("data/devices/zynq/xq7z030_db.dat", new Pair<>("xq7z030-db-dat", "dee5a516c21a3daf2890efbf3ff6b8f0")); + dataVersionMap.put("data/devices/zynq/xq7z045_db.dat", new Pair<>("xq7z045-db-dat", "f88c49368b8595e359c2b0f1edb6f9d9")); + dataVersionMap.put("data/devices/zynq/xq7z100_db.dat", new Pair<>("xq7z100-db-dat", "6fa812a1915afe7d6a834c99229b5721")); + dataVersionMap.put("data/devices/zynquplus/xazu11eg_db.dat", new Pair<>("xazu11eg-db-dat", "b0a052978e5f528cec5d236337192eec")); + dataVersionMap.put("data/devices/zynquplus/xazu1eg_db.dat", new Pair<>("xazu1eg-db-dat", "7c6849ad1e878b94a17b3cd0c3fa51c3")); + dataVersionMap.put("data/devices/zynquplus/xazu2eg_db.dat", new Pair<>("xazu2eg-db-dat", "8cafa45f268ea4f61f0d0d551e0878b2")); + dataVersionMap.put("data/devices/zynquplus/xazu3eg_db.dat", new Pair<>("xazu3eg-db-dat", "953fcd6d5d0ce88364d7fe31e194ac4b")); + dataVersionMap.put("data/devices/zynquplus/xazu3teg_db.dat", new Pair<>("xazu3teg-db-dat", "c3aa0af01c0648f132ccdf356a693963")); + dataVersionMap.put("data/devices/zynquplus/xazu4ev_db.dat", new Pair<>("xazu4ev-db-dat", "8dadbae82c9c6a26018dc4374e9ae7d7")); + dataVersionMap.put("data/devices/zynquplus/xazu5ev_db.dat", new Pair<>("xazu5ev-db-dat", "ec22bca4f942395a00d6ee5ba9279c4b")); + dataVersionMap.put("data/devices/zynquplus/xazu7ev_db.dat", new Pair<>("xazu7ev-db-dat", "9e5d18631df348a7cac44785f92e0a0f")); + dataVersionMap.put("data/devices/zynquplus/xck24_db.dat", new Pair<>("xck24-db-dat", "4b72d1ee766020a9af22495ce08ede20")); + dataVersionMap.put("data/devices/zynquplus/xck26_db.dat", new Pair<>("xck26-db-dat", "626b5192d948158389825237d5905494")); + dataVersionMap.put("data/devices/zynquplus/xcu25_db.dat", new Pair<>("xcu25-db-dat", "5f93d518759f0d74b1410a489947d995")); + dataVersionMap.put("data/devices/zynquplus/xcu30_db.dat", new Pair<>("xcu30-db-dat", "8484fa483c0c1b4f39d75717b3e321e2")); + dataVersionMap.put("data/devices/zynquplus/xczu11eg_db.dat", new Pair<>("xczu11eg-db-dat", "ca5deb1a52515025f0b4af34a2f752b5")); + dataVersionMap.put("data/devices/zynquplus/xczu15eg_db.dat", new Pair<>("xczu15eg-db-dat", "4d7736ba5a619eee4b60671ad69c240b")); + dataVersionMap.put("data/devices/zynquplus/xczu17eg_db.dat", new Pair<>("xczu17eg-db-dat", "9e9424db7445ba5adb7d20b5ed0d23fe")); + dataVersionMap.put("data/devices/zynquplus/xczu19eg_db.dat", new Pair<>("xczu19eg-db-dat", "49a4bda3236ea885a648fc2423aa3d9b")); + dataVersionMap.put("data/devices/zynquplus/xczu1cg_db.dat", new Pair<>("xczu1cg-db-dat", "86db609e177954a2b4a781a61fb0cc8c")); + dataVersionMap.put("data/devices/zynquplus/xczu1eg_db.dat", new Pair<>("xczu1eg-db-dat", "20df7abbee1d58ed88ab763e77d08315")); + dataVersionMap.put("data/devices/zynquplus/xczu2cg_db.dat", new Pair<>("xczu2cg-db-dat", "94e84f1c8b9d4b2c5bdd26e891623ada")); + dataVersionMap.put("data/devices/zynquplus/xczu2eg_db.dat", new Pair<>("xczu2eg-db-dat", "15fe41f38cb720a2e78206e490979910")); + dataVersionMap.put("data/devices/zynquplus/xczu3cg_db.dat", new Pair<>("xczu3cg-db-dat", "60a56b4179421dcdfc54031cd375586d")); + dataVersionMap.put("data/devices/zynquplus/xczu3eg_db.dat", new Pair<>("xczu3eg-db-dat", "d6463654898a14ca0eeb09ce078e0bdd")); + dataVersionMap.put("data/devices/zynquplus/xczu3tcg_db.dat", new Pair<>("xczu3tcg-db-dat", "b60c077e8e9dbd96edfeae2edf04dca3")); + dataVersionMap.put("data/devices/zynquplus/xczu3teg_db.dat", new Pair<>("xczu3teg-db-dat", "47e883307bad686d817ecf42c9300c2e")); + dataVersionMap.put("data/devices/zynquplus/xczu4cg_db.dat", new Pair<>("xczu4cg-db-dat", "a0bd4b6980da8d186b72623f523d7b0d")); + dataVersionMap.put("data/devices/zynquplus/xczu4eg_db.dat", new Pair<>("xczu4eg-db-dat", "4a9bdbf1f93beb91f94c77682def919c")); + dataVersionMap.put("data/devices/zynquplus/xczu4ev_db.dat", new Pair<>("xczu4ev-db-dat", "5f92f309356fed135b267e6be106b9df")); + dataVersionMap.put("data/devices/zynquplus/xczu5cg_db.dat", new Pair<>("xczu5cg-db-dat", "6887c516792793fd4accafbb8e4f231c")); + dataVersionMap.put("data/devices/zynquplus/xczu5eg_db.dat", new Pair<>("xczu5eg-db-dat", "b1c74d8a34101da78bb1243a284add4f")); + dataVersionMap.put("data/devices/zynquplus/xczu5ev_db.dat", new Pair<>("xczu5ev-db-dat", "1bd036761452265e02499a789c0ac1eb")); + dataVersionMap.put("data/devices/zynquplus/xczu6cg_db.dat", new Pair<>("xczu6cg-db-dat", "3ad843b77f842d2d78514454d8e5a0aa")); + dataVersionMap.put("data/devices/zynquplus/xczu6eg_db.dat", new Pair<>("xczu6eg-db-dat", "882222759e42795edaa0b372a766def8")); + dataVersionMap.put("data/devices/zynquplus/xczu7cg_db.dat", new Pair<>("xczu7cg-db-dat", "8cd48405e69249c6b379b2de4cd52cfa")); + dataVersionMap.put("data/devices/zynquplus/xczu7eg_db.dat", new Pair<>("xczu7eg-db-dat", "aefa1d855fe548be4a7381bd0d1c5740")); + dataVersionMap.put("data/devices/zynquplus/xczu7ev_db.dat", new Pair<>("xczu7ev-db-dat", "4e6c89ae6af18bee168788ea704c9059")); + dataVersionMap.put("data/devices/zynquplus/xczu9cg_db.dat", new Pair<>("xczu9cg-db-dat", "3fe458abf822c0607808169e9bf6c4be")); + dataVersionMap.put("data/devices/zynquplus/xczu9eg_db.dat", new Pair<>("xczu9eg-db-dat", "de2124026f6ca4e2ddd62464fb9b5527")); + dataVersionMap.put("data/devices/zynquplus/xqzu11eg_db.dat", new Pair<>("xqzu11eg-db-dat", "d8a261239799da55ec154d9c1ae0bd01")); + dataVersionMap.put("data/devices/zynquplus/xqzu15eg_db.dat", new Pair<>("xqzu15eg-db-dat", "af797c5406d43072a93e52b6ac40d6b7")); + dataVersionMap.put("data/devices/zynquplus/xqzu19eg_db.dat", new Pair<>("xqzu19eg-db-dat", "8c9ba1dcc7c07c2dbfc34d0f2137982a")); + dataVersionMap.put("data/devices/zynquplus/xqzu3eg_db.dat", new Pair<>("xqzu3eg-db-dat", "181b30cc55dd585ab7b9b0fac991ea7a")); + dataVersionMap.put("data/devices/zynquplus/xqzu4eg_db.dat", new Pair<>("xqzu4eg-db-dat", "eaee3d2e46ebf136c8bb48a7f674c9fb")); + dataVersionMap.put("data/devices/zynquplus/xqzu5ev_db.dat", new Pair<>("xqzu5ev-db-dat", "4939aa97f67798b171112a51462a6acc")); + dataVersionMap.put("data/devices/zynquplus/xqzu7ev_db.dat", new Pair<>("xqzu7ev-db-dat", "38ba1f539508bd8c231bc78cf3ae4592")); + dataVersionMap.put("data/devices/zynquplus/xqzu9eg_db.dat", new Pair<>("xqzu9eg-db-dat", "0296f59996eb666b72f18dbf0ccabf79")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu21dr_db.dat", new Pair<>("xczu21dr-db-dat", "f7b6b6e269461a2ecaf3a2f8f1458dfb")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu25dr_db.dat", new Pair<>("xczu25dr-db-dat", "40217b16c5286aa11515b8b16ec27828")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu27dr_db.dat", new Pair<>("xczu27dr-db-dat", "77e295a1d8a4f7ffd6785126640fb88d")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu28dr_db.dat", new Pair<>("xczu28dr-db-dat", "f8e93a39c89d60d3bef1886043956aae")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu29dr_db.dat", new Pair<>("xczu29dr-db-dat", "0d09c5db649d11e86a93f5b1e4c72a23")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu39dr_db.dat", new Pair<>("xczu39dr-db-dat", "961882d0c60e580ebf948f2064d9ad79")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu42dr_db.dat", new Pair<>("xczu42dr-db-dat", "02fafc81be319e7d2ff2edb650cf025e")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu43dr_db.dat", new Pair<>("xczu43dr-db-dat", "71b9f83717ec336bd5ddb0c22225b23f")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu46dr_db.dat", new Pair<>("xczu46dr-db-dat", "3c89e1f6e097446d50aa02fa87d23081")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu47dr_db.dat", new Pair<>("xczu47dr-db-dat", "d0314738518fc534f27bed8801a281fa")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu48dr_db.dat", new Pair<>("xczu48dr-db-dat", "3500c9fa725382aecdcc5ce211d526fa")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu49dr_db.dat", new Pair<>("xczu49dr-db-dat", "395614c353cca759ec1e6ba60fbec313")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu63dr_db.dat", new Pair<>("xczu63dr-db-dat", "c518343e62dc44526043a685daf59188")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu64dr_db.dat", new Pair<>("xczu64dr-db-dat", "f91150fff20ea415c163b93021ffa27e")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu65dr_db.dat", new Pair<>("xczu65dr-db-dat", "d2c553f96839b7ad160b041d17adec8b")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xczu67dr_db.dat", new Pair<>("xczu67dr-db-dat", "9ab70626b875a91514c6ad663a923b89")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu21dr_db.dat", new Pair<>("xqzu21dr-db-dat", "e77e3c72577663f3acdb8ea44fbd5549")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu28dr_db.dat", new Pair<>("xqzu28dr-db-dat", "598eda04e22d37374aa820433a6dcf66")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu29dr_db.dat", new Pair<>("xqzu29dr-db-dat", "653a9f3b9be0f18a54aae6c0c93b42a3")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu48dr_db.dat", new Pair<>("xqzu48dr-db-dat", "a448c5d077cfdf005db5bb19c77e8279")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu49dr_db.dat", new Pair<>("xqzu49dr-db-dat", "121002535288bc59b298aea6823a7189")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu65dr_db.dat", new Pair<>("xqzu65dr-db-dat", "cd430b324d1801f503f11d8ade614f70")); + dataVersionMap.put("data/devices/zynquplusrfsoc/xqzu67dr_db.dat", new Pair<>("xqzu67dr-db-dat", "107b58bf104f30ed8a69147cad05040e")); + dataVersionMap.put("data/partdump.csv", new Pair<>("partdump-csv", "3c1ce062e3be22a954d29e362c1ac748")); + dataVersionMap.put("data/parts.db", new Pair<>("parts-db", "6f923c9c866204a74eb6ab801ab7809a")); + dataVersionMap.put("data/unisim_data.dat", new Pair<>("unisim-data-dat", "c0c3f68aaef35bf7a7942f90f51b037f")); } } diff --git a/test/src/com/xilinx/rapidwright/design/TestDCPSave.java b/test/src/com/xilinx/rapidwright/design/TestDCPSave.java index 3700bf9c1..98c847057 100644 --- a/test/src/com/xilinx/rapidwright/design/TestDCPSave.java +++ b/test/src/com/xilinx/rapidwright/design/TestDCPSave.java @@ -24,22 +24,20 @@ import java.nio.file.Path; -import com.xilinx.rapidwright.edif.EDIFNetlist; -import com.xilinx.rapidwright.edif.EDIFTools; -import com.xilinx.rapidwright.support.RapidWrightDCP; -import com.xilinx.rapidwright.util.VivadoTools; -import com.xilinx.rapidwright.util.VivadoToolsHelper; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import com.xilinx.rapidwright.device.BEL; import com.xilinx.rapidwright.device.SiteTypeEnum; import com.xilinx.rapidwright.edif.EDIFCell; import com.xilinx.rapidwright.edif.EDIFCellInst; import com.xilinx.rapidwright.edif.EDIFLibrary; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; +import com.xilinx.rapidwright.edif.EDIFNetlist; +import com.xilinx.rapidwright.edif.EDIFTools; +import com.xilinx.rapidwright.support.RapidWrightDCP; +import com.xilinx.rapidwright.util.VivadoToolsHelper; public class TestDCPSave { @@ -72,15 +70,15 @@ public void testDCPSave(boolean detachNetlist, @TempDir Path tempDir) { c1.addPinMapping("A3", "I2"); c1.addPinMapping("A4", "I3"); c1.addPinMapping("A5", "I4"); - c1.addPinMapping("O6", "O"); - c1.addPinMapping("GE", "GE"); + c1.addPinMapping("O5", "O"); + c2.addPinMapping("GE", "GE"); c2.addPinMapping("A1", "I0"); c2.addPinMapping("A2", "I1"); c2.addPinMapping("A3", "I2"); c2.addPinMapping("A4", "I3"); c2.addPinMapping("A5", "I4"); - c2.addPinMapping("O5", "O"); + c2.addPinMapping("O6", "O"); if (detachNetlist) { EDIFTools.writeEDIFFile(tempDir.resolve("tmp.edf"), n, d.getPartName()); diff --git a/test/src/com/xilinx/rapidwright/design/TestDesign.java b/test/src/com/xilinx/rapidwright/design/TestDesign.java index 61ee595ba..94256afab 100644 --- a/test/src/com/xilinx/rapidwright/design/TestDesign.java +++ b/test/src/com/xilinx/rapidwright/design/TestDesign.java @@ -348,7 +348,7 @@ public void testMovePinsToNewNetDeleteOldNet() { Assertions.assertTrue(si.routeIntraSiteNet(oldNet, si.getBELPin("A1", "A1"), si.getBELPin(unisim.toString(), "DI0"))); Assertions.assertEquals("[IN SLICE_X32Y73.A1, OUT SLICE_X32Y73.HQ]", oldNet.getPins().toString()); - Assertions.assertEquals("[A1, HQ, A5LUT_O5]", si.getSiteWiresFromNet(oldNet).toString()); + Assertions.assertEquals("[A1, A5LUT_O5, HQ]", si.getSiteWiresFromNet(oldNet).toString()); Net newNet = d.createNet("newNet"); SitePinInst h6 = newNet.createPin("H6", si); @@ -362,7 +362,7 @@ public void testMovePinsToNewNetDeleteOldNet() { Assertions.assertNull(d.getNet(oldNet.getName())); Assertions.assertSame(newNet, d.getNet(newNet.getName())); Assertions.assertEquals("[IN SLICE_X32Y73.H6, IN SLICE_X32Y73.A1, OUT SLICE_X32Y73.HQ]", newNet.getPins().toString()); - Assertions.assertEquals("[H6, A1, HQ, A5LUT_O5]", si.getSiteWiresFromNet(newNet).toString()); + Assertions.assertEquals("[A1, A5LUT_O5, H6, HQ]", si.getSiteWiresFromNet(newNet).toString()); Assertions.assertEquals("[INT_X21Y73/INT.VCC_WIRE->>IMUX_E47]", newNet.getPIPs().toString()); } @@ -389,7 +389,7 @@ public void testMovePinsToNewNetDeleteOldNetIntraSiteOnly() { Assertions.assertNull(d.getNet(oldNet.getName())); Assertions.assertSame(newNet, d.getNet(newNet.getName())); Assertions.assertEquals("[IN SLICE_X32Y73.H6]", newNet.getPins().toString()); - Assertions.assertEquals("[H6, B_O, FFMUXB1_OUT1]", si.getSiteWiresFromNet(newNet).toString()); + Assertions.assertEquals("[B_O, FFMUXB1_OUT1, H6]", si.getSiteWiresFromNet(newNet).toString()); Assertions.assertTrue(newNet.getPIPs().isEmpty()); } diff --git a/test/src/com/xilinx/rapidwright/design/TestDesignTools.java b/test/src/com/xilinx/rapidwright/design/TestDesignTools.java index 9c741ad79..62c5ca87a 100644 --- a/test/src/com/xilinx/rapidwright/design/TestDesignTools.java +++ b/test/src/com/xilinx/rapidwright/design/TestDesignTools.java @@ -35,8 +35,6 @@ import java.util.Set; import java.util.stream.Collectors; -import com.xilinx.rapidwright.device.BEL; -import com.xilinx.rapidwright.edif.EDIFHierPortInst; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -45,6 +43,7 @@ import com.xilinx.rapidwright.design.blocks.PBlock; import com.xilinx.rapidwright.design.blocks.UtilizationType; +import com.xilinx.rapidwright.device.BEL; import com.xilinx.rapidwright.device.BELPin; import com.xilinx.rapidwright.device.Device; import com.xilinx.rapidwright.device.PIP; @@ -53,6 +52,7 @@ import com.xilinx.rapidwright.edif.EDIFCell; import com.xilinx.rapidwright.edif.EDIFDirection; import com.xilinx.rapidwright.edif.EDIFHierCellInst; +import com.xilinx.rapidwright.edif.EDIFHierPortInst; import com.xilinx.rapidwright.edif.EDIFNet; import com.xilinx.rapidwright.edif.EDIFNetlist; import com.xilinx.rapidwright.edif.EDIFPort; @@ -1201,7 +1201,7 @@ public void testPlaceCell() { for(Cell c : cells) { DesignTools.placeCell(c, d); - Assertions.assertFalse(c.getPinMappingsP2L().isEmpty()); + Assertions.assertFalse(c.getUsedPhysicalPins().isEmpty()); Assertions.assertNotNull(c.getBEL()); Assertions.assertNotNull(c.getSiteInst()); } diff --git a/test/src/com/xilinx/rapidwright/design/TestNet.java b/test/src/com/xilinx/rapidwright/design/TestNet.java index b2f73cd14..bd38d70e3 100644 --- a/test/src/com/xilinx/rapidwright/design/TestNet.java +++ b/test/src/com/xilinx/rapidwright/design/TestNet.java @@ -37,8 +37,8 @@ public class TestNet { @Test - void testSetPinsMultiSrc() { - Design d = new Design("testSetPinsMultiSrc", Device.KCU105); + void testSetPinsDualSrc() { + Design d = new Design("testSetPinsDualSrc", Device.KCU105); SiteInst si = d.createSiteInst("SLICE_X32Y73"); Net net = new Net("foo"); @@ -52,6 +52,25 @@ void testSetPinsMultiSrc() { Assertions.assertEquals(pins.get(1), net.getAlternateSource()); } + @Test + void testSetPinsMultiSrc() { + Design d = new Design("testSetPinsMultiSrc", "xcvc1902"); + SiteInst si = d.createSiteInst("SLICE_X249Y83"); + + Net net = new Net("foo"); + List pins = Arrays.asList( + new SitePinInst("H_O", si), + new SitePinInst("HQ", si), + new SitePinInst("HQ2", si) + ); + + Assertions.assertTrue(net.setPins(pins)); + Assertions.assertEquals(pins.get(0), net.getSource()); + Assertions.assertEquals(pins.get(1), net.getAlternateSource()); + Assertions.assertSame(pins.get(2), net.getAlternateSources().get(1)); + Assertions.assertEquals(pins.subList(1, 3).toString(), net.getAlternateSources().toString()); + } + @Test void testSetPinsMultiSrcStatic() { Design d = new Design("testSetPinsMultiSrcStatic", Device.KCU105); @@ -60,13 +79,37 @@ void testSetPinsMultiSrcStatic() { Net net = d.getVccNet(); List pins = Arrays.asList( new SitePinInst("A_O", si), - new SitePinInst("B_O", si), + new SitePinInst("BMUX", si), new SitePinInst("C_O", si) ); Assertions.assertTrue(net.setPins(pins)); - Assertions.assertNull(net.getSource()); - Assertions.assertNull(net.getAlternateSource()); + Assertions.assertSame(pins.get(0), net.getSource()); + Assertions.assertSame(pins.get(1), net.getAlternateSource()); + Assertions.assertSame(pins.get(2), net.getAlternateSources().get(1)); + Assertions.assertEquals(pins.subList(1, 3).toString(), net.getAlternateSources().toString()); + } + + @Test + void testAddPinsMultiSrcStatic() { + Design d = new Design("testSetPinsMultiSrcStatic", "xcvc1902"); + SiteInst si = d.createSiteInst("SLICE_X249Y83"); + + Net net = d.getVccNet(); + List pins = Arrays.asList( + new SitePinInst("F_O", si), + new SitePinInst("GQ", si), + new SitePinInst("H_O", si) + ); + for (SitePinInst spi : pins) { + Assertions.assertTrue(net.addPin(spi)); + } + + Assertions.assertTrue(net.setPins(pins)); + Assertions.assertSame(pins.get(0), net.getSource()); + Assertions.assertSame(pins.get(1), net.getAlternateSource()); + Assertions.assertSame(pins.get(2), net.getAlternateSources().get(1)); + Assertions.assertEquals(pins.subList(1, 3).toString(), net.getAlternateSources().toString()); } @Test diff --git a/test/src/com/xilinx/rapidwright/design/compare/TestDesignComparator.java b/test/src/com/xilinx/rapidwright/design/compare/TestDesignComparator.java index 7f417c2d5..61c50208b 100644 --- a/test/src/com/xilinx/rapidwright/design/compare/TestDesignComparator.java +++ b/test/src/com/xilinx/rapidwright/design/compare/TestDesignComparator.java @@ -149,7 +149,7 @@ public void testDesignComparator() { Assertions.assertTrue(net.hasPIPs()); test2.removeNet(net); - compareDesign(22, 1, DesignDiffType.NET_MISSING, dc, gold, test2); + compareDesign(28, 1, DesignDiffType.NET_MISSING, dc, gold, test2); Net extra = new Net("extraNet"); for (PIP p : net.getPIPs()) { @@ -157,17 +157,17 @@ public void testDesignComparator() { } test2.addNet(extra); - compareDesign(23, 1, DesignDiffType.NET_EXTRA, dc, gold, test2); + compareDesign(29, 1, DesignDiffType.NET_EXTRA, dc, gold, test2); Assertions.assertTrue(extra.hasPIPs()); clk.addPIP(extra.getPIPs().get(0)); - compareDesign(24, 1, DesignDiffType.PIP_EXTRA, dc, gold, test2); + compareDesign(30, 1, DesignDiffType.PIP_EXTRA, dc, gold, test2); clk.getPIPs().remove(clk.getPIPs().size() - 1); clk.getPIPs().remove(clk.getPIPs().size() - 1); - compareDesign(24, 1, DesignDiffType.PIP_MISSING, dc, gold, test2); + compareDesign(30, 1, DesignDiffType.PIP_MISSING, dc, gold, test2); if (dc.comparePIPFlags()) { clk.getPIPs().get(clk.getPIPs().size() - 1).setIsStub(true); diff --git a/test/src/com/xilinx/rapidwright/design/tools/TestLUTTools.java b/test/src/com/xilinx/rapidwright/design/tools/TestLUTTools.java index 7cabb2d9c..d74d59d4f 100644 --- a/test/src/com/xilinx/rapidwright/design/tools/TestLUTTools.java +++ b/test/src/com/xilinx/rapidwright/design/tools/TestLUTTools.java @@ -28,31 +28,31 @@ import java.util.List; import java.util.Set; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; + import com.xilinx.rapidwright.design.Cell; import com.xilinx.rapidwright.design.Design; import com.xilinx.rapidwright.design.Net; import com.xilinx.rapidwright.design.SiteInst; import com.xilinx.rapidwright.design.SitePinInst; import com.xilinx.rapidwright.design.Unisim; -import com.xilinx.rapidwright.device.Node; -import com.xilinx.rapidwright.device.PIP; -import com.xilinx.rapidwright.rwroute.RWRoute; -import com.xilinx.rapidwright.rwroute.TestRWRoute; -import com.xilinx.rapidwright.support.LargeTest; -import com.xilinx.rapidwright.support.RapidWrightDCP; -import com.xilinx.rapidwright.util.VivadoToolsHelper; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - import com.xilinx.rapidwright.device.BEL; import com.xilinx.rapidwright.device.Device; +import com.xilinx.rapidwright.device.Node; +import com.xilinx.rapidwright.device.PIP; import com.xilinx.rapidwright.device.Part; import com.xilinx.rapidwright.device.PartNameTools; import com.xilinx.rapidwright.device.Series; import com.xilinx.rapidwright.device.Site; import com.xilinx.rapidwright.device.SiteTypeEnum; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.CsvSource; +import com.xilinx.rapidwright.rwroute.RWRoute; +import com.xilinx.rapidwright.rwroute.TestRWRoute; +import com.xilinx.rapidwright.support.LargeTest; +import com.xilinx.rapidwright.support.RapidWrightDCP; +import com.xilinx.rapidwright.util.VivadoToolsHelper; public class TestLUTTools { @@ -90,9 +90,14 @@ public void testSwapLutPinsFromPIPs() { SiteInst si = design.createSiteInst("SLICE_X0Y0"); // Create and place on both A6LUT and A5LUT Cell cell6 = design.createAndPlaceCell("lut6", Unisim.LUT2, "SLICE_X0Y0/A6LUT"); - cell6.getPinMappingsP2L().clear(); // Clear default pin mappings + // Clear default pin mappings + for (String physPin : cell6.getUsedPhysicalPins()) { + cell6.removePinMapping(physPin); + } Cell cell5 = design.createAndPlaceCell("lut5", Unisim.LUT2, "SLICE_X0Y0/A5LUT"); - cell5.getPinMappingsP2L().clear(); + for (String physPin : cell5.getUsedPhysicalPins()) { + cell5.removePinMapping(physPin); + } // Net with a single sink pin used by both LUTs that needs swapping Net netNeedsPinSwap = design.createNet("netNeedsPinSwap"); diff --git a/test/src/com/xilinx/rapidwright/device/TestSite.java b/test/src/com/xilinx/rapidwright/device/TestSite.java index aac61d908..d4fdc7f27 100644 --- a/test/src/com/xilinx/rapidwright/device/TestSite.java +++ b/test/src/com/xilinx/rapidwright/device/TestSite.java @@ -36,4 +36,17 @@ public void testGetIntTile(String deviceName, String siteName, String intTileNam Site site = device.getSite(siteName); Assertions.assertEquals(intTileName, site.getIntTile().getName()); } + + @ParameterizedTest + @CsvSource({ + "xcvp1902,SLICE_S0X36Y0,SLR0", + "xcvp1902,SLICE_S1X36Y0,SLR1", + "xcvp1902,SLICE_S2X36Y0,SLR2", + "xcvp1902,SLICE_S3X36Y0,SLR3", + }) + public void testGetSLR(String deviceName, String siteName, String slrName) { + Device device = Device.getDevice(deviceName); + Site site = device.getSite(siteName); + Assertions.assertEquals(slrName, site.getTile().getSLR().getName()); + } }