Forum Discussion
Altera_Forum
Honored Contributor
8 years ago --- Quote Start --- Something is messed up with your HPS peripheral I/O settings. Go back to the HPS parameter editor in Qsys and check the I/O sets you are using for the particular peripherals you want to use. Look and see if you see any warnings in the parameter editor that might help figure this out. Also, have you made I/O connections in the Pin Planner? You say you are not using those names, but then what are you naming everything? Are you assigning other signals in the design to I/O pins reserved for the HPS? --- Quote End --- For soc_system_hps_hps_io_border.sdc, the problems seems to be that I didn't name my pins the way Qsys expected me to. So it generated, for instance,set_false_path -from * -to [get_ports hps_io_hps_io_inst_emac1_TXD0] Whereas I named that pin more rationally to hps_emac1_TXD0. My short term fix was to edit that SDC file after each Qsys generate, swapping "hps_io_hps_io" for simply "hps", and getting rid of "_inst_". That fixes it, since then the SDC file matches my pin names. The problem is that it's another step I need to take after running Qsys generate (even if it's scripted). There are other ways I could handle it too, all with varying pluses and minuses. Like, I could rename all my pins to match the ones Qsys expects. That would really be the solution, even if I'd have to live with all those hideous pin names. I'll probably give in and do that eventually. Since the interior workings of the HPS are rather opaque from a Qsys standpoint, I don't believe there's any straightforward way to change the names of the various interfaces it uses when exporting its I/O. So I'm pretty much left with taking what it gives and making the best of it. Soc_system_hps_fpga_interfaces.sdc remains a mystery. The comment at the top of the file says # These false paths fix a problem with the HPS timing library for the F2SDRAM bridge. # This issue only affects timing analysis. There are no functionality problems with the bridge Sounds fine, but none of the set_false_path assignments ever match anything in my design. For a while I was just commenting out all the lines in the file until I realized that I could more easily nuke all the warnings withe message suppression manager, using the file name as keyword. Solved.