Video and Vision Processing Suite Intel® FPGA IP User Guide

ID 683329
Date 9/30/2024
Public
Document Table of Contents
1. About the Video and Vision Processing Suite 2. Getting Started with the Video and Vision Processing IPs 3. Video and Vision Processing IPs Functional Description 4. Video and Vision Processing IP Interfaces 5. Video and Vision Processing IP Registers 6. Video and Vision Processing IPs Software Programming Model 7. Protocol Converter Intel® FPGA IP 8. 1D LUT Intel® FPGA IP 9. 3D LUT Intel® FPGA IP 10. Adaptive Noise Reduction Intel® FPGA IP 11. Advanced Test Pattern Generator Intel® FPGA IP 12. AXI-Stream Broadcaster Intel® FPGA IP 13. Bits per Color Sample Adapter Intel® FPGA IP 14. Black Level Correction Intel® FPGA IP 15. Black Level Statistics Intel® FPGA IP 16. Chroma Key Intel® FPGA IP 17. Chroma Resampler Intel® FPGA IP 18. Clipper Intel® FPGA IP 19. Clocked Video Input Intel® FPGA IP 20. Clocked Video to Full-Raster Converter Intel® FPGA IP 21. Clocked Video Output Intel® FPGA IP 22. Color Plane Manager Intel® FPGA IP 23. Color Space Converter Intel® FPGA IP 24. Defective Pixel Correction Intel® FPGA IP 25. Deinterlacer Intel® FPGA IP 26. Demosaic Intel® FPGA IP 27. FIR Filter Intel® FPGA IP 28. Frame Cleaner Intel® FPGA IP 29. Full-Raster to Clocked Video Converter Intel® FPGA IP 30. Full-Raster to Streaming Converter Intel® FPGA IP 31. Genlock Controller Intel® FPGA IP 32. Generic Crosspoint Intel® FPGA IP 33. Genlock Signal Router Intel® FPGA IP 34. Guard Bands Intel® FPGA IP 35. Histogram Statistics Intel® FPGA IP 36. Interlacer Intel® FPGA IP 37. Mixer Intel® FPGA IP 38. Pixels in Parallel Converter Intel® FPGA IP 39. Scaler Intel® FPGA IP 40. Stream Cleaner Intel® FPGA IP 41. Switch Intel® FPGA IP 42. Text Box Intel® FPGA IP 43. Tone Mapping Operator Intel® FPGA IP 44. Test Pattern Generator Intel® FPGA IP 45. Unsharp Mask Intel® FPGA IP 46. Video and Vision Monitor Intel FPGA IP 47. Video Frame Buffer Intel® FPGA IP 48. Video Frame Reader Intel FPGA IP 49. Video Frame Writer Intel FPGA IP 50. Video Streaming FIFO Intel® FPGA IP 51. Video Timing Generator Intel® FPGA IP 52. Vignette Correction Intel® FPGA IP 53. Warp Intel® FPGA IP 54. White Balance Correction Intel® FPGA IP 55. White Balance Statistics Intel® FPGA IP 56. Design Security 57. Document Revision History for Video and Vision Processing Suite User Guide

53.3.2. Warp IP Interfaces

The Warp IP has four functional interfaces.

The functional interfaces are:

  • Intel FPGA video stream input interface
  • Intel FPGA video stream output interface
  • Avalon Memory-Mapped compatible Processor interface
  • Avalon Memory-Mapped compatible memory interface

Avalon Memory-Mapped Processor interface

The Warp IP control interface uses a 32bit Avalon Memory-Mapped interface to access control registers.

