20.5. Test Pattern Generator IP Software API
Register definition header file: intel_vvp_tpg_regs.h
Include file: intel_vvp_tpg.h
| Name | Description | 
|---|---|
| intel_vvp_tpg_init | Initialize the TPG instance | 
| Intel_vvp_core_* | .Accessors defined in Video and Vision Processing IPs Software Programming Model . Writable when Lite is on. Readable when Lite is off and Debug features is on. | 
| intel_vvp_tpg_get_lite_mode | Returns if Lite mode is on | 
| intel_vvp_tpg_get_debug_enabled | Returns if Lite mode is on | 
| intel_vvp_tpg_get_num_patterns | Returns the number of patterns available | 
| intel_vvp_tpg_ctrl_in_enabled | Returns if the control input is enabled | 
| intel_vvp_tpg_get_bits_per_sample | Returns the number of bits in a color sample | 
| intel_vvp_tpg_get_pixels_in_parallel | Returns the number of pixels processed in parallel per clock cycle | 
| intel_vvp_tpg_get_pattern_data | Returns pattern type and subsampling | 
| intel_vvp_tpg_is_running | Returns if the IP is producing data | 
| intel_vvp_tpg_get_commit_status | Returns if there are uncommitted writes | 
| intel_vvp_tpg_get_status | Reads the status register | 
| intel_vvp_tpg_enable | Starts/stops the IP | 
| intel_vvp_tpg_is_enabled | Returns if the IP is currently enabled | 
| intel_vvp_tpg_set_pattern | Select the current output pattern | 
| intel_vvp_tpg_get_pattern | Query the current output pattern | 
| intel_vvp_tpg_get_fields_since_sequence_reset | Returns the number of output fields generated since the sequence started | 
| intel_vvp_tpg_set_pre_field_ctrl_pkts | Number of packets from the control input to insert before each frame | 
| intel_vvp_tpg_get_pre_field_ctrl_pkts | Returns the number of control packets to insert before each frame | 
| intel_vvp_tpg_set_post_field_ctrl_pkts | Number of packets from the control input to insert after each frame | 
| intel_vvp_tpg_get_post_field_ctrl_pkts | Returns the number of control packets to insert after each frame | 
| intel_vvp_tpg_set_bars_type | Selects a type of color bars for the bar pattern | 
| intel_vvp_tpg_get_bars_type | Returns the current type of color bars | 
| intel_vvp_tpg_set_colors | Selects the color for the uniform pattern | 
| intel_vvp_tpg_get_colors | Returns the current uniform color | 
| intel_vvp_tpg_commit_writes | Commit all outstanding writes | 
enum eIntelVvpTpgPatternType
- Members
-  
     kIntelVvpTpgBarsPattern – Bar pattern kIntelVvpTpgUniformPattern – Uniform pattern kIntelVvpTpgPathologicalPattern – Pattern that stresses SDI receiving equipment kIntelVvpTpgInvalidPattern – Invalid pattern (used to indicate errors) 
- Description
-  
     Enumeration for the supported pattern types 
enum eIntelVvpTpgPatternColor
- Members
-  
     kIntelVvpTpgRgb – RGB 4:4:4 kIntelVvpTpgYcc444 – YCbCr/YUV 4:4:4 kIntelVvpTpgYcc422 – YCbCr/YUV 4:2:2 kIntelVvpTpgYcc420 – YCbCr/YUV 4:2:0 kIntelVvpTpgMono – Monochrome kIntelVvpTpgInvalidColor – Invalid colorspace/subsampling (used to indicate errors) 
- Description
-  
     Enumeration for the supported color spaces and subsampling 
enum eIntelVvpTpgBarsType
- Members
-  
     kIntelVvpTpgColorBars – Standard color bars kIntelVvpTpgGreyBars – Grey bars kIntelVvpTpgBlackWhiteBars– Alternating black and white bars kIntelVvpTpgInvalidBars – Invalid bar pattern (used to indicate errors) 
- Description
-  
     Enumeration for the supported color bar patterns 
struct intel_vvp_tpg_pattern
- Members
-  
     eIntelVvpTpgPatternType type – the configured type for the pattern eIntelVvpTpgPatternColor color – The configured color space for the pattern 
- Description
-  
     Structure used to return the compile-time configuration for a given test pattern 
