Forum Discussion

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

Programming HPS pins in Quartus II - Unused HPS Pins

Dear community,

On my PCB design, most of the HPS pins are unused - according to the pin connection guidelines, I should either 'Connect unused pins as defined in the Quartus II software' (for DDR3 related pins) or 'If unused, program it in Quartus as an input with a weak pull-up.'. However, I fail to do so with Quartus II.

While I'm perfectly able to program FPGA pins, I am stuck with the HPS pins.

How do I program HPS pins?

Also, when you go to

Quartus II software -> assignments -> settings -> devices -> unused pins.

Is this for all pins or just the FPGA pins?

Many thanks,

Adam

14 Replies

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

    --- Quote Start ---

    Sorry I must have got distracted and forgot to answer those. I'm looking at the design example that comes with the SoC EDS and I can see the pin settings for the HPS I/O in the assignment editor. It'll be rather limited but you can set options like the drive strength of the HPS I/O for example.

    --- Quote End ---

    Sorry I'm being stupid - but I just can't find it - I've searched the altera soc embedded design suite user guide and the cyclone v handbook but I didn't find anything that tells me how to set the drive strength for HPS I/Os...

    --- Quote Start ---

    There is a notion of pin muxes in the HPS that reside between HPS peripherals and the HPS I/O. So when you make selections of the peripherals in the HPS component and decide which pin set to use, files are generated that the bsp-editor pulls in to determine how your pin muxes should be setup to route the peripherals to their appropriate HPS I/O. The HPS I/O also have settings like input/output/bidirectional, drive strength, etc... which is determined by your peripheral routing selection as well as I/O constraints you set in Quartus. The I/O settings are also handed off to the bsp-editor so that when the bootloader is generated the correct I/O settings can be programmed into the I/O. Both of these are automated so you shouldn't have to worry about anything except selecting what peripherals and locations you want, generate and compile the hardware and then the bootloader generator (bsp-editor) will take it from there.

    --- Quote End ---

    Thanks BadOmen!
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    To set the HPS I/O drive strength you use the assignment editor (In Quartus). It's the same way as you set the drive strength for FPGA I/O.

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

    I'm having trouble getting my HPS I/O assignments to do anything. I am trying to change I2C1 from a 3.3V LVTTL to a 3.3V LVCMOS. I enter the assignment into quartus assignment editor. Looking at .fit and .pin reports, it appears like my assignment was honored. However after running Quartus full compilation, there are no changes made to the files in the hps_isw_handoff folder. What am I missing here?

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

    Those settings get buried in an I/O programming file that gets built into the preloader binary. So you shouldn't see source files change as a result of an I/O standard change since that information is in a separate binary file. I was told that binary programming file gets turned into a C array of values while the preloader is generated/build (not sure which but one of those steps does it) but it's literally just a list of values at that point and you won't know which value maps to what. If that file didn't change then it's possible that switching between 3.3V LVTTL to 3.3V LVCMOS has no effect on the programming file and therefore that C array doesn't change either.