Skip to content

Releases: Xilinx/RapidWright

RapidWright 2025.1.3-beta Release

03 Oct 04:46
c2bfa8b

Choose a tag to compare

Release Notes:

  • [RWRoute] Versal fixes for clocking, static nets and general routing (#1280)
  • [DesignTools] createCeClkOfRoutethruFFToVCC() to handle AND2B1L/OR2L (#1286)
  • [TestBELPin] Test that BELPin.getConnectedSitePin() thru IMRs (#1285)
  • Adds RW_COPY_EDNS_ON_DCP_WRITE and adds helper to extract EDNs (#1288)
  • Move Site.getIntTile() -> DeviceTools.getIntTile() and fix for Versal (#1287)
  • Cannot close the zip file (refactor?) (#1289)
  • Cleanup gradle 9 warnings and Java linting warnings for Java 17 (#1277)
  • [DesignTools] Handles VCC/GND connections properly in populateBlackBox() (#1278)
  • rc2 and tests for removing alternate SPIs (#1276)
  • [TimingGraph] Improving Report Timing Example; add some APIs (#1273)
  • Propagates EDN files when loading RapidWright-generated DCPs
  • [BELPin] getConnectedSitePin() to punch thru IMRs
  • Site.getIntTile() to call DeviceTools.getIntTile(Site)
  • Fix SitePinInst removal for alternate pins
  • Address unplaced modules when getting BELPins

API Additions:

Note: The 2025.1.2 release was scrapped. The rapidwright-api-lib jar got corrupted on Maven Central so this release version
had to be abandoned, was released 2025.1.3 in its place.

RapidWright 2025.1.1-beta Release

13 Aug 18:48
4656a21

Choose a tag to compare

Release Notes:

  • Unisim Primitive Mappings Updates for Versal (#1271)
  • [ECOTools.connectNet()] Fixes static net connection and no source issues (#1270)
  • [RWRoute] Add support for SLL tile types (#1269)
  • Test and fixes for Versal site routing support (#1267)
  • Netlist Comparator Inst and Property Tracking (#1260)
  • Fix an issue on calculateUtilization function for Versal devices. (#1264)
  • Add support for shared sink SitePinInsts in LUTInputConeOpt (#1262)
  • Update Versal Unisims (#1261)
  • EDIFNetlistComparator Test (#1263)
  • Minor Changes to PBlock and LUT eval fixes (#1257)
  • Versal LUT Input Routing Fixes and Test (#1254)
  • [EDIFTools] Fix connectPortInstsThruHier when finding source pin (#1258)
  • [RWRoute] Cleanup RWRoute.isAccessibleSink() (#1256)
  • [EDIFTools] Add support for connecting logical nets through both hierarchical directions (#1253)
  • [RWRoute] General + SLR crossing optimizations (#1232)
  • [ReportRouteStatus] Do not count nets with no pins (#1248)
  • [EDIFNetlist] Create a wrapper EDIFCell constructor (#1238)
  • Test that Versal site pins are acquired correctly (#1247)
  • Inline Flop Insertion/Removal Tool (#1242)
  • Reset diffCount when compareNetlists is ran (#1251)
  • Continue if cell is null (#1250)

API Additions:

  • com.xilinx.rapidwright.design.Design "public static Map<SiteTypeEnum, Set> getCompatiblePlacements(Device device, Unisim u)"
  • com.xilinx.rapidwright.design.Design "public static Map<SiteTypeEnum, Set> getCompatiblePlacements(String deviceName, Unisim u)"
  • com.xilinx.rapidwright.device.BEL "public boolean isAnyIMR()"

RapidWright 2025.1.0-beta Release

25 Jun 22:20
94bfaf9

Choose a tag to compare

Release Notes:

  • Add methods to access internal DiffMap (#1234)
  • [EDIFNetlist] Update library when renaming cells; add API to remove blackbox prop (#1226)
  • Fixes to count LOOKAHEAD8 cells in Versal designs (#1230)
  • [NetlistBrowser] Fix extra click issue with instances (#1229)
  • [Netlist Browser] GUI Widget to browse a loaded netlist (#1225)
  • [CopyImplementation] Command-line version of DesignTools.copyImplementation() (#1215)
  • [DesignTools.copyImplementation()] Support Versal IMR routethrus (#1224)
  • [ECOTools] connectNet() remove static net assertion (#1223)
  • [ECOTools] Fix connectNet() for pins that don't need routing (#1222)
  • [LUTTools] Properly size LUTCY* primitives (#1221)
  • [LUTInputConeOpt] Enable unplaced netlists (#1213)
  • [PhysNetlistWriter] Treat bidir BEL pins on PS8 as output (#1214)
  • [ECOTools] Augments connectNet() to handle dual-LUT pin usage scenarios (#1209)
  • Basic VS Code Settings (#1210)
  • LUT Input Cone Optimization (#1205)
  • Design Obfuscator - Flattens design and uses hashing to obfuscate names (#1196)
  • Regroup Instances -- command line tool (#1201)
  • [PartialDFXRouter] Add PartialRouter specialization for DFX designs (#1204)
  • [RWRoute] Connection.setAllTargets() to always set primary sink (#1206)
  • [ECOPlacementHelper] Fix NPE for getUnusedFlop() (#1207)
  • [Actions] Remove gradle/wrapper-validation-action (#1208)
  • [RWRoute] Minor cleanup (#1203)
  • [Design.createModuleInst()] Handles black boxes by renaming prior to Design.addModule()
  • Fixes gap routing issue
  • Improves NOC traffic parsing file

API Additions:

  • (None)

RapidWright 2024.2.3-beta Release

29 May 17:38
4ef72d6

Choose a tag to compare

Release Notes:

  • Add testcase for #780 (Design.routeSites()) (#1191)
  • Post-route fanout optimization (#1178)
  • Updating Gradle to support Java 21 (#1197)
  • [RouterHelper] getPIPsFromNodes() to propagate locked state (#1189)
  • Modify API to enable netlist regrouping on non-implemented netlists (#1199)
  • [EDIFTools] Enables downward hierarchy traversal when connecting logical nets (#1180)
  • [RouterHelper] Invert logical connection of LUT input pins (#1176)
  • [Utils] isClocking() to recognize all {CMT,CLK,RCLK}_* tile types (#1190)
  • [ModuleInst] Connect port to GND or VCC (#1182)
  • [MakeBlackBox] Fixes for unplaced designs (#1164)
  • [EDIFTools] uniqueifyNetlist() to use hier paths to cells (#1181)
  • LUT1 Insertion Tool (for DFX/Abstract Shell designs) (#1174)
  • Add option for DFX bitstreams (#1179)
  • [DesignTools] updatePinIsRouted() to handle routing loops (#1185)
  • [EDIFTools] UniqueifyNetlist() to reset parent net map (#1175)
  • [DesignTools] getAllRoutedSitePinsFromPhysicalPin() fix (#1173)
  • [NetTools] Recognize BUFGCE_HDIO as a clock src site (#1172)
  • Adds option to preserve routing upon populateBlackBox() (#1171)
  • [ReportRouteStatusResult] Parse # of fixed/explicit gap net (#1166)
  • [Actions] Update test-rapidwright-wrapper to setup-java@v4 (#1167)
  • [ECOTools] Refactor cell from one hier to another (#1159)
  • modify affiliation, revise input argv, and rename class name (#1162)
  • [CodeGenerator] Creates Java Code to Construct a Test Design With a Single Example SiteInst (#1160)
  • Net.connect() Improvements - Better support for hierarchy and connecting to GND/VCC
  • Fixes two issues related to reproducing routing in DCPs
  • Fix roundtrip DCP routing issue related to partially routed clock net with gap routing

API Additions:

  • com.xilinx.rapidwright.design.Design "public List getPartitionPins(Net net)"
  • com.xilinx.rapidwright.design.Design "public Net getNetFromPartitionPin(PartitionPin p)"

RapidWright 2024.2.2-beta Release

26 Mar 15:14
970fd55

Choose a tag to compare

Release Notes:

  • [DesignTools] Fix routethru corner case in fullyUnplaceCellHelper() (#1157)
  • Add option to uniquify copied cells (#1156)
  • [DesignTools] Ensure cell pin has a logical connection before attempting to unroute it (#1154)
  • [DesignTools] Unroutes both CLK pins on a BRAM when requested (#1151)
  • [EDIF] Fix Export of Single Bit Busses (#1147)
  • Fixes to enable BlockStitcher to run (#1134)
  • Enables batching of SitePinInst removals during MakeBlackBox (#1142)
  • Routing Heat Map Example (#1145)
  • When adding Modules to Designs, make EDIF cell names unique if name collides

API Additions:

  • com.xilinx.rapidwright.design.Design "public boolean removeSiteInst(SiteInst instance, boolean keepSitePinRouting,
  • com.xilinx.rapidwright.design.Design "public Map<SiteTypeEnum, Set> getCompatiblePlacements(Unisim u)"
  • com.xilinx.rapidwright.design.Design "public static Map<SiteTypeEnum, Set> getCompatiblePlacements(FamilyType family, Unisim u)"

RapidWright 2024.2.1-beta Release

15 Jan 22:21
5dc47ce

Choose a tag to compare

Release Notes:

  • Adds an Override Flag for Advanced Flow Settings in Designs (#1135)
  • Test for SiteInst.isEmpty() (#1128)
  • Tests for Versal BEL flags and site unrouting (#1125)
  • [LUTTools] Versal pin swapping fixes (#1130)
  • [DesignTools] foreachConnectedBELPin() to walk through Versal IMRs (#1129)
  • [DesignTools] updatePinsIsRouted() to return num unrouted sinks (#1131)
  • [TestDesign] Add testPlaceCellPinMappings() (#1122)
  • [RWRoute] Small cleanup; enable CUFR by default (#1126)
  • RWRoute preprocessing fixes (#1119)
  • Enables setting Advanced Flow Flags for Designs
  • Corrects and Adds BEL flags; fixes unroute site net for Versal
  • [Cell] Fixes to P2L and L2P

API Additions:

  • com.xilinx.rapidwright.design.Cell "public void fixCell(boolean isFixed)"
  • com.xilinx.rapidwright.design.Cell "public boolean isCellFixed()"
  • com.xilinx.rapidwright.design.Design "public boolean isAdvancedFlow()"
  • com.xilinx.rapidwright.design.Design "public void setAdvancedFlow(boolean val)"
  • com.xilinx.rapidwright.design.SiteInst "public boolean isEmpty()"
  • com.xilinx.rapidwright.device.BEL "public boolean isCEIMR()"
  • com.xilinx.rapidwright.device.BEL "public boolean isSliceIMRClkMod()"

RapidWright 2024.2.0-beta Release

05 Dec 03:37
3e4ae38

Choose a tag to compare

Release Notes:

  • The memory usage improvements in this release reduce a routed DCP footprint by 10-20%
  • 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<BELPin, String> 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 Release

02 Oct 23:52
abeb1f6

Choose a tag to compare

Release Notes:

  • [RWRoute] Further cleanup (#1070)
  • [PhysNetlistReader] Call SiteInst.setDesign() even for STATIC_SOURCEs (#1071)
  • [GlobalSignalRouting] Fix VCC routing for UltraScale (#1068)
  • [RWRoute] Cleanup static router and RouterHelper (#1059)
  • [PartialRouter] Disable ripup in global/static routing (#1067)
  • [TestDesign] Add test for net ordering of >= 2022.1 DCPs (#1054)
  • [TestBEL] Add testDIFFsAreNotFF() (#1062)
  • Test for Design.retargetPart() (#1061)
  • [EDIF] Fixes rare bus renaming collision (#1065)
  • [RWRoute] Always clear prev pointer of unpreserved RouteNode-s (#1056)
  • [LaunchTestsOnLsf] Invoke java with assertions enabled (#1066)
  • [LaunchTestsOnLsf] Invoke java with assertions enabled (#1063)
  • Fix testRouteStaticNet() to avoid site pins, and fix golden values (#1064)
  • [GitHub Actions] Migrate to upload-artifact@v4 (#1058)
  • Add recursive partitioning ternary tree (RPTT) (#1055)
  • Add support for vu19p tiles in bitstream
  • [Design] createModuleInst() to not create duplicate STATIC_SOURCE-s
  • Removes all instances of enum.hashCode()
  • [Node] equals() to use instanceof for subclass-awareness
  • Retarget & relocate an existing design to a new part and location
  • Fixes issue related to non-deterministic Net order upon multi-threaded DCP load
  • Fix BEL.isFF() based on BELTypes
  • Fix missing Design.getSeries()

API Additions:

  • com.xilinx.rapidwright.design.Design "public boolean retargetPart(Part targetPart, int tileXOffset, int tileYOffset)"

RapidWright 2024.1.2-beta Release

04 Sep 17:53
8eec8cc

Choose a tag to compare

Release Notes:

  • Creating a standalone entry point to relocate DCPs (#1047)
  • [Interchange] Reorders tile types and tiles to follow their Vivado index (#1039)
  • [DesignTools] Conform to Vivado RST pin inversion site routing configuration (#1053)
  • Fix for design merging, including designs with encrypted cells (#1035)
  • Filters out comments in XDC while parsing clk constraints (#1037)
  • Assign an empty list when path finding for direct connections fails (#1052)
  • Make LogicalNetlistToEdif not expand macros by default (#1051)
  • [Interchange] Fixes to support Versal designs via Interchange (#1040)
  • EDIF cleanup preventing singleton cells/libraries from attaching to user designs (#1050)
  • [RWRoute] Refactoring/cleanup/preparation for multi-threading (#1046)
  • Add Hybrid Updating Strategy (HUS) (#1043)
  • [TestSiteInst] Add test for unrouting through FF routethru cells (#1041)
  • [TestPIP] Test PIP constructor for reversed wires (#1045)
  • [RWRoute] Preserve primary source nodes on connections (#1038)
  • Small Interchange/PhysNetlistReader/VivadoTools improvements (#1042)
  • [UnisimManager] Use EDIFLibraryBuiltin for primitive/macro libs
  • Avoids NPE when site routing BRAMs
  • Fix isCarry() for Versal devices
  • Resolves PIP constructor issue for reversed PIPs
  • [SiteInst] unrouteIntraSiteNet() to handle FF routethru cells

API Additions:

  • com.xilinx.rapidwright.design.Design "public Series getSeries()"
  • com.xilinx.rapidwright.design.SiteInst "public SitePIP getUsedSitePIP(BEL bel)"

RapidWright 2024.1.1-beta Release

17 Jul 18:15
c9f8c66

Choose a tag to compare

Release Notes:

  • [VivadoTools] Source *_load.tcl from same dir as DCP (#1032)
  • Test that PIP.isReversed() is correct (#1024)
  • Add TestSite.testGetIntTile() (#1022)
  • [EDIFTools] writeTclLoadScriptForPartialEncryptedDesigns abspath (#1029)
  • Adding HDIOB types (#1028)
  • Test for site routing from raw placed design (#1000)
  • [RWRoute] Do not NPE on encrypted netlists (#1025)
  • [RWRoute] Do not assume Y = 0 has Laguna tiles, since it could be HBM device (#1026)
  • Adds UNKWN state for LSFJobs (#1027)
  • Adding legacy support for u280 (#1021)
  • Remove flawed loop intended to for encrypted cell removal (#1023)
  • [DesignTools.makeBlackBox()] Fixes an issue of removing CARRY blocks fed by routethrus (#1009)
  • Fix null netlist pointer on expanded macro children (#1008)
  • [Interchange] Device Resources Verifier Fixes (#1014)
  • Fix ConcurrentModificationError (#1015)
  • [EDIFTools] Adding method to create a flat netlist from a hierarchical one (#1006)
  • Adding HBM ComponentTypes (#1007)
  • Test for wire/node mismatch reported in #983 (#1005)
  • 3.6% memory reduction usage for large placed designs (de-duplication of cell pin strings)
  • Add missing pin entry for BUFG_GT when tracking INT tile connections
  • Fixes rare DCP write issue with stubbed bi-directional PIPs (more common on DFX designs)
  • Fix for reversed flag on PIPs
  • Addresses issue with Net.getBufferDelay() by checking for null wire names
  • Fixes two site routing issues