High-Definition Multimedia Interface (HDMI) IP Core User Guide

Similar documents
Altera High-Definition Multimedia Interface IP Core User Guide

High-Definition Multimedia Interface (HDMI) IP Core User Guide

Intel FPGA HDMI IP Core User Guide

Intel FPGA DisplayPort IP Core User Guide

DisplayPort Intel FPGA IP User Guide

DisplayPort Intel FPGA IP User Guide

DisplayPort IP Core User Guide

PCI Express Multi-Channel DMA Interface

HDMI Intel Stratix 10 FPGA IP Design Example User Guide

Low Latency 40G Ethernet Example Design User Guide

Intel Stratix 10 H-tile Hard IP for Ethernet Design Example User Guide

Intel Stratix 10 Low Latency 40G Ethernet Design Example User Guide

Interlaken IP Core (2nd Generation) Design Example User Guide

Low Latency 100G Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

25G Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

Intel Arria 10 HDMI IP Core Design Example User Guide

Intel FPGA HDMI Design Example User Guide for Intel Cyclone 10 GX Devices

SDI II Intel FPGA IP User Guide

100G Interlaken MegaCore Function User Guide

SerialLite III Streaming IP Core Design Example User Guide for Intel Arria 10 Devices

Dynamic Reconfiguration of PMA Controls in Stratix V Devices

Intel FPGA HDMI Design Example User Guide for Intel Arria 10 Devices

H-tile Hard IP for Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

SerialLite III Streaming IP Core Design Example User Guide for Intel Stratix 10 Devices

Intel Stratix 10 Logic Array Blocks and Adaptive Logic Modules User Guide

Low Latency 100G Ethernet Design Example User Guide

EFEC20 IP Core. Features

Using the Transceiver Reconfiguration Controller for Dynamic Reconfiguration in Arria V and Cyclone V Devices

POS-PHY Level 4 MegaCore Function

4K Format Conversion Reference Design

HDMI 1.4 Source Compliance Tests ( ) (Pre-required hardware: or , Prerequired software: if is used)

High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example User Guide

Low Latency 40- and 100-Gbps Ethernet MAC and PHY MegaCore Function User Guide

Low Latency 40- and 100-Gbps Ethernet MAC and PHY MegaCore Function User Guide

Implementing 9.8G CPRI in Arria V GT and ST FPGAs

MAX 10 User Flash Memory User Guide

AN 830: Intel FPGA Triple-Speed Ethernet and On-Board PHY Chip Reference Design

AN 830: Intel FPGA Triple-Speed Ethernet and On-Board PHY Chip Reference Design

PCI Express*: Migrating to Intel Stratix 10 Devices for the Avalon Streaming Interface

AN 610: Implementing Deterministic Latency for CPRI and OBSAI Protocols in Altera Devices

Intel Xeon with FPGA IP Asynchronous Core Cache Interface (CCI-P) Shim

Remote Update Intel FPGA IP User Guide

Design Guidelines for Intel FPGA DisplayPort Interface

AN 836: RapidIO II Reference Design for Avalon-ST Pass-Through Interface

Altera ASMI Parallel II IP Core User Guide

Intel FPGA Voltage Sensor IP Core User Guide

3. ALTGX_RECONFIG IP Core User Guide for Stratix IV Devices

Intel Arria 10 Native Floating- Point DSP Intel FPGA IP User Guide

ASMI Parallel II Intel FPGA IP Core User Guide

Intel FPGA Temperature Sensor IP Core User Guide

DDR and DDR2 SDRAM Controller Compiler User Guide

2.5G Reed-Solomon II MegaCore Function Reference Design

780 Handheld Test Instrument

AN 464: DFT/IDFT Reference Design

Altera JESD204B IP Core and ADI AD9680 Hardware Checkout Report

Intel Cyclone 10 External Memory Interfaces IP Design Example User Guide

Intel Stratix 10 H-Tile PCIe Link Hardware Validation

Recommended Protocol Configurations for Stratix IV GX FPGAs

User Guide 980 HDMI Protocol Analyzer Module HDMI & MHL Source Compliance Tests NEED TO UPDATE FOR MHL TEST RESULTS

Intel MAX 10 User Flash Memory User Guide

External Memory Interfaces Intel Arria 10 FPGA IP Design Example User Guide

Arria 10 Transceiver PHY User Guide

AN 829: PCI Express* Avalon -MM DMA Reference Design

780A Handheld Test Instrument. 780A HANDHELD TEST INSTRUMENT Now you can test 4K Ultra HD HDMI /60Hz

JESD204B IP Core. User Guide. 101 Innovation Drive San Jose, CA Last updated for Altera Complete Design Suite: 14.

AN 779: Intel FPGA JESD204B IP Core and ADI AD9691 Hardware Checkout Report

780B Video Generator/Analyzer. 780B VIDEO GENERATOR/ANALYZER Test 4K Ultra HD HDMI /60Hz

OTU2 I.9 FEC IP Core (IP-OTU2EFECI9) Data Sheet

Intel Stratix 10 Analog to Digital Converter User Guide

Intel Acceleration Stack for Intel Xeon CPU with FPGAs Version 1.2 Release Notes

Section III. Transport and Communication

AN 558: Implementing Dynamic Reconfiguration in Arria II Devices

50G Interlaken MegaCore Function User Guide

Intel Stratix 10 External Memory Interfaces IP Design Example User Guide

Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide

100G Interlaken MegaCore Function User Guide

Intel Stratix 10 High-Speed LVDS I/O User Guide

Arria 10 Avalon-MM DMA Interface for PCIe Solutions

FFT MegaCore Function User Guide

SERDES Transmitter/Receiver (ALTLVDS) Megafunction User Guide

System Debugging Tools Overview

Interlaken IP Core (2nd Generation) User Guide

Altera I/O Phase-Locked Loop (Altera IOPLL) IP Core User Guide

Interlaken (2nd Generation) Intel FPGA IP User Guide

AN 756: Altera GPIO to Altera PHYLite Design Implementation Guidelines

100G Interlaken MegaCore Function User Guide

Intel Acceleration Stack for Intel Xeon CPU with FPGAs 1.0 Errata

Nios II Custom Instruction User Guide

4. TriMatrix Embedded Memory Blocks in HardCopy IV Devices

Phase-Locked Loop Reconfiguration (ALTPLL_RECONFIG) Megafunction

Intel MAX 10 High-Speed LVDS I/O User Guide

DisplayPort MegaCore. Altera Technology Roadshow 2013

SerialLite II IP Core User Guide

Altera I/O Phase-Locked Loop (Altera IOPLL) IP Core User Guide

780B Video Generator/Analyzer. 780B VIDEO GENERATOR/ANALYZER Test 4K Ultra HD HDMI /60Hz

Cyclone II FPGA Family

Nios II Performance Benchmarks

Customizable Flash Programmer User Guide

Intel Quartus Prime Pro Edition Software and Device Support Release Notes

DDR & DDR2 SDRAM Controller Compiler

Transcription:

High-Definition Multimedia Interface (HDMI) IP Core User Guide Subscribe Last updated for Quartus Prime Design Suite: 16.1 UG-HDMI 101 Innovation Drive San Jose, CA 95134 www.altera.com

