SDI video output not working in CvP mode
We are trying to leverage the arria 10 CvP (Configuration Via Protocol) feature into the current project. So far we have followed the steps as per user guide ug_a10_cvp_prop.pdf
As part of the process, we are splitting the sof into periph.jic (for flash) and core.rbf (for Host). We have been successful programming both the files and configure the FPGA.
However, We are not getting image displayed on SDI output. We narrow down the issue to the block (video_output) which is responsible for displaying the SDI video.
It contains intel IP core and few VHDL/Verilog custom blocks. Below are the list of intel IP core used in the video_output block
- Transceiver Native PHY Intel Arria 10/Cyclone 10 FPGA IP
- fPLL Intel Arria 10/Cyclone 10 FPGA IP
- Transceiver PHY Reset Controller Intel FPGA IP
Note : When CvP is disabled video output block works just fine and we get the video through SDI output
Here are my thoughts :
- I suspect while splitting the sof into periph.jic and core.rbf some portion of the periph image is not correctly being created due to some wrong tool setting (Conflict with CvP settings)
- Intel IP or transceivers may be violating some power on timing condition when CvP is enable with specific FPGA initialization sequence (load Peripheral image from flash first and then host sends the core image).
Could anyone please share your thoughts and help us investigating/supporting this issue ?
I am monitoring the internals of the video_output block (related to intel IP). I will keep you posted with new updates.
Hi Chee pin and John
I followed the steps mentioned in section 7.5.2. Fractional PLL Recalibration of ug_arria10_xcvr_phy.pdf
I implemented the system console command sequence as below :
# Follow these steps to re calibrate the fPLL:
# Request user access to the internal configuration bus by writing 0x2 to offset address 0x0[7:0]
#::ist::write_tcvr_pll_reg 0x000 2
#Wait for reconfig_waitrequest to be deasserted (logic low) or wait until capability register of PreSICE Avalon memory-mapped interface control0x280[2]=0x0
#::ist::read_tcvr_pll_reg 0x280
#To calibrate the fPLL, Read-Modify-Write 0x1 to bit[1] of address 0x100 of the fPLL
#::ist::write_tcvr_pll_reg 0x100 2
#Release the internal configuration bus to PreSICE to perform recalibration by writing 0x1 to offset address 0x0[7:0]
#::ist::write_tcvr_pll_reg 0x000 1I do get the fPLL lock and SDI output is up and running successfully.
I really appreciate your suggestions
Regards,
Piyush,
Regards,
Piyush.