Dave, you are correct concerning REFCLK. It was the key to getting Altera's example end port design working on the Cyclone V SoC dev kit board. For fun, here is list of things I did to get this example to work:
1) Removed R249, R251, R253 & R254. Installed R250 & R252 (zero ohm jumpers). This makes the fpga pcie_refclk_p input come from the pcie backplane connector instead of the onboard oscillator.
2) Purchased a PCIe 4x male-to-male crossover cable to connect the Cyclone V SoC board to a pc motherboard. My cable came from Adex Electronics (
www.adexelec.com), part number PE-FLEX4-CX-MM-15".
3) Used the ep_gen1x4_13_0_0_balanced design example found in the
c:\altera\13.0\kits\cycloneVSX_5csxfc6df31es_soc\examples\pcie\endport_example directory after installing the kit files (cycloneVSX_5csxfc6df31es_soc_v13.0.0.1.exe) downloaded from Altera's website.
4) Made the following changes to the c5SoC_EndPoint.qsf file:
a) Added the following IO Bank VCCIO assignments. When I first compiled this example, VCCIO for several banks did not match the board. These lines fix that problem. Maybe these assignments are not necessary, but they match the board and make me feel better.
set_global_assignment -name IOBANK_VCCIO 1.5V -section_id 3B
set_global_assignment -name IOBANK_VCCIO 1.5V -section_id 4A
set_global_assignment -name IOBANK_VCCIO 1.5V -section_id 6A
set_global_assignment -name IOBANK_VCCIO 1.5V -section_id 6B
set_global_assignment -name IOBANK_VCCIO 2.5V -section_id 3A
set_global_assignment -name IOBANK_VCCIO 2.5V -section_id 5A
set_global_assignment -name IOBANK_VCCIO 2.5V -section_id 5B
set_global_assignment -name IOBANK_VCCIO 2.5V -section_id 8A
set_global_assignment -name IOBANK_VCCIO 3.3V -section_id 7A
set_global_assignment -name IOBANK_VCCIO 3.3V -section_id 7B
set_global_assignment -name IOBANK_VCCIO 3.3V -section_id 7C
set_global_assignment -name IOBANK_VCCIO 3.3V -section_id 7D
b) I corrected the pin assignments for the user_led_fpga[3:1] pins, to be as follows:
set_location_assignment PIN_Y16 -to user_led_fpga[1]
set_location_assignment PIN_W15 -to user_led_fpga[2]
set_location_assignment PIN_AB17 -to user_led_fpga[3]
c) I changed the IO standard for the pcie_refclk input from "1.5V PCML" to "HCSL". I'm not sure this is necessary, but this is what the Cyclone V Hard IP PCIe User Guide says to do. My suspicion is that quartus ignores this assignment.
d) I changed the part number from "5CSXFC6D6F31C7" to "5CSXFC6D6F31C8ES". Quartus 13.0sp1 would not generate a programming file with the original "C7" part number. A message was generated indicated
specifications for this device are subject to change. no programming file will be generated. I find it interesting that the design meets timing for coreclkout (125 MHz) with the "C7" part number, but not the "8ES" part number.
I hope this information helps someone else trying to use the Cyclone V SoC Dev Kit as a PCIe End Port.
-kstolp