Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
11 years ago

I/O pins located in a block

Hello,

I have a very simple problem :

I would like to map some of the I/O pins of the FPGA, which are connected to a wide external bus (hsma_d[75..0]) on a commercial board, to an internal bus (AD_A[13..0], AD_B[13..0], ...)

thus, for an example, I connected just by mapping inside a .brd file, the data coming from the ADC bus on the HSMA connector to the DAC bus on the same HSMA connector (but other pins obviously). the project compilation is fine and I am able with a signal generator and a scope, to compare the signal sent to the ADC with the one obtained from the DAC.

thus the principle is OK.

then, I would like to hide this I/O pins mapping inside blocks to avoid to show all these pins at the top level, which is not a very interesting information.

then I create a block in which I make exactly the same mapping and I connect this block at the top level.

the advantage is, from the top level, one sees only boxes (ADC, DAC, ...) with a "clean" bus (only one wire) and not plenty of pins.

BUT in this case, Quartus is not able to properly connect the I/O pins declared inside the blocks despite the fact that the assignment editor seems happy (all status are OK).

then my questions are :

is it possible in Quartus to declare I/O pins of the FPGA directly inside blocks ?

and if yes, how to do that properly ?

thank you for your help

best regards

ronic

4 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I don't think this can be done. As far as I know all FPGA tools operate on the principle that everything at the top level goes to a pin, and everything that isn't doesn't go to a pin.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    I don't think this can be done. As far as I know all FPGA tools operate on the principle that everything at the top level goes to a pin, and everything that isn't doesn't go to a pin.

    --- Quote End ---

    thank for your reply.

    this is also the answer I received from colleagues.

    let's hope that this feature will be implemented one day...

    best regards
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Well there is at least one reason I can think of why it is not implemented. How does the compiler know that your clock or reset port in a component shouldn't be mapped to a pin? Changing those names is not always an option as you frequently use off-the-shelf code.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I believe PietervanderStar is right. In some cases, I would create a design and allow the Quartus II Fitter to find the optimal placement for certain pins. Without having the pin defined at the top level, Fitter will ignore them or probably trigger error/warning that a pin should be connected.