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

[Interchange] XC7 OBUFDS misses a PIP begin enabled #773

Closed
mkurc-ant opened this issue Jul 23, 2021 · 5 comments
Closed

[Interchange] XC7 OBUFDS misses a PIP begin enabled #773

mkurc-ant opened this issue Jul 23, 2021 · 5 comments

Comments

@mkurc-ant
Copy link
Contributor

In f4pga/prjxray#1705 for the OBUFDS test the Nextpnr flow completes. But when a DCP file is open in Vivado it shows a missing route for the net that connects both parts of the OBUFDS cell. There is a PIP (a pseudo one) that connects them. See the screenshot:

pip

@mkurc-ant
Copy link
Contributor Author

I have a suspicion what is happening: The device database defines macro expansion for:

  • OBUFTDS -> OBUFTDS_DUAL_BUF
  • OBUFDS -> OBUFDS_DUAL_BUF

But the latter is not defined in the macro library therefore nextpnr is not finding it. I've examined the output physical netlist and the OBUFTDS cell is not split there indeed. So this looks more like a RapidWright issue then.

@gatecat
Copy link
Member

gatecat commented Jul 23, 2021

have you tried with Xilinx/RapidWright#203 ?

@mkurc-ant
Copy link
Contributor Author

Yes I have (its merged). I double checked. The exceptionMap is there and contains correct entries for both OBUFTDS and OBUFDS.

But then there is the macro library which defines only one of the expanded macros (this comes from a device file converted to JSON):

{
  "name": "OBUFTDS_DUAL_BUF",
  "propMap": {
    "entries": []
  },
  "view": "netlist",
  "lib": "macros",
  "ports": [
    {
      "_id": 2633
    },
    {
      "_id": 2634
    },
    {
      "_id": 2635
    },
    {
      "_id": 2636
    }
  ],
  "_id": 3027
}

and there is no such entry for OBUFDS_DUAL_BUF

@gatecat
Copy link
Member

gatecat commented Jul 23, 2021

Yeah, it really does look like it's missing from RapidWright (whereas it does exist in Vivado). The data file hdi_primitives.edf.test which appears to contain all the other macro expansions is missing it too.

@mkurc-ant
Copy link
Contributor Author

This is now fixed by using a patched version of RapidWright and will be fixed in its next release. Closing.

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