Releases: Xilinx/RapidWright
Releases · Xilinx/RapidWright
RapidWright 2022.1.0-beta Release
NOTE: Due to GitHub size limitations, this release begins to split rapidwright_data.zip
into two files. All Series7 devices are now located in rapidwright_data2.zip
. All other files are in rapidwright_data.zip
.
Release Notes:
- Support for Vivado 2022.1 devices and read of DCPs
- Enables parallel EDIF parsing by default (except when EDIF is readable inside DCP). Depending on
file size and number of available threads, speedup can achieve 2.5-10X faster runtimes. - Adds facilities to track logical netlist and physical netlist changes to keep a record of
incremental changes in a design. - Preserves AI Engine and NOC data when writing DCPs from RapidWright
- Disallows turning multiple sitePIPs on on the same RBEL at the same time
- Enables LUT routethru routing on intrasite nets
- Net.addPin() to add output pin as an alternate source if a source on the net already exists
- The anchor object on the Module class has been changed from a SiteInst to a Site
- Allows better recovery of augmented tile cache generation failure
- Includes PRs: #378, #379, #380, #381, #382, #383, #385, #387, #396, #395, #397, #400, #401, #402,
#405, #406, #404, #407 - Fixes Issues: #392
- API Additions:
- com.xilinx.rapidwright.design.Design public "void clearTrackedChanges()"
- com.xilinx.rapidwright.design.Design public "void setTrackingChanges(boolean trackChanges)"
- com.xilinx.rapidwright.design.Design public "boolean isTrackingSiteInstChanges()"
- com.xilinx.rapidwright.design.Design public "void setTrackSiteInstChanges(boolean trackSiteInstChanges)"
- com.xilinx.rapidwright.design.Design public "boolean isTrackingNetChanges()"
- com.xilinx.rapidwright.design.Design public "void setTrackNetChanges(boolean trackNetChanges)"
- com.xilinx.rapidwright.design.Design public "Set getModifiedSiteInsts()"
- com.xilinx.rapidwright.design.Design public "Set getModifiedNets()"
- com.xilinx.rapidwright.design.Design public "boolean addModifiedNet(Net net)"
- com.xilinx.rapidwright.design.Design public "boolean addModifiedSiteInst(SiteInst siteInst)"
- com.xilinx.rapidwright.device.Device public "Tile getArbitraryTileOfType(TileTypeEnum type)"
RapidWright 2021.2.2-beta Release
Release Notes:
- Parallelism enabled by default (#365), can be turned off with:
- ParallelismTools.setParallel(false) or
- Set the environment variable to RW_PARALLEL=0.
- Contains bitstream relocation tools for specific UltraScale+ scenarios (#334, #357, #373)
- EDIF netlist memory optimization - netlist uses ~70% less memory when loaded (#339)
- Binary EDIF format - loads ~5x faster (writes ~2x slower) than plain-text EDIF. After EDIF reads
this format can be cached with setting the environment variable RW_ENABLE_EDIF_BINARY_CACHING (#359) - 'make update_jars' now pulls the jars from Maven Central instead of the rapidwright_jars.zip (#366)
- Caches to a file the uncommon node map generated at runtime for a device (see #362)
- Includes PRs: #321, #343, #339, #352, #353, #348, #346, #362, #359, #361, #344, #357, #334, #365,
#350, #366, #341, #370, #372, #373, #374, #375, #376, #377 - Fixes Issues: #117, #342, #349
- API Additions:
- com.xilinx.rapidwright.bitstream.Bitstream "public static void checkIfDeviceSupported(String partName)"
- com.xilinx.rapidwright.bitstream.BlockType "public static final BlockType[] values"
- com.xilinx.rapidwright.bitstream.ConfigArray "public static final int FRAME_OVERHEAD_COUNT_PER_ROW"
- com.xilinx.rapidwright.bitstream.OpCode "public static final OpCode[] values"
- com.xilinx.rapidwright.bitstream.PacketType "public static final PacketType[] values"
- com.xilinx.rapidwright.bitstream.RegisterType "public static final RegisterType[] values"
- com.xilinx.rapidwright.design.Module "public Module(Design design, String metadataFileName, boolean unrouteStaticNets)"
- com.xilinx.rapidwright.design.Module "public Module(Design design, boolean unrouteStaticNets)"
- com.xilinx.rapidwright.design.Module "public Site getCorrespondingSite(SiteInst inst, Site anchorSite)"
- com.xilinx.rapidwright.design.SiteInst "public Set getConnectedNets()"
- com.xilinx.rapidwright.device.Device "public static final String DEVICE_CACHE_FILE_VERSION"
RapidWright 2021.2.1-beta Release
Release Notes:
- 3-4X faster DCP write times using a new parallel, multi-threaded approach (See #337), Enable with:
- ParallelismTools.setParallel(true) or
- Add the environment variable RW_PARALLEL to the environment.
- Multiple DCP read operations can now be initiated in parallel without errors
- Fixes a number of issues related to SitePinInst creation on DCP load (see #317, #318)
- Adds a new MergeDesign capability, allows users to merge two or more existing designs into a
single implementation (See #331) - All RapidWright dependencies and itself are published on Maven Central. Removes the need to
manually download rapidwright_jars.zip, instead users can simply run './gradlew update_jars' - Includes PRs: #287, #291, #289, #297, #290 #300, #296, #294, #304, #305, #313, #319, #324, #328,
#320, #332, #330, #336, #331, #333, #322, #318, #317 - Fixes Issues: #326, #298, #299, #312, #315, #326
- API Additions:
- com.xilinx.rapidwright.design.Design "public void setName(String name)"
- com.xilinx.rapidwright.device.Site "public ClockRegion getClockRegion()"
RapidWright 2021.2.0-beta Release
Release Notes:
- Updates support for latest Vivado devices in 2021.2
- Adds flag information to BEL and BELPin objects (see API additions)
- Moves the RapidWrightDCP submodule to test/RapidWrightDCP
- Several Block Placer runtime and code improvements
- Adds a method to resolve site routing when combining designs built
from in-context builds into another design - Adds Python support for CI
- Feature to catch System.exit() calls for Python REPL loops, not
turned on by default in Java 17 and later - Adds DRC framework
- Fixes Issues: #195, #277, #283, #259
- API Additions:
- com.xilinx.rapidwright.device.BEL "public boolean isLUT()"
- com.xilinx.rapidwright.device.BEL "public boolean isFF()"
- com.xilinx.rapidwright.device.BEL "public boolean isCarry()"
- com.xilinx.rapidwright.device.BEL "public boolean isSRIMR()"
- com.xilinx.rapidwright.device.BEL "public boolean isSliceFFClkMod()"
- com.xilinx.rapidwright.device.BELPin "public boolean isPartOfBus()"
- com.xilinx.rapidwright.device.BELPin "public boolean isData()"
- com.xilinx.rapidwright.device.BELPin "public boolean isClock()"
- com.xilinx.rapidwright.device.BELPin "public boolean isEnable()"
- com.xilinx.rapidwright.device.BELPin "public boolean isSet()"
- com.xilinx.rapidwright.device.BELPin "public boolean isReset()"
RapidWright 2021.1.2-beta Release
Release Notes:
- Includes RWRoute - a full design timing driven router
- Moves online discussions and forum to GitHub Discussions
https://github.com/Xilinx/RapidWright/discussions (retiring Google Groups). - Turns off Kryo Unsafe usage for Java 15 and above
- Better auto generation handling of readable EDIF files. Creates an
MD5 checksum for DCPs and unique directory for EDIFs to avoid stale EDIFs. - Includes Python packaging files and adds the option to use local
development RapidWright build when RAPIDWRIGHT_PATH is set (see #267) - Adds RapidWright relocation tools - the ability to relocate
implementations without using Modules/ModuleInsts. - Includes a performance evaluation tool to leverage Vivado to
identify true fmax of a design. - Improves PartNameTools to return integer values of available
resources of a part. - Fixes Issues #259, #246, #73, #251, #190
- API Additions:
- com.xilinx.rapidwright.design.Design "public static boolean replaceEDIFinDCP(String dcpFileName, String edfFileName)"
RapidWright 2021.1.1-beta Release
Release Notes:
- Fixes ModuleInst anchor read issue when loading a RapidWright-generated DCP
- Adds correct macro expansion for BUFG and CFGLUT5 primitives
- For executable jars, the RapidWright default directory has been changed to ~/.local/share/RapidWright on Linux and %APPDATA%\RapidWright on Windows.
- Improvements in Utils and TileColumnPattern for URAM
- Adds dotty graph dump facilities for some logical and physical netlist classes
- Fixed an issue in PolynomialGenerator trying to create duplicate pins
- Various fixes around closing files and streams
- Includes fixes for #228, #238, #244
- Changes return type of Module "public RelocatableTileRectangle getBoundingBox()" from TileRectangle
- API Additions:
- com.xilinx.rapidwright.bitstream.Block "public boolean copyFrameData(Block block)"
- com.xilinx.rapidwright.bitstream.Frame "public boolean copyWords(Frame frame)"
- com.xilinx.rapidwright.design.Cell "public Cell createCell(EDIFHierCellInst inst, BEL bel)"
- com.xilinx.rapidwright.design.Net "public void unroutePin(SitePinInst p)"
RapidWright 2021.1.0-beta Release
Release Notes:
- Updates device models to the public set released in Vivado 2021.1
- Provides a cloud data file download-on-demand model. No longer need to
download large rapidwright_data.zip with each release. Speeds up
install and enables easier packaging/distribution of RapidWright. - Adds support to automatically invoke Vivado to create a missing
EDIF file when loading a DCP (if a compatible Vivado is on user's PATH). - Moves timing model files into git repo (out of data directory)
- Includes fixes for #180, #217
RapidWright 2020.2.7-beta Release
Release Notes:
- Several fixes for RapidWright API Lib:
- Resolves left over antennas from mishandled bi-directional PIPs
- Resolves issue in module instance creation due to AltPinmapping
cell names not being updated. - Fixes range issue with BUFCE_ROW instance in Net.setBufferDelay()
- Fixes when anchor is null when writing out metadata for module
instance in DCP. - Fixes issue when reloading a DCP with encrypted cells back into
RapidWright and EDN file paths not being propagated. - Patch for dual output net situation where incorrect routing flags
caused Vivado to crash.
- Includes EDIFHier updates to reduce memory and improve runtime.
Avoids use of a String for hierarchical representation and instead
uses an array of EDIFCellInst - Includes fixes for #193, #194 and partial for #206
- Includes JUnit tests
RapidWright 2020.2.6-beta Release
Release Notes:
- Updates Cap'n Proto Java Runtime from 0.1.4 to 0.1.7
- Updates Gradle wrapper to point to 7.1 (#189)
- Updates the singleton Device map to have soft references. Allows
unused device objects to be garbage collected without having to call Device.releaseDeviceReferences(). - Includes a fix and some performance enhancements around module relocation.
- Interchange node discovery optimization (#184)
- Fixes tile caching issue in GUI (#185) and other device browser improvements (#187)
- Workaround for Java 16 and Kryo library (#191 - issue #190)
- Includes fixes for #183, #186
- API Additions:
- com.xilinx.rapidwright.device.Device "public Tile getTile(String nameRoot, int xCoordinate, int yCoordinate)"
- com.xilinx.rapidwright.device.Device "public Tile[][] getTilesByNameRoot(String nameRoot)"
- com.xilinx.rapidwright.device.Module "public static Tile getCorrespondingTile(Tile templateTile, Tile newAnchorTile, Tile originalAnchor, Tile[][] tiles)"
- com.xilinx.rapidwright.device.Tile "public String getNameRoot()"
- API Deprecations:
- com.xilinx.rapidwright.device.Device "public static void releaseDeviceReferences()"
- com.xilinx.rapidwright.device.Tile "public String getTileNamePrefix()"
RapidWright 2020.2.5-beta Release
Release Notes:
- License updates:
- Adds a redistribution clause for the RapidWright API library jar
- Adds entries for the Gradle Wrapper, JUnit 5 and JetBrains Java Annotations
- Now includes the Gradle Wrapper
- Includes fixes for #178 (parts), #179, #181, #182
- API Additions:
- com.xilinx.rapidwright.design.Module "public boolean isValidPlacement(Site proposedAnchorSite, Design design)"
- com.xilinx.rapidwright.design.Module "public Tile getCorrespondingTile(Tile templateTile, Tile newAnchorTile)"
- com.xilinx.rapidwright.design.Net "public SitePinInst createPin(String pinName, SiteInst si)"
- com.xilinx.rapidwright.design.SiteInst "public SitePIP[] getSitePIPs()"
- API Deprecations:
- com.xilinx.rapidwright.design.Module "public boolean isValidPlacement(Site proposedAnchorSite, Device dev, Design design)"
- com.xilinx.rapidwright.design.Module "public Tile getCorrespondingTile(Tile templateTile, Tile newAnchorTile, Device dev)"
- com.xilinx.rapidwright.design.Net "public SitePinInst createPin(boolean isOutput, String pinName, SiteInst si)"