|
22 | 22 |
|
23 | 23 | package com.xilinx.rapidwright.eco; |
24 | 24 |
|
25 | | -import java.util.ArrayList; |
26 | | -import java.util.Arrays; |
27 | | -import java.util.Collections; |
28 | | -import java.util.HashMap; |
29 | | -import java.util.HashSet; |
30 | | -import java.util.List; |
31 | | -import java.util.Map; |
32 | | -import java.util.Set; |
33 | | -import java.util.stream.Collectors; |
34 | | - |
35 | | -import org.junit.jupiter.api.Assertions; |
36 | | -import org.junit.jupiter.api.Disabled; |
37 | | -import org.junit.jupiter.api.Test; |
38 | | - |
39 | 25 | import com.xilinx.rapidwright.design.AltPinMapping; |
40 | 26 | import com.xilinx.rapidwright.design.Cell; |
41 | 27 | import com.xilinx.rapidwright.design.Design; |
|
62 | 48 | import com.xilinx.rapidwright.edif.EDIFTools; |
63 | 49 | import com.xilinx.rapidwright.edif.EDIFValueType; |
64 | 50 | import com.xilinx.rapidwright.router.Router; |
| 51 | +import com.xilinx.rapidwright.rwroute.PartialRouter; |
65 | 52 | import com.xilinx.rapidwright.support.RapidWrightDCP; |
66 | 53 | import com.xilinx.rapidwright.util.CodeGenerator; |
67 | 54 | import com.xilinx.rapidwright.util.FileTools; |
68 | 55 | import com.xilinx.rapidwright.util.ReportRouteStatusResult; |
69 | 56 | import com.xilinx.rapidwright.util.VivadoTools; |
70 | 57 | import com.xilinx.rapidwright.util.VivadoToolsHelper; |
| 58 | +import org.junit.jupiter.api.Assertions; |
| 59 | +import org.junit.jupiter.api.Disabled; |
| 60 | +import org.junit.jupiter.api.Test; |
| 61 | +import org.junit.jupiter.params.ParameterizedTest; |
| 62 | +import org.junit.jupiter.params.provider.ValueSource; |
| 63 | + |
| 64 | +import java.util.ArrayList; |
| 65 | +import java.util.Arrays; |
| 66 | +import java.util.Collections; |
| 67 | +import java.util.HashMap; |
| 68 | +import java.util.HashSet; |
| 69 | +import java.util.List; |
| 70 | +import java.util.Map; |
| 71 | +import java.util.Set; |
| 72 | +import java.util.stream.Collectors; |
71 | 73 |
|
72 | 74 | public class TestECOTools { |
73 | 75 | @Test |
@@ -1071,4 +1073,26 @@ public void testRefactorCell() { |
1071 | 1073 | VivadoToolsHelper.assertFullyRouted(d); |
1072 | 1074 | } |
1073 | 1075 |
|
| 1076 | + @ParameterizedTest |
| 1077 | + @ValueSource(strings = {"xcvu19p", "xcvp1502"}) |
| 1078 | + public void testDiscussion1245(String device) { |
| 1079 | + // Create a test design |
| 1080 | + Design test = new Design("test_design", device); |
| 1081 | + |
| 1082 | + // Place two luts at 2 arbitrarily chosen sites |
| 1083 | + Cell lut_1 = test.createAndPlaceCell("lut_1", Unisim.LUT6, "SLICE_X148Y0/A6LUT"); |
| 1084 | + LUTTools.configureLUT(lut_1, "O!=I1"); |
| 1085 | + |
| 1086 | + Cell lut_2 = test.createAndPlaceCell("lut_2", Unisim.LUT6, "SLICE_X148Y0/B6LUT"); |
| 1087 | + LUTTools.configureLUT(lut_1, "O=I1"); |
| 1088 | + |
| 1089 | + // Create a net |
| 1090 | + Net net = test.createNet("test_net"); |
| 1091 | + |
| 1092 | + // Using ECOTools |
| 1093 | + ECOTools.connectNet(test, lut_1, "O", net); // Source |
| 1094 | + ECOTools.connectNet(test, lut_2, "I1", net); // Sinks |
| 1095 | + |
| 1096 | + Assertions.assertEquals("[IN SLICE_X148Y0.B2]", PartialRouter.getUnroutedPins(test).toString()); |
| 1097 | + } |
1074 | 1098 | } |
0 commit comments