Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Utils] isClocking() to include TileTypeEnum.CMT_L #1100

Merged
merged 4 commits into from
Nov 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions src/com/xilinx/rapidwright/rwroute/RouterHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -180,9 +180,13 @@ public static Node projectOutputPinToINTNode(SitePinInst output) {
*/
public static Node projectInputPinToINTNode(SitePinInst input) {
Node sink = input.getConnectedNode();
if (sink.getTile().getTileTypeEnum() == TileTypeEnum.INT) {
TileTypeEnum sinkTileType = sink.getTile().getTileTypeEnum();
if (sinkTileType == TileTypeEnum.INT) {
return sink;
}
// Only block clocking tiles if source is not in a clock tile
final boolean blockClocking = !Utils.isClocking(sinkTileType);

int watchdog = 40;

// Starting from the SPI's connected node, perform an uphill breadth-first search
Expand All @@ -198,7 +202,7 @@ public static Node projectInputPinToINTNode(SitePinInst input) {
EnumSet.of(IntentCode.NODE_CLE_CTRL, IntentCode.NODE_INTF_CTRL).contains(uphill.getIntentCode())) {
return uphill;
}
if (Utils.isClocking(uphillTileType)) {
if (uphillTileType != sinkTileType && Utils.isClocking(uphillTileType)) {
continue;
}
queue.add(uphill);
Expand Down
3 changes: 2 additions & 1 deletion src/com/xilinx/rapidwright/util/Utils.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* Original work: Copyright (c) 2010-2011 Brigham Young University
* Modified work: Copyright (c) 2017-2022, Xilinx, Inc.
* Copyright (c) 2022-2023, Advanced Micro Devices, Inc.
* Copyright (c) 2022-2024, Advanced Micro Devices, Inc.
* All rights reserved.
*
* Author: Chris Lavin, Xilinx Research Labs.
Expand Down Expand Up @@ -350,6 +350,7 @@ public static boolean isIOB(SiteTypeEnum s) {

clocking = EnumSet.of(
TileTypeEnum.RCLK_CLEM_CLKBUF_L,
TileTypeEnum.CMT_L,
// Versal
TileTypeEnum.CLK_REBUF_BUFGS_HSR_CORE,
TileTypeEnum.CLK_PLL_AND_PHY,
Expand Down
2 changes: 2 additions & 0 deletions test/src/com/xilinx/rapidwright/rwroute/TestRouterHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public class TestRouterHelper {
"xcvu3p,SLICE_X0Y0,A_O,CLEL_R_X0Y0/CLE_CLE_L_SITE_0_A_O",
"xcvu3p,GTYE4_CHANNEL_X0Y12,TXOUTCLK_INT,null",
"xcvu3p,IOB_X1Y95,I,INT_INTF_L_IO_X72Y109/LOGIC_OUTS_R23",
"xcvu3p,IOB_X1Y80,I,INT_INTF_L_IO_X72Y92/LOGIC_OUTS_R22",
"xcvu3p,MMCM_X0Y0,LOCKED,INT_INTF_L_IO_X36Y54/LOGIC_OUTS_R0",
"xcvp1002,MMCM_X2Y0,LOCKED,BLI_CLE_BOT_CORE_X27Y0/LOGIC_OUTS_D23"
})
Expand All @@ -72,6 +73,7 @@ public void testProjectOutputPinToINTNode(String partName, String siteName, Stri
@ParameterizedTest
@CsvSource({
"xcvu3p,MMCM_X0Y0,PSEN,INT_X36Y56/IMUX_W0",
"xcvu3p,BUFGCE_X0Y58,CLK_IN,INT_X36Y151/IMUX_W34",
"xcvp1002,MMCM_X2Y0,PSEN,INT_X27Y0/IMUX_B_W24"
})
public void testProjectInputPinToINTNode(String partName, String siteName, String pinName, String nodeAsString) {
Expand Down
Loading