intel_vvp_tpg_init
- Prototype
-  
     int intel_vvp_tpg_init(intel_vvp_tpg_instance *instance, intel_vvp_core_base base);
- Description
-  
     Initializes a TPG instance. The initialization stops early if the vendor ID or product ID read at the base address are not a match or if the register map version is not supported. Otherwise, the function proceeds to read and store the IP compile-time parameterization. The instance will not be fully initialized and should not be used further by the application if returning a non-zero error code. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure base – base address of the register map 
- Returns
-  
     kIntelVvpCoreOk (0) in case of success, a negative error code in case of error kIntelVvpCoreVidErr if the vendor id of the core is not the IntelFPGA vendor ID (0x6AF7). kIntelVvpCorePidErr if the product_id does not match with the TPG product ID kIntelVvpCoreInstanceErr if the instance is a null pointer kIntelVvpTpgRegMapVersionErr if the register map is not supported 
intel_vvp_tpg_get_lite_mode
- Prototype
-  
     bool intel_vvp_tpg_get_lite_mode(intel_vvp_tpg_instance *instance);
- Description
-  
     Returns the value of the LITE_MODE register. The instance must be a valid intel_vvp_tpg_instance fully initialized 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     true if the IP is parameterized in lite mode 
intel_vvp_tpg_get_debug_enabled
- Prototype
-  
     int intel_vvp_tpg_get_debug_enabled(intel_vvp_tpg_instance *instance);
- Description
-  
     Returns the value of the DEBUG_ENABLED register. The instance must be a valid intel_vvp_tpg_instance fully initialized. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     true if the IP is parameterized with debug features enabled 
intel_vvp_tpg_get_num_patterns
- Prototype
-  
     uint8_t intel_vvp_tpg_get_num_patterns(intel_vvp_tpg_instance* instance);
- Description
-  
     Returns the value of the NUM_PATTERNS register. The instance must be a valid intel_vvp_tpg_instance fully initialized. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     The number of patterns available 
intel_vvp_tpg_ctrl_in_enabled
- Prototype
-  
     bool intel_vvp_tpg_ctrl_in_enabled(intel_vvp_tpg_instance* instance); 
- Description
-  
     Returns the value of the CTRL_IN_ENABLED register. The instance must be a valid intel_vvp_tpg_instance fully initialized. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     true if the IP is configured with a control input to inserts control packets before and after each output fields 
intel_vvp_tpg_get_bits_per_sample
- Prototype
-  
     uint8_t intel_vvp_tpg_get_bits_per_sample(intel_vvp_tpg_instance* instance);
- Description
-  
     Returns the value of the BPS register. The instance must be a valid intel_vvp_tpg_instance fully initialized. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     The compile-time bps parameter 
intel_vvp_tpg_get_pixels_in_parallel
- Prototype
-  
     uint8_t intel_vvp_tpg_get_pixels_in_parallel(intel_vvp_tpg_instance* instance);
- Description
-  
     Returns the value of the PIP register. The instance must be a valid intel_vvp_tpg_instance fully initialized. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     The compile-time pixels in parallel parameter. This is the number of pixels generated per clock cycle. 
intel_vvp_tpg_get_pattern_data
- Prototype
-  
     int intel_vvp_tpg_get_pattern_data(intel_vvp_tpg_instance* instance, uint8_t pattern, intel_vvp_tpg_pattern* pattern_data);
- Description
-  
     Returns the pattern configuration for a given pattern. The instance must be a valid intel_vvp_tpg_instance fully initialized. The selected pattern must be valid and pattern_data must point to a valid memory location to store the result. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure pattern – a valid pattern in the range [0..intel_vvp_get_num_patterns(instance)-1] pattern_data – valid memory location for a intel_vvp_tpg_pattern structure 
- Returns
-  
     kIntelVvpCoreOk (0) in case of succes, a negative error code in case of error kIntelVvpCoreInstanceErr if the instance is null kIntelVvpTpgPatternNumErr if the pattern is out-of-range kIntelVvpCoreNullPtrErr if pattern_data is null Upon successful return, pattern_data is filled with the configuration for the selected pattern. This includes the pattern type (eIntelVvpTpgPatternType) and the colorspace/subsampling (eIntelVvpTpgPatternColor) 
intel_vvp_tpg_is_running
- Prototype
-  
     bool intel_vvp_tpg_is_running(intel_vvp_tpg_instance* instance);
