Forum Discussion

WShep1's avatar
WShep1
Icon for Contributor rankContributor
5 years ago
Solved

Can't instantiate GPIO Lite Intel

Hi,

I am trying to instantiate a DDR LVDS data receiver generated from the IP Catalog for a Max 10 FPGA. i am using the GPIO Lite Intel FPGA IP. The module definition in my system verilog top level design file is as follows:

wds_data_receive_lvds u20

)

.inclock (slvs_clk),

.dout (slvs_2bit_4chan_data_0), // 2bit output

.pad_in (slvs_chan_in_pad[0])

);

The signal "slvs_chan_in_pad[0]" is assigned in the Pin Planner as the positive input to a real lvds buffer. It is part of a 4 bit lvds interface ( input wire [3:0] slvs_chan_in_pad ).

When I try to compile the design, I get the error " 171000 Can't fit design in device" with no explaination of what the problem is.

Can anyone help me learn how to properly assign the lvds input pins to this GPIO Lite Intel FPGA DDR LVDS Receiver IP?

  • WShep1's avatar
    WShep1
    5 years ago

    Hello,

    I have checked the reference that you mentioned in the Max 10 GPIO User's Guide and can not find any way that I am not in compliance with the Specifications of the Max 10 GPIO. This is also substantiated by the fact that the design WORKS if I use the GPIO LVDS Receive Buffers and do the DDR function in logic. It just DOESN'T WORK when I use the GPIO LVDS DDR Receive Buffers.

    I am 100% sure that I have assigned the LVDS Device pins correctly and that the pins assigned to these LVDS Signals are actually LVDS Pin Pairs and are correct. If they were incorrect, why would they work in the one case, and not in the other case?????

    I am sorry that this is such a difficult problem, but I have recently checked the design's timing and my discrete logic implementation, even though it appears to work in the actual hardware, is not meeting timing constraints. Hence, I need the GPIO DDR Buffers to compile so that I can improve the timing performance.

    Thanks for your continuing support,

    Bill

18 Replies

  • AminT_Intel's avatar
    AminT_Intel
    Icon for Regular Contributor rankRegular Contributor

    Hello,

    Can you give us a sample with the same error so we can further investigate?

    Thank you.

    • AminT_Intel's avatar
      AminT_Intel
      Icon for Regular Contributor rankRegular Contributor

      Hello,

      Have you resolve your problem? Please let me know. I will have to close this case in 3 days if there is no further response.

      Thank you.

    • WShep1's avatar
      WShep1
      Icon for Contributor rankContributor

      Thank you for your response and I am sorry for the late reply. I have attached an archived project that shows the problem. In the "ZTest8_sensor_top.sv" top level design file, I have two different LVDS front ends instantiated and selected by the "ifdef" switch, "USEGPIOLITEDDR" found on line 362. One front end which is instantiated when "USEGPIOLITEDDR" is defined uses the GPIO Lite DDR. The other LVDS front end uses GPIO LVDS receivers and does the DDR function in logic. The second instantiation compiles and works while the first on will not compile and gives the following 4 errors:

      Error (15853): Input port I of I/O input buffer "wds_data_receive_lvds2:u203|altera_gpio_lite:wds_data_receive_lvds2_inst|altgpio_one_bit:gpio_one_bit.i_loop[0].altgpio_bit_i|diff_input_buf.diff_input_buf_without_nsleep.ibuf" must be driven by a top-level pin


      Error (15853): Input port I of I/O input buffer "wds_data_receive_lvds2:u202|altera_gpio_lite:wds_data_receive_lvds2_inst|altgpio_one_bit:gpio_one_bit.i_loop[0].altgpio_bit_i|diff_input_buf.diff_input_buf_without_nsleep.ibuf" must be driven by a top-level pin


      Error (15853): Input port I of I/O input buffer "wds_data_receive_lvds2:u201|altera_gpio_lite:wds_data_receive_lvds2_inst|altgpio_one_bit:gpio_one_bit.i_loop[0].altgpio_bit_i|diff_input_buf.diff_input_buf_without_nsleep.ibuf" must be driven by a top-level pin


      Error (15853): Input port I of I/O input buffer "wds_data_receive_lvds2:u200|altera_gpio_lite:wds_data_receive_lvds2_inst|altgpio_one_bit:gpio_one_bit.i_loop[0].altgpio_bit_i|diff_input_buf.diff_input_buf_without_nsleep.ibuf" must be driven by a top-level pin

      I am using Quartus 20.1 Lite

      Thanks in advance for your assistance with this problem.

      • AminT_Intel's avatar
        AminT_Intel
        Icon for Regular Contributor rankRegular Contributor

        Hello,

        I cannot see errors that you have mentioned in your sample design.

        Can I know which device are you using for your design and it's OPN? Have you used Quartus Standard version and see if you still get the same error?

        Thank you.