TOC-2 Contents HDMI Quick Reference... 1-1 HDMI Overview... 2-1 Resource Utilization...2-5 HDMI Getting Started...3-1 Installing and Licensing IP Cores... 3-1 Specifying IP Core Parameters and Options... 3-2 HDMI Source...4-1 Source Functional Description...4-1 Source TMDS/TERC4 Encoder... 4-2 Source Video Resampler... 4-2 Source Window of Opportunity Generator...4-7 Source Auxiliary Packet Encoder...4-8 Source Auxiliary Packet Generators...4-10 Source Auxiliary Data Path Multiplexers... 4-10 Source Auxiliary Control Port...4-10 Source Audio Encoder...4-14 Source Interfaces... 4-17 Source Clock Tree... 4-21 HDMI Sink...5-1 Sink Functional Description...5-1 Sink Channel Word Alignment and Deskew...5-2 Sink TMDS/TERC4 Decoder... 5-3 Sink Video Resampler...5-4 Sink Auxiliary Decoder... 5-4 Sink Auxiliary Packet Capture...5-6 Sink Auxiliary Data Port... 5-9 Sink Audio Decoding... 5-10 Sink Interfaces... 5-14 Avalon-MM SCDC Management Interface...5-19 Status and Control Data Channel Interface...5-20 Sink Clock Tree... 5-20 HDMI Parameters... 6-1 HDMI Source Parameters...6-1 HDMI Sink Parameters...6-2

TOC-3 HDMI Design Example Parameters... 6-3 HDMI Hardware Demonstration... 7-1 Hardware Demonstration Components... 7-1 Transceiver Native PHY (RX)... 7-4 Altera PLL IP Cores... 7-8 Altera PLL Reconfig IP Core... 7-10 Multirate Reconfig Controller (RX)... 7-10 Oversampler (RX)...7-11 DCFIFO...7-12 Sink Display Data Channel (DDC) & Status and Control Data Channel (SCDC)...7-12 Transceiver Reconfiguration Controller... 7-12 VIP Bypass and Audio, Auxiliary and InfoFrame Buffers...7-13 Transceiver Native PHY (TX)... 7-13 Transceiver PHY Reset Controller...7-15 Oversampler (TX)...7-15 Clock Enable Generator... 7-16 Qsys System... 7-16 HDMI Hardware Demonstration Requirements...7-18 Demonstration Walkthrough... 7-19 Set Up the Hardware...7-19 Copy the Design Files...7-20 Build and Compile the Design... 7-20 View the Results... 7-20 HDMI Simulation Example... 8-1 Simulation Walkthrough...8-2 HDMI IP Core User Guide Archives... A-1 Document Revision History for HDMI User Guide... B-1

HDMI Quick Reference 1 UG-HDMI Subscribe The High-Definition Multimedia Interface (HDMI) IP core provides support for next-generation video display interface technology. Information Version 16.1 Release Information Release October 2016 Ordering Code IP-HDMI Description 2016 Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, NIOS, Quartus and Stratix words and logos are trademarks of Intel Corporation in the US and/or other countries. Other marks and brands may be claimed as the property of others. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ISO 9001:2008 Registered www.altera.com 101 Innovation Drive, San Jose, CA 95134

1-2 HDMI Quick Reference UG-HDMI Information Description IP Core Information Core Features Conforms to the High- Definition Multimedia Interface (HDMI) specification versions 1.4 and 2.0 Supports transmitter and receiver on a single device transceiver quad Supports pixel frequency up to 594 MHz Supports RGB and YCbCr 444, 422, and 420 color modes Accepts standard H-SYNC, V-SYNC, data enable, RGB video format, and YCbCr video format Supports 2-channel and 8-channel audios Supports 1, 2, or 4 symbols per clock Supports 8, 10, 12, or 16 bits per color (bpc) Supports Digital Visual Interface (DVI) Typical Application Interfaces within a PC and monitor External display connections, including interfaces between a PC and monitor or projector, between a PC and TV, or between a device such as a DVD player and TV display Device Family Supports Arria 10, Arria V, and Stratix V FPGA devices Design Tools Quartus Prime software for IP design instantiation and compilation TimeQuest Timing Analyzer in the Quartus Prime software for timing analysis ModelSim-Altera/SE software for design simulation Related Information HDMI IP Core Design Example User Guide For more information about the Arria 10 HDMI design example. HDMI IP Core User Guide Archives on page 9-1 Provides a list of user guides for previous versions of the HDMI IP core. HDMI Quick Reference

HDMI Overview 2 UG-HDMI Subscribe The Altera High-Definition Multimedia Interface (HDMI) IP core provides support for next generation video display interface technology. The HDMI standard specifies a digital communications interface for use in both internal and external connections: Internal connections interface within a PC and monitor External display connections interface between a PC and monitor or projector, between a PC and TV, or between a device such a DVD player and TV display. The HDMI system architecture consists of sinks and sources. A device may have one or more HDMI inputs and outputs. The HDMI cable and connectors carry four differential pairs that make up the Transition Minimized Differential Signaling (TMDS) data and clock channels. You can use these channels to carry video, audio, and auxiliary data. The HDMI also carries a Video Electronics Standards Association (VESA) Display Data Channel (DDC) and Status and Control Data Channel (SCDC). The DDC configures and exchanges status between a single source and a single sink. The source uses the DDC to read the sink's Enhanced Extended Display Identification Data (E-EDID) to discover the sink's configuration and capabilities. The SCDC supports the sink's read requests. The optional Consumer Electronics Control (CEC) protocol provides high-level control functions between various audio visual products in your environment. The optional HDMI Ethernet and Audio Return Channel (HEAC) provides Ethernet compatible data networking between connected devices and an audio return channel in the opposite direction of TMDS. The HEAC also uses Hot-Plug Detect (HPD) line for signal transmission. 2016 Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, NIOS, Quartus and Stratix words and logos are trademarks of Intel Corporation in the US and/or other countries. Other marks and brands may be claimed as the property of others. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ISO 9001:2008 Registered www.altera.com 101 Innovation Drive, San Jose, CA 95134

2-2 HDMI Overview Figure 2-1: Altera HDMI Block Diagram The figure below illustrates the blocks in the Altera HDMI IP core. UG-HDMI HDMI IP Core Video Audio HDMI Transmitter TDMS Channel 0 TDMS Channel 1 TDMS Channel 2 HDMI Receiver Video Audio Control/Status TDMS Clock Channel Control/Status CEC HEAC Detect Status and Control Data Channel (SCDC) Display Data Channel (DDC) CEC Line Utility Line HPD Line EDID ROM CEC HEAC High/Low Based on TMDS encoding, the HDMI protocol allows the transmission of both audio and video data between source and sink devices. An HDMI interface consists of three color channels accompanied by a single clock channel. You can use each color line to transfer both individual RGB colors and auxiliary data. The receiver uses the TMDS clock as a frequency reference for data recovery on the three TMDS data channels. This clock typically runs at the video pixel rate. TMDS encoding is based on an 8-bit to 10-bit algorithm. This protocol attempts to minimize data channel transmission and yet maintain sufficient bandwidth so that a sink device can lock reliably to the data stream. HDMI Overview

UG-HDMI HDMI Overview 2-3 Figure 2-2: HDMI Video Stream Data Video Guard Band Data Island Guard Band Video Guard Band Active Video Data Island Preamble Active Aux/Audio Video Preamble Active Video vid_de aux_de Video Guard Band Case (TMDS Channel Number): 0:q_out = 10 b1011001100; 1:q_out = 10 b0100110011; 2:q_out = 10 b1011001100; endcase Video Preamble {c3, c2, c1, c0} = 4 b0001 Data Island Guard Band Case (TMDS Channel Number): 0:q_out = 10 bxxxxxxxxxx; 1:q_out = 10 b0100110011; 2:q_out = 10 b0100110011; endcase Data Island Preamble {c3, c2, c1, c0} = 4 b0101 The figure above illustrates two data streams: Data stream in green transports color data Data stream in dark blue transports auxiliary data Table 2-1: Video Data and Auxiliary Data The table below describes the function of the video data and auxiliary data. Data Description Video data Packed representation of the video pixels clocked at the source pixel clock. Encoded using the TMDS 8-bit to 10-bit algorithm. Auxiliary data Transfers audio data together with a range of auxiliary data packets. Sink devices use auxiliary data packets to correctly reconstruct video and audio data. Encoded using the TMDS Error Reduction Coding 4 bits (TERC4) encoding algorithm. HDMI Overview

