Video and Image Processing Suite User Guide

ID 683416
Date 4/04/2022
Public
Document Table of Contents

A.3.5. c_av_st_video_source_sink_base

The declaration for the c_av_st_video_source_sink_base class:
class c_av_st_video_source_sink_base;
Table 99.  Method Calls for c_av_st_video_source_sink_base Class
Method Call Description
function new(mailbox #(c_av_st_video_item)m_vid); Constructor. The video source and sink classes transfer video objects through their mailboxes.
function void set_readiness_probability(int percentage);
function int get_readiness_probability();
function void set_long_delay_probability(real percentage);
function real get_long_delay_probability();
function void set_long_delay_duration_min_beats(int percentage);
function int get_long_delay_duration_min_beats();
function void set_long_delay_duration_max_beats(int percentage);
function int get_long_delay_duration_max_beats();
function void set_pixel_transport(t_pixel_format in_parallel);
function t_pixel_format get_pixel_transport();
function void set_name(string s);
function string get_name();
Table 100.  Members of c_av_st_video_source_sink_base Class
Member Description
mailbox # (c_av_st_video_item) m_video_items= new(0); The Avalon-ST video standard allows you to send symbols in serial or parallel format. You can set this control to either format.
t_pixel_format pixel_transport = parallel;
string name = "undefined";
int video_packets_sent = 0;
int control_packets_sent = 0;
int user_packets_sent = 0;
int readiness_probability = 80; Determines the probability of when a sink or source is ready to receive or send data in any given clock cycle, as manifested on the bus by the READY and VALID signals, respectively.
real long_delay_probability = 0.01;
  • The readiness_probability control provides a steady state readiness condition.
  • The long_delay_probability allows for the possibility of a much rarer and longer period of unreadiness, of durations of the order of the raster line period or even field period.
rand int long_delay_duration_min_beats= 100; This control sets the minimum duration (as measured in data beats of) a long delay.
Note: If pixel_transport = parallel than one data beats = one pixel = one clock cycle.
rand int long_delay_duration_max_beats = 1000; This control sets the maximum duration (as measured in data beats) of a long delay.
rand int long_delay_duration = 80; constraint c1 {long_delay_duration inside [long_delay_duration_min_beats: long_delay_duration_max_beats]};}