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

Convert Wires To Nodes #246

Open
trharoldsen opened this issue May 12, 2017 · 5 comments
Open

Convert Wires To Nodes #246

trharoldsen opened this issue May 12, 2017 · 5 comments

Comments

@trharoldsen
Copy link
Collaborator

trharoldsen commented May 12, 2017

As of now, RS2 treats the same wire in different tiles as different wires. This works fine for routing but likely slows down the router as it must look at two wires for each PIP it traverses. We could group all of the wires that are part of the same metal into a single node, reducing the size of the route trees that are represent the wires.

This would be a significant change and could possibly break some code if the code is making assumptions about how the routing structure is represented.

@GTRI-nathan
Copy link
Contributor

I believe a problem that I'm running into is that the same node (but as different wires) is being used twice when routing a design, which of course gives errors in Vivado. Is there a way to determine if two wires are from the same node currently? I might be misunderstanding, but it seems like this accidental double use of a wire could crop up a lot in crowded designs.

@trharoldsen
Copy link
Collaborator Author

@nelsobe @mjc31511 I know some people have dealt with this while creating routers. Do you have any suggestions, Michael? or does Dr. Wirthlin?

@GTRI-nathan
Copy link
Contributor

I've worked around it for now by always checking against the closure of wires that can be reached by non PIP connections (but allowing them if they haven't been used before and the previous wire is part of the same segment), but thought I should bring it up in case I was missing the correct way to do it / comment that representing routing with nodes instead of wires would nice from my perspective.

@mjc31511
Copy link
Collaborator

@GTRI-nathan I do something similar to ensure that two routes do not use the same node. This is mostly (if not entirely) an issue with long lines since they can be driven by multiple sources. Other than checking the closure of wires that can be reached by non PIP connections or forcing a route to include all wires that can be reached by these connections, I see no other way around the issue. I agree that it would be a major improvement to use a node representation instead of the current wire representation.

@GTRI-nathan
Copy link
Contributor

Thanks for clarifying!

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

No branches or pull requests

3 participants