2-4 HDMI Overview Each data stream section is preceded with guard bands and pre-ambles. The guard bands and pre-ambles allow for accurate synchronization with received data streams. The following figures show the arrangement of the video data, video data enable, video H-SYNC, and video V-SYNC in 1, 2, and 4 symbols per clock. Figure 2-3: Video Data, Video Data Valid, H-SYNC, and V-SYNC 1 Symbol per Clock UG-HDMI One Symbol per Clock vid_clk vid_data[47:0] vid_de[0] vid_hsync[0] vid_vsync[0] D0 D1 D2 D3 D4 D5 D6 D7 E0 E1 E2 E3 E4 E5 E6 E7 H0 H1 H2 H3 H4 H5 H6 H7 V0 V1 V2 V3 V4 V5 V6 V7 Figure 2-4: Video Data, Video Data Valid, H-SYNC, and V-SYNC 2 Symbols per Clock Two Symbols per Clock vid_clk vid_data[95:0] D1 D0 D3 D2 D5 D4 D7 D6 vid_de[1:0] E1 E0 E3 E2 E5 E4 E7 E6 vid_hsync[1:0] H1 H0 H3 H2 H5 H4 H7 H6 vid_vsync[1:0] V1 V0 V3 V2 V5 V4 V7 V6 HDMI Overview

UG-HDMI Resource Utilization 2-5 Figure 2-5: Video Data, Video Data Valid, H-SYNC, and V-SYNC 4 Symbols per Clock Four Symbols per Clock vid_clk vid_data[191:0] vid_de[3:0] vid_hsync[3:0] vid_vsync[3:0] D3 D2 D1 D0 E3 E2 E1 E0 H3 H2 H1 H0 V3 V2 V1 V0 D7 D6 D5 D4 E7 E6 E5 E4 H7 H6 H5 H4 V7 V6 V5 V4 Resource Utilization The resource utilization data indicates typical expected performance for the HDMI IP core device. Table 2-2: HDMI Data Rate The table lists the maximum data rates for HDMI core configurations of 1, 2, and 4 symbols per clock. Maximum Data Rate (Mbps) Devices 1 Symbol per Clock 2 Symbols per Clock 4 Symbols per Clock Arria 10 Not Supported 5,940 (Example: 4Kp60 8bpc) Not Supported Arria V GX 1,875 (Example: 1080p60 10bpc) 3,276.8 (Example: 4Kp30 8bpc) 5,940 (Example: 4Kp60 8bpc) Stratix V 5,800 (Example: 4Kp30 12bpc) 5,940 (Example: 4Kp60 8bpc) Not Supported HDMI Overview

2-6 Resource Utilization Table 2-3: Color Depth Supported for Each Video Format UG-HDMI Color Depth Video Format 8 10 12 16 RGB Yes Yes Yes Yes YCbCr 4:4:4 Yes Yes Yes Yes YCbCr 4:2:2 (1) Not applicable Not applicable Yes Not applicable YCbCr 4:2:0 Yes Yes Yes Yes Table 2-4: HDMI Resource Utilization The table lists the performance data for the HDMI IP core targeting Arria 10, Arria V GX, and Stratix V devices. Device Arria 10 Arria V GX Stratix V Symbols per Clock Direction ALMs Logic Registers Memory Primary Secondary Bits M10K or M20K 2 RX 3,359 4,276 795 38,400 14 2 TX 3,374 5,014 1,543 12,680 13 1 RX 2,630 4,039 402 35,712 13 1 TX 2,700 4,462 417 11,108 11 2 RX 3,446 4,656 531 38,400 14 2 TX 3,759 6,091 450 12,680 13 4 RX 4,895 5,937 614 43,776 20 4 TX 6,135 9,156 445 15,824 18 1 RX 2,592 3,946 398 35,712 13 1 TX 2,634 4,415 461 11,108 11 2 RX 3,337 4,619 440 38,400 14 2 TX 3,644 5,919 680 12,680 13 (1) According to section 6.5.1 of the HDMI 1.4b specifications, 8 and 10 bits per color use the same pixel encoding as 12 bits per color, but the valid bits are left-justified with zeroes padding the bits below the least significant bit. HDMI Overview

HDMI Getting Started 3 UG-HDMI Subscribe This chapter provides a general overview of the Altera IP core design flow to help you quickly get started with the HDMI IP core. The Altera IP Library is installed as part of the Quartus Prime installation process. You can select and parameterize any Altera IP core from the library. Altera provides an integrated parameter editor that allows you to customize the HDMI IP core to support a wide variety of applications. The parameter editor guides you through the setting of parameter values and selection of optional ports. Related Information Introduction to Altera IP Cores Provides general information about all Altera FPGA IP cores, including parameterizing, generating, upgrading, and simulating IP cores. Creating Version-Independent IP and Qsys Simulation Scripts Create simulation scripts that do not require manual updates for software or IP version upgrades. Project Management Best Practices Guidelines for efficient management and portability of your project and IP files. Installing and Licensing IP Cores The Quartus Prime software includes the Altera FPGA IP Library. The library provides many useful IP core functions for production use without additional license. You can fully evaluate any licensed Altera FPGA IP core in simulation and in hardware until you are satisfied with its functionality and performance. The HDMI IP core is part of the Altera MegaCore IP Library, which is distributed with the Quartus Prime software and downloadable from the Altera web site. Figure 3-1: HDMI Installation Path Installation directory ip - Contains the Altera IP Library altera - Contains the Altera IP Library source code altera_hdmi - Contains the HDMI IP core files Note: The default IP installation directory on Windows is <drive>:\altera\<version number>; on Linux it is <home directory>/altera/ <version number>. 2016 Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, NIOS, Quartus and Stratix words and logos are trademarks of Intel Corporation in the US and/or other countries. Other marks and brands may be claimed as the property of others. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ISO 9001:2008 Registered www.altera.com 101 Innovation Drive, San Jose, CA 95134

3-2 Specifying IP Core Parameters and Options Figure 3-2: HDMI Installation Path UG-HDMI Installation directory intelfpga(_pro*) quartus - Contains the Quartus Prime Software ip - Contains the IP Library altera - Contains the IP Library source code altera_hdmi - Contains the HDMI IP core files Note: The default IP installation directory on Windows is <drive>:\intelfpga_pro\quartus\ip\ altera; on Linux it is <home directory>/intelfpga_pro/quartus/ip/altera. After you purchase a license for the HDMI IP core, you can request a license file from the licensing site and install it on your computer. When you request a license file, Altera emails you a license.dat file. If you do not have Internet access, contact your local Altera representative. Related Information Altera Licensing Site Altera Software Installation and Licensing Manual Specifying IP Core Parameters and Options Follow these steps to specify the HDMI IP core parameters and options. 1. Create a Quartus Prime project using the New Project Wizard available from the File menu. 2. On the Tools menu, click IP Catalog. 3. Under Installed IP, double-click Library > Interface > Protocols > Audio&Video > HDMI. The parameter editor appears. 4. Specify a top-level name for your custom IP variation. This name identifies the IP core variation files in your project. If prompted, also specify the targeted Altera device family and output file HDL preference. Click OK. 5. Specify parameters and options in the HDMI parameter editor: Optionally select preset parameter values. Presets specify all initial parameter values for specific applications (where provided). Specify parameters defining the IP core functionality, port configurations, and device-specific features. Specify options for generation of a timing netlist, simulation model, testbench, or example design (where applicable). Specify options for processing the IP core files in other EDA tools. 6. Click Generate to generate the IP core and supporting files, including simulation models. HDMI Getting Started

