Hi there!
I have a (minimized) DCP where Vivado (I tested both 2025.1 and 2026.1 with identical behavior) and RapidWright disagree on the state of a Site PIP. Vivado says it's not used. RapidWright says it's used. Vivado is not quite sure whether its connected Site Pin is used.
Download, including Verilog Source and TCL used to build the Checkpoint
Vivado's UI
The F_O wire and Site Pin are used, FMUX wire and Site Pin are unused. The OUTMUXF Site PIP is unused.
In the Site Pin properties view, the connected Cell Pin is only listed on the FMUX pin.
Vivado TCL
puts "net to site pins: [get_site_pins -of_objects [get_nets o]]"
foreach sp [get_site_pins -of_objects [get_nets o]] { set net [get_nets -quiet -of_objects $sp]; puts "pin $sp to net: $net" }
puts "pip used: [get_property IS_USED [get_site_pips -of_objects [get_sites SLICE_X26Y190] SLICE_X26Y190/OUTMUXF:D6]]"
Output:
net to site pins: SLICE_X86Y190/FMUX SLICE_X86Y190/F_O
pin SLICE_X86Y190/FMUX to net:
pin SLICE_X86Y190/F_O to net: o
pip used: 0
When querying the net for Site Pins, the FMUX Site Pin is listed. Querying that Site Pin for its net, it's not listed. The OUTMUXF Site PIP is unused.
RapidWright's view
Design d = Design.readCheckpoint(args[0]);
SiteInst siteInst = d.getSiteInstFromSiteName("SLICE_X86Y190");
Cell cell = siteInst.getCell("F6LUT");
Net currPortNet = d.getNet("o");
System.out.println("DesignTools.getAllRoutedSitePinsFromPhysicalPin(cell, currPortNet, physical) = " + DesignTools.getAllRoutedSitePinsFromPhysicalPin(cell, currPortNet, "O6"));
System.out.println("siteInst.getUsedSitePIPs() = " + siteInst.getUsedSitePIPs());
System.out.println("siteInst.getNetToSiteWiresMap().get(currPortNet) = " + siteInst.getNetToSiteWiresMap().get(currPortNet));
Output:
DesignTools.getAllRoutedSitePinsFromPhysicalPin(cell, currPortNet, physical) = [F_O, FMUX]
siteInst.getUsedSitePIPs() = [OUTMUXF.D6->>OUT]
siteInst.getNetToSiteWiresMap().get(currPortNet) = [FMUX, F_O]
Both F_O and FMUX Site Wires are used. The OUTMUXF Site PIP is enabled and connects the two wires.
DesignTools.getAllRoutedSitePinsFromPhysicalPin says that the Site Pin is used (That method just uses Site Wires and Site PIPs to compute used Site Pins).
I hope you can help me find out what is going on here.
Thanks,
Jakob
Hi there!
I have a (minimized) DCP where Vivado (I tested both 2025.1 and 2026.1 with identical behavior) and RapidWright disagree on the state of a Site PIP. Vivado says it's not used. RapidWright says it's used. Vivado is not quite sure whether its connected Site Pin is used.
Download, including Verilog Source and TCL used to build the Checkpoint
Vivado's UI
The
F_Owire and Site Pin are used,FMUXwire and Site Pin are unused. TheOUTMUXFSite PIP is unused.In the Site Pin properties view, the connected Cell Pin is only listed on the
FMUXpin.Vivado TCL
Output:
When querying the net for Site Pins, the
FMUXSite Pin is listed. Querying that Site Pin for its net, it's not listed. TheOUTMUXFSite PIP is unused.RapidWright's view
Output:
Both
F_OandFMUXSite Wires are used. TheOUTMUXFSite PIP is enabled and connects the two wires.DesignTools.getAllRoutedSitePinsFromPhysicalPinsays that the Site Pin is used (That method just uses Site Wires and Site PIPs to compute used Site Pins).I hope you can help me find out what is going on here.
Thanks,
Jakob