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

[prim_xilinx_pad_wrapper] Implement physical input disable using I/O buffers #23094

Open
andreaskurth opened this issue May 14, 2024 · 1 comment
Labels
Component:FPGA FPGA related issues
Milestone

Comments

@andreaskurth
Copy link
Contributor

andreaskurth commented May 14, 2024

prim_xilinx_pad_wrapper supports input disabling (since PR #23042) but currently implements it with a logic assignment. For bidirectional pads, there is an IOBUF_DCIEN primitive for pads in high-performance banks and an IOBUF_INTERMDISABLE primitive for pads in high-range banks, which both have an IBUFDISABLE input. To instantiate the correct primitive, prim_xilinx_pad_wrapper needs to know which bank the pad is connected to, and currently this information is not available to that module.

To resolve this issue, the information about the I/O bank of a pad needs to be passed to prim_xilinx_pad_wrapper (and for that, the information probably needs to move from SDC files to an Hjson), and then prim_xilinx_pad_wrapper needs to instantiate the correct primitive based on the I/O bank parameter.

Before doing this, we should check that the primitives really support the IOSTANDARDs we use (LVCMOS18 and LVCMOS33), because for input-only pads, there is an IBUF_IBUFDISABLE primitive, which does not support those IOSTANDARDs. Neither neither UG953 nor UG471 document this limitation, but when one instantiates IBUF_IBUFDISABLE without setting its IOSTANDARD parameter, Vivado throws the following error:

ibuf_IOSTANDARD_not_compatible_with_IBUFDISABLE: u_padring/gen_dio_pads[11].u_dio_pad/gen_xilinx.u_impl_xilinx/gen_input_only.u_ibuf is using input pin IBUFDISABLE which is not supported for IOSTANDARDs LVCMOS12,LVCMOS15,LVCMOS18,LVCMOS25,LVCMOS33,MOBILE_DDR,DIFF_MOBILE_DDR,LVDCI_18,LVDCI_15,LVDCI_DV2_18,LVDCI_DV2_15,PCI33_3,LVTTL

Note that this issue is specific to 7 Series devices, whereas issue #23095 is specific to UltraScale devices.

@andreaskurth andreaskurth added the Component:FPGA FPGA related issues label May 14, 2024
@andreaskurth andreaskurth added this to the Backlog milestone May 14, 2024
@andreaskurth
Copy link
Contributor Author

Putting into backlog until we see the need to implement this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component:FPGA FPGA related issues
Projects
None yet
Development

No branches or pull requests

1 participant