UG-HDMI Specifying IP Core Parameters and Options 3-3 7. Click Close when file generation completes. 8. Click Finish. 9. If you generate the HDMI IP core instance in a Quartus Prime project, you are prompted to add Quartus Prime IP File (.qip) and Quartus Prime Simulation IP File (.sip) to the current Quartus Prime project. HDMI Getting Started

HDMI Source 4 UG-HDMI Subscribe Source Functional Description The HDMI source core provides direct connection to the Transceiver Native PHY through a 10-bit, 20-bit, or 40-bit parallel data path. Figure 4-1: HDMI Source Signal Flow Diagram The figure below shows the flow of the HDMI source signals. The figure shows the various clocking domains used within the core. mode Video Data Port vid_clk Video Input V-SYNC Video Resampler WOP Generator TMDS/TERC4 Encoder TMDS Data Override GCP Default GCP CC Auxiliary Packet Generator color-depth Multiplexer pp aux_de Clock Domains audio_clk vid_clk ls_clk Auxiliary Control Port Override AV Default AV Infoframe Auxiliary Packet Generator Multiplexer Override VSI Auxiliary Data Port Default VSI Infoframe 1 Auxiliary Packet Generator Audio Port Audio Encoder Auxiliary Packet Generator Auxiliary Packet Encoder The source core provides four 10-bit, 20-bit or 40-bit parallel data paths corresponding to the 3 color channels and the clock channel. 2016 Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, NIOS, Quartus and Stratix words and logos are trademarks of Intel Corporation in the US and/or other countries. Other marks and brands may be claimed as the property of others. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ISO 9001:2008 Registered www.altera.com 101 Innovation Drive, San Jose, CA 95134

4-2 Source TMDS/TERC4 Encoder The source core accepts video, audio, and auxiliary channel data streams. The core produces a TMDS/ TERC4 encoded data stream that would typically connect to the high-speed transceiver parallel data inputs. Central to the core is the TMDS/TERC4 encoder. The encoder processes either video or auxiliary data. Source TMDS/TERC4 Encoder The source TMDS/TERC4 encoder implements 8-bit to 10-bit and 4-bit to 10-bit algorithms as defined in the HDMI Specification Ver.2.0. Each channel has its own encoder. The encoder processes symbol data at 1, 2, or 4 symbols per clock. When the encoder operates in 2 or 4 symbols per clock, it also produces the output in the form of two or four encoded symbols per clock. The TMDS/TERC4 encoder also produces digital visual interface (DVI) signaling when you deassert the mode input signal. DVI signaling is identical to HDMI signaling, except for the absence of data and video islands and TERC4 auxiliary data. Source Video Resampler The core resamples the video data based on the current color depth. The video resampler consists of a gearbox and a dual-clock FIFO (DCFIFO). Figure 4-2: Source Video Resampler Signal Flow Diagram The figure below shows the components of the video resampler and the signal flow between these components. UG-HDMI H-SYNC V-SYNC de r g b 1 vid_clk data wr wrclk DCFIFO q rd rdclk Gearbox Phase Counter Resampled H-SYNC V-SYNC de r g b packing-phase (pp) bits per pixel (bpp) ls_clk The resampler adheres to the recommended phase encoding method described in HDMI Specification Ver. 1.4b. The phase counter must register the last packing-phase (pp) of the last pixel of the last active line. The resampler then transmits the pp value to the attached sink device in the General Control Packet (GCP) for packing synchronization. HDMI Source

UG-HDMI Source Video Resampler 4-3 Figure 4-3: RGB 4:4:4 Mapped to the Respective TMDS Channels The R, G, and B components of the first pixel for a given line of video are transferred on the first pixel of the video data period following the Guard Band characters. Pixel 0 Pixel 1 Pixel 2 Pixel 3 Pixel 04... TMDS Channel 0 1 2 B 0 B 1 B 2 B 3 B 4 G 0 G 1 G 2 G 3 G 4 R 0 R 1 R 2 R 3 R 4......... Figure 4-4: YCbCr 4:4:4 Mapped to the Respective TMDS Channels Pixel 0 Pixel 1 Pixel 2 Pixel 3 Pixel 04... TMDS Channel 0 1 2 Cb 0 Cb 1 Cb 2 Cb 3 Cb 4 Y 0 Y 1 Y 2 Y 3 Y 4 Cr 0 Cr 1 Cr 2 Cr 3 Cr 4......... Figure 4-5: Source Pixel Data Input Format RGB/YCbCr 4:4:4 The figure below shows the RGB color space pixel bit-field mappings. 24 bpp RGB/YCbCr 4:4:4 (8 bpc) 30 bpp RGB/YCbCr 4:4:4 (10 bpc) 36 bpp RGB/YCbCr 4:4:4 (12 bpc) 48 bpp RGB/YCbCr 4:4:4 (16 bpc) 47 32 31 16 15 0 vid_data[47:0] Figure 4-6: YCbCr 4:2:2 Mapped to the Respective TMDS Channels Y 0 / Cb 0 Y 1 / Cr 0 Y 2 / Cb 2 Y 3 / Cr 2 Y 4 / Cb 4... TMDS Channel 0 1 Bits 3-0 Bits 7-4 Bits 7-0 Y 0 bits 3-0 Y 1 bits 3-0 Y 2 bits 3-0 Y 3 bits 3-0 Y 4 bits 3-0... Cb 0 bits 3-0 Cr 0 bits 3-0 Cb 2 bits 3-0 Cr 2 bits 3-0 Cb 4 bits 3-0... Y 0 bits 11-4 Y 1 bits 11-4 Y 2 bits 11-4 Y 3 bits 11-4 Y 4 bits 11-4... 2 Bits 7-0 Cb 0 bits 11-4 Cr 0 bits 11-4 Cb 2 bits 11-4 Cr 2 bits 11-4 Cb 4 bits 11-4... HDMI Source

4-4 Source Video Resampler UG-HDMI The higher order 8 bits of the Y samples are mapped to the 8 bits of Channel 1 and the lower order 4 bits are mapped to the lower order 4 bits of Channel 0. The first pixel transmitted within a Video Data Period contains three components, Y0, Cb0 and Cr0. The Y0 and Cb0 components are transmitted during the first pixel period while Cr0 is transmitted during the second pixel period. This second pixel period also contains the only component for the second pixel, Y1. In this way, the link carries one Cb sample for every two pixels and one Cr sample for every two pixels. These two components (Cb and Cr) are multiplexed onto the same signal paths on the link. Figure 4-7: Source Pixel Data Input Format YCbCr 4:2:2 12 bpc 47 40 31 24 15 8 0 Cb/Cr[11:4] Y[11:4] Cb/Cr[3:0] Y[3:0] The 4:2:2 data requires only two components per pixel. Therefore, each component is allocated more bits. The available 24 bits are split into 12 bits for the Y component and 12 bits for C components. Figure 4-8: YCbCr 4:2:0 Mapped to the Respective TMDS Channels Line 0 Pixel 00 Pixel 01 Pixel 02 Pixel 03 Pixel 04 Pixel 05 Pixel 06 Pixel 07 Pixel 08 Pixel 09... 0 Cb 00 Cb 02 Cb 04 Cb 06 Cb 08... TMDS Channel 1 Y 00 Y 02 Y 04 Y 06 Y 08... 2 Y 01 Y 03 Y 05 Y 07 Y 09... Line 1 Pixel 10 Pixel 11 Pixel 12 Pixel 13 Pixel 14 Pixel 15 Pixel 16 Pixel 17 Pixel 18 Pixel 09... 0 Cr 00 Cr 02 Cr 04 Cr 06 Cr 08... TMDS Channel 1 Y 10 Y 12 Y 14 Y 16 Y 18... 2 Y 11 Y 13 Y 15 Y 17 Y 19... HDMI Source

