Video and Vision Processing Suite Intel® FPGA IP User Guide

ID 683329
Date 7/08/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

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. Tone Mapping Operator Intel® FPGA IP 43. Test Pattern Generator Intel® FPGA IP 44. Unsharp Mask Intel® FPGA IP 45. Video and Vision Monitor Intel FPGA IP 46. Video Frame Buffer Intel® FPGA IP 47. Video Frame Reader Intel FPGA IP 48. Video Frame Writer Intel FPGA IP 49. Video Streaming FIFO Intel® FPGA IP 50. Video Timing Generator Intel® FPGA IP 51. Vignette Correction Intel® FPGA IP 52. Warp Intel® FPGA IP 53. White Balance Correction Intel® FPGA IP 54. White Balance Statistics Intel® FPGA IP 55. Design Security 56. Document Revision History for Video and Vision Processing Suite User Guide

50.4. Video Timing Generator IP Interfaces

The IP has one video output interface. You can configure the video output interface at build time to be either full-raster or Intel legacy clocked video interface. The IP has one optional processor interface.

The processor interface is asynchronous to the video output interface. The video clock can be unstable when you select a new standard, which can cause unreliable behavior if you use it for the processor interface.

The Intel FPGA streaming video full-raster protocol is compatible with AMBA AXI4-Stream interfaces to connect components that exchange video data. The protocols allow interfaces to Intel FPGA video IPs or other AXI4-Stream compliant third-party video IPs.

The video clock and processor clock are asynchronous to each other. Internally, the Video Timing Generator IP includes clock domain crossing (CDC) circuits for both single bit and data bus signal cases, which allows safe data exchange between the two asynchronous clock domains. The Video Timing Generator IP also includes an embedded entity .sdc file, which provides all the necessary information to the Intel Quartus Timing Analyzer. For system integration, when you instantiate the Video Timing Generator IP in a design, the only constraints required are:

  • Clock frequency constraints for the video clock (vid_clock_clk)
  • Clock frequency constraints for the processor clock (cpu_clock_clk)
Table 977.  Video Timing Generator output video interfaces
Signal name Direction Width Description
Clocks and resets
vid_clock_clk In 1 Output AXI4-S full-raster processing clock
vid_reset_reset in 1 Output AXI4-S full-raster processing reset
cpu_clock_clk in 1

Processor interface processing clock

cpu_reset_reset in 1

Processor interface processing reset

Control Interface

This interface is only available if you turn on Memory-Mapped Control Interface.

av_mm_cpu_agent_address Input 7 Control agent port Avalon memory-mapped address bus. Specifies a word offset into the slave address space.
av_mm_cpu_agent_read Input 1 Control agent port Avalon memory-mapped read signal. When you assert this signal, the control port drives new data onto the read data bus.
av_mm_cpu_agent_read_data_valid Output 1 Control agent port Avalon memory-mapped read data valid signal. The IP asserts this signal on the same clock cycle when the read data is valid.
av_mm_cpu_agent_readdata Output 32 Control agent port Avalon memory-mapped read data bus. These output lines are used for read transfers
av_mm_cpu_agent_waitrequest Output 1 Control agent port Avalon memory-mapped wait request bus. This signal indicates that the agent is stalling the master transaction.
av_mm_cpu_agent_write Input 1 Control agent port Avalon memory-mapped write signal. When you assert this signal, the control port accepts new data from the write data bus.
av_mm_cpu_agent_writedata Input 32 Control agent port Avalon memory-mapped write data bus. These input lines are used for writing transfers.
av_mm_cpu_agent_byteenable Input 4 Control agent port Avalon memory-mapped byteenable bus. These lines indicate which bytes are selected for write and read transactions.

Intel FPGA streaming video interfaces

axi4s_fr_vid_out_tdata out 156 157 AXI4-S data out
axi4s_fr_vid_out_tvalid out 1 AXI4-S data valid
axi4s_fr_vid_out_tuser[0] out 1 AXI4-S start of video frame
axi4s_fr_vid_out_tlast out 1 AXI4-S end of packet
axi4s_fr_vid_out_tready in 1 AXI4-S data ready

Intel FPGA CV-Lite Streaming Video Interface

This interface is only available if you set Output Type to CV on the Build Parameters tab

PIP = pixels in parallel

cv_vid_out_h Output PIP When 1, the video is in a horizontal blanking.
cv_vid_out_v Output PIP When 1, the video is in a vertical blanking.
cv_vid_out_h_sync Output PIP When 1, the video is in a horizontal synchronization period.
cv_vid_out_v_sync Output PIP When 1, the video is in a vertical synchronization period.
cv_vid_out_f Output PIP When 1, the video is interlaced and in field 1. When 0, the video is either progressive or interlaced and in field 0.
cv_vid_out_active Output PIP When asserted, the video is in an active picture period (not horizontal or vertical blanking). You must drive this signal for correct operation of the IP.
cv_vid_out_data Output 158 Pixel data

Internal Timing Generator Conduits

frame_start Input 1

The internal video timing generator uses this signal to indicate the start of frame. Depending on the generator Frame lock mode, the IP ignores the frame_start signal i.e., freerunning (default configuration)

If you select Pulse for Frame start signal type

, the IP processes the frame start input signal as a pulse. The IP uses the rising edge of the signal to indicate the start of a frame.

If you select Toggle for Frame start signal type, the IP processes the frame start input signal as a toggle and the IP uses both edges of the signal to indicate the start of a frame.

Pulse Output 1

The IP can produce up to 8 additional outputs that each provide a pulse or a toggle once per frame.

You can program these general-purpose signals to occur at any fixed point in the raster. Separate parameters specify the first and last pixel of the pulse.

If the start and end pixels are the same, the IP generates a single clock pulse. If the end pixel is outside the defined raster, the signal becomes a once-per-frame toggle.

156

The equation gives all full-raster tdata widths:

max (floor((( bits per color sample x (number of color planes+1) x pixels in parallel) + 7) / 8) x 8, 16)

157

The equation gives all tdata video active only sizes:

max (floor((( bits per color sample x number of color planes x pixels in parallel) + 7) / 8) x 8, 16)

N = ceil (tdata width / 8)

158

The equation gives the data width:

width = (bits per color sample X number of color planes X pixels in parallel)