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

Add support for RapidWright #516

Open
tmichalak opened this issue Nov 10, 2022 · 2 comments
Open

Add support for RapidWright #516

tmichalak opened this issue Nov 10, 2022 · 2 comments

Comments

@tmichalak
Copy link
Collaborator

The target is to be able to measure the performance of various routing algorithms done with the help of RapidWright.
However, first we need to integrate RW with the fpga-tool-perf.

@tmichalak
Copy link
Collaborator Author

@clavin-xlnx could you please update the description and add more details and describe which algorithms you would like to add?

@clavin-xlnx
Copy link

RapidWright has a router called RWRoute. It only supports UltraScale+ devices and can be run in both timing-driven and non-timing-driven modes and depends on the design being fully placed (and intra-site nets are routed). From what I remember, nextpnr-interchange does not yet have the ability to output a placed (but not routed) design yet. So, to run RWRoute, the design would need to be unrouted first. For example, if a from nextpnr-interchange was placed and routed and saved as an Interchange fileset, RWRoute could be run with the following RapidWright code:

        EDIFNetlist netlist = LogNetlistReader.readLogNetlist(logNetlistFileName);
        Design design = PhysNetlistReader.readPhysNetlist(physNetlistFileName, netlist);

        // TODO - Remove once nextpnr can export placed-only design
        design.unrouteDesign();
        
        RWRoute.routeDesignFullNonTimingDriven(design);
        // Timing-driven option: RWRoute.routeDesignFullTimingDriven(design);

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

2 participants