UG-HDMI Mapping Formats 4-5 The two horizontally successive 8-bit Y components are transmitted in TMDS Channels 1 and 2, in that order. The 8-bit Cb or Cr components are transmitted alternately in TMDS Channel 0, line by line. Mapping Formats The following figures illustrate the mapping of different formats. Figure 4-9: Mapping Two 8-Bit per Component YCbCr 4:2:0 to One 24-Bit YCbCr 4:4:4 Pixel (Pre Deep Color Packing) First 8 YCbCr 4:2:0 Pixels on Each Line Equivalent YCbCr 4:4:4 Pixel YCbCr 4:2:0 Pixel 0/1 YCbCr 4:2:0 Pixel 2/3 YCbCr 4:2:0 Pixel 4/5 YCbCr 4:2:0 Pixel 6/7 Channel 0 Cb Cb 00 Cb 02 Cb 04 Cb 06 Line 0 Channel 1 Y Y 00 Y 02 Y 04 Y 06 Channel 2 Cr Y 01 Y 03 Y 05 Y 07 Channel 0 Cb Cr 00 Cr 02 Cr 04 Cr 06 Line 1 Channel 1 Y Y 10 Y 12 Y 14 Y 16 Channel 2 Cr Y 11 Y 13 Y 15 Y 17 Channel 0 Cb Cb 20 Cb 22 Cb 24 Cb 26 Line 2 Channel 1 Y Y 20 Y 22 Y 24 Y 26 Channel 2 Cr Y 21 Y 23 Y 25 Y 27 Channel 0 Cb Cr 20 Cr 22 Cr 24 Cr 26 Line 3 Channel 1 Y Y 30 Y 32 Y 34 Y 36 Channel 2 Cr Y 31 Y 33 Y 35 Y 37 HDMI Source

4-6 Mapping Formats UG-HDMI Figure 4-10: Mapping Two 10-Bit per Component YCbCr 4:2:0 to One 30-Bit YCbCr 4:4:4 Pixel (Pre Deep Color Packing) First 10 YCbCr 4:2:0 Pixels on Each Line Equivalent YCbCr 4:4:4 Pixel YCbCr 4:2:0 Pixel 0/1 YCbCr 4:2:0 Pixel 2/3 YCbCr 4:2:0 Pixel 4/5 YCbCr 4:2:0 Pixel 6/7 Channel 0 Cb Cb 00 Cb 02 Cb 04 Cb 06 Line 0 Channel 1 Y Y 00 Y 02 Y 04 Y 06 Channel 2 Cr Y 01 Y 03 Y 05 Y 07 Channel 0 Cb Cr 00 Cr 02 Cr 04 Cr 06 Line 1 Channel 1 Y Y 10 Y 12 Y 14 Y 16 Channel 2 Cr Y 11 Y 13 Y 15 Y 17 Channel 0 Cb Cb 20 Cb 22 Cb 24 Cb 26 Line 2 Channel 1 Y Y 20 Y 22 Y 24 Y 26 Channel 2 Cr Y 21 Y 23 Y 25 Y 27 Channel 0 Cb Cr 20 Cr 22 Cr 24 Cr 26 Line 3 Channel 1 Y Y 30 Y 32 Y 34 Y 36 Channel 2 Cr Y 31 Y 33 Y 35 Y 37 Figure 4-11: Mapping Two 12-Bit per Component YCbCr 4:2:0 to One 36-Bit YCbCr 4:4:4 Pixel (Pre Deep Color Packing) First 12 YCbCr 4:2:0 Pixels on Each Line Equivalent YCbCr 4:4:4 Pixel YCbCr 4:2:0 Pixel 0/1 YCbCr 4:2:0 Pixel 2/3 YCbCr 4:2:0 Pixel 4/5 YCbCr 4:2:0 Pixel 6/7 Channel 0 Cb Cb 00 Cb 02 Cb 04 Cb 06 Line 0 Channel 1 Y Y 00 Y 02 Y 04 Y 06 Channel 2 Cr Y 01 Y 03 Y 05 Y 07 Channel 0 Cb Cr 00 Cr 02 Cr 04 Cr 06 Line 1 Channel 1 Y Y 10 Y 12 Y 14 Y 16 Channel 2 Cr Y 11 Y 13 Y 15 Y 17 Channel 0 Cb Cb 20 Cb 22 Cb 24 Cb 26 Line 2 Channel 1 Y Y 20 Y 22 Y 24 Y 26 Channel 2 Cr Y 21 Y 23 Y 25 Y 27 Channel 0 Cb Cr 20 Cr 22 Cr 24 Cr 26 Line 3 Channel 1 Y Y 30 Y 32 Y 34 Y 36 Channel 2 Cr Y 31 Y 33 Y 35 Y 37 HDMI Source

UG-HDMI Source Window of Opportunity Generator 4-7 Figure 4-12: Mapping Two 16-Bit per Component YCbCr 4:2:0 to One 48-Bit YCbCr 4:4:4 Pixel (Pre Deep Color Packing) First 16 YCbCr 4:2:0 Pixels on Each Line Equivalent YCbCr 4:4:4 Pixel YCbCr 4:2:0 Pixel 0/1 YCbCr 4:2:0 Pixel 2/3 YCbCr 4:2:0 Pixel 4/5 YCbCr 4:2:0 Pixel 6/7 Channel 0 Cb Cb 00 Cb 02 Cb 04 Cb 06 Line 0 Channel 1 Y Y 00 Y 02 Y 04 Y 06 Channel 2 Cr Y 01 Y 03 Y 05 Y 07 Channel 0 Cb Cr 00 Cr 02 Cr 04 Cr 06 Line 1 Channel 1 Y Y 10 Y 12 Y 14 Y 16 Channel 2 Cr Y 11 Y 13 Y 15 Y 17 Channel 0 Cb Cb 20 Cb 22 Cb 24 Cb 26 Line 2 Channel 1 Y Y 20 Y 22 Y 24 Y 26 Channel 2 Cr Y 21 Y 23 Y 25 Y 27 Channel 0 Cb Cr 20 Cr 22 Cr 24 Cr 26 Line 3 Channel 1 Y Y 30 Y 32 Y 34 Y 36 Channel 2 Cr Y 31 Y 33 Y 35 Y 37 Source Window of Opportunity Generator The source Window of Opportunity (WOP) generator creates valid data islands within the blanking regions. During active line region, the WOP generator creates a leading region to hold at least 12 period symbols that include eight preamble symbols. The generator also creates a trailing region to hold two data island trailing guard band symbols, at least 12 control period symbols that include eight preamble symbols and two video leading guard band symbols. During vertical blanking region, the source cannot send more than 18 auxiliary packets consecutively. The WOP generator deasserts the data island output enable (aux_de) line after every 18th auxiliary packet for 32-symbol clocks. The WOP generator also has an integral number of auxiliary packet cycles: 24 clocks when processing in 1-symbol mode, 16 clocks when processing in 2-symbol mode, and 8 clocks when processing in 4-symbol mode. HDMI Source

