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

21.4. Clocked Video Output IP Interfaces

The IP has up to three video input interfaces:

  • An AXI4-S video input for the primary pixel data input, axi4s_vid_in
  • An optional AXI4-S video Input for the test pattern generator pixel data input, axi4s_tpg_in
  • An optional AXI4-S full-raster input for the real-time video raster data, axi4s_fr_timing_in

The IP has one video output interface, an AXI4-S full-raster bus, axi4s_fr_vid_out

The IP has one status video interface, vid_status.

The IP has one optional CPU interface, av_mm_cpu_agent.

The IP has one optional TPG status interface, tpg_status.

The IP has nine optional internal video timing generators, frame_start and pulse_0 to pulse_7.

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

The proprietary Intel FPGA streaming 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. Table 4 provides a description for each of the conduits on the output and input interfaces.

The video clock and CPU clock are assumed to be asynchronous to each other. Internally, the Clocked Video Output 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 Clocked Video Output IP also includes an embedded entity .sdc file, which provides all the necessary information to the Timing Analyzer. For system integration, when you instantiate the Clocked Video Output IP in a design, the only constraints required are:

  • Clock frequency constraints for the timing reference input clock (fr_clock_clk)
  • Clock frequency constraints for the primary video clock (vid_clock_clk)
  • Clock frequency constraints for the test pattern input video clock (tpg_clock_clk)
  • Clock frequency constraints for the CPU clock (cpu_clock_clk)
Table 325.  Clocked Video Output IP InterfacesThe table shows a description for each of the conduits on the output and input interfaces
Signal name Direction Width Description
Clocks and resets
vid_clock_clk Input 1 Input AXI4-S video main video input processing clock
vid_reset_reset Input 1 Input AXI4-S video main video processing reset
tpg_clock_clk Input 1 Input AXI4-S video test pattern input processing clock
tpg_reset_reset Input 1 Input AXI4-S video test pattern input processing reset
fr_clock_clk Input 1 Processing clock for input and output AXI4-S full-raster interfaces.
fr_reset_reset Input 1 Reset for input and output AXI4-S full-raster interfaces.
cpu_clock_clk Input 1

Processor interface processing clock

cpu_reset_reset Input 1

ProcessoriInterface processing reset

Control Interface

This interface is only available if you turn on CPU support.

av_mm_cpu_agent_address Input 7 Control agent port Avalon memory-mapped address bus. Specifies a word offset into the agent 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 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 for writing transfers.
av_mm_cpu_agent_byteenable Input 4 Control agent port Avalon memory-mapped byte enable bus. These lines indicate which bytes are selected for write and read transactions.
Intel FPGA streaming video interfaces
axi4s_fr_vid_out_tdata Output 62 63 64 AXI4-S full-raster data out
axi4s_fr_vid_out_tvalid Output 1 AXI4-S data valid
axi4s_fr_vid_out_tuser[0] Output 1 AXI4-S start of video frame
axi4s_fr_vid_out_tlast Output 1 AXI4-S end of packet
axi4s_fr_vid_out_tready Input 1 AXI4-S data ready
axi4s_fr_timing_in_tdata Input 62 63 64 AXI4-S full-raster timing data in
axi4s_fr_timing_in_tvalid Input 1 AXI4-S data valid
axi4s_fr_timing_in_tuser[0] Input 1 AXI4-S start of video frame
axi4s_fr_timing_in_tlast Input 1 AXI4-S end of packet
axi4s_fr_timing_in_tready Output 1 AXI4-S data ready
axi4s_vid_in_tdata Output 62 63 64 AXI4-S data in
axi4s_vid_in_tvalid Output 1 AXI4-S data valid
axi4s_vid_in_tuser[0] Output 1 AXI4-S start of video frame
axi4s_vid_in_tlast Output 1 AXI4-S end of packet
axi4s_vid_in_tready Input 1 AXI4-S data ready
axi4s_tpg_in_tdata Output 62 63 64 AXI4-S data in
axi4s_tpg_in_tvalid Output 1 AXI4-S data valid
axi4s_tpg_in_tuser[0] Output 1 AXI4-S start of video frame
axi4s_tpg_in_tlast Output 1 AXI4-S end of packet
axi4s_tpg_in_tready Input 1 AXI4-S data ready
Video Status
vid_locked Output 1

When ‘1’, the IP locks the video input with the timing reference.

When ‘0’, the IP waits to lock the video input and the timing reference.

vid_is_full Output 1

When ‘1’, the IP detects the video input is the full variant of the Intel FPGA streaming video protocol.

When ‘0’, the IP detects the video input is the lite variant of the Intel FPGA streaming video protocol.

vid_stall_error Output 1

When ‘1’, the video input stalls (drops its tValid) when the timing reference requires active pixels.

When ‘0’, the video input supplies pixels at the required pixel rate.

vid_size_missmatch Output 1

When ‘1’, the active dimensions of the video input do not match the active dimensions of the timing reference.

When ‘0’, the active dimensions of the video input and the timing reference match.

TPG status

This interface is only available if you select True for Internal Timing Generator.

tpg_locked Output 1

When ‘1’, the test pattern input locks with the timing reference.

When ‘0’, the IP is waits to lock the test pattern input and the timing reference.

tpg_is_full Output 1

When ‘1’, the IP detects the test pattern input is the full variant of the Intel FPGA streaming video protocol.

When ‘0’, the IP has detects the test pattern input is the lite variant of the Intel FPGA streaming video protocol..

tpg_stall_error Output 1

When ‘1’, the test pattern input stalls (drops its TValid) when the timing reference requires active pixels.

When ‘0’, the test pattern input supplies pixels at the required pixel rate.

tpg_size_missmatch Output 1

When ‘1’, the active dimensions of the test pattern input do not match the active dimensions of the timing reference.

When ‘0’, the active dimensions of the test pattern input and the timing reference match.

Internal Timing Generator Conduits

This interface is only available if you select True for Internal Timing Generator.

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.

62

The equation gives all full-raster tdata widths:

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

63

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)

64

The equation gives all tuser widths in these interfaces

N = ceil (tdata width / 8)