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

Design.updateDesignWithCheckpointPlaceAndRoute does not seem to work for DCPs created with Vivado 2022.2 #601

Closed
jakobwenzel opened this issue Jan 13, 2023 · 1 comment

Comments

@jakobwenzel
Copy link
Contributor

Design.updateDesignWithCheckpointPlaceAndRoute is supposed to behave identically to Design.readCheckpoint, only with a user-supplied pre-parsed netlist.

For DCPs created with Vivado 2022.2, this is not the case. In a Design loaded with Design.updateDesignWithCheckpointPlaceAndRoute, the list of SiteInsts is always empty. (Probably more field are not loaded correctly. I did not investigate further)

Code to reproduce (collapsed) The main function takes DCP and matching EDIF as arguments.
public class CheckSiteInsts {

    private static List<String> getSiteInstsString(Design d) {
        return d.getSiteInsts().stream().map(SiteInst::getSite).map(Object::toString).collect(Collectors.toList());
    }
    public static void main(String[] args) {
        Design a = Design.readCheckpoint(args[0], args[1]);

        Design b = new Design(EDIFTools.readEdifFile(args[1]));
        b.updateDesignWithCheckpointPlaceAndRoute(args[0]);


        List<String> aSiteInsts = getSiteInstsString(a);
        List<String> bSiteInsts = getSiteInstsString(b);

        if (aSiteInsts.equals(bSiteInsts)) {
            System.out.println("ok");
        } else {
            System.out.println("fail");
        }

    }
}

Prints ok on expected list of SiteInsts, fail otherwise.

A minimal example DCP and EDIF can be found here: minimal_example.zip

@jakobwenzel
Copy link
Contributor Author

Closing, as #606 is merged now.

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

1 participant