Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21607 Discussions

how to bypass IO limit to get a utilization summary?

Altera_Forum
Honored Contributor II
3,347 Views

Hi, 

 

I wish to get a rough idea of how many registers and ALMs the design takes on Stratix V. 

It has passed the Analysis and Synthesis, yet in fitter it stopped with the following error: 

 

Error (169281): There are 3754 IO input pads in the design, but only 968 IO input pad locations available on the device. 

Error (169282): There are 4352 IO output pads in the design, but only 968 IO output pad locations available on the device. 

 

It's a design with large number of IOs and I don't want to add the shim at the moment, can anyone suggest a way to bypass the error, just to get a rough number? 

Without solving the error, the number of registers yield in fitter summary is unreasonably small.....I assume this has something to do with the IO problem. 

 

Thanks!!!!!!
0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
2,282 Views

Yes, a quick and dirty way is to create a new module which takes all, or just some, of your I/Os as inputs/outputs (for example, of some combinatorial operation), to reduce the number of ports which need to be mapped to available pins by the fitter. At the end, just look at the resource utilisation and subtract whatever is used by the "helper" module. Be aware however, that the real resource count depends also on routing and placement and you will not be able to get a perfectly accurate resource count using this method. The correct way is to use design partitions with virtual pins, to achieve the closest resemblance to the final fit/place of your logic without having the whole design in place - but this is too much to explain in a forum post. Quartus Handbook has all the details on how to do it if you are interested.

0 Kudos
Altera_Forum
Honored Contributor II
2,282 Views

There is such thing called "Virtual pin" in Quartus. Nice advantage on the Altera's side. This topic was already discussed here: http://www.alteraforum.com/forum/showthread.php?t=25464

0 Kudos
Altera_Forum
Honored Contributor II
2,282 Views

I've no experience with such a large design, but for smaller ones I make pins virtual by prepending 'v_' to all relevant pins and use the Assignment Editor to add a 'Virtual pin' assignment to 'v_*' pins. 

 

Don't create entities grouping I/O: the compiler will use depencies on the few pins that remain to to synthesize large parts of the design away. Virtual pins tell it not to have any assumptions about the signal on that pin.
0 Kudos
Altera_Forum
Honored Contributor II
2,282 Views

Virtual pins are the answer. 

The quick way to assign them all without any IO pins is just assign * to virtual pin.
0 Kudos
TRoa
New Contributor I
2,282 Views

And how to assign to virtual pin? The issue is I can not find this virtual pin option in there. Can anybody tell please. Thanks

0 Kudos
Reply