4-8 Source Auxiliary Packet Encoder Figure 4-13: Typical Window of Opportunity The figure below shows a typical output from the WOP generator. UG-HDMI Video Data Enable V Sync H Sync Data Island Output Enable Vertical Blanking Active Video Control Period Data Island Guard Band Video Guard Band Data Island Horizontal Blanking Active Video Source Auxiliary Packet Encoder Auxiliary packets are encoded by the source auxiliary packet encoder. The auxiliary packets originate from a number of sources, which are multiplexed into the auxiliary packet encoder in a round-robin schedule. The auxiliary packet encoder converts a standard stream into the channel data format required by the TERC4 encoder. The source propagates the WOP signal backwards through the stream ready signal. The auxiliary packet encoder also calculates and inserts the Bose-Chaudhuri-Hocquenghem (BCH) error correction code. HDMI Source

UG-HDMI Source Auxiliary Packet Encoder 4-9 Figure 4-14: Auxiliary Packet Encoder Input The figure below shows the auxiliary packet encoder input from a 72-bit input data. Phase 0 Phase 1 Phase 2 Phase 3 PB22 PB21 Byte[8] PB24 PB23 PB26 PB25 0 PB27 BCH Block 3 PB15 PB14 PB17 PB16 PB19 PB18 0 PB20 BCH Block 2 Input Data PB8 PB7 PB10 PB9 PB12 PB11 0 PB13 BCH Block 1 PB1 PB0 PB3 PB2 PB5 PB4 0 PB6 BCH Block 0 HB0 Byte[0] HB1 HB2 0 Startofpacket Endofpacket Ready Phase 0 Phase 1 Phase 2 Phase 3 Clock Cycle 1 Symbol Cycle 2 Symbol Cycle 4 Symbol 0 - - 8 - - 16 - - 24 0 - - 4 - - 8 - - 12 0 - - 2 - - 4 - - 6 The encoder assumes the data valid input will remain asserted for the duration of a packet to complete. A packet is always 24 clocks (in 1-symbol mode), 12 clocks (in 2-symbol mode), or 6 clocks (in 4-symbol mode). The encoder creates a NULL auxiliary packet if it doesn't detect a start-of-packet at the beginning of a packet boundary. In this case, you can consider the output of the encoder as a stream of NULL packets unless a valid packet is available. HDMI Source

4-10 Source Auxiliary Packet Generators Figure 4-15: Typical Auxiliary Packet Stream During Blanking Interval The figure below shows a typical auxiliary packet stream in 1-symbol per clock mode, where 0 denotes a null packet. Ninth Packet Skipped UG-HDMI Auxiliary Packet wop 0 0 0 0 AVI 0 AI VSI 0 0 0 Clock Cycle AVI = Auxiliary Video Infoframe AI = Audio Information Infoframe VSI = Vendor Specific Infoframe 0 23 47 71... Source Auxiliary Packet Generators The source core uses various auxiliary packet generators. The packet generators convert the packet field inputs to the auxiliary packet stream format. The packet generator propagates backpressure from the output ready signal to the input ready signal. The generator asserts the input valid signal when a packet is ready to be transmitted. The input valid signal remains asserted until the generator receives a ready acknowledgment. Source Auxiliary Data Path Multiplexers The auxiliary data path multiplexers provide paths for the various auxiliary packet generators. The various auxiliary packet generators traverse a multiplexed routing path to the auxiliary packet encoder. The multiplexers obey a round-robin schedule and propagate backpressure. Source Auxiliary Control Port To simplify the user logic, the source core has control ports to send the most common auxiliary control packets. These packets are: General Control Packet, Auxiliary Video Information (AVI) InfoFrame, HDMI Vendor Specific InfoFrame (VSI), and Audio InfoFrame. The core sends the default values in the auxiliary packets. The default values allow the core to send video data compatible with the HDMI Specification Ver.1.4b with minimum description. You can also override the generators using the customized input values. The override values replace the default values when the input checksum is non-zero. The core sends the auxiliary control packets on the active edge of the V-SYNC signal to ensure that the packets are sent once per field. Source General Control Packet Table 4-1: Source General Control Packet Input Fields This table lists the controllable bit-fields for the Source General Control Packet port. HDMI Source

UG-HDMI Source Auxiliary Video Information (AVI) InfoFrame 4-11 Bit Field Name Comment gcp[3:0] gcp[4] gcp[5] Color Depth (CD) Set_ AVMUTE Clear_ AVMUTE CD3 CD2 CD1 CD0 Color depth 0 0 0 0 Color depth not indicated 0 0 0 1 Reserved 0 0 1 0 Reserved 0 0 1 1 Reserved 0 1 0 0 8 bpc or 24 bits per pixel (bpp) 0 1 0 1 10 bpc or 30 bpp 0 1 1 0 12 bpc or 36 bpp 0 1 1 1 16 bpc or 48 bpp 1 1 1 1 Reserved Refer to HDMI Specification Ver.1.4b. Refer to HDMI Specification Ver.1.4b. All other fields for the source GCP, (for example, pixel packing) are calculated automatically inside the core. You must provide the bit-field value in the table above through the source GCP port. The GCP on the auxiliary data port will always be filtered. Source Auxiliary Video Information (AVI) InfoFrame The HDMI core produces the captured AVI InfoFrame to simplify user applications. Table 4-2: Auxiliary Video Information (AVI) InfoFrame The table below lists the bit-fields for the AVI InfoFrame port bundle. The signal bundle is clocked by ls_clk. Bit-field Name Comment 7:0 Checksum Checksum 9:8 S Scan information 11:10 B Bar info data valid 12 A0 Active information present 14:13 Y RGB or YCbCr indicator 15 Reserved Returns 0 19:16 R Active format aspect ratio 21:20 M Picture aspect ratio HDMI Source

4-12 Source HDMI Vendor Specific InfoFrame (VSI) UG-HDMI Bit-field Name Comment 23:22 C Colorimetry (for example: ITU BT.601, BT. 709) 25:24 SC Non-uniform picture scaling 27:26 Q Quantization range 30:28 EC Extended colorimetry 31 ITC IT content 38:32 VIC Video format identification code 39 Reserved Returns 0 43:40 PR Picture repetition factor 45:44 CN Content type 47:46 YQ YCC quantization range 63:48 ETB Line number of end of top bar 79:64 SBB Line number of start of bottom bar 95:80 ELB Pixel number of end of left bar 111:96 SRB Pixel number of start of right bar 112 Control Disables the core from inserting the InfoFrame packet. 1: The core does not insert info_ avi[111:0]. The AVI InfoFrame packet on the auxiliary data port passes through. 0: The core inserts info_avi[111:0] when checksum field (info_avi) is non-zero. The core sends default values when checksum field (info_avi) is zero. The core filters the AVI InfoFrame packet on the auxiliary data port. Source HDMI Vendor Specific InfoFrame (VSI) The core transmits a HDMI Vendor Specific InfoFrame once per field. Table 4-3: HDMI Vendor Specific InfoFrame Bit-Fields The table below lists the bit-fields for VSI. The signal bundle is clocked by ls_clk. Bit-field Name Comment 4:0 Length Length = Nv HDMI Source