Table 1111.   Avalon Memory-Mapped Processor interface Signals
Signal name Direction Width Description
av_mm_control_agent_address Input 13 The byte address of the register being accessed.
av_mm_control_agent_write Input 1 Assert to indicate a write transfer.
av_mm_control_agent_byteenable Input 4 Enables one or more byte lanes during a write transfer.
av_mm_control_agent_writedata Input 32 Data for write transfers.
av_mm_control_agent_read Input 1 Assert to indicate a read transfer.
av_mm_control_agent_readdata Output 32 Data for read transfers.
av_mm_control_agent_readdatavalid Output 1 Asserted by the IP to indicate valid read data.
av_mm_control_agent_waitrequest Output 1 Asserted by the IP to indicate that the host must wait to complete the transfer.

Avalon Memory-Mapped Memory interface

The Warp IP memory interface uses a 512-bit Avalon Memory-Mapped interface to access external memory.

Signal name Direction Width Description
av_mm_memory_host_waitrequest Input 1 Asserted by the agent to indicate that the Warp IP must wait to complete the transfer.
av_mm_memory_host_readdata Input 512 Data for read transfers.
av_mm_memory_host_readdatavalid Input 1 Assert to indicate valid read data.
av_mm_memory_host_response Input 2 The response status of the agent.
av_mm_memory_host_burstcount Output 4 Indicates the number of transfers in each burst.
av_mm_memory_host_writedata Output 512 Data for write transfers.
av_mm_memory_host_address Output 32 The byte address of the memory location being accessed.
av_mm_memory_host_write Output 1 Asserted to indicate a write transfer.
av_mm_memory_host_read Output 1 Asserted to indicate a read transfer.
av_mm_memory_host_byteenable Output 64 Enables one or more byte lanes during a write transfer.
av_mm_memory_host_debugaccess Output 1 Not used by the Warp IP.

Clocking

The Warp IP has five clock domains, each with a corresponding reset. For the Agilex™ 7 family, the video and processing clock domains can run up to 600 MHz. The CPU and memory interface clock domains can run up to 500 MHz. For all other device families the clock domains run up to 300 MHz.

Table 1112.  Clock Domains
Clock name Description
av_mm_control_agent_clock CPU interface clock domain
av_mm_memory_host_clock Memory interface clock domain
axi4s_vid_in_0_clock Input video stream clock domain
axi4s_vid_out_0_clock Output video stream clock domain
core_clock Processing engine clock domain

The CPU interface uses little bandwidth and does not impose a minimum clock frequency.

The video clock frequency depends on the video resolution and frame rate and the Warp IP’s number of pixels in parallel. For example, a 600 MHz clock at 1 pixel in parallel supports resolutions up to 3840x2160 at 60 fps. A 300 MHz clock at 2 pixels in parallel supports active video resolutions up to 3840x2160 at 60 fps. A 150 MHz clock at 1 pixel in parallel supports resolutions up to 1920x1080 at 60 fps.

All RTL-based blocks that transfer or receive data from a different clock domain include clock domain crossing (CDC) circuits for both, single bit and data bus signal cases. The CDC circuits safely allow exchange of data between the two asynchronous clock domains. The Warp IP includes an .sdc file to constrain these CDC paths.

When Use easy warp is on, Altera recommends that you connect the core_clock and av_mm_memory_host_clock inputs to the same clock source.

Resets

Table 1113.  Resets associated with clock domainsAll resets are synchronous active-high
Reset name Description
av_mm_control_agent_reset CPU interface clock domain reset.
av_mm_memory_host_reset Memory interface clock domain reset.
axi4s_vid_in_0_reset Input video stream clock domain reset.
axi4s_vid_out_0_reset Output video stream clock domain reset.
core_reset Processing engine(s) clock domain reset.

All the resets in the Warp IP are synchronous. Ensure that, when resetting the Warp IP, all clocks are active at the same time while you apply the resets.

Interrupts

Table 1114.  Interrupt Signals
Signal Description
interrupt_irq

Active high interrupt triggered at the start of each output frame sent from the axi4s_vid_out_0 interface. The signal is synchronous to the av_mm_control_agent_clock domain.

Enable tinterrupt_irq using the interrupt control register and clear using the interrupt status register.