Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
21615 Discussions

Cyclone V, HPS SPI routing to FPGA pins

Altera_Forum
Honored Contributor II
4,014 Views

Hello everyone, 

 

I'm using the DE0-Nano Soc Board and tried to route the signals of the HPS SPI Master Peripheral to FPGA Pins. 

In Qsys i activated the SPI Master and set the pins to FPGA. In top_level entity they are connected to fpga pins. 

 

The problem is, that the Fitter isn't able to route the sclk signal to the fpga pin i have assigned. When i don't assign a pin, the fitter can place it to some pin locations.  

 

With assigned pins i get the following error messages. 

 

Error (175020): The Fitter cannot place logic auto-promoted clock driver that is part of Arria V/Cyclone V Hard Processor System soc_system_hps_0 in region (28, 8) to (68, 61), to which it is constrained, because there are no valid locations in the region for logic of this type. Info (14596): Information about the failing component(s): Info (175028): The auto-promoted clock driver name(s): soc_system:qsys_system|soc_system_hps_0:hps_0|soc_system_hps_0_fpga_interfaces:fpga_interfaces|spim0_sclk_out~CLKENA0 Error (16234): No legal location could be found out of 30 considered location(s). Reasons why each location could not be used are summarized below: Error (15123): The following auto-promoted clock driver locations cannot route to all the required pins Info (175027): Destination: pin fpga_spi0_sclk Info (175015): The I/O pad fpga_spi0_sclk is constrained to the location PIN_AE12 due to: User Location Constraints (PIN_AE12) Info (14709): The constrained I/O pad is contained within this pin Info (175029): 11 locations affected Info (175029): CLKCTRL_R0 Info (175029): CLKCTRL_R2 Info (175029): CLKCTRL_R4 Info (175029): CLKCTRL_R6 Info (175029): CLKCTRL_R8 Info (175029): CLKCTRL_R70 Info (175029): CLKCTRL_R72 Info (175029): CLKCTRL_R74 Info (175029): CLKCTRL_R76 Info (175029): CLKCTRL_R78 Info (175029): CLKCTRL_R80 Info (175013): The auto-promoted clock driver is constrained to the region (28, 8) to (68, 61) due to related logic Info (175015): The HPS_INTERFACE_PERIPHERAL_SPI_MASTER soc_system:qsys_system|soc_system_hps_0:hps_0|soc_system_hps_0_fpga_interfaces:fpga_interfaces|peripheral_spim0 is constrained to the location HPSINTERFACEPERIPHERALSPIMASTER_X32_Y44_N111 due to: User Location Constraints (HPSINTERFACEPERIPHERALSPIMASTER_X32_Y44_N111) Info (14709): The constrained HPS_INTERFACE_PERIPHERAL_SPI_MASTER drives this auto-promoted clock driver Error (175006): Could not find path between source HPS_INTERFACE_PERIPHERAL_SPI_MASTER and the auto-promoted clock driver Info (175026): Source: HPS_INTERFACE_PERIPHERAL_SPI_MASTER soc_system:qsys_system|soc_system_hps_0:hps_0|soc_system_hps_0_fpga_interfaces:fpga_interfaces|peripheral_spim0 Info (175015): The HPS_INTERFACE_PERIPHERAL_SPI_MASTER soc_system:qsys_system|soc_system_hps_0:hps_0|soc_system_hps_0_fpga_interfaces:fpga_interfaces|peripheral_spim0 is constrained to the location HPSINTERFACEPERIPHERALSPIMASTER_X32_Y44_N111 due to: User Location Constraints (HPSINTERFACEPERIPHERALSPIMASTER_X32_Y44_N111) Info (175021): The HPS_INTERFACE_PERIPHERAL_SPI_MASTER was placed in location HPSINTERFACEPERIPHERALSPIMASTER_X32_Y44_N111 Error (175022): The auto-promoted clock driver could not be placed in any location to satisfy its connectivity requirements Info (175029): 19 locations affected Info (175029): CLKCTRL_G12 Info (175029): CLKCTRL_G13 Info (175029): CLKCTRL_G14 Info (175029): CLKCTRL_G15 Info (175029): CLKCTRL_R1 Info (175029): CLKCTRL_R3 Info (175029): CLKCTRL_R5 Info (175029): CLKCTRL_R7 Info (175029): CLKCTRL_R9 Info (175029): CLKCTRL_G8 Info (175029): CLKCTRL_G9 Info (175029): CLKCTRL_G10 Info (175029): and 7 more locations not displayed  

 

I think that there are some restrictions which pins the peripherals of the hps can access in the fpga region, but i wasn't able to find something about it in the device handbook.  

It's also possible that i haven't the right settings in my project, so have sombody else succesfully placed the spi signals in the fpga region and can give me some tips? 

 

Best regards 

Bjoern
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
2,494 Views

I have send an Service Request to Altera and got an answer today. 

It seems to be a bug in the quartus software, and the workaround is described here: https://www.altera.com/support/support-resources/knowledge-base/solutions/rd10132014_244.html 

 

Maybe this solution helps someone else in the future.
0 Kudos
Altera_Forum
Honored Contributor II
2,494 Views

Hello Captain-Chaos, 

 

I'm facing the same problem while exporting the spi_clk hps signal to fpga and got this error. Did you managed to solve it? I used the workaround posted but the error is still there.
0 Kudos
Altera_Forum
Honored Contributor II
2,494 Views

 

--- Quote Start ---  

Hello Captain-Chaos, 

 

I'm facing the same problem while exporting the spi_clk hps signal to fpga and got this error. Did you managed to solve it? I used the workaround posted but the error is still there. 

--- Quote End ---  

 

 

Hey, 

 

in my Design the solution with an boolean combinational function works fine. Did you try this or the maual LUT instantiation? 

AN706 (https://www.altera.com/documentation/mwh1410561892049.html) describes the reqired steps to export the perihperals, have you checked that there is no fault in your design?
0 Kudos
Altera_Forum
Honored Contributor II
2,494 Views

Just had the same issue (w/ Q16.1) and that did the trick. Thanks for the heads-up on this.

0 Kudos
Reply