- Description
-  
     Reads and returns the running bit of the STATUS register. The instance must be a valid intel_vvp_tpg_instance fully initialized. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     True is the TPG is currently generating an output field, false when disabled and/or between two fields 
intel_vvp_tpg_get_commit_status
- Prototype
-  
     bool intel_vvp_tpg_get_commit_status(intel_vvp_tpg_instance* instance);
- Description
-  
     Reads and returns the commit pending bit of the STATUS register. The instance must be a valid intel_vvp_tpg_instance fully initialized and configured in full mode. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     True is the TPG is configured in full mode and if the agent interface contains uncommitted writes. 
intel_vvp_tpg_get_status
- Prototype
-  
     uint8_t intel_vvp_tpg_get_status(intel_vvp_tpg_instance* instance);
- Description
-  
     Reads and returns the STATUS register. The instance must be a valid intel_vvp_tpg_instance fully initialized. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     The value read from the status register 
intel_vvp_tpg_enable
- Prototype
-  
     int intel_vvp_tpg_enable(intel_vvp_tpg_instance* instance, bool enable); 
- Description
-  
     Starts the TPG IP. The instance must be a valid intel_vvp_tpg_instance fully initialized. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure enable – true to start the IP and generate fields, false to stop/pause the IP after the current field 
- Returns
-  
     kIntelVvpCoreOk (0) in case of success, negative error code otherwise kIntelVvpCoreInstanceErr if the instance is null 
intel_vvp_tpg_is_enabled
- Prototype
-  
     bool intel_vvp_tpg_is_enabled(intel_vvp_tpg_instance* instance);
- Description
-  
     Returns if the TPG IP is started or paused. The instance must be a valid intel_vvp_tpg_instance fully initialized. The state cannot be checked if debug is not enabled 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     true is the IP is enabled and in debug mode, false otherwise 
intel_vvp_tpg_set_pattern
- Prototype
-  
     int intel_vvp_tpg_set_pattern(intel_vvp_tpg_instance* instance, uint8_t pattern);
- Description
-  
     Select/change the output test pattern. intel_vvp_tpg_instance must be valid and fully initialized. The pattern must be valid. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure pattern – A valid pattern configured at compile-time in the range [0..intel_vvp_get_num_patterns(instance)-1] 
- Returns
-  
     kIntelVvpCoreOk (0) in case of success, negative error code otherwise kIntelVvpCoreInstanceErr if the instance is null kIntelVvpTpgPatternNumErr if the pattern is out of range 
intel_vvp_tpg_get_pattern
- Prototype
-  
     uint8_t intel_vvp_tpg_get_pattern(intel_vvp_tpg_instance* instance);
- Description
-  
     Returns the selected test pattern. The instance must be a valid intel_vvp_tpg_instance fully initialized. The pattern cannot be retrieved if debug is not enabled 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     the current selected pattern or error code 255 it the instance is invalid or debug disabled 
intel_vvp_tpg_get_fields_since_sequence_reset
- Prototype
-  
     uint32_t intel_vvp_tpg_get_fields_since_sequence_reset(intel_vvp_tpg_instance* instance)
- Description
-  
     Read and returns the FIELD_COUNT register. The field counter is automatically reset when the pattern changes or the image specifications change (after a write to the image info area). The value may remain undefined after a reset until the first field of the new sequence is sent. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     the field counter value 
intel_vvp_tpg_set_pre_field_ctrl_pkts
- Prototype
-  
     int intel_vvp_tpg_set_pre_field_ctrl_pkts(intel_vvp_tpg_instance* instance, uint32_t pkt_count);
- Description
-  
     Sets the number of control packets to read and propagate from the ctrl_in input interface before each output field is generated and sent. The instance must be a valid intel_vvp_tpg_instance fully initialized, configured in full mode and the input control interface enabled 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure pkt_count – Number of control packets to propagate before each output field 
- Returns
-  
     kIntelVvpCoreOk (0) for success, negative error code otherwise 
intel_vvp_tpg_get_pre_field_ctrl_pkts
- Prototype
-  
     uint32_t intel_vvp_tpg_get_pre_field_ctrl_pkts(intel_vvp_tpg_instance* instance);
