From f98b10b463cdc36c2e33180a2ff89c4bb16f4660 Mon Sep 17 00:00:00 2001 From: Chris Lavin Date: Tue, 17 Jan 2023 18:16:09 -0700 Subject: [PATCH 1/5] 2022.2.1-rc1 Signed-off-by: Chris Lavin --- .classpath | 4 ++-- .github/workflows/build.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.classpath b/.classpath index b25e3983a..5d777d431 100644 --- a/.classpath +++ b/.classpath @@ -33,9 +33,9 @@ - + - + diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5c52e554a..8ce417e4e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ on: pull_request: env: - RAPIDWRIGHT_VERSION: v2022.2.0-beta + RAPIDWRIGHT_VERSION: v2022.2.1-rc1-beta jobs: build: From 89c31ea0f517cfb201c6029e9adc0c0a2163dbfc Mon Sep 17 00:00:00 2001 From: Chris Lavin Date: Tue, 17 Jan 2023 22:07:08 -0700 Subject: [PATCH 2/5] Test for updating p&r data in 2022.2 DCPs (#602) Signed-off-by: Chris Lavin Signed-off-by: Chris Lavin --- .../rapidwright/design/TestDCPLoad.java | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/test/src/com/xilinx/rapidwright/design/TestDCPLoad.java b/test/src/com/xilinx/rapidwright/design/TestDCPLoad.java index 48b2d4168..1918e5b5c 100644 --- a/test/src/com/xilinx/rapidwright/design/TestDCPLoad.java +++ b/test/src/com/xilinx/rapidwright/design/TestDCPLoad.java @@ -27,17 +27,18 @@ import java.nio.file.Files; import java.nio.file.Path; -import com.xilinx.rapidwright.edif.EDIFTools; -import com.xilinx.rapidwright.support.RapidWrightDCP; -import com.xilinx.rapidwright.tests.CodePerfTracker; -import com.xilinx.rapidwright.util.FileTools; -import com.xilinx.rapidwright.util.Installer; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; +import com.xilinx.rapidwright.edif.EDIFTools; +import com.xilinx.rapidwright.support.RapidWrightDCP; +import com.xilinx.rapidwright.tests.CodePerfTracker; +import com.xilinx.rapidwright.util.FileTools; +import com.xilinx.rapidwright.util.Installer; + /** * Tests the EDIF auto-generate mechanism when reading DCPs * @@ -127,4 +128,19 @@ public void testDCPFromVivado2022_1(String dcp) { public void testDCPFromVivado2022_2(String dcp) { RapidWrightDCP.loadDCP(dcp); } + + @ParameterizedTest + @ValueSource(strings = { "bnn.dcp", "picoblaze_2022.2.dcp" }) + public void testUpdatePlaceAndRouteOfDesign(String dcp) { + boolean skipLoadingPlaceAndRoute = true; + Path dcpPath = RapidWrightDCP.getPath(dcp); + Design design = Design.readCheckpoint(dcpPath, skipLoadingPlaceAndRoute); + Assertions.assertEquals(0, design.getSiteInsts().size()); + design.updateDesignWithCheckpointPlaceAndRoute(dcpPath); + + Design origDesign = Design.readCheckpoint(dcpPath); + + Assertions.assertEquals(origDesign.getSiteInsts().size(), design.getSiteInsts().size()); + Assertions.assertEquals(origDesign.getNets().size(), design.getNets().size()); + } } From e2d18531a0e18a4a8f2f0084b0d5ea53e33ca775 Mon Sep 17 00:00:00 2001 From: Chris Lavin Date: Tue, 17 Jan 2023 22:28:16 -0700 Subject: [PATCH 3/5] Test for fix of issue #603 (#605) * Test for fix of issue #603 Signed-off-by: Chris Lavin * Add clarification comment Signed-off-by: Chris Lavin Signed-off-by: Chris Lavin --- .../com/xilinx/rapidwright/design/TestDCPLoad.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/src/com/xilinx/rapidwright/design/TestDCPLoad.java b/test/src/com/xilinx/rapidwright/design/TestDCPLoad.java index 1918e5b5c..256db010b 100644 --- a/test/src/com/xilinx/rapidwright/design/TestDCPLoad.java +++ b/test/src/com/xilinx/rapidwright/design/TestDCPLoad.java @@ -33,6 +33,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; +import com.xilinx.rapidwright.edif.EDIFHierCellInst; import com.xilinx.rapidwright.edif.EDIFTools; import com.xilinx.rapidwright.support.RapidWrightDCP; import com.xilinx.rapidwright.tests.CodePerfTracker; @@ -126,7 +127,16 @@ public void testDCPFromVivado2022_1(String dcp) { @ParameterizedTest @ValueSource(strings = {"picoblaze_2022.2.dcp"}) public void testDCPFromVivado2022_2(String dcp) { - RapidWrightDCP.loadDCP(dcp); + Design design = RapidWrightDCP.loadDCP(dcp); + for (Cell c : design.getCells()) { + // Exclude PAD cells (port cells) as they don't have a corresponding + // EDIFHierCellInst, all cells with 'processor' are hierarchical + if (c.getName().contains("processor")) { + EDIFHierCellInst inst = c.getEDIFHierCellInst(); + Assertions.assertNotNull(inst); + Assertions.assertEquals(inst.toString(), c.getName()); + } + } } @ParameterizedTest From 96806abe0f134fba9cc2a769ccd11ec8693f249f Mon Sep 17 00:00:00 2001 From: eddieh-xlnx Date: Wed, 18 Jan 2023 08:51:10 -0800 Subject: [PATCH 4/5] Test for Net.getLogicalHierNet() when netlist detached (#600) Signed-off-by: Eddie Hung Signed-off-by: Eddie Hung Co-authored-by: Chris Lavin --- .../xilinx/rapidwright/design/TestNet.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/src/com/xilinx/rapidwright/design/TestNet.java b/test/src/com/xilinx/rapidwright/design/TestNet.java index 687d394e5..87b77a824 100644 --- a/test/src/com/xilinx/rapidwright/design/TestNet.java +++ b/test/src/com/xilinx/rapidwright/design/TestNet.java @@ -24,6 +24,7 @@ package com.xilinx.rapidwright.design; import com.xilinx.rapidwright.device.Device; +import com.xilinx.rapidwright.support.RapidWrightDCP; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -153,4 +154,26 @@ public void testRemovePinOnStaticNet() { gndNet.removePin(b6, true); Assertions.assertEquals(gndNet.getPIPs().size(), 0); } + + @Test + public void testGetLogicalHierNetDetachedNetlist() { + String dcpPath = RapidWrightDCP.getString("bnn.dcp"); + Design design = Design.readCheckpoint(dcpPath); + design.detachNetlist(); + + String[] hierPortNets = new String[]{ + "dmem_mode_V[0]", + "n_inputs_V[13]", + "n_inputs_V[1]", + "n_inputs_V[3]", + "n_inputs_V[5]", + "n_inputs_V[7]", + "n_inputs_V[9]", + }; + for (String name : hierPortNets) { + Net net = design.getNet(name); + Assertions.assertNotNull(net); + Assertions.assertNull(net.getLogicalHierNet()); + } + } } From 016536802b0916b5e8d84b5f85ba3e2bc4eb028b Mon Sep 17 00:00:00 2001 From: Chris Lavin Date: Thu, 19 Jan 2023 22:06:20 -0700 Subject: [PATCH 5/5] 2022.2.1 Release Signed-off-by: Chris Lavin --- .classpath | 4 ++-- .github/workflows/build.yml | 2 +- RELEASE_NOTES.TXT | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.classpath b/.classpath index 5d777d431..96d551ea9 100644 --- a/.classpath +++ b/.classpath @@ -33,9 +33,9 @@ - + - + diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8ce417e4e..e837122ee 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ on: pull_request: env: - RAPIDWRIGHT_VERSION: v2022.2.1-rc1-beta + RAPIDWRIGHT_VERSION: v2022.2.1-beta jobs: build: diff --git a/RELEASE_NOTES.TXT b/RELEASE_NOTES.TXT index 0fbd8d97b..10a88c309 100644 --- a/RELEASE_NOTES.TXT +++ b/RELEASE_NOTES.TXT @@ -1,3 +1,18 @@ +============= RapidWright 2022.2.1-beta released on 2023-01-19 ================ +Notes: + - Preserves hwdef information in DCP (#597) + - Adds APIs to access BELAttr information in design (#598) + - Many improvements to RWRoute to cleanup code and improves both quality and runtime performance + - Fixes a bug with 2022.2 DCPs where hierarchical names were getting mangled in RapidWright (#603) + - Adds support for reading gzipped EDIF files + - Fixes an issue with Design.updateDesignWithCheckpointPlaceAndRoute() on more recent version DCPs (#601) + +- API Additions: + - com.xilinx.rapidwright.design.Design "public Map getBELAttrs()" + - com.xilinx.rapidwright.design.Design "public BELAttr addBELAttr(Net net, Site site, SiteTypeEnum type, BEL bel, String name, String value)" + - com.xilinx.rapidwright.device.Device "public BEL getBEL(SiteTypeEnum type, String belName)" + - com.xilinx.rapidwright.device.Device "public BEL[] getBELs(SiteTypeEnum type)" + ============= RapidWright 2022.2.0-beta released on 2022-11-16 ================ Notes: - Support for Vivado 2022.2 devices and DCPs