Article ID: 000085462 Content Type: Troubleshooting Last Reviewed: 09/11/2012

Why does the Quartus® II software give an error message "Can't pack non-peripheral register <name> to I/O pin <name> — too few peripheral buses" when the device does contain enough clock and peripheral resources for my design?

Environment

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Description For APEX devices, the Quartus II software can route clock signals to I/O cells using peripheral buses instead of other global resources. When these resources are used, it is possible that the Compiler may run out of peripheral buses for other functions such as clock enables or output enables.

To ensure that a signal that is used as an I/O cell clock is routed on a global clock network, make the assignment Global = on to it.

The algorithm that the Quartus II software uses to assign signals on global and peripheral resources in the APEX devices first checks if the user has assigned the global setting on any clock and places such a clock on one of the global networks. It then does I/O register packing during which if the software find a clock signal that has not yet been promoted to global, it will try to promote it to global by locking the signal to a GCLK pin. However, if the signal in question is already locked to ANY pin including a GCLK pin, this part of the code simply gives up on the global promotiong and use a peripheral resource instead. It is during this step that Quartus can place a clock that has been assigned to a GCLK pin to use a peripheral bus and thus use up a peripheral resource that is needed by another control signal. In the last step in global promotion, the Quartus II software promotes signals to global when possible, eg. when the signal is locked to a GCLK pin

In a case in which a clock signal is assigned to a GCLK pin without the "Global = on" assignment, the signal will not be promoted to use global resource in step 1. Instead, the signal would've been promoted to global at step 3). But in step 2), the software thinks it's locked to a particular pin and it needs to get to an IO register, so it is promoted to peripheral global instead regardless of which pin it is locked to.

Related Products

This article applies to 1 products

APEX™ 20KE