UG-HDMI Source Audio InfoFrame (AI) 4-13 Bit-field Name Comment 12:5 Checksum Checksum 36:13 IEEE 24-bit IEEE registration identified (0 000C03) 41:37 Reserved All 0 44:42 HDMI_Video_Format HDMI video format 52:45 HDMI_VIC HDMI proprietary video format identification code 57:53 Reserved All 0 60:58 3D_Ext_Data 3D extended data 61 Control Disables the core from inserting the InfoFrame packet. 1: The core does not insert info_ vsi[60:0]. The VSI InfoFrame packet on the auxiliary data port passes through. 0: The core inserts info_ vsi[60:0] when checksum field (info_vsi[12:5]) is non-zero. The core sends default values when checksum field (info_ vsi[12:5]) is zero. The core filters the VSI InfoFrame packet on the auxiliary data port. Note: If the checksum input to the port is zero, the core uses a default value of zero for each bit-field. Source Audio InfoFrame (AI) The core transmits an Audio InfoFrame once per field. Table 4-4: Source Audio InfoFrame Bundle Bit-Fields The table below lists the signal bit-fields. The signal bundle is clocked by ls_clk. Bit-field Name Comment 7:0 Checksum Checksum 10:8 CC Channel count 11 Reserved Returns 0 15:12 CT Audio format type HDMI Source

4-14 Source Audio Encoder UG-HDMI Bit-field Name Comment 17:16 SS Bits per audio sample 20:18 SF Sampling frequency 23:21 Reserved Returns 0 31:24 CXT Audio format type of the audio stream 39:32 CA Speaker location allocation FL, FR 41:40 LFEPBL LFE playback level information, db 42 Reserved Returns 0 46:43 LSV Level shift information, db 47 DM_INH Down-mix inhibit flag 48 Disables the core of the InfoFrame packets from inserting. 1: The core does not insert audio_ info_ai[47:0]. The Audio InfoFrame packet on the auxiliary data port passes through. 0: The core inserts audio_info_ ai[47:0] when checksum field (audio_info_ai) is nonzero. The core sends default values when checksum field (audio_ info_ai) is zero. The core filters the Audio InfoFrame packet on the auxiliary data port. Note: If the checksum input to the port is zero, the core uses a default value of zero for each bit-field. Source Audio Encoder Audio transport requires three packet types: Audio Timestamp InfoFrame, Audio Information InfoFrame, and Audio Sample Data. HDMI Source

UG-HDMI Source Audio Encoder 4-15 Figure 4-16: Source Audio Encoder Timestamp Scheduler Multiplexer CTS, N Auxiliary Packet Generator Audio Data Port Default AI Audio Input Default AI DCFIFO V-SYNC 1 Audio Packetizer Auxiliary Packet Generator Auxiliary Packet Generator Audio Auxiliary Stream Audio Format Audio Metadata Auxiliary Packet Generator The Audio Timestamp InfoFrame packet contains the CTS and N values. You need to provide these values. The core schedules this packet to be sent every ms. The scheduler uses the audio_clk and N value to determine a 1-ms interval. The core sends the Audio Information InfoFrame packet on the active edge of the V-SYNC signal. The Audio Sample Data packet queues on a DCFIFO. The core also uses the DCFIFO to synchronize its clock to ls_clk. The Audio Packetizer packs the audio sample data into the Audio Sample packets according to the specified audio format. An Audio Sample packet can contain up to 4 audio samples, based on the required audio sample clock. The core sends the Audio Sample packets whenever there is an available slot in the auxiliary packet stream. The audio_data port is always at a fixed value of 256 bits and the audio_de port is always fixed to 1 bit. For audio channels fewer than 8, insert 0 to the audio data of the unused audio channels. The 32-bit audio data is packed in IEC-60958 standard. The least significant word is the left channel sample. Figure 4-17: Audio Data Packing 31 SP x x B P C U V Audio Sample The fields are defined as: SP x B P C U V : Sample Present : Not Used : Start of 192-bit IEC-60958 Channel Status : Parity Bit : Channel Status : User Data Bit : Valid Bit 24 0 HDMI Source

4-16 HDMI Audio Format The Audio Timestamp InfoFrame and Audio Sample Data packets on the Auxiliary Data Port are not filtered by the source. You must filter these packets externally if you want to loop back the auxiliary data stream from the sink. The Audio Information InfoFrame packet on the Auxiliary Data Port will be filtered by the source if the most significant bit of audio_info_ai port is set to 0. HDMI Audio Format The HDMI IP core uses the HDMI audio formats to transport payload data. UG-HDMI Table 4-5: Definition of HDMI Audio Format Value Name Description 0 Linear Pulse-Code Modulation (LPCM) HDMI packet type 2 transports payload data 1 One-Bit Audio HDMI packet type 7 transports payload data (not supported) 2 Direct Stream Transport (DST) Audio HDMI packet type 8 transports payload data (not supported) 3 High Bit Rate (HBR) HDMI packet type 9 transports payload data 4 3D (LPCM) HDMI packet type 11 transports payload data (not supported) 5 3D (One-Bit) HDMI packet type 12 transports payload data (not supported) 6 Multi-Stream Audio (MST) for LPCM HDMI packet type 14 transports payload data 7 MST for One-Bit Audio HDMI packet type 15 transports payload data (not supported) 8 15 Reserved In the LPCM format, the HDMI source accepts 2 to 8 channels.. The Sample Present bit determines whether to use 2-channel or 8-channel layout. If the Sample Present bit from Channel 0 or 1 is high, then audio interface uses the 2-channel layout. If otherwise, the audio interface uses the 8-channel layout. The IP core ignores the Parity, Channel Status, User Data, and Valid bits if the Sample Present bit is 0. In the HBR format, the sample packet data is identical to the LPCM format. In HBR mode, the HDMI source transmits 8 samples per clock. The core transmits the HBR audio packets using AUX packet header number 9. In the MST format, the sample packet data is also identical to the LPCM format. The MST mode enables a source to send up to 4 streams of audio to a sink device. The HDMI source sends 1, 2, or 4 streams. When the source sends fewer than 4 streams, you must set the input audio data to zero. HDMI Source

UG-HDMI Source Interfaces 4-17 Figure 4-18: MST Audio Format 4 Streams ST3-L ST3-R ST2-L ST2-R ST1-L ST1-R ST0-L ST0-R 2 Streams 0 0 0 0 ST1-L ST1-R ST0-L ST0-R 1 Stream 0 0 0 0 0 0 ST0-L ST0-R Source Interfaces The table lists the source's port interfaces. Table 4-6: Source Interfaces N is the number of symbols per clock. Interface Port Type Clock Domain Port Direction Description Reset Reset N/A reset Input Main asynchronous reset input. HDMI Source

4-18 Source Interfaces UG-HDMI Interface Port Type Clock Domain Port Direction Description Clock Clock N/A ls_clk Input Link speed clock input. 8/8 (1x), 10/8 (1.25x), 12/8 (1.5x), or 16/8 (2x) times the vid_clk according to color depth. This signal connects to the transceiver output clock. Clock N/A vid_clk Input Video data clock input. 1 symbol per clock mode = video pixel clock 2 symbols per clock mode = half the pixel clock 4 symbols per clock mode = quarter the pixel clock Clock N/A audio_clk Input Audio clock input. HDMI Source

