Skip to content

Releases: Xilinx/RapidWright

RapidWright 2022.1.0-beta Release

06 May 05:42
83ffd05
Compare
Choose a tag to compare

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

18 Mar 04:56
6a755bc
Compare
Choose a tag to compare

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

03 Feb 20:45
1dd1a1e
Compare
Choose a tag to compare

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

10 Nov 02:02
Compare
Choose a tag to compare

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

25 Oct 14:48
Compare
Choose a tag to compare

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

29 Sep 05:18
Compare
Choose a tag to compare

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

15 Sep 04:19
Compare
Choose a tag to compare

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

27 Jul 00:06
Compare
Choose a tag to compare

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

23 Jun 21:20
Compare
Choose a tag to compare

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

19 May 00:25
Compare
Choose a tag to compare

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)"