- •Contents
- •1. Video and Image Processing Suite Overview
- •Release Information
- •Device Family Support
- •Latency
- •In-System Performance and Resource Guidance
- •Stall Behavior and Error Recovery
- •2. Interfaces
- •Video Formats
- •Avalon-ST Video Protocol
- •Video Data Packets
- •Static Parameters of Video Data Packets
- •Control Data Packets
- •Ancillary Data Packets
- •User-Defined and Altera-Reserved Packets
- •Packet Propagation
- •Transmission of Avalon-ST Video Over Avalon-ST Interfaces
- •Packet Transfer Examples
- •Avalon-MM Slave Interfaces
- •Specification of the Type of Avalon-MM Slave Interfaces
- •Avalon-MM Master Interfaces
- •Specification of the Type of Avalon-MM Master Interfaces
- •Buffering of Non-Image Data Packets in Memory
- •3. Getting Started
- •IP Catalog and Parameter Editor
- •Specifying IP Core Parameters and Options
- •Installing and Licensing IP Cores
- •OpenCore Plus IP Evaluation
- •4. Clocked Video Interface IP Cores
- •Control Port
- •Clocked Video Input Format Detection
- •Interrupts
- •Clocked Video Output Video Modes
- •Interrupts
- •Generator Lock
- •Underflow and Overflow
- •Timing Constraints
- •Handling Ancillary Packets
- •Modules for Clocked Video Input II IP Core
- •Clocked Video Interface Parameter Settings
- •Clocked Video Interface Signals
- •Clocked Video Interface Control Registers
- •5. 2D FIR Filter IP Core
- •Calculation Precision
- •Coefficient Precision
- •Result to Output Data Type Conversion
- •2D FIR IP Core Parameter Settings
- •2D FIR Filter Signals
- •2D FIR Filter Control Registers
- •6. Video Mixing IP Cores
- •Alpha Blending
- •Video Mixing Parameter Settings
- •Video Mixing Signals
- •Video Mixing Control Registers
- •7. Chroma Resampler IP Core
- •Horizontal Resampling (4:2:2)
- •Vertical Resampling (4:2:0)
- •Chroma Resampler Parameter Settings
- •Chroma Resampler Signals
- •8. Video Clipping IP Cores
- •Video Clipping Parameter Settings
- •Video Clipping Signals
- •Video Clipping Control Registers
- •9. Color Plane Sequencer IP Core
- •Combining Color Patterns
- •Rearranging Color Patterns
- •Splitting and Duplicating
- •Subsampled Data
- •Color Plane Sequencer Parameter Settings
- •Color Plane Sequencer Signals
- •10. Color Space Conversion IP Cores
- •Input and Output Data Types
- •Color Space Conversion
- •Result of Output Data Type Conversion
- •Color Space Conversion Parameter Settings
- •Color Space Conversion Signals
- •Color Space Conversion Control Registers
- •11. Control Synchronizer IP Core
- •Using the Control Synchronizer IP Core
- •Control Synchronizer Parameter Settings
- •Control Synchronizer Signals
- •Control Synchronizer Control Registers
- •12. Deinterlacing IP Cores
- •Deinterlacing Methods
- •Bob with Scanline Duplication
- •Bob with Scanline Interpolation
- •Weave
- •Motion-Adaptive
- •Sobel-Based HQ Mode
- •Pass-Through Mode for Progressive Frames
- •Frame Buffering
- •Frame Rate Conversion
- •Bandwidth Requirement Calculations for 10-bit YCbCr Video
- •Behavior When Unexpected Fields are Received
- •Handling of Avalon-ST Video Control Packets
- •Deinterlacing Parameter Settings
- •Deinterlacing Signals
- •Deinterlacing Control Registers
- •Design Guidelines for Broadcast Deinterlacer IP Core
- •13. Frame Reader IP Core
- •Single-Cycle Color Patterns
- •Frame Reader Output Pattern and Memory Organization
- •Frame Reader Parameter Settings
- •Frame Reader Signals
- •Frame Reader Control Registers
- •14. Frame Buffer IP Cores
- •Double Buffering
- •Triple Buffering
- •Locked Frame Rate Conversion
- •Handling of Avalon-ST Video Control Packets
- •Color Format
- •Frame Buffer Parameter Settings
- •Frame Buffer Signals
- •Frame Buffer Control Registers
- •15. Gamma Corrector IP Core
- •Gamma Corrector Parameter Settings
- •Gamma Corrector Signals
- •Gamma Corrector Control Registers
- •16. Interlacer IP Core
- •Interlacer Parameter Settings
- •Interlacer Signals
- •Interlacer Control Registers
- •17. Scaler II IP Core
- •Nearest Neighbor Algorithm
- •Bilinear Algorithm
- •Bilinear Algorithmic Description
- •Polyphase and Bicubic Algorithm
- •Double-Buffering
- •Polyphase Algorithmic Description
- •Choosing and Loading Coefficients
- •Edge-Adaptive Scaling Algorithm
- •Scaler II Parameter Settings
- •Scaler II Signals
- •Scaler II Control Registers
- •18. Video Switching IP Cores
- •Mixer Layer Switching
- •Video Switching Parameter Settings
- •Video Switching Signals
- •Video Switching Control Registers
- •19. Test Pattern Generator IP Cores
- •Test Pattern
- •Generation of Avalon-ST Video Control Packets and Run-Time Control
- •Test Pattern Generator Parameter Settings
- •Test Pattern Generator Signals
- •Test Pattern Generator Control Registers
- •20. Trace System IP Core
- •Trace System Parameter Settings
- •Trace System Signals
- •Operating the Trace System from System Console
- •Loading the Project and Connecting to the Hardware
- •Trace Within System Console
- •TCL Shell Commands
- •21. Avalon-ST Video Monitor IP Core
- •Packet Visualization
- •Monitor Settings
- •Avalon-ST Video Monitor Parameter Settings
- •Avalon-ST Video Monitor Signals
- •Avalon-ST Video Monitor Control Registers
- •Avalon-ST Video Class Library
- •Running the Tests
- •Video File Reader Test
- •Example Test Environment
- •Video Field Life Cycle
- •Constrained Random Test
- •Complete Class Reference
- •c_av_st_video_control
- •c_av_st_video_data
- •c_av_st_video_file_io
- •c_av_st_video_item
- •c_av_st_video_source_sink_base
- •c_av_st_video_sink_bfm_’SINK
- •c_av_st_video_source_bfm_’SOURCE
- •c_av_st_video_user_packet
- •c_pixel
- •Raw Video Data Format
- •Cadence Detection and Reverse Pulldown in the Deinterlacer II IP Core
- •Document Revision History
- •How to Contact Altera
UG-VIPSUITE |
|
c_av_st_video_item |
A-23 |
|
2015.01.23 |
|
|||
|
|
|
||
|
|
|
|
|
|
Member |
|
Description |
|
|
|
|
|
|
|
rand t_packet_control send_garbage_after_ |
|
— |
|
|
control_packets = off; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rand int early_eop_packet_length = 20; |
|
constraint early_eop_length { early_ |
|
|
|
|
eop_packet_length dist {1:= 10, |
|
|
|
|
[2:image_height*image_width-1]:/90}; |
|
|
|
|
early_eop_packet_length inside |
|
|
|
|
{[1:image_height*image_width]}; } |
|
|
|
|
|
|
|
rand int late_eop_packet_length = 20; |
|
constraint late_eop_length { late_eop_ |
|
|
|
|
packet_length inside {[1:100]}; } |
|
|
|
|
|
|
c_av_st_video_item
The declaration for the c_av_st_video_item class:
class c_av_st_video_item;
Table A-10: Method Calls for c_av_st_video_item Class
Method Call |
|
|
Description |
|
|
|
|
function new(); |
|
Constructor |
|
|
|
|
|
function void copy (c_av_st_video_item c); |
|
Sets this.packet_type to match that of c. |
|
|
|
|
|
function void set_packet_type (t_packet_types |
|
|
— |
ptype); |
|
|
|
|
|
|
|
|
|
|
|
function t_packet_typesget_packet_type(); |
|
|
— |
|
|
|
|
Table A-11: Members of c_av_st_video_item Class |
|
|
|
|
|
|
|
Member |
|
|
Description |
|
|
|
|
t_packet_types packet_type; |
|
Packet_type must be one of the following: |
|
|
|
• |
video_packet |
|
|
• |
control_packet |
|
|
• |
user_packet |
|
|
• |
generic_packet |
|
|
• |
undefined |
|
|
|
|
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;
Avalon-ST Video Verification IP Suite |
Altera Corporation |
|
|
Send Feedback
A-24 |
c_av_st_video_source_sink_base |
|
UG-VIPSUITE |
|||
2015.01.23 |
||||||
|
|
|
||||
|
Table A-12: Method Calls for c_av_st_video_source_sink_base Class |
|||||
|
|
|
|
|
|
|
|
|
Method Call |
|
Description |
|
|
|
|
|
|
|
|
|
|
|
function new(mailbox #(c_av_st_video_item)m_ |
|
Constructor. The video source and sink classes |
||
|
|
vid); |
|
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 A-13: Members of c_av_st_video_source_sink_base Class |
|||||
|
|
|
|
|
||
|
|
Member |
|
Description |
|
|
|
|
|
|
|
|
|
|
|
mailbox # (c_av_st_video_item) m_video_items= |
|
The Avalon-ST video standard allows you to |
||
|
|
new(0); |
|
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; |
|
— |
||
|
|
|
|
|
|
Altera Corporation |
Avalon-ST Video Verification IP Suite |
|
|
Send Feedback
UG-VIPSUITE |
|
c_av_st_video_sink_bfm_’SINK |
A-25 |
|
2015.01.23 |
|
|||
|
|
|
||
|
|
|
|
|
|
Member |
|
Description |
|
|
|
|
|
|
|
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]};} |
|
|
|
|
|
|
c_av_st_video_sink_bfm_’SINK
The declaration for the c_av_st_video_sink_bfm_’SINK class:
‘define CLASSNAME c_av_st_video_sink_bfm_’SINK;
class ‘CLASSNAME extends c_av_st_video_source_sink_base;
Table A-14: Method Calls for c_av_st_video_sink_bfm_’SINK Class
This class does not have additional members to those of the base class.
Method Call |
|
Description |
|
|
|
function new(mailbox#(c_av_st_video_item)m_ |
|
Constructor. |
vid); |
|
|
|
|
|
task start; |
|
The start method simply waits until the reset |
|
|
of the Avalon-ST sink BFM goes inactive, then |
|
|
calls the receive_video()task. |
|
|
|
Avalon-ST Video Verification IP Suite |
Altera Corporation |
|
|
Send Feedback
A-26 |
c_av_st_video_source_bfm_’SOURCE |
UG-VIPSUITE |
|
2015.01.23 |
|||
|
|
Method Call |
|
Description |
|
|
|
task receive_video; |
|
The receive_video task continually drives |
|
|
the Avalon-ST sink BFM’s ready signal in |
|
|
accordance with the probability settings in the |
|
|
base class. It also continually captures signal_ |
|
|
received_transaction events from the |
|
|
Avalon-ST sink BFM and uses the Avalon-ST |
|
|
sink BFM API to read bus data. |
|
|
Bus data is decoded according to the Avalon- |
|
|
ST video specification and data is packed into |
|
|
an object of the appropriate type (video, |
|
|
control or, user). The object is then put into |
|
|
the mailbox. |
|
|
|
c_av_st_video_source_bfm_’SOURCE
The declaration for the c_av_st_video_source_bfm_’SOURCE class:
‘define CLASSNAME c_av_st_video_source_bfm_’SOURCE
class ‘CLASSNAME extends c_av_st_video_source_sink_base;
Table A-15: Method Calls for c_av_st_video_source_bfm_’SOURCE Class
This class does not have additional members to those of the base class.
Method Call |
|
Description |
|
|
|
function new(mailbox#(c_av_st_video_item)m_ |
|
Constructor. |
vid) |
|
|
|
|
|
task start; |
|
The start method simply waits until the reset |
|
|
of the Avalon-ST source BFM goes inactive, |
|
|
then continually calls the send_video() task. |
|
|
|
task send_video; |
|
The send_video() task waits until a video |
|
|
item is put into the mailbox, then it drives the |
|
|
Avalon-ST sink BFM's API accordingly. |
|
|
The set_transaction_idles() call is used to |
|
|
set the valid signal in accordance with the |
|
|
probability settings in the base class. The |
|
|
mailbox object is categorized according to |
|
|
object type. |
|
|
Each object is presented to the bus according |
|
|
to the Avalon-ST Video specification and the |
|
|
setting of the pixel_transport control. |
|
|
|
Altera Corporation |
Avalon-ST Video Verification IP Suite |
|
|
Send Feedback