UG-HDMI Source Interfaces 4-19 Interface Port Type Clock Domain Port Direction Description Video Data Port TMDS Data Port Auxiliar y Data Port Conduit vid_clk vid_data[n*48-1:0] Input Video 48-bit pixel data input port. In 2 symbols per clock (N=2) mode, this port accepts two 48-bit pixels per clock. In 4 symbols per clock (N=4) mode, this port accepts four 48-bit pixels per clock. Conduit vid_clk vid_de[n-1:0] Input Video data enable input that indicates active picture region. Conduit vid_clk vid_hsync[n-1:0] Input Video horizontal sync input. Conduit vid_clk vid_vsync[n-1:0] Input Video vertical sync input. Conduit ls_clk out_b[10*n-1:0] Output TMDS encoded blue channel output. Conduit ls_clk out_r[10*n-1:0] Output TMDS encoded red channel output. Conduit ls_clk out_g[10*n-1:0] Output TMDS encoded green channel output. Conduit ls_clk out_c[10*n-1:0] Output TMDS encoded clock channel output. Conduit ls_clk aux_ready Output Auxiliary data channel valid output. Conduit ls_clk aux_valid Input Auxiliary data channel valid input. Conduit ls_clk aux_data[71:0] Input Auxiliary data channel data input. Conduit ls_clk aux_sop Input Auxiliary data channel start-of-packet input. Conduit ls_clk aux_eop Input Auxiliary data channel end-of-packet input. HDMI Source

4-20 Source Interfaces UG-HDMI Interface Port Type Clock Domain Port Direction Description Conduit ls_clk mode Input Encoding mode input. 0 = DVI 1 = HDMI Encoder Control Port Audio Port Conduit ls_clk TMDS_Bit_clock_Ratio Input 0 = (TMDS bit period) / (TMDS clock period) ratio is 1/10 1 = (TMDS bit period) / (TMDS clock period) ratio is 1/40 Conduit ls_clk Scrambler_Enable Input 0 = Instructs the source device not to perform scrambling 1 = Instructs the source device to perform scrambling Conduit ls_clk ctrl[6*n-1:0] Input DVI control side-band inputs to override the necessary control and synchronization data in the green and red channels. Conduit audio_clk audio_cts[19:0] Input Audio CTS value input. Conduit audio_clk audio_n[19:0] Input Audio N value input. Conduit audio_clk audio_data[255:0] Input Audio data input. Conduit audio_clk audio_de Input Audio data valid input. Conduit audio_clk audio_mute Input Audio mute input. Conduit audio_clk audio_info_ai[48:0] Input Audio InfoFrame input bundle input. Conduit audio_clk audio_metadata[165:0] Input Carries additional information related to 3D audio and multistream audio. HDMI Source

UG-HDMI Source Clock Tree 4-21 Interface Port Type Clock Domain Port Direction Description Auxiliar y Control Port Conduit audio_clk audio_format[4:0] Input Indicates the audio format to be transmitted. Conduit ls_clk gcp[5:0] Input General Control Packet. Conduit ls_clk info_avi[112:0] Input Auxiliary Video Information InfoFrame input. Conduit ls_clk info_vsi[61:0] Input Vendor Specific Information InfoFrame input. Misc. Conduit version[31:0] Output Version of the HDMI core. Source Clock Tree The source uses various clocks. HDMI Source

4-22 Source Clock Tree Figure 4-19: Source Clock Tree The figure shows how the different clocks connect in the source core. UG-HDMI vid_clk HDMI Source Core ls_clk tx_clk[0] Transceiver Pixel Data WRCLK RDCLK Resampler FIFO WRCLK RDCLK Sync HSSI[0] Channel [0] WRCLK RDCLK Sync HSSI[1] Channel [1] AUX Data TMDS (TERC4) Encoder WRCLK RDCLK Sync HSSI[2] Channel [2] WRCLK RDCLK Sync HSSI[3] Channel [3] GPLL CLK0 CLK1 CLK2 ls_clk vid_clk Transceiver PLL reconfig The pixel data clocks into the core at the pixel clock (vid_clk). This same clock derives the required link speed clock (ls_clk), which is used to drive the transceiver phase-locked loop (PLL) input. The ls_clk depends on the color bits per pixel (bpp). Because the transceiver is in bonding mode, the HDMI source core uses tx_clk[0] to clock the data from the source core in the ls_clk domain into the transceiver in the tx_clk[0] domain. For HDMI source, you must instantiate 4 transmitter channels: 3 channels to transmit data and 1 channel to transmit clock information. You must connect the core ls_clk to the transceiver clock output, which performs the TMDS and TERC4 encoding. The auxiliary data clocks into the core at the ls_clk rate. HDMI Source

UG-HDMI Source Clock Tree 4-23 Related Information HDMI Hardware Demonstration on page 7-1 For more information about the transmitter and receiver channels. HDMI Source

HDMI Sink 5 UG-HDMI Subscribe Sink Functional Description The HDMI sink core provides direct connection to the Transceiver Native PHY through a 10-bit, 20-bit, or 40-bit parallel data path. Figure 5-1: HDMI Sink Signal Flow Diagram The figure below shows the flow of the HDMI sink signals. The figure shows the various clocking domains used within the core. TMDS Data Word Alignment and Channel Deskew Bitslip Word Align reset Deskew TMDS TERC4 Decoder Video Data AUX Data mode Video Resample Color Depth, pp vid_clk Video Data Video Data Port Capture GCP GCP Capture AVI AVI Infoframe Control Packet Ports Auxiliary Decoder Capture AI Auxiliary Memory Encoder AI Infoframe AUX Data Port Auxiliary Memory Interface Clock Domains ls_clk[2:0] vid_clk[0] ls_clk[0] Audio Decoder Auxiliary Packet Capture Audio Data Port The sink core provides three 10-bit, 20-bit, or 40-bit data input paths corresponding to the color channels. The sink core clocks the three 10-bit, 20-bit, or 40-bit channels from the transceiver outputs using the respective transceiver clock outputs. Blue channel: 0 Green channel: 1 Red channel: 2 2016 Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, NIOS, Quartus and Stratix words and logos are trademarks of Intel Corporation in the US and/or other countries. Other marks and brands may be claimed as the property of others. Intel warrants performance of its FPGA and semiconductor products to current specifications in accordance with Intel's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Intel. Intel customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ISO 9001:2008 Registered www.altera.com 101 Innovation Drive, San Jose, CA 95134

5-2 Sink Channel Word Alignment and Deskew Sink Channel Word Alignment and Deskew The input stage of the sink is responsible for synchronizing the incoming parallel data channels correctly. The synchronization is split to two stages: word alignment and channel deskew. Table 5-1: Synchronization Stages UG-HDMI Stage Description Word Alignment Correctly aligns the incoming parallel data to word boundaries using bit-slip technique. TMDS encoding does not guarantee unique control codes, but the core can still use the sequence of continuous symbols found in data and video preambles to align. The alignment algorithm searches for 12 consecutive 0 54 or 0 ab corresponding to the data and video preambles. Note: The preambles are also present in digital video interface (DVI) coding. The alignment logic asserts a marker indicator when the 12 consecutive signals are detected. Similarly, the logic infers alignment loss when 8K symbol clocks elapse without a single marker assertion. Channel Deskew When the data channels are aligned, the core then attempts to deskew each channel. The sink core deskews at the rising edge of the marker insertion. For every correct deskewed lane, the marker insertion will appear in all three TMDS encoded streams. The sink core deskews using three dual-clock FIFOs. The dual-clock FIFOs also synchronize all three data streams to the blue channel clock to be used later throughout the decoder core. HDMI Sink