- Description
-  
     Reads and returns the number of control packets to read and propagate from the ctrl_in input interface before each output field is generated and sent. The instance must be a valid intel_vvp_tpg_instance fully initialized, configured in full mode with debug enabled and the input control interface enabled 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     Number of control packets to propagate before each output field, 0 is returned if the instance does not support the feature or if debug is disabled 
intel_vvp_tpg_set_post_field_ctrl_pkts
- Prototype
-  
     int intel_vvp_tpg_set_post_field_ctrl_pkts(intel_vvp_tpg_instance* instance, uint32_t pkt_count);
- Description
-  
     Sets the number of control packets to read and propagate from the ctrl_in input interface after each output field is generated and sent. The instance must be a valid intel_vvp_tpg_instance fully initialized, configured in full mode and the input control interface enabled 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure pkt_count – Number of control packets to propagate after each output field 
- Returns
-  
     kIntelVvpCoreOk (0) for success, negative error code otherwise 
intel_vvp_tpg_get_post_field_ctrl_pkts
- Prototype
-  
     uint32_t intel_vvp_tpg_get_post_field_ctrl_pkts(intel_vvp_tpg_instance* instance);
- Description
-  
     Reads and returns the number of control packets to read and propagate from the ctrl_in input interface after each output field is generated and sent. The instance must be a valid intel_vvp_tpg_instance fully initialized, configured in full mode with debug enabled and the input control interface enabled 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     Number of control packets to propagate after each output field, 0 is returned if the instance does not support the feature or if debug is disabled 
intel_vvp_tpg_set_bars_type
- Prototype
-  
     int intel_vvp_tpg_set_bars_type(intel_vvp_tpg_instance* instance, eIntelVvpTpgBarsType bar_type);
- Description
-  
     Selects the type of color bars (black/white, grey, color) for patterns of type kIntelVvpTpgBarsPattern 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure bar_type – the type of color bars 
- Returns
-  
     kIntelVvpCoreOk (0) for success, negative error code otherwise 
intel_vvp_tpg_get_bars_type
- Prototype
-  
     eIntelVvpTpgBarsType intel_vvp_tpg_set_bars_type(intel_vvp_tpg_instance* instance) 
- Description
-  
     Read and returns the selected bar type for patterns of type kIntelVvpTpgBarsPattern. Instance must be valid and debug enabled 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     the selected bar type, kIntelVvpTpgInvalidBars in case of error 
intel_vvp_tpg_set_colors
- Prototype
-  
     int intel_vvp_tpg_set_colors (intel_vvp_tpg_instance* instance, uint16_t color1, uint16_t color2, uint16_t color3);
- Description
-  
     Selects the uniform color for patterns of type kIntelVvpTpgUniformPattern 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure color1, color2, color3 – the three new color sample values for the uniform pattern The color samples must be in the range [0 .. (1 << intel_vvp_tpg_get_bits_per_sample(instance)) – 1] 
- Returns
-  
     kIntelVvpCoreOk (0) for success, negative error code otherwise kIntelVvpCoreInstanceErr if the instance is invalid kIntelVvpTpgC1Err/ kIntelVvpTpgC2Err/ kIntelVvpTpgC3Err if the color sample is out-of-range 
intel_vvp_tpg_get_colors
- Prototype
-  
     int intel_vvp_tpg_get_colors(intel_vvp_tpg_instance* instance, uint16_t* color1, uint16_t* color2, uint16_t* color3)
- Description
-  
     Reads and returns the selected color sample values for pattern of type kIntelVvpTpgUniformPattern. The instance must be a valid intel_vvp_tpg_instance with debug enabled. The three points that return values must point to valid memory locations containing uint16_t variables 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure color1, color2, color3 – three memory locations to store the returned color sample values 
- Returns
-  
     kIntelVvpCoreOk in case of success, negative error code otherwise kIntelVvpCoreInstanceErr, invalid instance (null pointer or debug disabled) kIntelVvpCoreNullPtrErr, one of the uint16_t pointer is the null pointer 
intel_vvp_tpg_commit_writes
- Prototype
-  
     int intel_vvp_tpg_commit_writes(intel_vvp_tpg_instance* instance)
- Description
-  
     Commits all pending writes before starting the next output field. The instance must be valid and parameterized in full mode. 
- Arguments
-  
     instance – pointer to the intel_vvp_tpg_instance software driver instance structure 
- Returns
-  
     kIntelVvpCoreOk (0) for success, negative error code otherwise