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

[RWRoute] Clock router for Versal architecture #1102

Merged
merged 31 commits into from
Nov 27, 2024

Conversation

WenhaoLin-AMD
Copy link
Contributor

@WenhaoLin-AMD WenhaoLin-AMD commented Nov 13, 2024

The clock router for Versal architecture is based on the symmetric clock routing flow for UltraScale/UltraScale+. The main differences between them are listed below:

UltraScale/UltraScale+ Versal
First compute the centroid clock region (CR) of all target CRs, then route the clock buffer to an HROUTE node in centroid. Vivado routes the signal from the clock buffer to a VROUTE node in a nearby CR, and we follow this behavior.
Use two VROUTE nodes: vrouteUp (for the target CRs above the centroid ) and vrouteDown (for the target CRs below the centroid) Only use one VROUTE node. It uses VDISTR_LVL{1,2} nodes to go up and down.
First map the sink pins to leaf clock buffers (LCBs) with a simple heuristic, then route LCBs to sinks Directly route the sinks to LCBs.
Operate on Wire objects, using RouteNode.getWireConnections() to search downhill Operate on Node objects, using Node.getAllDownhillNodes() (since RouteNode.getWireConnections() relies on tile.getWireConnections() which doesn't work correctly on Versal devices, see #1096). Specifically, we replace RouteNode with RouterHelper.NodeWithPrev.

@eddieh-xlnx eddieh-xlnx marked this pull request as draft November 14, 2024 01:14
WenhaoLin-AMD and others added 14 commits November 14, 2024 22:11
Conflicts:
	test/src/com/xilinx/rapidwright/rwroute/TestGlobalSignalRouting.java
Signed-off-by: Eddie Hung <[email protected]>
Signed-off-by: Eddie Hung <[email protected]>
Signed-off-by: Eddie Hung <[email protected]>
Signed-off-by: Eddie Hung <[email protected]>
Signed-off-by: Eddie Hung <[email protected]>
Signed-off-by: Eddie Hung <[email protected]>
Signed-off-by: Eddie Hung <[email protected]>
Signed-off-by: Eddie Hung <[email protected]>
@WenhaoLin-AMD WenhaoLin-AMD changed the title [RWRoute] Support clock routing on Versal devices [RWRoute] Clock router for Versal architecture Nov 22, 2024
@eddieh-xlnx eddieh-xlnx marked this pull request as ready for review November 22, 2024 23:46
Signed-off-by: Wenhao Lin <[email protected]>
eddieh-xlnx and others added 2 commits November 26, 2024 15:25
Co-authored-by: Chris Lavin <[email protected]>
Signed-off-by: eddieh-xlnx <[email protected]>
Signed-off-by: Eddie Hung <[email protected]>
@eddieh-xlnx eddieh-xlnx merged commit 0e13fbe into Xilinx:master Nov 27, 2024
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants