DWC Hdmi TX Databook PDF
DWC Hdmi TX Databook PDF
Databook
SystemC is a trademark of the Open SystemC Initiative and is used under license.
ARM and AMBA are registered trademarks of ARM Limited.
Saber is a registered trademark of SabreMark Limited Partnership and is used under license.
PCI Express is a trademark of PCI-SIG.
All other product or company names may be trademarks of their respective owners.
Synopsys, Inc.
700 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Databook Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Web Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Chapter 1
Product Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.1 General Product Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.1.1 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.1.2 Standards Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.1.3 Unsupported Features and Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.1.4 HDMI Operational Model Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.2 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.4 Deliverables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.5 HDMI Transmit API Low-Level Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.6 Speed and Clock Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.7 Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Chapter 2
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1 DWC_hdmi_tx Functional Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2 Video Pixel Sampler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Supported Video Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4 Video Packetizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5 Color Space Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.6 Audio Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.6.1 Supported Audio Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.6.2 I2S interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.6.3 S/PDIF Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.6.4 Generic Parallel Audio (GPA) Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.6.5 AHB Audio DMA Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.7 Frame Composer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.8 HDCP Encryption Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.8.1 Controller Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.8.2 OESS Window of Opportunity Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.8.3 Random Number Generation Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.8.4 DVI or HDMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Chapter 3
Hardware Configuration Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Chapter 4
Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.1 Naming and Description Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.1.1 Signal Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.1.2 Signal Name Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.1.3 Signal Name Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.2 Top-Level I/O Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.3 Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.3.1 Video Input Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.3.2 Audio Input Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.3.3 System and Slave Register Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.3.4 E-DDC Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.3.5 CEC Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.3.6 HDCP Encryption Engine Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.3.7 Scan Test Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.3.8 HDMI TX PHY Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.3.9 HDMI 3D TX PHY (PHY GEN 2) Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.3.10 HDMI HEAC PHY Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.3.11 HDMI TX External PHY Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Chapter 5
Software Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.1 Register Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.2 Register and Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5.2.1 Identification Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
5.2.2 Interrupt Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.2.3 Video Sampler Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
5.2.4 Video Packetizer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.2.5 Frame Composer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
5.2.6 HDMI Source PHY Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
5.2.7 I2C Master PHY Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Appendix A
HDCP Application Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
A.1 Authentication Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
A.1.1 First Part of Authentication Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
A.1.2 Second Part of Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
A.1.3 Third Part of Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
A.2 HDCP State Machines and Debug Observation Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
A.2.1 HDCP Authentication FSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
A.2.2 HDCP Cipher FSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
A.2.3 HDCP Revocation FSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
A.2.4 OESS (Ordinary Encryption Status Signaling) FSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
A.2.5 EESS (Enhanced Encryption Status Signaling) FSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Revision History
Revision History
Preface
This databook describes the DesignWare Cores HDMI Transmitter Controller, which, along with the
Synopsys DWC HDMI TX PHY, is a part of a complete HDMI TX interface solution.
Throughout this databook, HDMI TX is used to reference the DWC_hdmi_tx controller.
Databook Organization
The chapters of this databook are organized as follows:
■ Chapter 1, “Product Overview” provides an introduction to the HDMI TX, including a block
diagram, supported features, deliverables, supported standards, and so.
■ Chapter 2, “Functional Description” details the functions of the HDMI TX.
■ Chapter 3, “Hardware Configuration Parameters” describes the hardware configuration parameters.
■ Chapter 4, “Signals” provides descriptions of the HDMI TX’s inputs/outputs.
■ Chapter 5, “Software Registers” provides the memory map of the HDMI TX and descriptions of the
programmable software registers.
■ Appendix A, “HDCP Application Note” provides more detail on the HDCP authentication protocol.
Related Documentation
Refer to the following documentation:
■ coreConsultant User’s Guide
■ coreAssembler User’s Guide
Web Resources
The following web links are various Synopsys online resources you may find useful:
■ DesignWare IP product information: http://www.designware.com
■ Your custom DesignWare IP page: http://www.mydesignware.com
■ Documentation through SolvNet: http://solvnet.synopsys.com (Solvnet ID required)
■ Synopsys Common Licensing (SCL): http://www.synopsys.com/keys
Customer Support
To obtain support for your product, choose one of the following:
■ First, prepare the following debug information, if applicable:
❑ For environment setup problems or failures with configuration, simulation, or synthesis that
occur within coreConsultant or coreAssembler, use the following menu entry:
File > Build Debug Tar-file
Check all the boxes in the dialog box that apply to your issue. This menu entry gathers all the
Synopsys product data needed to begin debugging an issue and writes it to the file
core tool startup directory/debug.tar.gz.
❑ For simulation issues outside of coreConsultant or coreAssembler:
■ Create a waveforms file (such as VPD or VCD)
■ Identify the hierarchy path to the DesignWare instance
■ Identify the timestamp of any signals or locations in the waveforms that are not understood
■ Then, contact Support Center, with a description of your question and supplying the above
information, using one of the following methods:
❑ For fastest response, use the SolvNet website. If you fill in your information as explained below,
your issue is automatically routed to a support engineer who is experienced with your product.
The Sub Product entry is critical for correct routing.
Go to http://solvnet.synopsys.com/support/open_case.action.
Provide the requested information, including:
■ Product: DesignWare Cores
■ Sub Product: HDMI Controller
■ Version: 1.40a-ea00
■ Problem Type:
■ Priority:
■ Title: Provide a short summary of the issue or list the error message you have encountered.
■ Description: For simulation issues, include the timestamp of any signals or locations in
waveforms that are not understood
After creating the case, attach any debug files you created in the previous step.
❑ Or, send an e-mail message to [email protected] (your e-mail will be queued and
then, on a first-come, first-served basis, manually routed to the correct support engineer):
■ Include the Product name, Sub Product name, and Tool Version number in your e-mail (as
identified above) so it can be routed correctly.
■ For simulation issues, include the timestamp of any signals or locations in waveforms that are
not understood
■ Attach any debug files you created in the previous step.
❑ Or, telephone your local support center:
■ North America:
Call 1-800-245-8005 from 7 AM to 5:30 PM Pacific time, Monday through Friday.
1
Product Overview
System Memory
System
CPU
Drivers
System Bus
Ethernet
PHY
RF Chip
Chip-to-Chip
Communications Data Multimedia Network
Sensor Module-to-Module Connectivity Communication
Interface Communications Connectivity
1.1.1 Applications
Typical applications for an HDMI device built with the DWC_hdmi_tx core are:
■ Blue-ray and HD-DVD player
■ A/V Receiver
■ Set-Top Box
■ Digital Still Camera
■ HDTV Camcorder
■ Portable Media Player
■ Video Game Console
■ Personal Computer
■ Mobile Phone
EDID
Display Data Channel (DDC) ROM
CEC Line
CEC CEC
Utility Line
HEAC
CEC HEAC
CEC
detect
CEC High/Low
HPD Line
Audio, video, and auxiliary data is transmitted across the three TMDS data channels. A TMDS clock
running at 1x (24-bit true color mode), 1.25x (30-bit Deep color mode), 1.5x (36-bit deep color mode), or 2x
(48-bit Deep-Color mode), the video pixel rate is transmitted on the TMDS clock channel and used by the
receiver as a frequency reference for data recovery on the three TMDS data channels. Video data can have a
pixel size of 24, 30, 36, or 48 bits. Video at the default 24-bit color depth is carried at a TMDS clock rate equal
to the pixel clock rate. Higher color depths are carried using a correspondingly higher TMDS clock rate.
Video formats with TMDS rates below 25 MHz (such as, 13.5 MHz for 480i/NTSC) can be transmitted using
a pixel-repetition scheme. The video pixels can be encoded in either RGB, YCBCR 4:4:4, or YCBCR 4:2:2
formats.
HDMI uses a packet structure to transmit audio and auxiliary data across the TMDS channels. To attain the
highest reliability required of audio and control data, this data is protected with a BCH error correction code
and is encoded using a special error reduction code to produce the transmitted 10-bit word.
Basic audio functionality consists of a single IEC 60958 L-PCM audio stream (two audio channels) at sample
rates of 32 kHz, 44.1 kHz, or 48 kHz, which can accommodate any normal stereo stream. Optionally, HDMI
can carry audio at sample rates up to 192 kHz and with three to eight audio channels. HDMI can also carry
an IEC 61937 compressed (such as, surround sound) audio stream at bit rates up to 24.576 Mbps. For bit
rates above 6.144 Mbps, compressed audio streams conforming to IEC 61937 are carried using HBR Audio
Stream Packets. Each packet carries four IEC 60958 frames, which corresponds to (4x2x16 =) 128 contiguous
bits of an IEC 61937 stream.
The source uses the DDC to read the sink’s Enhanced Extended Display Identification Data (E-EDID) to
obtain the sink’s configuration and/or capabilities.
The DesignWare Cores HDMI TX Controller schedules the three periods: Video Data Period, Data Island
period, and Control period. During the Video Data Period, the active pixels of an active video line are
transmitted. During the Data Island period, audio and auxiliary data are transmitted using a series of
packets. The Control period is used when no video, audio, or auxiliary data needs to be transmitted. A
Control Period is required between any two periods that are not Control Periods. An example of each
period placement is shown in Figure 1-3.
The optional HEAC (HDMI Ethernet and Audio Return Channel) functionality provides the capability of
transporting bi-directional Ethernet traffic and an S/PDIF Audio Return Channel (from the receiver to the
transmitter) over the HDMI cable.
T
o 480
t
a A
l c
t
L i
i v Data Video Data Period
n e Island Active Video
e Period
s L
i
n
e
s
1.2 Interfaces
HDMI TX has the following interfaces:
■ Optional HDCP interface
❑ External ROM interface for key storage
❑ External RAM interface for revocation
❑ Random number generator interface
■ Video input interface
❑ RGB 4:4:4
❑ YCbCr4:2:2
❑ YCbCr4:4:4
■ Digital audio input interface
❑ Four I2S interfaces for eight-channel audio
❑ S/PDIF interface
❑ Generic Parallel Audio
❑ AHB audio DMA
■ System interface
❑ AMBA APB
■ Scan test interface
■ HDMI TX PHY interface
■ CEC interface
1.3 Features
HDMI TX supports the following features:
■ Video formats:
❑ All CEA-861-E video formats up to 1080p at 60 Hz and 720p/1080i at 120 Hz
❑ Optional HDMI 1.4b video formats: (configuration dependent)
■ All CEA-861-E video formats up to 1080p at 120 Hz
■ HDMI 1.4b 4K x 2K video formats
■ HDMI 1.4b 3D video modes with up to 340 MHz (TMDS clock)
■ Colorimetry:
❑ 24/30/36/48-bit RGB 4:4:4
❑ 24/30/36/48-bit YCbCr 4:4:4
❑ 16/20/24-bit YCbCr 4:2:2
❑ xvYCC601
❑ xvYCC709
❑ Optional HDMI 1.4b colorimetry:
■ sYCC601
■ Adobe RGB
■ Adobe YCC601
■ Optional color space converter (CSC):
❑ RGB (4:4:4) to/from YCbCr (4:4:4 or 4:2:2)
■ Optional HDMI 1.4b supported Infoframes:
❑ Audio InfoFrame packet extension to support LFE playback level information
❑ AVI infoFrame packet extension to support YCC Quantization range (Limited Range, Full Range)
❑ AVI infoFrame packet extension to support Content type (Graphics, Photo, Cinema, Game)
■ Audio formats:
Table 2-3 on page 44 shows the supported audio formats for the DWC_hdmi_tx’s interfaces. Previous
versions of the DWC_hdmi_tx core included a High Bit Rate (HBR) audio interface. This interface is
now obsolete, however, the interfaces described in Table 2-3 on page 44 all support HBR.
■ Up to 192 kHz IEC60958 audio sampling rate
■ Pixel clock from 13.5 MHz up to 340 MHz
■ Option to remove pixel repetition clock (prepclk) from HDMI TX interface for an easy integration
with third-party HDMI TX PHYs
■ Flexible synchronous enable per clock domain to set functional power down modes
■ AMBA APB 3.0 register access
■ I2C DDC, EDID block read mode
1.4 Deliverables
The HDMI TX executable .run installation file contains the following deliverables:
■ HDMI TX custom-configured RTL source code (using coreConsultant or coreAssembler)
■ HDMI TX synthesis, design-for-test, and power reduction scripts (using coreConsultant or
coreAssembler)
■ HDMI TX Verilog test environment (using coreConsultant or coreAssembler)
■ This databook
■ DesignWare HDMI Transmitter Controller Installation Guide (PDF)
■ DesignWare HDMI Transmitter Controller Release Notes (PDF)
■ DesignWare HDMI Transmitter Controller User Guide (PDF)
Synopsys’ coreConsultant/coreAssembler tools, part of the coreTools suite of tools from Synopsys, are
necessary to generate RTL. Additional synthesis and simulation tools are required to create a gate level
netlist or verify the configured RTL.
ispdifclk (DRU bypassed and HBR_ON_SPDIF disabled) 4.096 MHz 24.576 MHz
iapbclk 27 MHz -
idmahclk 27 MHz -
1.7 Area
If you are using the TSMC 40nm LP technology, the following gate areas are applicable:
Table 1-2 DWC_hdmi_tx TSMC 40LP Gate Count
2
Functional Description
This chapter describes the functional architecture of the DWC HDMI TX controller.
The topics described are:
■ “DWC_hdmi_tx Functional Overview” on page 32
■ “Video Pixel Sampler” on page 33
■ “Supported Video Modes” on page 36
■ “Video Packetizer” on page 42
■ “Color Space Conversion” on page 43
■ “Audio Interfaces” on page 44
■ “Frame Composer” on page 68
■ “HDCP Encryption Engine” on page 70
■ “EDID/HDCP I2C E-DDC Interface” on page 85
■ “AMBA APB 3.0 Slave Interface” on page 88
■ “CEC Hardware Engine” on page 88
DWC_hdmi_tx
References
Color Space Video
Video Sampler
Video (page 33) Converter Packetizer
Interface (page 43) (page 42) TMDSCLKP
PLL
TMDSCLKN
I2S (page 45)
S/PDIF TMDSDATAP[0]
PLL
Audio (page 49) Audio Frame HDCP TMDSDATAN[0]
Interface GP Audio Packetizer Composer Encryptor
(page 50) (page 44) (page 68) (page 70) TMDSDATAP[0]
DMA (page 54) PLL
(page 54) TMDSDATAN[0]
The optional HDCP encryption engine is responsible for HDMI receiver authentication, revocation, and
data encryption. It has an exclusive read access to the external HDCP encryption Device Private Keys ROM,
making it impossible to access the confidential keys of the register bank and system interface.
You can configure the core to manually override several automatic actions like the N/CTS calculation or the
core’s power management state. Synchronous enables per clock domain give management modes the ability
to reduce the core’s power consumption. For example, you can configure DWC_hdmi_tx without HDCP
encryption, which puts the HDCP engine in idle operation mode.
The input video stream can be either RGB 4:4:4, YcbCr 4:2:2, or YcbCr 4:44 in single data rate (SDR) bus
formats as described in Table 2-1 on page 34. The video mode’s timing format must follow the CEA-861-E
specification. An embedded color space conversion allows the pixel color format to be converted on the
HDMI source side to match the best with the HDMI sink capabilities.
The input audio stream can be provided through a standard I2S format interface, S/PDIF, an AHB DMA
master, or a Generic Parallel interface (for all audio types: L-PCM, NL-PCM, and HBR), as described in the
“Audio Interfaces” on page 44.
The system interface (the interface that connects to the processor bus) is an AMBA APB.
Finally, the core can output video in full HD with up to 48-bit color mode and inserts high fidelity audio up
to eight-channels over low resolution video formats by performing automatic pixel repetition over the input
video stream.
Video Input
Format ivdata[47:0] mapping
Color Color 47-46 45- 43- 41- 39- 37- 35- 33- 31-30 29- 27- 25- 23- 21- 19- 17- 15-14 13- 11- 9- 7- 5- 3- 1-
Space Depth 44 42 40 38 35 34 32 28 26 24 22 20 18 16 12 10 8 6 4 2 0
Cr[7:0] Y[7:0]
Cr[11:0] Y[11:0]
For each video timing format, there is a specific timing parameters defined in the CEA-861-E specification.
The following timing diagram is an example for the video mode format 1 (640x480p @ 59.94/60 Hz):
Data Enable = idataen, HSYNC = ihsync, VSYNC = ivsync.
Data
Enable
96
16 48 clocks
HSYNC
Data
Enable
800 clocks 144
16
HSYNC
VSYNC
For a complete list of timing parameters and diagrams, refer to the CEA-861-E specification.
The SDR video sample input format is illustrated in Figure 2-3.
Figure 2-3 Video Sample Timing Interface for RGB, YCbCr SDR Format
idataen
ipclk
2D 3D Structure
L+depth+ Side-by-
Frame Side-by- graphics+ Side Top-and-
2D Packing Line Alt. Side (full) graphics- (Half) Bottom
H x V Active Refres Pixel Pixel Field Alt. Pixel Pixel L+depth depth Pixel Pixel
Video Resolution h Rate Rate Rate Pixel Rate Rate Rate Pixel Rate Pixel Rate Rate Rate
Mode Mode (pixel) (Hz) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s)
4 1280x720p (HDTV) 1280 x 720 59.94 74.18 148.35 148.35 148.35 148.35 296.70 74.18 74.18
5 1920x1080i (HDTV) 1920 x 1080 59.94 74.18 148.35 148.35 148.35 74.18 74.18
2.3 59.94 27.00 54.00 54.00 54.00 54.00 108.00 27.00 27.00
720x480p (EDTV) 720 x 480
2.3 60.00 27.03 54.05 54.05 54.05 54.05 108.11 27.03 27.03
2D 3D Structure
L+depth+ Side-by-
Frame Side-by- graphics+ Side Top-and-
2D Packing Line Alt. Side (full) graphics- (Half) Bottom
H x V Active Refres Pixel Pixel Field Alt. Pixel Pixel L+depth depth Pixel Pixel
Video Resolution h Rate Rate Rate Pixel Rate Rate Rate Pixel Rate Pixel Rate Rate Rate
Mode Mode (pixel) (Hz) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s)
17.18 720x576p (EDTV) 720 x 576 50.00 27.00 54.00 54.00 27.00 27.00
21.22 720(1440)x576i 1440 x 576 50.00 27.00 54.00 54.00 54.00 27.00 27.00
(SDTV)
8.9 59.94 27.00 54.00 54.00 54.00 54.00 108.00 27.00 27.00
720(1440)x240p 1440 x 240
8.9 60.00 27.03 54.05 54.05 54.05 54.05 108.11 27.03 27.03
12.13 59.94 54.00 108.00 108.00 108.00 108.00 216.00 54.00 54.00
1440(2880)x240p 2880 x 240
12.13 60.00 54.05 108.11 108.11 108.11 108.11 216.22 54.05 54.05
2D 3D Structure
L+depth+ Side-by-
Frame Side-by- graphics+ Side Top-and-
2D Packing Line Alt. Side (full) graphics- (Half) Bottom
H x V Active Refres Pixel Pixel Field Alt. Pixel Pixel L+depth depth Pixel Pixel
Video Resolution h Rate Rate Rate Pixel Rate Rate Rate Pixel Rate Pixel Rate Rate Rate
Mode Mode (pixel) (Hz) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s)
46 1920x1080i (HDTV) 1920 x 1080 119.88 148.35 296.70 296.70 296.70 148.35 148.35
2D 3D Structure
L+depth+ Side-by-
Frame Side-by- graphics+ Side Top-and-
2D Packing Line Alt. Side (full) graphics- (Half) Bottom
H x V Active Refres Pixel Pixel Field Alt. Pixel Pixel L+depth depth Pixel Pixel
Video Resolution h Rate Rate Rate Pixel Rate Rate Rate Pixel Rate Pixel Rate Rate Rate
Mode Mode (pixel) (Hz) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s)
29, 30 1440x576p (EDTV) 1440 x 576 50.00 54.00 108.00 108.00 108.00 108.00 216.00 54.00 54.00
37.38 2880x576p (EDTV) 2880 x 576 50.00 108.00 216.00 216.00 216.00 216.00 108.00 108.00
14.15 59.94 54.00 108.00 108.00 108.00 108.00 216.00 54.00 54.00
1440x480p (EDTV) 1440 x 480
14.15 60.00 54.05 108.11 108.11 108.11 108.11 216.22 54.05 54.05
35.36 59.94 54.00 108.00 108.00 108.00 108.00 216.00 54.00 54.00
2880x480p (EDTV) 2880 x 480
35.36 60.00 54.05 108.11 108.11 108.11 108.11 216.22 54.05 54.05
2D 3D Structure
L+depth+ Side-by-
Frame Side-by- graphics+ Side Top-and-
2D Packing Line Alt. Side (full) graphics- (Half) Bottom
H x V Active Refres Pixel Pixel Field Alt. Pixel Pixel L+depth depth Pixel Pixel
Video Resolution h Rate Rate Rate Pixel Rate Rate Rate Pixel Rate Pixel Rate Rate Rate
Mode Mode (pixel) (Hz) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s)
48.49 119.88 54.00 108.00 108.00 108.00 108.00 216.00 54.00 54.00
48.49 120.00 54.05 108.11 108.11 108.11 108.11 216.22 54.05 54.05
720x480p (EDTV) 720 x 480
56.57 239.76 108.00 216.00 216.00 216.00 216.00 108.00 108.00
42.43 100.00 54.00 108.00 108.00 108.00 108.00 216.00 54.00 54.00
720x576p (EDTV) 720 x 576
52.53 200.00 108.00 216.00 216.00 216.00 216.00 108.00 108.00
23.24 720(1440)x288p 1440 x 288 50.00 27.00 54.00 54.00 54.00 54.00 108.00 27.00 27.00
25.26 720(1440)x576i 1440 x 576 50.00 54.00 108.00 108.00 108.00 54.00 54.00
27.28 1440(2880)x288p 2880 x 288 50.00 54.00 108.00 108.00 108.00 108.00 216.00 54.00 54.00
2D 3D Structure
L+depth+ Side-by-
Frame Side-by- graphics+ Side Top-and-
2D Packing Line Alt. Side (full) graphics- (Half) Bottom
H x V Active Refres Pixel Pixel Field Alt. Pixel Pixel L+depth depth Pixel Pixel
Video Resolution h Rate Rate Rate Pixel Rate Rate Rate Pixel Rate Pixel Rate Rate Rate
Mode Mode (pixel) (Hz) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s) (Mp/s)
39 1920x1080i 1920 x 1080 50.00 72.00 144.00 144.00 144.00 72.00 72.00
default_phase
fix_pp_to_last
cx_goto_p0
pp_en
bypass_selector pp_stuffing
output_selector
Input_data
Pixel
Packing output_data
Pixel
Repeater 10, 12, 16
Packing Phase
FSM
16, 20, 24
YCC 422
remap ycc422_size,
ycc422_en
8-bit bypass
bypass_en
The CSC supports all the timings reported in the CEA-861-D specification and the following pixel modes:
■ RGB 444 and YCbCr 444: 24, 30, 36, and 48 bits
■ YCbCr 422: 16, 20, and 24 bits
The color space conversion matrix is ruled by the following equations listed in Figure 2-6. The color space
conversion registers base address is 0x4100. For more detailed information about the color space conversion
register, refer to Section 5.2.12 on page 275.
a. To support Compressed audio and HBR, you must map data on the I2S stream according to
“HBR and NL-PCM Support for I2S Interface” on page 47
b. For HBR support, you must enable HBR_ON_SPDIF and provide audio data at 768 kHz rate,
1 / fs
i2slr ck
i 2sclk
i2sdata 1 2 3 N-2 N -1 N 1 2 3 N -2 N -1 N
1
While in Left Justified Format mode (as shown in Figure 2-8), the MSB is available on the first rising edge of
i2saudioclk following an ii2slrclk transition. The other bits up to the LSB are then transmitted in order.
Depending on word length, ii2sclk frequency, and sample rate, there may be unused ii2sclk cycles before
each ii2slrclk transition.
1 / fs
Left Channel
i2sclk
i2sdata 1 2 3 N -2 N- 1 N 1 2 3 N-2 N -1 N
1
While in Right Justified Format mode (as shown in Figure 2-9), the LSB is available on the last rising edge of
ii2sclk before an ii2slrclk transition. All other bits are transmitted before, MSB first. There may be unused
ii2sclk cycles after each ii2slrclk transition, depending on word length, ii2sclk frequency, and sample rate.
1 / fs
Left Channel
Right Channel
i2slr ck
i2scl k
i 2sdata 1 2 3 N -2 N-1 N 1 2 3 N -2 N- 1 N
1
M SB LSB M SB LSB
While in Burst 1 Format mode (Figure 2-10), the left channel MSB is available on the second rising edge of
ii2sclk, following a rising edge of ii2slrclk. Right channel data immediately follows left channel data.
Depending on word length, ii2sclk frequency, and sample rate, there may be unused ii2sclk cycles between
the LSB of right channel data and the next sample.
1 / fs
i2scl k
i2sd ta 1 2 3 N -2 N- 1 N 1 2 3 N - 2 N-1 N 1 2
1
While in Burst 2 Format mode (Figure 2-11), the left channel MSB is available on the first rising edge of
ii2sclk, following a rising edge of ii2slrclk. Right channel data immediately follows left channel data.
Depending on word length, ii2sclk frequency, and sample rate, there may be unused ii2sclk cycles between
the LSB of right channel data and the next sample.
1 / fs
i 2sclk
For configuration details, refer to the Audio Sampler Registers described in Section 5.2.8 on page 244.
4. Configure the aud_conf2 register to HBR mode by using the HBR bit (bit 0).
5. Configure the I2S interface by using the aud_conf0.i2s_in_en bit field register.
Enable all the four channels so that each channel carries a pair of samples.
6. Map the I2S data sample, sampleI2S[20:0], in the following way:
sampleI2S[20:0] = {B,P,C,U,V, dataHBR[15:0]}
(Where B,P,C,U,V are IEC61937 parameters, and dataHBR[15:0] is the actual HBR sample data.)
7. Ensure that the I2S_in_en[3:0] channels adhere to the following arrangement:
8. The input sample sequence is such that the line transports frames (1 frame = 2 samples), as indicated
in the following table:
Frame Line
Sample 1, 2 I2S_in_en[0]
Sample 3, 4 I2S_in_en[1]
Sample 5, 6 I2S_in_en[2]
Sample 7, 8 I2S_in_en[3]
Sample 9, 10 I2S_in_en[0]
Sample 10, 11 I2S_in_en[1]
... ...
Note When you select the Bypass S/PDIF DRU in coreConsultant, the 512xfs rate does not apply.
In this case, ispdifclk must be 128xfs and ispdifdata must be synchronous with it.
Table 2-4 shows the S/PDIF bit rates corresponding to various common audio sampling frequencies and the
required ispdifclk rate. The symbol rate of the S/PDIF signal is actually twice as fast as the bit rate because
each bit is encoded as two states (bi-phase channel coding).
Table 2-4 Data Rate, Bi-Phase Channel Coding Rate, Required ispdifclk Rate
Audio Sampling Rate S/PDIF Bit Rate Bi-phase Channel Coding ispdifclk Rate fs (kHz)
fs (kHz) 64xfs (Mbps) Rate 2x64xfs (MHz) 4x2x64xfs=512xfs (MHz)
32 2.048 4.096 16.384
44.1 2.8224 5.6448 22.5792
48 3.072 6.144 24.576
88.2 5.6448 11.2896 45.1584
96 6.144 12.288 49.152
176.4 11.2896 22.5792 90.3168
192 12.288 24.576 98.304
768a 49.152 98.304
igpaclk
ogpadatareq
igpavalid
igpadata[28]
igpaclk
ogpadatareq Reqxxxx
1 cycle after or more
igpavalid
igpadata[28]
In Table 2-5 and Table 2-6, the data from bits 28:24 can be omitted from the input and inserted
Note by the DWC_hdmi_tx controller. This functionality is only valid when the GP Audio interface is
selected (AUDIO_IF = GPAUD [6]) and for Linear PCM audio only.
igpadata Bit
0 B.0. P C U V CH1LEFT
1 B.0. P C U V CH2RIGHT
2 B.0. P C U V CH1LEFT
3 B.0. P C U V CH2RIGHT
4 B.0. P C U V CH1LEFT
5 B.0. P C U V CH2RIGHT
6 B.0. P C U V CH1LEFT
7 B.0. P C U V CH2RIGHT
0x00
igpadata Bit
0 B.0. P C U V CH1LEFT
1 B.0. P C U V CH2RIGHT
2 B.1. P C U V CH3LEFT
3 B.1. P C U V CH4RIGHT
4 B.2. P C U V CH5LEFT
igpadata Bit
5 B.2. P C U V CH6RIGHT
6 B.3. P C U V CH7LEFT
7 B.3. P C U V CH8RIGHT
0x00
igpadata Bit
32 4096 25200 4096 27000 4096 54000 4096 74250 4096 148500 3072 222750
44.1 6272 28000 6272 30000 6272 60000 6272 82500 6272 165000 4704 247500
48 6144 25200 6144 27000 6144 54000 6144 74250 6144 148500 5120 247500
88.2 12544 28000 12544 30000 12544 60000 12544 82500 12544 165000 9408 247500
96 12288 25200 12288 27000 12288 54000 12288 74250 12288 148500 10240 247500
176.4 25088 28000 25088 30000 25088 60000 25088 82500 25088 165000 18816 247500
192 24576 25200 24576 27000 24576 54000 24576 74250 24576 148500 20480 247500
768 Used for HBR audio only. N and CTS configured for Fs=192 kHZ (1/4th ACR value per specification)
To support the deep color mode and/or 3D video modes, the TMDS clock is multiplied by 4, 2, 1.5, or 1.25,
depending on the mode. In this case, the CTS value must also follow the same ratio.
8
AHB Master FIFO Empty
Interrupt
DMA
Engine
hclk tmdsclk
The audio DMA block combines an AHB master interface with a FIFO to perform direct memory access to
audio samples stored in a system memory.
The DMA engine is configurable through programmable software registers to perform autonomous burst
reading on a configured memory range.
For more information on the CTS/N values, see “CTS Calculation” on page 53.
0 n-1 0
1 n-1 1
2 n-1 3
3 n-1 5
4 n 0
5 n 1
6 n 3
7 n 5
Table 2-10 Data Arrangement in System Memory for L-PCM (24 bits)
Bit Description
28 B – IEC B Bit
27 P – Parity Bit
24 V – Validity Bit
Table 2-11 Data Arrangement in System Memory for L-PCM (16 bits) and NL-PCM (16 bits)
Bit Description
28 Bx – IEC B Bit
27 P – Parity Bit
24 V – Validity Bit
[7:0] 0x00
Functional Behavior
The engine:
■ Commands read requests to start the burst in the initial address with the size sufficient to fill the
FIFO (the size of the FIFO is a parameter in the audio DMA core)
After this first request, the DMA engine performs subsequent burst requests (incrementing
accordingly ohaddr[31:0] and determining correct ohburst[2:0]) towards final_addr[31:0] configured
at the register bank and taking into account the FIFO depth and fifo_threshold[7:0] configuration.
■ Stops operation upon ERROR slave response, signaling ointerror interrupt and staterror signal
■ Issues ointdone interrupt when it reaches final address reading or is stopped upon user request
■ Automatically starts new burst requests until the final_addr[31:0] is reached
The DMA engine is either stopped by the user or an error condition appears at the slave response.
DMA Operation
Normal operation of the DMA engine is as follows:
1. The enable_hlock, incr_type[1:0], burst_mode, fifo_threshold[7:0], initial_addr[31:0], and
final_addr[31:0] are configured according to desired DMA operation.
Note The configured values must have the final_addr[31:0] value greater than the initial_addr[31:0]
value.
In the last burst request, the DMA engine calculates the mburstlength[10:0] such that
Attention
the last requested read position is the final_addr[31:0].
7. After completion of the DMA operation, the DMA engine issues the ointdone interrupt signaling end
of operation.
Variations of the DMA engine’s behavior occur when fixed-beat, incremental bursts are used by
INCR4/INCR8/INCR16 burst selects. When these burst modes are used, the DMA uses the selected transfer
size for the bulk of its transfers. It uses INCR transfers to resume from RETRY/SPLIT, and to finalize the
transfers if any one of the fields initial_addr[31:0], final_addr[31:0], or fifo_threshold are not aligned with
the selected burst size.
The following are exceptions to the described DMA behavior:
■ When a user requests end stop_dma_transaction, the DMA engine stops at the end of the current
burst operation and signals its completion with an ointdone interrupt.
■ When the AHB slave sends an error response, the DMA engine stops the current operation and
signals ointerror and ointdone interrupts.
Figure 2-15 Transfer Data Constitution for Unspecified Length, Incremental Burst
Package 1 Package M
Figure 2-16 on page 58 depicts the transfer data structure for an unspecified burst length.
Package 1 Package M
!s
DMA IDLE ta
n r t_
tio dm
ac
ns a_
tra tra
a_ n
dm sa
r t_ ct
sta ! start_dma_transaction ion
DMA DONE
DMA REQ
The DMA is waiting in this state for the HDMI interface to consume samples.
■ When DMA FIFO goes below threshold, DMA calculates a new start address and burst length, and
the state changes from DMA REQ to DMA XFER.
■ If stop_dma_transfer is received at DMA REQ, the state changes from DMA REQ to DMA STOP.
DMA XFER
The DMA commands the AHB Master to perform data transfers. There are three possible transitions that
can occur from this state:
■ If an error occurs in the AHB bus (HRESP=ERROR), the FSM goes to the DMA ERR state.
■ If the final address is reached or a stop_dma_transaction is received, the FSM goes to the DMA STOP
state.
■ If the AHB Master sends a pack finish signal, the FSM goes to state DMA DONE.
A pack is a block transfer of a maximum of 256 words. It can be lower due to the proximity of the 1K
address boundary, end of software buffer, or availiable headroom on the AHB DMA FIFO.
DMA DONE
The AHB DMA monitors the expected fill state of the AHB Audio DMA FIFO.
■ If the AHB Audio DMA FIFO is not full, the FSM goes to the DMA XFER state to request samples
from the AHB bus until enough samples are read to fill the FIFO.
■ If the AHB Audio DMA FIFO is full, the DMA FSM proceeds to the DMA REQ state to wait for a
below threshold event.
Note If samples are retrieved from the AHB Audio DMA FIFO during a sample read from the AHB
Bus, the AHB FIFO full event does not occur.
DMA STOP
A stop_dma_transaction signal is received.
■ The FSM waits for an inverted start_dma_transaction signal from the register bank as an
acknowledgement of a stop_dma_transaction signal.
■ When the start_dma_transaction signal inverts, the FSM goes to the state DMA IDLE.
32 4096 25200 4096 27000 4096 54000 4096 74250 4096 148500 3072 222750
44.1 6272 28000 6272 30000 6272 60000 6272 82500 6272 165000 4704 247500
48 6144 25200 6144 27000 6144 54000 6144 74250 6144 148500 5120 247500
88.2 12544 28000 12544 30000 12544 60000 12544 82500 12544 165000 9408 247500
96 12288 25200 12288 27000 12288 54000 12288 74250 12288 148500 10240 247500
176.4 25088 28000 25088 30000 25088 60000 25088 82500 25088 165000 18816 247500
192 24576 25200 24576 27000 24576 54000 24576 74250 24576 148500 20480 247500
768 Used for HBR audio only. N and CTS configured for Fs=192kHZ (1/4th ACR value per spec)
To support the deep color mode and/or 3D video modes, the TMDS clock is multiplied by 4, 2, 1.5, or 1.25,
depending on the mode. In this case, the CTS value must also follow the same ratio.
HDMI_TX_AHBDMAAUD_FIFO_ADDRWITH
2 – 2 x Number of audio channels enabled
tfifo_hold = Number of audio channels enabled
Fs
The worst case scenario for safe operation (72μs) is achieved for an AHB audio DMA FIFO depth of 128
positions, an audio sampling frequency of 192 kHz, and eight audio channels enabled.
To increase this time gap, the DWC_hdmi_tx core includes a mechanism for a dual buffer and for
auto-starting the audio transfer. To use the auto-start mechanism, it is required to set (1’b1) the Appendix
5.2.10.14, “ahb_dma_conf2”.autostart_enable bit field register and configure two sets of audio sample
buffers on the ahb_dma_straddr_set0_*, ahb_dma_stpaddr_set0_*, ahb_dma_straddr_set1_*, and
ahb_dma_stpaddr_set1_* registers.
This mechanism enables that the time required between reconfigurations be only limited by the size of the
provided buffer (final_address – initial_address + 1) and is calculated by the following formula:
Two operational modes are implemented and controlled through the ahb_dma_conf2.autostart_loop
register bit field. In the default mode (ahb_dma_conf2.autostart_loop set to 1‘b1), blind loop,
non-acknowledged operation is allowed. This mode targets a use case with static software buffers and
guaranteed audio samples throughput.
When autostart_loop is disabled (1’b0), you are required to acknowledge all buffer set usage, by updating at
least the LSB of the buffer stop address (ahb_dma_stpaddr_set0_0 or ahb_dma_stpaddr_set1_0). This flow
ensures that the hardware never uses a dirty buffer and targets use cases where the system is unable to
ensure the required audio data throughput at all times.
This bit has no effect if the autostart_enable is clear (1‘b0).
Figure 2-18 on page 63 and Figure 2-19 on page 64 shows the Set0 and Set1 audio sample buffers and the
auto-start mechanism.
Figure 2-20 on page 65 and Figure 2-21 on page 66 illustrate the programming flow for the auto-start
mechanism when Loop mode is enabled or disabled.
Figure 2-18 Dual Buffer, Auto-Starting Audio Transfer (Loop Mode Enabled)
Figure 2-19 Dual Buffer, Auto-Starting Audio Transfer (Loop Mode Disabled)
Figure 2-20 Auto-Start Programming Model – Loop Mode Enabled, Static Buffer Location
Write
ahb_dma_conf2.autostart_enable = 1‘b1
Write
ahb_dma_conf2.autostart_loop = 1‘b1
Issue start_dma_transaction
You can use this flow using dynamic allocated software buffers, but you must ensure that you
Note update the start and stop addresses before the next done interruption as hardware is not
checking if the buffers have been updated.
Write
ahb_dma_conf2.autostart_enable = 1‘b1
Write
ahb_dma_conf2.autostart_loop = 1‘b0
Issue start_dma_transaction
■ If ahb_dma_status.autostart_status is clear
(consuming buffer 0), update Set 1 Buffer
Yes (ahb_dma_straddr_set1_0 to
Done Interrupt ahb_dma_stpaddr_set1_3) — update at least
received? ahb_dma_stpaddr_set1_0
■ If ahb_dma_status.autostart_status is set
(consuming buffer 1), update Set 0 Buffer
No (ahb_dma_straddr_set0_0 to
ahb_dma_stpaddr_set0_3) — update at least
ahb_dma_stpaddr_set0_0
If the software is late updating the addresses of the Set 0 and/or Set 1 buffers, hardware
Note disables autostart_enable and the audio stream becomes lost. In this scenario, the AHB audio
DMA stops and requires a restart (clear the FIFOs through ahb_dma_conf0.sw_fifo_rst,
re-configure autostart_enable, start/stop addresses, and issue a start_dma_transaction).
■ If the autostart_loop is disabled (1'b0) and the controller detects that the next software buffer to be
used is not up to date (checked at the time of the done interruption), the autostart_enable
automatically clears (1'b0).
This feature reduces the overhead on the reconfiguration of the AHB audio DMA, but the
Note DWC_hdmi_tx host system must always ensure that samples reach the AHB audio DMA
master within the time gap determined tfifo_hold.
Packet Description
Audio Clock Regeneration (ACR) Indicates to sink device the N/CTS values that should be used in the ACR process
Audio Sample (AUDS) Transports L-PCM and IEC 61937 compressed audio
General Control (GCP) Indicates Color Depth, Pixel Packing phase, and AV mute information to sink
device
The packets described in Table 2-14 can be considered as low priority packets—even though they have
precise timing insertion—because their insertion timing is large (for example, one per frame or one per two
frames without specific location for some of the packet types and on user request transmit for others).
Packet Description
Audio Content Protection (ACP) Used to convey content-related information about the active audio stream
transmitted
Audio InfoFrame (AUDI) Indicates characteristics of the active audio stream by using IEC 60958
channel status bits, IEC 61937 burst info, and/or stream data (if present).
Source Data Product Descriptor (SPD) Name and product type of the source device. MPEG (MPEG) Source
infoFrame InfoFrame packets (optional, implementation discouraged by CEA-861-E
Section 6.7). Describes several aspects of the compressed video stream
that were used to produce the uncompressed video.
The Frame Composer distributes and assembles the data island packets according to the module register
bank configuration. The block allows extended control periods to appear with a certain programmed
spacing. The Frame Composer uses two packet buffers that allow a packet to be composed while another is
being sent to the output HDMI stream.
Packet requests are inserted into the packet queues by a data island flexible scheduler. The HDMI
specification requires that packet distribution and insertion timing correctly compose an output HDMI
TMDS stream. In this context, there are data island packets that are sent on data availability, while others
are sent once per frame or once per two frames. and finally others that are sent on user request.
Classification of the packets according to this insertion timing is described in Table 2-15.
Packet Classification
Null (NULL) On user request or automatic insertion to fill Data Island period.
Source Data Product Descriptor (SPD) infoFrame On user request or automatic insertion.
The Data Island Scheduler (DIS) handles packet distribution in the Frame Composer. The DIS is a round-
robin (RDRB) state machine that is able to schedule packet insertion on an input video frame or line basis.
The DIS is fully configurable and can schedule any packet type to be inserted at a given input video frame
rate or input video line rate.
While determining packet distribution on an input video frame or line basis, the DIS schedules the packets
to be inserted in the output HDMI stream by inserting the packet descriptor in the corresponding packet
priority queue, according to packet priority classification.
After the packet descriptor has been inserted in the packet priority queues, the Data Island Packer (DIP) is
responsible for assembling and sequencing the packets for output HDMI stream insertion.
Dedicated ECC generators and checksum byte-wide sum hardware generate the BCH ECC parity codes and
infoFrames checksums for all the data islands packets.
The content of GCP, ISRC1/2, VSD, AVI, and SPD packets are configured through the registers bank
starting at address 0x1000. For more detailed information about the Frame Composer registers, refer to
Section 5.2.5 on page 174.
HDCP is designed to protect the transmission of audio-visual content between an HDCP Transmitter and
an HDCP Receiver. The system also allows for HDCP Repeaters that support downstream HDCP-protected
interface ports. The HDCP system allows up to seven levels of HDCP Repeaters and as many as 128 total
HDCP devices, including HDCP Repeaters, to be attached to an HDCP-protected interface port.
The authentication protocol enables the HDCP Transmitter to verify that a given HDCP Receiver is licensed.
With the legitimacy of the Receiver determined, encrypted HDCP content is transmitted between the two
based on shared secrets established during authentication. In the event that legitimate devices are
compromised to permit unauthorized use of the content, renewability allows an HDCP Transmitter to
identify such compromised devices and prevent the transmission of the content.
The implemented HDCP functionality is compliant with HDCP revision 1.4. The HDCP transmitter
implements the three layers of the HDCP cipher, including LFSR and other functions required to generate
the encryption key bytes that are then XORed with the data.
To perform the authentication steps of the HDCP protocol, the DWC_hdmi_tx includes a set of registers and
interrupts. It also includes AV mute capabilities via a mapped register configuration. HDCP keys and a
revocation list can be read from external ROM by a dedicated interface.
For more information about the HDCP authentication protocol, refer to Appendix A, “HDCP Application
Note” on page 323.
Figure 2-22 on page 71 shows a block diagram of the DWC_hdmi_tx with HDCP.
clk
wpesspffst[7:0] 8
OESS
OFFSET 0 32 .... 3 2 1 1
COUNTER
OESS
WINDOW
clk
mdnumgenena
Revoc Period
revocmemclk
revocmemwen
revocmemcs
revocmemdataout[7:0] x valid
revocmemdatain[7:0] x valid x
The revocmemclk signal defined in Figure 2-25 is the same as the SFR clock signal that is provided to the
DWC_hdmi_tx. For example, to support the maximum number of KSVs in the Revocation List, the external
memory is (10 + 127 * 5 + 20 + 2 + 1012 * 5) ~ 5.8 Kbytes.
In Figure 2-25, although the revocemclk clock is provided to the revocation memory, the revocation
memory is essentially an asynchronous read memory, and it does not work as a synchronous memory by
default.
To support a synchronous KSV memory, perform read access in the way described in the following table.
Table 2-16 Read access for Synchronous KSV Memory
addr n-1 data n-1 Read addr (n-1) to get data (n-2)
Hence, you must perform one extra read operation to get a full list of n positions from a synchronous KSV
memory, while write access can be performed on any position.
Table 2-17 provides the address mapping for System Renewability Messages (SRM) and for the Revocation
List exchange with the HDCP encryption engine.
Table 2-17 Address Mapping for Maximum Memory Allocation
SRM / Revocation
Address in Memory Address Mapping to Registers Bit Location mapping
SRM / Revocation
Address in Memory Address Mapping to Registers Bit Location mapping
You can decrease the size of the memory by using a system that supports lesser repeaters and lesser KSVs in
the Revocation List.
For example, to a system that supports five repeaters and 250 KSVs in the Revocation List, the external
memory needs to have a size of (2+8+5*5+20+2+250*5) ~ 1.3 Kbytes. Alternatively, with the same number of
repeaters supported and without the Revocation List, the external memory needs to have a size of
(2+8+5*5+20+2)= 57 bytes.
Table 2-18 provides the address mapping for System Renewability Messages (SRM) and for the Revocation
List exchange with the HDCP encryption engine for a system that supports five Repeaters and N KSVs in
the Revocation List.
The first VH byte address is always next to the last KSV address. The first REVOC_KSV byte
Note address is always 13'h029B, and the REVOC_LIST_SIZE[7:0] address is always 13'h0299.
SRM / Revocation
Address in Memory Address Mapping to Registers Bit Location mapping
SRM / Revocation
Address in Memory Address Mapping to Registers Bit Location mapping
Note In the table, Nr = N-1; and (Nr*5)h is the hexadecimal conversion for Nr * 5.
It is very important to make sure that is not possible to read this memory once programmed.
Note Only the DWC_hdmi_tx can have a read access to it.
The DWC_hdmi_tx includes two options for this memory interface: a 56-bit memory interface or an 8-bit
memory interface.
D Q Read
odpkreq
async logic
Q odpkaccess
HDMI Address
D Q
odpkaddr
Q
Data External
Q D
idpkdatain HDCP Keys
Q idpkack
odpkclk
odpkaccess
odpkreq
odpkack
The test DPKs are placed in the DPK memory of the DWC_hdmi_tx verification environment as follows
(note that DWC_hdmi_tx has the transmitter1 and transmitter2 DPKs placed in the ROM memory and each
set occupies 41 positions of 56 bit):
In a production environment, ROM memory must be filled with production DPKs. Otherwise,
Note the system does not work with other Receiver or Repeater devices. Each device must have its
own secret non-sharable DPKs.
To receive the DPKs, sign the HDCP agreement and purchase it from Digital Content
Protection LLC (DCP) (http://www.digital-cp.com/).
Place the received secret DPKs and KSV from DCP the way the test DPKs are placed, as
described previously. Typically, DCP sends one set of DPKs and the KSV; you should place
them on the 41 positions of 56 bits of the DPK ROM.
D Q Read
odpkmemreq
async logic
Q
HDMI Address
D Q
odpkmemaddr
Q
Data External
Q D
idpkmemdata HDCP Keys
Q
odpkclk
The HDCP interface requires only three signals: two output signals (odpkmemreq, odpkmemaddr to the
memory) and one input signal (idpkmemdata from the memory). Figure 2-29 shows the expected timing
behavior for the 8-bit memory interface (maximum frequency is 27 MHz). For more information about these
signals, refer to Table 4-6 on page 113.
odpkclk
odpkmemreq
idpkmemdatai[7:0] valid
The HDCP DPK mapping into the external memory is defined in Table 2-20.
Table 2-20 HDCP DPK 8-bit Memory Mapping
0 8-bit Reserved
6 8-bit Reserved
7 8-bit Reserved
8 8-bit Reserved
_ _ _
S slaveaddr[6:0] W A addr[7:0] datao[7:0] A/A PA/A
Legend:
Transaction from master to slave. _ – Acknowledge (sdao low)
A
A – not Acknowledge (sdao high)
Transaction from slave to master.
S_ – Start condition
P – Stop condition
W – Write indication
_ _ _
S slaveaddr[6:0] W A addr[7:0] A/A Sr slaveaddr[6:0] R A datai[7:0] A P
Legend:
Transaction from master to slave. A
_ – Acknowledge (sdao low)
A – not Acknowledge (sdao high)
Transaction from slave to master. S – Start condition
Sr
_ – Repeated start condition
P – Stop condition
W – Write indication
R – Read indication
_ _
S segaddr[6:0] W X segpointer[7:0] X Sr slaveaddr[6:0] W A addr[7:0] A/A Sr slaveaddr[6:0] R A datai[7:0] A P
Legend:
Transaction from master to slave.
A
_ – Acknowledge (sdao low)
A – not Acknowledge (sdao high)
S – Start condition
Sr – Repeated start condition
P_ – Stop condition
W – Write indication
R – Read indication
X – Don't care
a. The values included in this column are used in Synopsys HDMI compliance testing of
the DWC_hdmi_tx controller. It is strongly recommended that you use these values to
avoid issues with existing compliance test equipment.
IC_xCNT = (ROUNDUP(MIN_SCL_HIGH_LOWtime*SFRFREQ,0))
IC_HCNT = (ROUNDUP(600 ns * 27 MHz,0))
IC_HCNTSCL PERIOD = 17
IC_xCNT = (ROUNDUP(MIN_SCL_HIGH_LOWtime*SFRFREQ,0))
IC_HCNT = (ROUNDUP(4000 ns * 27 MHz,0))
IC_HCNTSCL PERIOD = 108
ocecout
icecin CEC
Engine
Register configuration
Bank
For correct CEC controller interface operation, initial reset is required in order to set internal registers to a
known state. After this reset, the interface is in an IDLE state, waiting for a read or write request coming
from the register configuration.
When you apply a software reset to CEC using the register mc_swrstzreq, set the value of the
Note bit cecclk_disable of the register mc_clkdis to 1, 0, and then 1 again.
A specific CEC API is provided that implements all necessary low-level register configuration to send and
receive CEC messages. For more information, see the CEC API documentation.
The CEC engine registers base address is 0x7D00. For more information about these registers, refer to 5.2.16
on page 305. For more information about CEC, refer to the Consumer Electronics Control (CEC) Application
Note.
3
Hardware Configuration Parameters
This chapter provides a description of the hardware configuration parameters available for the
DWC_hdmi_tx. You use either the coreConsultant GUI to specify the configuration parameters.
The coreConsultant GUI groups the parameters as follows:
■ “Interfaces” on page 92
■ “Feature Definition” on page 93
■ “Metastability Option” on page 95
4
Signals
This chapter helps you to understand HDMI TX signals and their properties. It describes the naming
conventions, I/O mapping, width, dependencies, and their behavior with various interfaces.
The topics include:
■ “Naming and Description Conventions” on page 98
■ “Signal Descriptions” on page 101
❑ “Video Input Interface Signals” on page 101
❑ “Audio Input Interface Signals” on page 103
❑ “System and Slave Register Interface Signals” on page 109
❑ “E-DDC Interface Signals” on page 111
❑ “CEC Interface Signals” on page 112
❑ “HDCP Encryption Engine Signals” on page 113
❑ “Scan Test Interface Signals” on page 117
❑ “HDMI TX PHY Interface Signals” on page 119
❑ “HDMI 3D TX PHY (PHY GEN 2) Interface Signals” on page 120
❑ “HDMI HEAC PHY Interface Signals” on page 121
❑ “HDMI TX External PHY Signals” on page 122
Inputs Outputs
Synchronous Registered boundary Synchronous Registered boundary
input output
clk clk
input output
clk clk
Asynchronous Asynchronous
input output
iscan_phy_in
irstz oscan_phy_out
isfrclk
ointerrupt
ihpd
iapbclk ioavdd18
iapbrstz ioavdd10
iapbenable iovdd
iapbsel ioagnd18
APB 3.0 Slave
iapbaddr ioagnd10 HDMI TX PHY
Interface
iapbwrite iovss Interface Signals
oapbready iorref
iapbwdata ioatestmon
iapbwdata otmdsdatap
otmdsdatan
otmdsclkp
otmdsclkn
DWC_hdmi_tx
iphyext_tclk iovp
iphyext_prepclk iovp_filt0
ophyext_dataencoded iovp_filt1
ophyext_rstz iovp_filt2
iphyext_lock iovph
HDMI TX External PHY iphyext_rxsense iogd HDMI 3D TX PHY (PHY
Signals ophyext_ppdq ioddccec GEN 2) Interface Signals
ophyext_txpwron ioresref_f
iphyext_hpd ioresref_s
ophyext_enhpdrxsense otmdsdatap
ophyext_sparectl otmdsdatan
ophyext_i2c_sdaout otmdsclkp
ophyext_i2c_sclout otmdsclkn
iphyext_i2c_sclin ophydtb
iphyext_i2c_sdain
iovdd_heac
iovss_heac
iogd_heac
iovph_heac
oheacphy_dtb
iscanin_heac HDMI HEAC PHY
oscanout_heac Interface Signals
ihectxdatan
ihectxdatap
oarcrxdata
ioheacn
ioheacp
iohecrxdatan
iohecrxdatap
ioresext
ioresextv
DWC_hdmi_tx
idataen
ihsync
Video Input Interface ipixelclk
ivdata
ivsync
Width
Name (bits) I/O Description
idataen 1 I Video data enable
Active State: High
Registered: No
Synchronous to: ipixelclk
Dependencies: Always present
ihsync 1 I Video horizontal sync signal
Active State: Active
Registered: No
Synchronous to: ipixelclk
Dependencies: Always present
Width
Name (bits) I/O Description
ipixelclk 1 I Data pixel clock
Active State: N/A
Registered: No
Synchronous to: ipixelclk
Dependencies: Always present
ivdata 48 I Video data input
Active State: N/A
Registered: No
Synchronous to: ipixelclk
Dependencies: Always present
ivsync 1 I Video vertical sync signal
Active State: High
Registered: No
Synchronous to: ipixelclk
Dependencies: Always present
ii2sclk DWC_hdmi_tx
I2S Interface ii2slrclk
ii2sdata
ispdifclk
S/PDIF Interface ispdifdata
igpadata[28]
igpadata[27]
igpadata[26]
igpadata[25]
igpadata[24]
GPA Interface igpadata[23:0]
igpavalid
ogpadatareq
igpaclk
idmahresetn
idmahclk
odmahaddr[31:0]
odmahtrans[1:0]
odmahwrite
odmahsize[2:0]
DMA Audio Interface odmahburst[2:0]
odmahwdata[31:0]
AHB Master
idmahrdata[31:0]
idmahready
idmahresp[2:0]
odmahbusreq
odmahlock
idmahgrant
Width
Name (bits) I/O Description
I2S Interface
Width
Name (bits) I/O Description
ii2sdata 4 I Audio data input. The following bits inputs audio data to sent in the specified
channels.
Bit 0 – Channel 1 and 2
Bit 1 – Channel 3 and 4
Bit 2 – Channel 5 and 6
Bit 3 – Channel 7 and 8
Active State: N/A
Registered: Yes
Synchronous to: ii2sclk
Dependencies: AUDIO_IF = I2S (1), DOUBLE (I2S and S/DPIF) [4], or GDOUBLE
(GP Audio and I2S) [7]
S/PDIF Interface
igpadata[28] 1 I B flag
= 1 if the Sub-packet contains the first frame in a 192 frame IEC 60958 Channel
Status block.
= 0 otherwise
Active State: N/A
Registered: Yes
Synchronous to: igpaclk
Dependencies: AUDIO_IF = 6 (GPAUD) or 7 (GDOUBLE [I2S+GPAUD])
Width
Name (bits) I/O Description
igpadata[27] 1 I P flag
Active State: N/A
Registered: Yes
Synchronous to: igpaclk
Dependencies: AUDIO_IF = 6 (GPAUD) or 7 (GDOUBLE [I2S+GPAUD])
igpadata[26] 1 I C flag
Active State: N/A
Registered: Yes
Synchronous to: igpaclk
Dependencies: AUDIO_IF = 6 (GPAUD) or 7 (GDOUBLE [I2S+GPAUD])
igpadata[25] 1 I U flag
Active State: N/A
Registered: Yes
Synchronous to: igpaclk
Dependencies: AUDIO_IF = 6 (GPAUD) or 7 (GDOUBLE [I2S+GPAUD])
igpadata[24] 1 I V flag
Active State: N/A
Registered: Yes
Synchronous to: igpaclk
Dependencies: AUDIO_IF = 6 (GPAUD) or 7 (GDOUBLE [I2S+GPAUD])
igpavalid 1 I Indicates when a valid sample is available at the gpadata input interface when high
Active State: Active
Registered: Yes
Synchronous to: igpaclk
Dependencies: AUDIO_IF = 6 (GPAUD) or 7 (GDOUBLE [I2S+GPAUD])
ogpadatareq 1 O High when new data is required. Low when no data is required or when the parallel
interface is disabled.
Active State: High
Registered: Yes
Synchronous to: igpaclk
External Input Delay: N/A
Dependencies: AUDIO_IF = 6 (GPAUD) or 7 (GDOUBLE [I2S+GPAUD])
Value After Reset: 0
Width
Name (bits) I/O Description
igpaclk 1 I System clock, used to capture the audio sample bus. It can be same as the system
bus clock, or any other clock above 20 MHz.
Active State: N/A
Registered: Yes
Synchronous to: igpaclk
External Input Delay: N/A
Dependencies: AUDIO_IF = 6 (GPAUD) or 7 (GDOUBLE [I2S+GPAUD])
idmahresetn 1 I Asynchronous active low reset signal for AHB bus (not synchronized inside this
module).
Active State: Low
Registered: Asynchronous
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
idmahclk 1 I Bus clock. This clock times all bus transfers. All signal timings are related to the
rising edge of HCLK
Active State: N/A
Registered: Yes
Synchronous to: N/A
Dependencies: AUDIO_IF = AHB DMA Audio (8)
odmahtrans 2 O Indicates the type of the current transfer, which can be NONSEQUENTIAL,
SEQUENTIAL, IDLE or BUSY.
Active State: N/A
Registered: Yes
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
Value After Reset: 0x0
odmahwrite 1 O When HIGH, this signal indicates a write transfer; when LOW a read transfer.
Active State: N/A
Registered: Yes
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
Value After Reset: 0
Width
Name (bits) I/O Description
odmahsize 3 O Indicates the size of the transfer, which is typically byte (8-bit), halfword (16-bit) or
word (32-bit). The protocol allows for larger transfer sizes up to a maximum of 1024
bits.
Registered: Yes
Synchronous to: idmahclk
External Input Delay: N/A
Dependencies: AUDIO_IF = AHB DMA Audio (8)
Value After Reset: 0x2
odmahburst 3 O Indicates if the transfer forms part of a burst. Unidentified length, four, eight and
sixteen beat bursts are supported in incrementing burst type (wrapping is not
supported).
Registered: Yes
Synchronous to: idmahclk
External Input Delay: N/A
Dependencies: AUDIO_IF = AHB DMA Audio (8)
Value After Reset: 0x0
odmahwdata 32 O The write data bus is used to transfer data from the master to the bus slaves during
write operations. Exists only for AHB compliance. Not needed in the AHB audio
DMA operation context.
Active State: N/A
Registered: Yes
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
Value After Reset: 0x0000000000000000
idmahrdata 32 I The read data bus is used to transfer data from bus slaves to the bus master during
read operations.
Active State: N/A
Registered: Yes
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
idmahready 1 I Transfer done. When HIGH, the signal indicates that a transfer has finished on the
bus. This signal may be driven LOW to extend a transfer.
Active State: High
Registered: Yes
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
Width
Name (bits) I/O Description
idmahresp 2 I The transfer response provides additional information on the status of a transfer.
Four different responses are provided, OKAY, ERROR, RETRY and SPLIT.
Active State: N/A
Registered: Yes
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
odmahbusreq 1 O A signal from AHB audio DMA bus master to the bus arbiter, which indicates that the
bus master requires the bus.
Active State: N/A
Registered: Yes
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
Value After Reset: 0
odmahlock 1 O When HIGH this signal indicates to the arbiter that the master requires locked
access to the bus and no other master should be granted the bus until this signal is
LOW.
Active State: High
Registered: Yes
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
Value After Reset: 0
idmahgrant 1 I This signal indicates that the AHB audio DMA is currently the highest priority
master. Ownership of the address/control signals changes at the end of a transfer
when ihready is HIGH, so a master gets access to the bus when both ihready and
ihgrant are HIGH.
Active State: High
Registered: Yes
Synchronous to: idmahclk
Dependencies: AUDIO_IF = AHB DMA Audio (8)
DWC_hdmi_tx
irstz
isfrclk
ointerrupt
iapbclk
iapbrstz
iapbenable
iapbsel
APB 3.0 Slave Interface iapbaddr
iapbwrite
oapbready
iapbwdata
iapbwdata
Width
Name (bits) I/O Description
irstz 1 I Active low asynchronous, master reset input (minimum duration of 500us for
active low reset state)
Active State: Low
Registered: No
Synchronous to: N/A
Dependencies: Always present
isfrclk 1 I Internal register configuration clock (must be in the range 18-27 MHz)
Active State: N/A
Registered: No
Synchronous to: N/A
Dependencies: Always present
ointerrupt 1 O Master interrupt signal
Active State: High
Registered: No
Synchronous to: Asynchronous
Dependencies: Always present
Value After Reset: 0
APB 3.0 Slave Interface
iapbclk 1 I APB bus clock (same as system controller core)
Active State: N/A
Registered: No
Synchronous to: N/A
Table 4-3 System and Slave Register Interface Signals Description (Continued)
Width
Name (bits) I/O Description
iapbrstz 1 I APB bus synchronous active low reset (minimum duration of one AHB bus clock
cycle)
Active State: Low
Registered: No
Synchronous to: Asynchronous
iapbenable 1 I APB enable
Active State: High
Registered: Yes
Synchronous to: iapbclk
iapbsel 1 I APB Slave select signal
Active State: High
Registered: Yes
Synchronous to: iapbclk
iapbaddr 16 I APB address bus
Active State: N/A
Registered: Yes
Synchronous to: iapbclk
iapbwrite 1 I APB write indication signal
Active State: High
Registered: Yes
Synchronous to: iapbclk
oapbready 1 O APB Slave interface ready output signal
1: Slave ready
0: Slave not ready (wait cycles inserted)
Active State: High
Registered: Yes
Synchronous to: iapbclk
Value After Reset: 0
iapbwdata 8 I APB Write data bus
Active State: N/A
Registered: Yes
Synchronous to: iapbclk
oapbrdata 8 O APB Read data bus
Active State: N/A
Registered: Yes
Synchronous to: iapbclk
Value After Reset: 0x00
DWC_hdmi_tx
ii2c_msth13tddc_sclin
E-DDC Interface oi2c_msth13tddc_sclout
ii2c_msth13tddc_sdain
oi2c_msth13tddc_sdaout
Width
Name (bits) I/O Description
ii2c_msth13tddc_sclin 1 I HDMI DDC I2C slave clock input for HDCP and E-EDID communication with
transmitter
Active State: N/A
Registered: No
Synchronous to: Asynchronous
Dependencies: None
oi2c_msth13tddc_sclout 1 O HDMI DDC I2C slave clock output
Active State: N/A
Registered: No
Synchronous to: Asynchronous
Dependencies: None
Value After Reset: 1
ii2c_msth13tddc_sdain 1 I HDMI DDC I2C slave data input for E-EDID access HDCP and ID
communication with transmitter.
Active State: N/A
Registered: No
Synchronous to: Asynchronous
Dependencies: None
oi2c_msth13tddc_sdaout 1 O HDMI DDC I2C slave data output for E-EDID access
Active State: N/A
Registered: No
Synchronous to: Asynchronous
Dependencies: None
Value After Reset: 1
DWC_hdmi_tx
icecclk
CEC Interface icecin
ocecout
ointerruptwakeup
Width
Name (bits) I/O Description
icecclk 1 I CEC controller main clock input (Fixed frequency 32.768 kHz)
Active State: N/A
Registered: No
Synchronous to: N/A
Dependencies: CEC = 1
odpkclk DWC_hdmi_tx
idpkack
idpkdatain
56-bit DPK Memory Interface odpkaddr
odpkreq
odpkaccess
odpkmemreq
8-bit DPK Memory Interface odpkmemaddr
idpkmemdatai
irevocmemdatain
orevocmemclk
orevocmemaddress
Revocation Memory Interface orevocmemcs
orevocmemwen
orevocmemdataout
Width
Name (bits) I/O Description
odpkclk 1 O DPKs access clock signal (same as isfrclk clock)
Note: This signal does not stop under test/scan mode because it is directly
connected to sfrclk. If you require this output to be muted in scan mode, you
must connect it externally to the DWC_hdmi_tx core.
Active State: N/A
Registered: No
Synchronous to: N/A
Dependencies: HCDP = 1 (True)
Value After Reset: 0
56-bit DPK Memory Interface
idpkack 1 I Device Private Keys (DPKs) read access acknowledge signal
Active State: High
Registered: Yes
Synchronous to: odpkclk
Dependencies: HCDP = 1 (True) and DWC_HDMI_HDCP_DPK_8BIT = 0
Width
Name (bits) I/O Description
idpkdatain 6 O DPKs data input bus
Active State: N/A
Registered: Yes
Synchronous to: odpkclk
Dependencies: HCDP = 1&DWC_HDMI_HDCP_DPK_8BIT = 0
odpkaddr 6 O DPKs address bus
Active State: N/A
Registered: Yes
Synchronous to: odpkclk
Dependencies: HCDP = 1&DWC_HDMI_HDCP_DPK_8BIT = 0
Value After Reset: 0x00
odpkreq 1 O DPKs read access request signal
Active State: High
Registered: Yes
Synchronous to: odpkclk
Dependencies: HCDP = 1&DWC_HDMI_HDCP_DPK_8BIT = 0
Value After Reset: 0
odpkaccess 1 O DPKs access notification signal
Active State: High
Registered: Yes
Synchronous to: odpkclk
Dependencies: HCDP = 1&DWC_HDMI_HDCP_DPK_8BIT = 0
Value After Reset: 0
8-bit DPK Memory Interface
odpkmemreq 1 O DPKs read enable
Active State: High
Registered: Yes
Synchronous to: odpkclk
Dependencies: HDCP = 1&DWC_HDMI_HDCP_DPK_8BIT = 1
Value After Reset: 0
odpkmemaddr 9 O DPKs Address bus
Active State: N/A
Registered: Yes
Synchronous to: odpkclk
Dependencies: HDCP = 1&DWC_HDMI_HDCP_DPK_8BIT = 1
Value After Reset: 0x00
Width
Name (bits) I/O Description
idpkmemdatai 8 I DPKs input data bus
Active State: N/A
Registered: Yes
Synchronous to: odpkclk
Dependencies: HDCP = 1&DWC_HDMI_HDCP_DPK_8BIT = 1
Revocation Memory Interface
irevocmemdatain 8 I KSV MEM read data bus
Active State: N/A
Registered: Yes
Synchronous to: orevocmemclk
Dependencies: HCDP = 1
orevocmemclk 1 O KSV MEM clock signal (same as isfrclk clock)
Active State: N/A
Registered: No
Synchronous to: N/A
Dependencies: HCDP = 1
Value After Reset: 0
orevocmemaddress 13 O KSV MEM address bus
Active State: N/A
Registered: Yes
Synchronous to: orevocmemclk
Dependencies: HCDP = 1
Value After Reset: 0x1fff
orevocmemcs 1 O KSV MEM chip select signal
Active State: High
Registered: Yes
Synchronous to: orevocmemclk
Dependencies: HCDP = 1
Value After Reset: 0
orevocmemwen 1 O KSV MEM write enable
Active State: Low
Registered: Yes
Synchronous to: orevocmemclk
Dependencies: HCDP = 1
Value After Reset: 1
Width
Name (bits) I/O Description
orevocmemdataout 8 O KSV MEM write data bus
Active State: N/A
Registered: Yes
Synchronous to: orevocmemclk
Dependencies: HCDP = 1
Value After Reset: 0x00
Random Number Generator Interface
This interface can be bypassed through the “HDCP AN Registers” on page 301.
irndnum 4 I Random Number input bus
Active State: N/A
Registered: Yes
Synchronous to: itmdsclk
Dependencies: HCDP = 1
orndnumgenena 1 O Random Number Generation enable
Active State: High
Registered: Yes
Synchronous to: itmdsclk
Dependencies: HCDP = 1
Value After Reset: 1
Width
Name (bits) I/O Description
iscanen 1 I Scan test mode enable (must be low for normal operation)
Active State: Low
Registered: Yes
Synchronous to: iscanclk
Dependencies: Always Present
Width
Name (bits) I/O Description
DWC_hdmi_tx
ihpd
ioavdd18
ioavdd10
iovdd
ioagnd18
HDMI TX PHY Interface ioagnd10
iovss
iorref
ioatestmon
otmdsdatap
otmdsdatan
otmdsclkp
otmdsclkn
Width
Name (bits) I/O Description
iorref 1 I/O Current reference input. Used to connect to an external resistance for bias
current generation
DWC_hdmi_tx
iovp
iovp_filt0
iovp_filt1
iovp_filt2
iovph
iogd
HDMI 3D TX PHY Interface ioddccec
ioresref_f
ioresref_s
otmdsdatap
otmdsdatan
otmdsclkp
otmdsclkn
ophydtb
Width
Name (bits) I/O Descriptiona
ioddccec 1 I/O Ground reference for the Hot Plug Detect signal
a. For more information about these signals, refer to the PHY GEN2 databook.
DWC_hdmi_tx
iovdd_heac
iovss_heac
iogd_heac
iovph_heac
oheacphy_dtb
iscanin_heac
oscanout_heac
HDMI HEAC PHY Interface ihectxdatan
ihectxdatap
oarcrxdata
ioheacn
ioheacp
iohecrxdatan
iohecrxdatap
ioresext
ioresextv
Width
Name (bits) I/O Description
iscanin_heac 1 I Scan In. Serial data stream input when core is in Scan mode.
oscanout_heac 1 O Scan Out. Serial data stream output when core is in Scan mode.
iohecrxdatan 1 I/O Analog negative output for the modified 100BaseTX PHY
Width
Name (bits) I/O Description
iohecrxdatap 1 I/O Analog positive output for the modified 100BaseTX PHY
The HDMI TX External PHY Interface Signals include the encoded data port, clock inputs, and a PHY
configuration interface. The following signals are only written to the DWC_hdmi_tx top-level interface
when the controller is configured for use with the External PHY and the parameter PHY_EXTERNAL= 1.
DWC_hdmi_tx
iphyext_tclk
iphyext_prepclk
ophyext_dataencoded
ophyext_rstz
iphyext_lock
iphyext_rxsense
ophyext_ppdq
ophyext_txpwron
HDMI TX External PHY Signals iphyext_hpd
ophyext_enhpdrxsense
ophyext_sparectl
ophyext_i2c_sdaout
ophyext_i2c_sclout
iphyext_i2c_sclin
iphyext_i2c_sdain
The signals that are described as optional in descriptions are not mandatory when the PHY configuration
and status pooling is done by other means.
The Synopsys HDMI Transmit API Low-Level Driver does not support an external PHY (non-Synopsys).
The interruption mechanism set by registers PHY_STAT0, PHY_INT0, PHY_MASK0 and PHY_POL0 is
operational when the PHY_EXTERNAL parameter is defined, and the inputs iphyext_lock, iphyext_hpd
and iphyext_rxsense are connected.
Figure 4-14 on page 124 shows the standard connection of the PHY I2C Master to an I2C bus.
ophyext_i2c_sdaout
DWC_hdmi_tx
ophyext_i2c_sdout
Width
Name (bits) I/O Description
Width
Name (bits) I/O Description
ophyext_dataencoded 30 I Encoded data vector by TERC4, 2b10b and 8b10b as per the HDMI
1.4b Specification
■ Channel 0 - ophyext_dataencoded [ 9: 0]
■ Channel 1 - ophyext_dataencoded [19:10]
■ Channel 2 - ophyext_dataencoded [29:20]
Active State: N/A
Registered: Yes
Synchronous to: iphyext_tclk
Dependencies: PHY_EXTERNAL=1
Value After Reset: 30'd0
Optional: No
Width
Name (bits) I/O Description
Width
Name (bits) I/O Description
5
Software Registers
fc_avisrb0 (page 192) to fc_avisrb1 0x1023 to 8 bits R/W Frame Composer AVI Packet Start 0x00
(page 193) 0x1024 of Right Bar Registers
fc_audiconf0 – fc_audiconf3 0x1025 to 8 bits R/W Audio Coding Type and Channel 0x00
(page 193) 0x1028 Count
Audio Sampling Frequency and
Sampling Size
Audio Channel Allocation
Audio Level Shift Value and Down
Mix Enable
fc_vsdieeeid2 (page 195) 0x1029 8 bits R/W Frame Composer VSI packet Data 0x00
IEEE Register 2
fc_vsdsize (page 196) 0x102A 8 bits R/W Frame Composer VSI packet Data 0x1B
Size Register
fc_vsdieeeid1 (page 196) 0x1030 8 bits R/W Frame Composer VSI packet Data 0x00
IEEE Register 1
fc_vsdieeeid0 (page 197) 0x1031 8 bits R/W Frame Composer VSI packet Data 0x00
IEEE Register 0
5.2.1.1 design_id
■ Name: Design Identification Register
■ Address Offset: 0x0000
■ Size: 8 bits
■ Value after Reset: 0x13
■ Access: Read
7:0 design_id R Design ID code fixed by Synopsys that identifies the instantiated
DWC_hdmi_tx controller.
For example, dwc_hdmi_tx 1.31a, DESIGN_ID = 13
5.2.1.2 revision_id
■ Name: Revision Identification Register
■ Address Offset: 0x0001
■ Size: 8 bits
■ Value after Reset: 0x2A
■ Access: Read
7:0 revision_id R Revision ID code fixed by Synopsys that Identifies the instantiated
DWC_hdmi_tx controller.
For example, dwc_hdmi_tx 1.31a, REVISION_ID = 1Ah
5.2.1.3 product_id0
■ Name: Product Identification Register 0
■ Address Offset: 0x0002
■ Size: 8 bits
■ Value after Reset: 0xA0
■ Access: Read
7:0 product_id0 R This one byte fixed code Identifies Synopsys's product line (“A0h” for
DWC_hdmi_tx products).
5.2.1.4 product_id1
■ Name: Product Identification Register 1
■ Address Offset: 0x0003
■ Size: 8 bits
■ Value after Reset: Implementation Dependent
■ Access: Read
7:6 product_id1_tx_hdcp R These bits identifiy a Synopsys’ HDMI Controller with HDCP encryption
according to Synopsys product line.
5.2.1.5 config0_id
■ Name: Configuration Identification Register 0
■ Address Offset: 0x0004
■ Size: 8 bits
■ Value after Reset: Implementation Dependent
■ Access: Read
5.2.1.6 config1_id
■ Name: Configuration Identification Register 1
■ Address Offset: 0x0005
■ Size: 8 bits
■ Value after Reset: Implementation Dependent
■ Access: Read
5.2.1.7 config2_id
■ Name: Configuration Identification Register 2
■ Address Offset: 0x0006
■ Size: 8 bits
■ Value after Reset: Implementation Dependent
■ Access: Read
5.2.1.8 config3_id
■ Name: Configuration Identification Register 3
■ Address Offset: 0x0007
■ Size: 8 bits
■ Value after Reset: Implementation Dependent
■ Access: Read
0 confgpaud R Indicates that the audio interface is Generic Parallel Audio (GPAUD)
5.2.2.1 ih_fc_stat0
■ Name: Frame Composer Interrupt Status Register 0 - Packet interrupts
■ Address Offset: 0x0100
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
6 ACP CoW/R Active after successful transmission of an Audio Content Protection packet.
2 AUDS CoW/R Active after successful transmission of an Audio Sample packet. Due to high number of
audio sample packets transmitted, this interrupt is by default masked at frame
composer.
1 ACR CoW/R Active after successful transmission of an Audio Clock Regeneration (N/CTS
transmission) packet.
0 NULL CoW/R Active after successful transmission of a Null packet. Due to high number of audio
sample packets transmitted, this interrupt is by default masked at frame composer.
5.2.2.2 ih_fc_stat1
■ Name: Frame Composer Interrupt Status Register 1 – Packet Interrupts
■ Address Offset: 0x0101
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
6 ISCR1 CoW/R Active after successful transmission of an International Standard Recording Code 1
packet.
5 ISCR2 CoW/R Active after successful transmission of an International Standard Recording Code 2
packet.
4 VSD CoW/R Active after successful transmission of an Vendor Specific Data infoFrame packet.
3 SPD CoW/R Active after successful transmission of an Source Product Descriptor infoFrame
packet.
5.2.2.3 ih_fc_stat2
■ Name: Frame Composer Interrupt Status Register 2 – Packet Queue Overflow Interrupts
■ Address Offset: 0x0102
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
1 LowPriority_overflow CoW/R Frame Composer low priority packet queue descriptor overflow
indication.
0 HighPriority_overflow CoW/R Frame Composer high priority packet queue descriptor overflow
indication.
5.2.2.4 ih_as_stat0
■ Name: Audio Sampler Interrupt Status Register – FIFO Threshold, Underflow and Overflow
Interrupts
■ Address Offset: 0x0103
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
2 Aud_fifo_underflow_thr CoW/R Audio Sampler audio FIFO empty threshold (four samples) indication
for HBR audio
For AHB_DMA, this bit indicates that the number of samples in the
FIFO is equal to (or less) than the number of active audio channels.
5.2.2.5 ih_phy_stat0
■ Name: PHY Interface Interrupt Status Register – RXSENSE, PLL Lock, and HPD Interrupts
■ Address Offset: 0x0104
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
5 RX_SENSE[3] CoW/R TX PHY RX_SENSE indication for driver 3. You may need to mask or
change polarity of this interrupt after it has become active.
4 RX_SENSE[2] CoW/R TX PHY RX_SENSE indication for driver 2. You may need to mask or
change polarity of this interrupt after it has become active.
3 RX_SENSE[1] CoW/R TX PHY RX_SENSE indication for driver 1. You may need to mask or
change polarity of this interrupt after it has become active.
2 RX_SENSE[0] CoW/R TX PHY RX_SENSE indication for driver 0. You may need to mask or
change polarity of this interrupt after it has become active.
1 TX_PHY_LOCK CoW/R TX PHY PLL lock indication. Please refer to PHY datasheet for more
information. You may need to mask or change polarity of this interrupt
after it has become active.
0 HDP CoW/R HDMI Hot Plug Detect indication. You may need to mask or change
polarity of this interrupt after it has become active.
5.2.2.6 ih_i2cm_stat0
■ Name: E-DDC I2C Master Interrupt Status Register – Done and Error Interrupts
■ Address Offset: 0x0105
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
5.2.2.7 ih_cec_stat0
This register exists when the hardware configuration parameter CEC = 1 (True).
■ Name: CEC Interrupt Status Register – Functional Operation Interrupts
■ Address Offset: 0x0106
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
5.2.2.8 ih_vp_stat0
■ Name: Video Packetizer Interrupt Status Register – FIFO Full and Empty Interrupts
■ Address Offset: 0x0107
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
3 fifofullremap CoW/R Video packetizer pixel YCC 422 re-mapper FIFO full interrupt
2 fifoemptyremap CoW/R Video packetizer pixel YCC 422 re-mapper FIFO empty interrupt
5.2.2.9 ih_i2cmphy_stat0
This clear on write (1 to corresponding bit) register contains the following active high sticky bit interrupts.
That I2C Master PHY is the I2C Master block used to access the PHY I2C Slave. This register exists when the
hardware configuration parameter PHY_EXTERNAL = 1 (True) or a GEN2 PHY is used.
■ Name: PHY GEN2 I2C Master Interrupt Status Register – Done and Error Interrupts
■ Address Offset: 0x0108
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
5.2.2.10 ih_ahbdmaaud_stat0
■ Name: AHB Audio DMA Interrupt Status Register – Functional Operation and Buffer Full and
Empty Interrupts
■ Address Offset: 0x0109
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Clear on Write/Read
Table 5-19 ih_ahbdmaaud_stat0
5.2.2.11 ih_decode
This register allows to quick decoding of which interruptions has triggered the rise of the DWC_hdmi_tx
interruption output port. Only the unmuted interruptions are observed in this register.
■ Name: Interruption Handler Decode Assist Register
■ Address Offset: 0x0170
■ Size: 8 bits per register
■ Value after Reset: 0x00
■ Access: Read
Table 5-20 ih_decode
5.2.2.12 ih_mute_fc_stat0
■ Name: Frame Composer Interrupt Mute Control Register 0
■ Address Offset: 0x0180
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-21 ih_mute_fc_stat0
5.2.2.13 ih_mute_fc_stat1
■ Name: Frame Composer Interrupt Mute Control Register 1
■ Address Offset: 0x0181
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.2.14 ih_mute_fc_stat2
■ Name: Frame Composer Interrupt Mute Control Register 2
■ Address Offset: 0x0182
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.2.15 ih_mute_as_stat0
■ Name: Audio Sampler Interrupt Mute Control Register 0
■ Address Offset: 0x0183
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.2.16 ih_mute_phy_stat0
■ Name: PHY Interface Interrupt Mute Control Register
■ Address Offset: 0x0184
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.2.17 ih_mute_i2cm_stat0
■ Name: E-DDC I2C Master Interrupt Mute Control Register
■ Address Offset: 0x0185
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.2.18 ih_mute_cec_stat0
This register exists when the hardware configuration parameter CEC = 1 (True).
■ Name: CEC Interrupt Mute Control Register
■ Address Offset: 0x0186
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.2.19 ih_mute_vp_stat0
■ Name: Video Packetizer Interrupt Mute Control Register
■ Address Offset: 0x0187
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-28 ih_mute_vp_stat0 Register
5.2.2.20 ih_mute_i2cmphy_stat0
■ Name: PHY GEN 2 I2C Master Interrupt Mute Control Register
■ Address Offset: 0x0188
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.2.21 ih_mute_ahbdmaaud_stat0
■ Name: AHB Audio DMA Interrupt Mute Control Register
■ Address Offset: 0x0189
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-30 Register ih_mute_ahbdmaaud_stat0
5.2.2.22 ih_mute
■ Name: Global Interrupt Mute Control Register
■ Address Offset: 0x01FF
■ Size: 8 bits
■ Value after Reset: 0x03
■ Access: Read/Write
1 mute_wakeup_interrupt R/W When set to 1, mutes the main interrupt output port. The sticky bit
interrupts continue with their state accessible through the configuration
bus, only the main interrupt line is muted.
0 mute_all_interrupt R/W When set to 1, mutes the main interrupt line (where all interrupts are
ORed). The sticky bit interrupts continue with their state; only the main
interrupt line is muted.
5.2.3.1 tx_invid0
This registers contains the input video mapping code as defined in Table 2-1.
■ Name: Video Input Mapping and Internal Data Enable Configuration Register
■ Address Offset: 0x0200
■ Size: 8 bits
■ Value after Reset: 0x01
■ Access: Read/Write
7 internal_de_generator R/W Internal data enable (DE) generator enable. If data enable is not
available for the input video the user may set this bit to one to activate
the internal data enable generator.
Attention: This feature only works for input video modes that have
native repetition (such as, all CEA videos). No desired pixel repetition
can be used with this feature because these configurations only affect
the Frame Composer and not this block.
The DE Generator does not work for the following:
■ Transmission of video with CEA VIC 39
■ Transmission of 3D video using the field alternative structure
12-bit 0x05
16-bit 0x07
12-bit 0X0D
16-bit 0X0F
12-bit 0x12
5.2.3.2 tx_instufffing
This register enables the stuffing mechanism of the Video Sampler module in order to correctly perform
Color Space Conversion of the ITU.601 standard YCC video. In this case, when “de” is low, the output video
components gydata[15:0], rcrdata[15:0], and bcbdata[15:0] can be configured.
■ Name: Video Input Stuffing Enable Register
■ Address Offset: 0x0201
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
2 bcbdata_stuffing R/W 0b: When the dataen signal is low, the value in the bcbdata[15:0]
output is the one sampled from the corresponding input data.
1b: When the dataen signal is low, the value in the bcbdata[15:0]
output is given by the values in register tx_bcbdta0 and tx_bcbdata1.
1 rcrdata_stuffing R/W 0b: When the dataen signal is low, the value in the rcrdata[15:0] output
is the one sampled from the corresponding input data.
1b: When the dataen signal is low, the value in the rcrdata[15:0] output
is given by the values in tx_rcrdta0 and tx_rcrdata1 registers.
0 gydata_stuffing R/W 0b: when the dataen signal is low, the value in the gydata[15:0] output
is the one sampled from the corresponding input data.
1b: When the dataen signal is low, the value in the gydata[15:0] output
is given by the values in tx_gydta0 and tx_gydata1 registers.
5.2.3.3 tx_gydata0
■ Name: Video Input GY Data Channel Stuffing Register 0
■ Address Offset: 0x0202
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 gydata[7:0] R/W This register defines the value of gydata[7:0] when tx_instuffing[0]
(gydata_stuffing) is set to 1b.
5.2.3.4 tx_gydata1
■ Name: Video Input GY Data Channel Stuffing Register 1
■ Address Offset: 0x0203
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 gydata[15:8] R/W This register defines the value of gydata[15:8] when tx_instuffing[0]
(gydata_stuffing) is set to 1b.
5.2.3.5 tx_rcrdata0
■ Name: Video Input RCR Data Channel Stuffing Register 0
■ Address Offset: 0x0204
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 rcrdata[7:0] R/W This register defines the value of rcrydata[7:0] when tx_instuffing[1]
(rcrdata_stuffing) is set to 1b.
5.2.3.6 tx_rcrdata1
■ Name: Video Input RCR Data Channel Stuffing Register 1
■ Address Offset: 0x0205
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 rcrdata[15:8] R/W This register defines the value of rcrydata[15:8] when tx_instuffing[1]
(rcrdata_stuffing) is set to 1b.
5.2.3.7 tx_bcbdata0
■ Name: Video Input RCB Data Channel Stuffing Register 0
■ Address Offset: 0x0206
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 bcbdata[7:0] R/W This register defines the value of bcbdata[7:0] when tx_instuffing[2]
(bcbdata_stuffing) is set to 1b.
5.2.3.8 tx_bcbdata1
■ Name: Video Input RCB Data Channel Stuffing Register 1
■ Address Offset: 0x0207
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 bcbdata[15:8] R/W This register defines the value of bcbdata[15:8] when tx_instuffing[2]
(bcbdata_stuffing) is set to 1b.
5.2.4.1 vp_status
■ Name: Video Packetizer Packing Phase Status Register
■ Address Offset: 0x0800
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
3:0 packing_phase R Read only register that holds the “packing phase” output by the Video
packetizer block. For more information about “packing” video data,
refer to the HDMI1.4b specification. The register is updated at TMDS
clock rate.
5.2.4.2 vp_pr_cd
This register configures the Color Depth of the input video and Pixel repetition to apply to video.
■ Name: Video Packetizer Pixel Repetition and Color Depth Register
■ Address Offset: 0x0801
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:4 color_depth R/W The Color depth configuration is described as the following, with the action stated
corresponding to color_depth[3:0]:
■ 0000b: 24 bits per pixel video (8 bit per component). 8-bit packing mode.
■ 0001b-0011b: Reserved. Not used.
■ 0100b: 24 bits per pixel video (8 bit per component). 8-bit packing mode.
■ 0101b: 30 bits per pixel video (10 bit per component). 10-bit packing mode.
■ 0110b: 36 bits per pixel video (12 bit per component). 12-bit packing mode.
■ 0111b: 48 bits per pixel video (16 bit per component). 16-bit packing mode.
■ Other: Reserved. Not used.
3:0 desired_pr_factor R/W Desired pixel repetition factor configuration. The configured value sets H13T PHY
PLL to multiply pixel clock by the factor in order to obtain the desired repetition
clock. For the CEA modes some are already defined with pixel repetition in the
input video. So for CEA modes this shall be always 0. Shall only be used if the
user wants to do pixel repetition using H13TCTRL core.
The action is stated corresponding to desired_pr_factor[3:0]:
■ 0000b: No pixel repetition (pixel sent only once)
■ 0001b: Pixel sent 2 times (pixel repeated once)
■ 0010b: Pixel sent 3 times
■ 0011b: Pixel sent 4 times
■ 0100b: Pixel sent 5 times
■ 0101b: Pixel sent 6 times
■ 0110b: Pixel sent 7 times
■ 0111b: Pixel sent 8 times
■ 1000b: Pixel sent 9 times
■ 1001b: Pixel sent 10 times
■ Other: Reserved. Not used
5.2.4.3 vp_stuff
This register controls the Pixel repetition, pixel packing and YCC422 stuffing.
■ Name: Video Packetizer Stuffing and Default Packing Phase Register
■ Address Offset: 0x0802
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5 idefault_phase R/W Controls the default phase packing machine used according to: “If the
transmitted video format has timing such that the phase of the first
pixel of every Video Data Period corresponds to pixel packing phase 0
(for example, 10P0, 12P0, 16P0), the Source may set the
Default_Phase bit in the GCP. The Sink may use this bit to optimize its
filtering or handling of the PP field. (HDMI specification version 1.4b)
This means that for 10-bit mode, the Htotal must be divisable by 4, and
for 12-bit mode, the Htotal must be divisable by 2.
2 ycc422_stuffing R/W YCC 422 remap stuffing control. For horizontal blanking, the action is
stated corresponding to ycc422_stuffing:
■ 0b: YCC 422 remap block in direct mode (input blanking data goes
directly to output).
■ 1b: YCC 422 remap block in stuffing mode. When “de” goes to low,
the outputs are fixed to 0x00.
1 pp_stuffing R/W Pixel packing stuffing control. The action is stated corresponding to
pp_stuffing:
■ 0b: Pixel packing block in direct mode (input blanking data goes
directly to output).
■ 1b: Pixel packing block in stuffing mode. When “de_rep” goes to low
the outputs are fixed to 0x00.
0 pr_stuffing R/W Pixel repeater stuffing control. The action is stated corresponding to
pp_stuffing:
0b: Pixel repeater block in direct mode (input blanking data goes
directly to output).
1b: Pixel repeater block in stuffing mode. When “de” goes to low the
outputs are fixed to 0x00.
5.2.4.4 vp_remap
This register controls YCC422 remap of the Video Packetizer. For more information about YCC422 remap
refer to HDMI 1.4b specification.
■ Name: Video Packetizer YCC422 Remapping Register
■ Address Offset: 0x0803
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.4.5 vp_conf
This register controls the Video Packetizer output selection, bypass select, YCC422 enable, Pixel repeater,
and pixel packing enabling.
■ Name: Video Packetizer Output, Bypass, and Enable Configuration Register
■ Address Offset: 0x0804
■ Size: 8 bits
■ Value after Reset: 0x46
■ Access: Read/Write
6 bypass_en R/W Bypass enable. Disabling forces bypass module to output always zeros.
5 pp_en R/W Pixel packing enable. Disabling forces bypass module to output always zeros.
4 pr_en R/W Pixel repeater enable. Disabling forces bypass module to output always zeros.
3 ycc422_en R/W YCC 422 select enable. Disabling forces bypass module to output always zeros.
output_selector[1:0] Action
00b Data from pixel packing block
01b Data from YCC 422 remap block
10b Data from 8 bit bypass block
11b Data from 8 bit bypass block
5.2.4.6 vp_mask
Mask register for generation of VP_INT interrupts.
■ Name: Video Packetizer Interrupt Mask Register
■ Address Offset: 0x0807
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7 ointfullrepet R/W Mask bit for Video packetizer pixel repeater FIFO full
6 ointemptyrepet R/W Mask bit for Video packetizer pixel repeater FIFO empty
5 ointfullpp R/W Mask bit for Video packetizer pixel packing FIFO full
4 ointemptypp R/W Mask bit for Video packetizer pixel packing FIFO empty
3 ointfullremap R/W Mask bit for Video packetizer pixel YCC 422 re-mapper FIFO full
2 ointemptyremap R/W Mask bit for Video packetizer pixel YCC 422 re-mapper FIFO empty
1 ointfullbyp R/W Mask bit for Video packetizer 8-bit bypass FIFO full
0 ointemptybyp R/W Mask bit for Video packetizer 8-bit bypass FIFO empty
5.2.5.1 fc_invidconf
This register configures the Interlaced/Progressive, Vblank variation and polarity of all video synchronism
of the input video signal.
■ Name: Frame Composer Input Video Configuration and HDCP Keepout Register
■ Address Offset: 0x1000
■ Size: 8 bits
■ Value after Reset: 0x70
■ Access: Read/Write
1 r_v_blank_in_osc R/W Used for CEA861-D modes with fractional Vblank (for example, modes 5, 6, 7,
10, 11, 20, 21, and 22. For more modes, see the CEA861-D specification.
Note: Set this field to 1 for video mode 39, although there is no Vblank
oscillation.
1b: Active high
5.2.5.2 fc_inhactiv0
■ Name: Frame Composer Input Video HActive Pixels Register 0
■ Address Offset: 0x1001
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 H_in_activ[7:0] R/W Input video Horizontal active pixel region width. Number of Horizontal active
pixels [0...8191].
5.2.5.3 fc_inhactiv1
■ Name: Frame Composer Input Video HActive Pixels Register 1
■ Address Offset: 0x1002
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
4 H_in_activ_12/ R/W Input video Horizontal active pixel region width (0 .. 8191).
reserved Dependencies:
If configuration parameter DWC_HDMI_TX_14 = True (1), then this bit field
holds bit 12. Otherwise, it is reserved and read as zero.
3:0 H_in_activ R/W Input video Horizontal active pixel region width.
5.2.5.4 fc_inhblank0
■ Name: Frame Composer Input Video HBlank Pixels Register 0
■ Address Offset: 0x1003
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 H_in_blank[7:0] R/W Input video Horizontal blanking pixel region width. Number of Horizontal
blanking pixels [0...4095].
5.2.5.5 fc_inhblank1
■ Name: Frame Composer Input Video HBlank Pixels Register 1
■ Address Offset: 0x1004
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
4:2 H_in_blank_12/ R/W Input video Horizontal blanking pixel region width.
Reserved Dependencies:
If configuration parameter DWC_HDMI_TX_14 = True (1), then this bit field
holds bit 12. Number of Horizontal blanking pixels [0...8191]. Otherwise, this bit
is reserved and read as zero.
1:0 H_in_blank R/W Input video Horizontal blanking pixel region width.
5.2.5.6 fc_invactiv0
■ Name: Frame Composer Input Video VActive Pixels Register 0
■ Address Offset: 0x1005
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-51 fc_invactiv0 Register
7:0 V_in_activ[7:0] R/W Input video Vertical active pixel region width. Number of Vertical active lines
[0...4095].
5.2.5.7 fc_invactiv1
■ Name: Frame Composer Input Video VActive Pixels Register 1
■ Address Offset: 0x1006
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
4:3 V_in_activ_12_11/ R/W Input video Vertical active pixel region width.
reserved Dependencies:
If configuration parameter DWC_HDMI_TX_14 = True (1), then this bit field
holds bits 12:11. Number of Vertical active lines [0...8191]. Otherwise, it is
reserved and read as zero.
1:0 V_in_activ R/W Input video Vertical active pixel region width.
5.2.5.8 fc_invblank
■ Name: Frame Composer Input Video VBlank Pixels Register
■ Address Offset: 0x1007
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 V_in_blank[7:0] R/W Input video Vertical blanking pixel region width. Number of Vertical blanking
lines [0...255].
5.2.5.9 fc_hsyncindelay0
■ Name: Frame Composer Input Video HSync Front Porch Register 0
■ Address Offset: 0x1008
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 H_in_delay[7:0] R/W Input video Hsync active edge delay. Integer number of pixel clock cycles from
“de” non active edge of the last “de” valid period [0...4095].
5.2.5.10 fc_hsyncindelay1
■ Name: Frame Composer Input Video HSync Front Porch Register 1
■ Address Offset: 0x1009
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.11 fc_hsyncinwidth0
■ Name: Frame Composer Input Video HSync Width Register 0
■ Address Offset: 0x100A
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-56 fc_hsyncinwidth0 Register
7:0 H_in_width[7:0] R/W Input video Hsync active pulse width. Integer number of pixel clock cycles
[0...511].
5.2.5.12 fc_hsyncinwidth1
■ Name: Frame Composer Input Video HSync Width Register 1
■ Address Offset: 0x100B
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.13 fc_vsyncindelay
■ Name: Frame Composer Input Video VSync Front Porch Register
■ Address Offset: 0x100C
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-58 fc_vsyncindelay Register
7:0 V_in_delay[7:0] R/W Input video Vsync active edge delay. Integer number of Hsync pulses from “de”
non active edge of the last “de” valid period. [0...255].
5.2.5.14 fc_vsyncinwidth
■ Name: Frame Composer Input Video VSync Width Register
■ Address Offset: 0x100D
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5:0 V_in_width[5:0] R/W Input video Vsync active pulse width: Integer number of lines [0...63].
5.2.5.15 fc_infreq0
■ Name: Frame Composer Input Video Refresh Rate Register 0
■ Address Offset: 0x100E
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 infreq[7:0] R/W Video refresh rate in Hz*1E3 format. This registers are provided for debug and
informative purposes. No data is written to this registers by the DWC_hdmi_tx
and the data here written by software is not used in any way by the
DWC_hdmi_tx.
5.2.5.16 fc_infreq1
■ Name: Frame Composer Input Video Refresh Rate Register 1
■ Address Offset: 0x100F
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 infreq[15:8] R/W Video refresh rate in Hz*1E3 format. This registers are provided for debug and
informative purposes. No data is written to this registers by the DWC_hdmi_tx
and the data here written by software is not used in any way by the
DWC_hdmi_tx.
5.2.5.17 fc_infreq2
■ Name: Frame Composer Input Video Refresh Rate Register 2
■ Address Offset: 0x1010
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
3:0 infreq[19:16] R/W Video refresh rate in Hz*1E3 format. This registers are provided for debug and
informative purposes. No data is written to this registers by the DWC_hdmi_tx
and the data here written by software is not used in any way by the
DWC_hdmi_tx.
5.2.5.18 fc_ctrldur
■ Name: Frame Composer Control Period Duration Register
■ Address Offset: 0x1011
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 ctrlperiodduration R/W Configuration of the control period minimum duration (min. of 12 pixel clock cycles,
refer to HDMI 1.4b specification). Integer number of pixel clocks cycles [0..255].
5.2.5.19 fc_exctrldur
■ Name: Frame Composer Extended Control Period Duration Register
■ Address Offset: 0x1012
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 exctrlperiodduration R/W Configuration of the extended control period minimum duration (min. of 32 pixel clock
cycles, refer to HDMI 1.4b specification). Integer number of pixel clocks cycles [0..255].
5.2.5.20 fc_exctrlspac
■ Name: Frame Composer Extended Control Period Maximum Spacing Register
■ Address Offset: 0x1013
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 exctrlperiodspacing R/W Configuration of the maximum spacing between consecutive extended control
periods (max of 50msec, refer to HDMI 1.4b specification):
generated spacing = (1/freq tmds clock)*256*256*extctrlperiodspacing
5.2.5.21 fc_ch0pream
■ Name: Frame Composer Channel 0 Non-Preamble Data Register
■ Address Offset: 0x1014
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 ch0_preamble_filter R/W When in control mode, configures 8-bits that are going to fill the channel 0 data
lines not used to transmit the preamble (for more clarifications refer to HDMI
1.4b specification).
5.2.5.22 fc_ch1pream
■ Name: Frame Composer Channel 1 Non-Preamble Data Register
■ Address Offset: 0x1015
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5:0 ch1_preamble_filter R/W When in control mode, configures 6-bits that are going to fill the channel 1 data
lines not used to transmit the preamble (for more clarifications refer to HDMI
1.4b specification).
5.2.5.23 fc_ch2pream
■ Name: Frame Composer Channel 2 Non-Preamble Data Register
■ Address Offset: 0x1016
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5:0 ch2_preamble_filter R/W When in control mode, configures 6-bits that are going to fill the channel 2 data
lines not used to transmit the preamble (for more clarifications, refer to HDMI
1.4b specification).
5.2.5.24 fc_aviconf3
■ Name: Frame Composer AVI Configuration Register 3
■ Address Offset: 0x1017
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
This register exists only when DWC_HDMI_TX_14 = True (1).
5.2.5.25 fc_gcp
Configures the General Control Packet A/V mute indicators and the default phase.
■ Name: Frame Composer GCP Packet Configuration Register
■ Address Offset: 0x1018
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
2 default_phase R/W Value of “default_phase” in the GCP packet. This data should be equal to the
default phase used at Video packetizer packing machine.
Value after Reset: 0b
5.2.5.26 fc_aviconf0–fc_aviconf2
Configure the following contents of the AVI infoFrame:
■ RGB/YCC indication
■ Bar information
■ Scan information
■ Active format present
■ Progressive/Interlaced indicator
■ Active aspect ratio
■ Picture aspect ratio
■ Colorimetry
■ IT content
■ Extended colorimetry
■ Quantization range
■ Non-uniform picture scaling
For more information, refer to HDMI 1.4b and CEA - 861D specifications.
5.2.5.26.1 fc_aviconf0
❑ Name: Frame Composer AVI Packet Configuration Register 0
❑ Address Offset: 0x1019
❑ Size: 8 bits
❑ Value after Reset: 0x00
❑ Access: Read/Write
5.2.5.26.2 fc_aviconf1
❑ Name: Frame Composer AVI Packet Configuration Register 1
❑ Address Offset: 101A
❑ Size: 8 bits
❑ Value after Reset: 0x00
❑ Access: Read/Write
5.2.5.26.3 fc_aviconf2
❑ Name: Frame Composer AVI Packet Configuration Register 2
❑ Address Offset: 0x101B
❑ Size: 8 bits
❑ Value after Reset: 0x00
❑ Access: Read/Write
5.2.5.27 fc_avivid
Configures the AVI infoFrame Video Identification code. For more information, refer to the CEA-861-E
specification.
■ Name: Frame Composer AVI Packet VIC Register
■ Address Offset: 0x101C
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
6:0 fc_avivid R/W Configures the AVI infoFrame Video Identification code. For
more information, refer to the CEA-861-E specification.
5.2.5.28 fc_avietb0
Defines the AVI infoFrame End of Top Bar value. For more information, refer to CEA-861-E specification.
■ Name: Frame Composer AVI Packet End of Top Bar Register 0
■ Address Offset: 0x101D
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_avietb0 R/W Defines the AVI infoFrame End of Top Bar value. For more information,
refer to CEA-861-E specification.
5.2.5.29 fc_avietb1
Defines the AVI infoFrame End of Top Bar value. For more information, refer to CEA-861-E specification.
■ Name: Frame Composer AVI Packet End of Top Bar Register 1
■ Address Offset: 0x101E
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_avietb1 R/W Defines the AVI infoFrame End of Top Bar value. For more information,
refer to CEA-861-E specification.
5.2.5.30 fc_avisbb0
This register defines the AVI infoFrame Start of Bottom Bar value. For more information, refer to CEA-861D
specification.
■ Name: Frame Composer AVI Packet Start of Bottom Bar Register 0
■ Address Offset: 0x101F
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_avisbb0 R/W This register defines the AVI infoFrame Start of Bottom Bar value. For more
information, refer to CEA-861-E specification.
5.2.5.31 fc_avisbb1
These registers define the AVI infoFrame Start of Bottom Bar value. For more information, refer to
CEA-861D specification.
■ Name: Frame Composer AVI Packet Start of Bottom Bar Register 1
■ Address Offset: 0x1020
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_avisbb1 R/W This register defines the AVI infoFrame Start of Bottom Bar value. For more
information, refer to CEA-861-E specification.
5.2.5.32 fc_avielb0
These registers define the AVI infoFrame Start of Bottom Bar value. For more information, refer to
CEA-861D specification.
■ Name: Frame Composer AVI packet End of Left Bar Register 0
■ Address Offset: 0x1021
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_avielb0 R/W This register defines the AVI infoFrame End of Left Bar value. For more
information, refer to CEA-861D specification.
5.2.5.33 fc_avielb1
This register defines the AVI infoFrame End of Left Bar value. For more information, refer to CEA-861D
specification.
■ Name: Frame Composer AVI Packet End of Left Bar Register 0
■ Address Offset: 0x1022
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_avielb1 R/W This register defines the AVI infoFrame End of Left Bar value. For more
information, refer to CEA-861D specification.
5.2.5.34 fc_avisrb0
This register defines the AVI infoFrame Start of Right Bar value. For more information, refer to CEA-861D
specification.
■ Name: Frame Composer AVI Packet Start of Right Bar Register 0
■ Address Offset: 0x1023
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_avisbr0 R/W This register defines the AVI infoFrame Start of Right Bar value. For more
information, refer to CEA-861D specification.
5.2.5.35 fc_avisrb1
This register defines the AVI infoFrame Start of Right Bar value. For more information, refer to CEA-861D
specification.
■ Name: Frame Composer AVI Packet Start of Right Bar Register 1
■ Address Offset: 0x1024
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.37 fc_audiconf0
❑ Name: Frame Composer AUD Packet Configuration Register 0
❑ Address Offset: 0x1025
❑ Size: 8 bits
❑ Value after Reset: 0x00
❑ Access: Read/Write
5.2.5.37.1 fc_audiconf1
❑ Name: Frame Composer AUD Packet Configuration Register 1
❑ Address Offset: 0x1026
❑ Size: 8 bits
❑ Value after Reset: 0x00
❑ Access: Read/Write
5.2.5.37.2 fc_audiconf2
❑ Name: Frame Composer AUD Packet Configuration Register 2
❑ Address Offset: 0x1027
❑ Size: 8 bits
❑ Value after Reset: 0x00
❑ Access: Read/Write
5.2.5.37.3 fc_audiconf3
❑ Name: Frame Composer AUD Packet Configuration Register 3
❑ Address Offset: 0x1028
❑ Size: 8 bits
❑ Value after Reset: 0x00
❑ Access: Read/Write
For the FC_AUDICONF3 register, bits [6:5] correspond to LFEPBL1, LFEPBL0 LFE playback level as
compared to the other channels (from HDMI 1.4b Specification).
5.2.5.38 fc_vsdieeeid2
■ Name: Frame Composer VSI packet Data IEEE Register 2
■ Address Offset: 0x1029
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 IEEE R/W This register configures the Vendor Specific infoFrame IEEE registration
identifier. For more information, refer to CEA-861D specification.
5.2.5.39 fc_vsdsize
■ Name: Frame Composer VSI Packet Data Size Register
■ Address Offset: 0x102A
■ Size: 8 bits
■ Value after Reset: 0x1B
■ Access: Read/Write
This register exists only when DWC_HDMI_TX_14 = True (1).
4:0 VSDSIZE R/W Packet size as described in HDMI Vendor Specific InfoFrame (from HDMI
specification).
5.2.5.40 fc_vsdieeeid1
This register configures the Vendor Specific infoFrame IEEE registration identifier. For more information,
refer to CEA-861D specification.
■ Name: Frame Composer VSI Packet Data IEEE Register 1
■ Address Offset: 0x1030
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 IEEE R/W This register configures the Vendor Specific infoFrame IEEE registration
identifier. For more information, refer to CEA-861D specification.
5.2.5.41 fc_vsdieeeid0
This register configures the Vendor Specific infoFrame IEEE registration identifier. For more information,
refer to CEA-861D specification.
■ Name: Frame Composer VSI Packet Data IEEE Register 0
■ Address Offset: 0x1031
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 IEEE R/W This register configures the Vendor Specific infoFrame IEEE registration
identifier. For more information, refer to CEA-861D specification.
7:0 fc_vsdpayloadn R/W Frame Composer VSI packet Data Payload Register n, where n is 0 to 23.
where n is 0 to 23
7:0 fc_spdvendornamen R/W Frame Composer SPD packet Data Vendor Name Register n, where n is
where n is 0 to 7 0 to 7.
7:0 fc_spdproductnamen R/W Frame Composer SPD packet Data Product Name Register n, where n is
where n is 0 to 15 0 to 15.
5.2.5.45 fc_spddeviceinf
This register configures Source Product Descriptor infoFrame description device field. For more
information, refer to CEA-861D specification.
■ Name: Frame Composer SPD Packet Data Source Product Descriptor Register
■ Address Offset: 0x1062
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_spddeviceinf R/W Frame Composer SPD packet Data Source Product Descriptor Register
5.2.5.46 fc_audsconf
Configures the Audio sample packet sample flat and layout configuration. For more information, refer to
HDMI 1.4b specification.
■ Name: Frame Composer Audio Sample Flat and Layout Configuration Register
■ Address Offset: 0x1063
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:4 aud_packet_sampfit[3:0] R/W Set the audio packet sample flat value to be sent on the packet.
0 aud_packet_layout R/W Set the audio packet layout to be sent in the packet:
1b: layout 1
0b: layout 0
5.2.5.47 fc_audsstat
Shows the data sample present indication of the last Audio sample packet sent by the HDMI TX Controller.
For more information, refer to HDMI 1.4b specification.
■ Name: Frame Composer Audio Packet Sample Present Status Register
■ Address Offset: 0x1064
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
3:0 packet_sampprs[3:0] R Shows the data sample present indication of the last Audio sample
packet sent by the HDMI TX Controller. This register information is at
TMDS clock rate.
5.2.5.48 fc_audsv
When transmitting IEC60958 linear PCM audio, this register allows to set the value of for the Validity bit of
each of the transmitted channels. For the moment this configuration is only used when the I2S audio
interface, General Purpose Audio (GPA) interface or AHB audio DMA (AHBAUDDMA) is active.
■ Name: Frame Composer Audio Sample Validity Flag Register
■ Address Offset: 0x1065
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.49 fc_audsu
When transmitting IEC60958 linear PCM audio, this register allows to set the value of for the User bit of
each of the transmitted channels. For the moment this configuration is only used when the I2S audio
interface, General Purpose Audio (GPA) interface, or AHB audio DMA (AHBAUDDMA) is active.
■ Name: Frame Composer Audio Sample User Flag Register
■ Address Offset: 0x1066
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.51 fc_ctrlqhigh
■ Name: Frame Composer Number of High Priority Packets Attended Configuration Register
■ Address Offset: 0x1073
■ Size: 8 bits
■ Value after Reset: 0x0F
■ Access: Read/Write
4:0 onhighattended[4:0] R/W Configures the number of high priority packets or audio sample packets
consecutively attended before checking low priority queue status.
Integer number [0..31]
5.2.5.52 fc_ctrlqlow
■ Name: Frame Composer Number of Low Priority Packets Attended Configuration Register
■ Address Offset: 0x1074
■ Size: 8 bits
■ Value after Reset: 0x03
■ Access: Read/Write
4:0 onlowattended[4:0] R/W Configures the number of low priority packets or null packets consecutively
attended before checking high priority queue status or audio sample
availability.
5.2.5.53 fc_acp0
Configures the following contents of the ACP packet. For more information, refer to the HDMI 1.4
specification.
■ Name: Frame Composer ACP Packet Type Configuration Register 0
■ Address Offset: 0x1075
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_acpn, where n is 16 to 1 R/W Frame Composer ACP packet body configuration Register n,
where n is 16 to 1
5.2.5.55 fc_iscr1_0
Configures the following contents of the ISRC1 packet:
■ Name: Frame Composer Packet Status, Valid, and Continue Configuration Register
■ Address Offset: 0x1092
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_iscr1n, where n is 16 to 1 R/W Frame Composer ISRC1 packet body Register n, where n is 16
to 1
7:0 fc_iscr2n, where n is 15 to 0 R/W Frame Composer ISRC2 packet body Register n, where n is 15 to 0
5.2.5.58 fc_datauto0
Configures the Frame Composer RDRB(1)/Manual(0) data island packet insertion for SPD, VSD, ISRC2,
ISRC1 and ACP packets. On RDRB mode the described packet scheduling is controlled by registers
FC_DATAUTO1 and FC_DATAUTO2, while in Manual mode register FC_DATMAN requests to FC the
insertion of the requested packet.
■ Name: Frame Composer Data Island Auto Packet Scheduling Register 0
■ Address Offset: 0x10B3
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.59 fc_datauto1
Configures the Frame Composer (FC) RDRB frame interpolation for SPD, VSD, ISRC2, ISRC1 and ACP
packet insertion on data island when FC is on RDRB mode for the listed packets.
■ Name: Frame Composer Data Island Auto Packet Scheduling Register 1
■ Address Offset: 0x10B4
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
3:0 auto frame interpolation R/W Packet frame interpolation, for automatic packet scheduling
5.2.5.60 fc_datauto2
Configures the Frame Composer (FC) RDRB line interpolation and number of packets in frame for SPD,
VSD, ISRC2, ISRC1 and ACP packet insertion on data island when FC is on RDRB mode for the listed
packets.
■ Name: Frame Composer Data Island Auto Packet Scheduling Register 2
■ Address Offset: 0x10B5
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:4 auto frame packets R/W Packets per frame, for automatic packet scheduling
3:0 auto line spacing R/W Packets line spacing, for automatic packet scheduling
5.2.5.61 fc_datman
Requests to the Frame Composer the data island packet insertion for NULL, SPD, VSD, ISRC2, ISRC1 and
ACP packets when FC_DATAUTO0 bit is in manual mode for the packet requested.
■ Name: Frame Composer Data Island Manual Packet Request Register
■ Address Offset: 0x10B6
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Write
5.2.5.62 fc_datauto3
Configures the Frame Composer Automatic(1)/RDRB(0) data island packet insertion for AVI, GCP, AUDI
and ACR packets. In Automatic mode, the packet is inserted on Vblanking when first line with active Vsync
appears.
■ Name: Frame Composer Data Island Auto Packet Scheduling Register 3
■ Address Offset: 0x10B7
■ Size: 8 bits
■ Value after Reset: 0x0F
■ Access: Read/Write
5.2.5.63 fc_rdrb0
Configures the Frame Composer (FC) RDRB frame interpolation for ACR packet insertion on data island
when FC is on RDRB mode for this packet.
■ Name: Frame Composer Round Robin ACR Packet Insertion Register 0
■ Address Offset: 0x10B8
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.64 fc_rdrb1
Configures the Frame Composer (FC) RDRB line interpolation and number of packets in frame for the ACR
packet insertion on data island when FC is on RDRB mode this packet.
■ Name: Frame Composer Round Robin ACR Packet Insertion Register 1
■ Address Offset: 0x10B9
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.65 fc_rdrb2
Configures the Frame Composer (FC) RDRB frame interpolation for AUDI packet insertion on data island
when FC is on RDRB mode for this packet.
■ Name: Frame Composer Round Robin AUDI Packet Insertion Register 2
■ Address Offset: 0x10BA
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.66 fc_rdrb3
Configures the Frame Composer (FC) RDRB line interpolation and number of packets in frame for the
AUDI packet insertion on data island when FC is on RDRB mode this packet.
■ Name: Frame Composer Round Robin AUDI Packet Insertion Register 3
■ Address Offset: 0x10BB
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.67 fc_rdrb4
Configures the Frame Composer (FC) RDRB frame interpolation for GCP packet insertion on data island
when FC is on RDRB mode for this packet.
■ Name: Frame Composer Round Robin GCP Packet Insertion Register 4
■ Address Offset: 0x10BC
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.68 fc_rdrb5
Configures the Frame Composer (FC) RDRB line interpolation and number of packets in frame for the GCP
packet insertion on data island when FC is on RDRB mode this packet.
■ Name: Frame Composer Round Robin GCP Packet Insertion Register 5
■ Address Offset: 0x10BD
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.69 fc_rdrb6
Configures the Frame Composer (FC) RDRB frame interpolation for AVI packet insertion on data island
when FC is on RDRB mode for this packet.
■ Name: Frame Composer Round Robin AVI Packet Insertion Register 6
■ Address Offset: 0x10BE
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.70 fc_rdrb7
Configures the Frame Composer (FC) RDRB line interpolation and number of packets in frame for the AVI
packet insertion on data island when FC is on RDRB mode this packet.
■ Name: Frame Composer Round Robin AVI Packet Insertion Register 7
■ Address Offset: 0x10BF
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.71 fc_mask0
Mask register for generation of FC_INT0 interrupts.
■ Name: Frame Composer Packet Interrupt Mask Register 0
■ Address Offset: 0x10D2
■ Size: 8 bits
■ Value after Reset: 0x25
■ Access: Read/Write
5.2.5.72 fc_mask1
Mask register for generation of FC_INT1 interrupts.
■ Name: Frame Composer Packet Interrupt Mask Register 1
■ Address Offset: 0x10D6
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.73 fc_mask2
Mask register for generation of FC_INT2 interrupts.
■ Name: Frame Composer High/Low Priority Overflow Interrupt Mask Register 2
■ Address Offset: 0x10DA
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-130 fc_mask2 Register
5.2.5.74 fc_prconf
Defines the Pixel Repetition ratio factor of the input and output video signal.
■ Name: Frame Composer Pixel Repetition Configuration Register
■ Address Offset: 0x10E0
■ Size: 8 bits
■ Value after Reset: 0x10
■ Access: Read/Write
7:4 incoming_pr_factor[3:0] R/W Configures the input video pixel repetition. A plus 1 factor should be
added in this register configuration. For CEA modes this value should be
extracted from the CEA spec for the video mode being inputted.
incoming_pr_factor[3:0] Action
0000b No action. Not used.
0001b No pixel repetition (pixel sent only once)
0010b Pixel sent 2 times (pixel repeated once)
0011b Pixel sent 3 times
0100b Pixel sent 4 times
0101b Pixel sent 5 times
0110b Pixel sent 6 times
0111b Pixel sent 7 times
1000b Pixel sent 8 times
1001b Pixel sent 9 times
1010b Pixel sent 10 times
Other Reserved. Not used.
Note: When working in YCC422 video the actual repetition of the stream
is Incoming_pr_factor * (desired_pr_factor + 1). This calculation is done
internally in the H13TCTRL and no HW overflow protection is available.
Care must be taken to avoid this result passes the maximum number of 10
pixels repeated since no HDMI support is available for this in the
specification and the H13TPHY does not support this higher repetition
values.
3:0 output_pr_factor[3:0] R/W Configures the video pixel repetition ratio to be sent on the AVI infoFrame.
This value must be valid according to HDMI spec. The output_pr_factor =
incoming_pr_factor(without the + 1 factor) * desired_pr_factor.
incoming_pr_factor[3:0] Action
0000b No action. Not used.
0001b Pixel sent 2 times (pixel repeated once)
0010b Pixel sent 3 times
0011b Pixel sent 4 times
0100b Pixel sent 5 times
0101b Pixel sent 6 times
0110b Pixel sent 7 times
0111b Pixel sent 8 times
1000b Pixel sent 9 times
1001b Pixel sent 10 times
Other Reserved. Not used.
5.2.5.75 fc_gmd_stat
Gamut metadata packet status bit information for no_current_gmd, next_gmd_field, gmd_packet_sequence
and current_gamut_seq_num. For more information, refer to the HDMI 1.4b specification.
■ Name: Frame Composer GMD Packet Status Register
■ Address Offset: 0x1100
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.5.76 fc_gmd_en
This register enables Gamut metadata (GMD) packet transmission. Packets are inserted in the incoming
frame, starting in the line where active Vsync indication starts. After enable of GMD packets the outgoing
packet is sent with no_current_gmd active indication until update GMD request is performed in the
controller.
■ Name: Frame Composer GMD Packet Enable Register
■ Address Offset: 0x1101
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.5.77 fc_gmd_up
This register performs an GMD packet content update according to the configured packet body
(FC_GMD_PB0 to FC_GMD_PB27) and packet header (FC_GMD_HB). This active high auto clear register
reflects the body and header configurations on the GMD packets sent arbitrating the
current_gamut_seq_num, gmd_packet_sequence and next_gmd_field bits on packet to correctly indicate to
source the Gamut change to be performed. After enable GMD packets the first update request is also
responsible for deactivating the no_current_gmd indication bit. Attention packet update request must only
be done after correct configuration of GMD packet body and header registers. Correct
affected_gamut_seq_num and gmd_profile configuration is user responsibility and must convey with
HDMI 1.4b standard gamut rules.
■ Name: Frame Composer GMD Packet Update Register
■ Address Offset: 0x1102
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Write
5.2.5.78 fc_gmd_conf
This register configures the number of GMD packets to be inserted per frame (starting always in the line
where the active Vsync appears) and the line spacing between the transmitted GMD packets. Note that for
profile P0 (refer to HDMI 1.4b spec) this register should only indicate one GMD packet to be inserted per
video field.
■ Name: Frame Composer GMD Packet Schedule Configuration Register
■ Address Offset: 0x1103
■ Size: 8 bits
■ Value after Reset: 0x10
■ Access: Read/Write
7:4 gmdpacketsinframe[3:0] R/W Number of GMD packets per frame or video field (profile P0)
3:0 gmdpacketlinespacing[3:0] R/W Number of line spacing between the transmitted GMD packets
5.2.5.79 fc_gmd_hb
This register configures the GMD packet header affected_gamut_seq_num and gmd_profile bits. For more
information, refer to the HDMI 1.4b specification.
■ Name: Frame Composer GMD Packet Profile and Gamut Sequence Configuration Register
■ Address Offset: 0x1104
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 fc_gmd_pbn, where n is 0 to 27 R/W Frame Composer GMD Packet Body Register n, where n is 0 to 27.
5.2.5.81 fc_dbgforce
This register allows to force the controller to output audio and video data the values configured in the
FC_DBGAUD and FC_DBGTMDS registers.
■ Name: Frame Composer Video/Audio Force Enable Register
■ Address Offset: 0x1200
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
4 forceaudio R/W Force fixed audio output with fc_dbgaudxchx registers contain.
0 forcevideo R/W Force fixed video output with fc_dbgtmdsx registers contain.
7:0 fc_dbgaudnch0, where n is 0 to 2 R/W Frame Composer Audio Data Channel 0 Register n, where n is 0 to 2.
7:0 fc_dbgaudnch1, where n is 0 to 2 R/W Frame Composer Audio Data Channel 1 Register n, where n is 0 to 2.
7:0 fc_dbgaudnch2, where n is 0 to 2 R/W Frame Composer Audio Data Channel 2 Register n, where n is 0 to 2.
7:0 fc_dbgaudnch3, where n is 0 to 2 R/W Frame Composer Audio Data Channel 3 Register n, where n is 0 to 2.
7:0 fc_dbgaudnch4, where n is 0 to 2 R/W Frame Composer Audio Data Channel 4 Register n, where n is 0 to 2.
7:0 fc_dbgaudnch5, where n is 0 to 2 R/W Frame Composer Audio Data Channel 5 Register n, where n is 0 to 2.
7:0 fc_dbgaudnch6, where n is 0 to 2 R/W Frame Composer Audio Data Channel 6 Register n, where n is 0 to 2.
7:0 fc_dbgaudnch7, where n is 0 to 2 R/W Frame Composer Audio Data Channel 7 Register n, where n is 0 to 2.
5.2.5.90 fc_dbgtmds0
Configures the video fixed data to be used in tmds channel 0 when in fixed video selection. This equals to
set B pixel component value in RGB video or Cb pixel component value in YCbCr.
■ Name: Frame Composer TMDS Channel 0 Register
■ Address Offset: 0x1219
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-147 fc_dbgtmds0 Register
5.2.5.91 fc_dbgtmds1
Configures the video fixed data to be used in tmds channel 1 when in fixed video selection. This equals to
set G pixel component value in RGB video or Y pixel component value in YCbCr.
■ Name: Frame Composer TMDS Channel 1 Register
■ Address Offset: 0x121A
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-148 fc_dbgtmds1 Register
5.2.5.92 fc_dbgtmds2
Configures the video fixed data to be used in tmds channel 2 when in fixed video selection. This equals to
set R pixel component value in RGB video or Cr pixel component value in YCbCr.
■ Name: Frame Composer TMDS Channel 2 Register
■ Address Offset: 0x121B
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.6.1 phy_conf0
This register holds the power down, data enable polarity and interface control of the HDMI Source PHY
control. For more information, refer to the DesignWare Cores HDMI TX PHY Databook.
■ Name: PHY Configuration Register
■ Address Offset: 0x3000
■ Size: 8 bits
■ Value after Reset: 0x06
■ Access: Read/Write
5.2.6.2 phy_tst0
PHY TX mapped text interface (control). For more information, refer to the DesignWare Cores HDMI TX PHY
Databook.
■ Name: PHY Test Interface Register 0
■ Address Offset: 0x3001
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.6.3 phy_tst1
PHY TX mapped text interface (data in). For more information, refer to the DesignWare Cores HDMI TX PHY
Databook.
■ Name: PHY Test Interface Register 1
■ Address Offset: 0x3002
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.6.4 phy_tst2
PHY TX mapped text interface (data out). For more information, refer to the DesignWare Cores HDMI TX
PHY Databook.
■ Name: PHY Test Interface Register 2
■ Address Offset: 0x3003
■ Size: 8 bits
■ Value after Reset: N/A
■ Access: Read
5.2.6.5 phy_stat0
This register contains the following active high packet sent status indications. For more information, refer to
the DesignWare Cores HDMI TX PHY Databook.
■ Name: PHY RXSENSE, PLL lock, and HPD Status Register
■ Address Offset: 0x3004
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.6.6 phy_int0
This register contains the interrupt indication of the PHY_STAT0 status interrupts. Interrupt generation is
accomplished in the following way:
interrupt = (mask == 1'b0) && (polarity == status);
All this interrupts are forwarded to the Interrupt Handler sticky bit registers and after ORed to a single
main interrupt line to micro controller. Assertion of this interrupt implies that data related with the
corresponding packet has been sent through the HDMI interface.
■ Name: PHY RXSENSE, PLL lock, and HPD Interrupt Register
■ Address Offset: 0x3005
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.6.7 phy_mask0
Mask register for generation of PHY_INT0 interrupts.
■ Name: PHY RXSENSE, PLL lock, and HPD Mask Register
■ Address Offset: 0x3006
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.6.8 phy_pol0
Polarity register for generation of PHY_INT0 interrupts.
■ Name: PHY RXSENSE, PLL lock and HPD Polarity Register
■ Address Offset: 0x3007
■ Size: 8 bits
■ Value after Reset: 0xF3
■ Access: Read/Write
5.2.6.9 PHY_PCLFREQ0
This register is present when the Chartered 65 LPE PHY is selected.
■ Name: PHY Test Interface Register 1
■ Address Offset: 0x3009
■ Size: 8 bits
■ Value after Reset: 0x32
■ Access: Read/Write
5.2.6.10 PHY_PCLFREQ1
This register is present when the Chartered 65 LPE PHY is selected.
■ Name: PHY Test Interface Register 2
■ Address Offset: 0x3009
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.6.11 PHY_PLLCFGFREQ0
This register is present when the Chartered 65 LPE PHY is selected.
■ Name: PHY Test Interface Register 0
■ Address Offset: 0x300a
■ Size: 8 bits
■ Value after Reset: 0x20
■ Access: Read/Write
5.2.6.12 PHY_PLLCFGFREQ1
This register is present when the Chartered 65 LPE PHY is selected.
■ Name: PHY Test Interface Register 1
■ Address Offset: 0x300b
■ Size: 8 bits
■ Value after Reset: 0x27
■ Access: Read/Write
5.2.6.13 PHY_PLLCFGFREQ2
This register is present when the Chartered 65 LPE PHY is selected.
■ Name: PHY Test Interface Register 2
■ Address Offset: 0x300c
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.7.1 phy_i2cm_slave
This register writes the slave address of the I2C Master PHY. This register is functional when PHY_GEN2=1
or PHY_EXTERNAL=1.
■ Name: PHY I2C Slave Address Configuration Register
■ Address Offset: 0x3020
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
6:0 slaveaddr R/W Slave address to be sent during read and write operations.
The PHY Gen2 slave address is: 7'h69
The HEAC PHY slave address is: 7'h49
5.2.7.2 phy_i2cm_address
This register writes the address for read and writer operations. This register is functional when
PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Address Configuration Register
■ Address Offset: 0x3021
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.7.3 phy_i2cm_datao_1
his register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Data Write Register 1
■ Address Offset: 0x3022
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.7.4 phy_i2cm_datao_0
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Data Write Register 0
■ Address Offset: 0x3023
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 datao[7:0] R/W Data LSB to be written on register pointed by phy_i2cm_address [7:0].
5.2.7.5 phy_i2cm_datai_1
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Data Read Register 1
■ Address Offset: 0x3024
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
Table 5-167 phy_i2cm_datai_1 Register
5.2.7.6 phy_i2cm_datai_0
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Data Read Register 0
■ Address Offset: 0x3025
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.7.7 phy_i2cm_operation
This register requests read and write operations from the I2C Master PHY. This register can only be written;
reading this register always results in 00h. Writing 1'b1 simultaneously to read and write requests is
considered a read request. This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Read/Write Operation Register
■ Address Offset: 0x3026
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Write
5.2.7.8 phy_i2cm_int
This register contains and configures I2C master PHY done interrupt. This register is functional when
PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Done Interrupt Register
■ Address Offset: 0x3027
■ Size: 8 bits
■ Value after Reset: 0x08
■ Access: Read/Write
1 done_interrupt R Operation done interrupt bit. Only lasts for one SFR clock cycle and is auto cleared
after it. (done_interrupt = [done_mask=0b] AND [done_status=done_pol]).
Value after Reset: 0b
0 done_status R Operation done status bit. Marks the end of a read or write operation.
Value after Reset: 0b
5.2.7.9 phy_i2cm_ctlint
This register contains and configures the I2C master PHY error interrupts. This register is functional when
PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Error Interrupt Register
■ Address Offset: 0x3028
■ Size: 8 bits
■ Value after Reset: 0x88
■ Access: Read/Write
5.2.7.10 phy_i2cm_div
This register wets the I2C Master PHY to work in either Fast or Standard mode. This register is functional
when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Speed Control Register
■ Address Offset: 0x3029
■ Size: 8 bits
■ Value after Reset: 0x0B
■ Access: Read/Write
5.2.7.11 phy_i2cm_softrstz
This register sets the I2C Master PHY software reset. This register is functional when PHY_GEN2=1 or
PHY_EXTERNAL=1.
■ Name: PHY I2C Software Reset Register
■ Address Offset: 0x302A
■ Size: 8 bits
■ Value after Reset: 0x01
■ Access: Read/Write
The following *CNT registers must be set before any I2C bus transaction can take place to ensure proper I/O
timing. For more information about the SFR_CLK frequency configuration, refer to Section “I2C Clock
Configuration” on page 86.
The following are the I2C Master SCL clock settings:
■ SS: Standard Speed
■ FS: Fast Speed
■ HCNT: SCL High Level counter
■ LCNT: SCL Low Level counter
5.2.7.12 phy_i2cm_ss_scl_hcnt_1_addr
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Slow Speed SCL High Level Control Register 1
■ Address Offset: 0x302B
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.7.13 phy_i2cm_ss_scl_hcnt_0_addr
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.0
■ Name: PHY I2C Slow Speed SCL High Level Control Register 0
■ Address Offset: 0x302C
■ Size: 8 bits
■ Value after Reset: 0x6C
■ Access: Read/Write
7:0 i2cmp_ss_scl_hcnt0 R/W PHY I2C Slow Speed SCL High Level Control Register 0
Value after Reset: 8'h6C
5.2.7.14 phy_i2cm_ss_scl_lcnt_1_addr
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Slow Speed SCL Low Level Control Register 1
■ Address Offset: 0x302D
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-176 phy_i2cm_ss_scl_lcnt_1_addr Register
5.2.7.15 phy_i2cm_ss_scl_lcnt_0_addr
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Slow Speed SCL Low Level Control Register 0
■ Address Offset: 0x302E
■ Size: 8 bits
■ Value after Reset: 0x7F
■ Access: Read/Write
Table 5-177 phy_i2cm_fs_scl_hcnt_0_addr Register
5.2.7.16 phy_i2cm_fs_scl_hcnt_1_addr
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Fast Speed SCL High Level Control Register 1
■ Address Offset: 0x302F
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-178 phy_i2cm_fs_scl_hcnt_1_addr Register
5.2.7.17 phy_i2cm_fs_scl_hcnt_0_addr
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Fast Speed SCL High Level Control Register 0
■ Address Offset: 0x3030
■ Size: 8 bits
■ Value after Reset: 0x11
■ Access: Read/Write
5.2.7.18 phy_i2cm_fs_scl_lcnt_1_addr
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Fast Speed SCL Low Level Control Register 1
■ Address Offset: 0x3031
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-180 PHY_I2CM_FS_SCL_LCNT_1_ADDR Register
5.2.7.19 phy_i2cm_fs_scl_lcnt_0_addr
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C Fast Speed SCL Low Level Control Register 0
■ Address Offset: 0x3032
■ Size: 8 bits
■ Value after Reset: 0x24
■ Access: Read/Write
5.2.7.20 i2cm_phy_sda_hold
This register is functional when PHY_GEN2=1 or PHY_EXTERNAL=1.
■ Name: PHY I2C SDA Hold Register
■ Address Offset: 0x3033
■ Size: 8 bits
■ Value after Reset: 0x09
■ Access: Read/Write
7:0 osda_hold R/W Defines the number of SFR clock cycles to meet tHD;DAT (300 ns)
osda_hold = round_to_high_integer (300 ns / (1 / isfrclk_frequency))
5.2.8.1 aud_conf0
This register configures the I2S input enable that indicates which input I2S channels have valid data. It also
allows the system processor to reset audio FIFOs upon underflow/overflow error detection. This register is
present when the hardware configuration parameter AUDIO_IF = I2S (1), DOUBLE (4), or GDOUBLE (7).
■ Name: Audio I2S SW FIFO Reset, Select, and Enable Control Register 0
■ Address Offset: 0x3100
■ Size: 8 bits
■ Value after Reset: 0x2F
■ Access: Read/Write
5.2.8.2 aud_conf1
This register configures the I2S mode and data width of the input data. This register is present when the
hardware configuration parameter AUDIO_IF = I2S (1), DOUBLE (4), or GDOUBLE (7).
■ Name: Audio I2S Width and Mode Configuration Register 1
■ Address Offset: 0x3101
■ Size: 8 bits
■ Value after Reset: 0x18
■ Access: Read/Write
5.2.8.3 aud_int
This register configures the I2S FIFO status and interrupts. This register is present when the hardware
configuration parameter AUDIO_IF = I2S (1), DOUBLE (4), or GDOUBLE (7).
■ Name: Audio I2S FIFO Status and Interrupts Register 1
■ Address Offset: 0x3102
■ Size: 8 bits
■ Value after Reset: 0x03
■ Access: Read/Write
5.2.8.4 aud_conf2
This register configures the I2S Audio Data mapping. This register is present when the hardware
configuration parameter AUDIO_IF = I2S (1), DOUBLE (4), or GDOUBLE (7).
By default, audio data mapping is the standard I2S Linear PCM (L-PCM) mapping. You can choose to use
the I2S interface to transport HBR or Non-Linear PCM (NL-PCM) audio, by setting the relevant bit in this
register.
■ Name: Audio I2S NL-PCM and HBR Configuration Register 2
■ Address Offset: 0x3103
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-186 AUD_CONF2
5.2.8.5 aud_int1
This register masks the interrupts present in the I2S module. This is only present when the AUDIO_IF is set
to I2S (1), DOUBLEIF (4), or JDOUBLE (7).
■ Name: Audio I2S Mask Interrupt Register 1
■ Address Offset: 0x3104
■ Size: 8 bits
■ Value after Reset: 0x10
■ Access: Read/Write
Table 5-187 AUD_CONF2
5.2.8.6 aud_n1
For N expected values, refer to the HDMI 1.4b specification.
■ Name: Audio Clock Regenerator N Value Register 1
■ Address Offset: 0x3200
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.8.7 aud_n2
For N expected values, refer to the HDMI 1.4b specification.
■ Name: Audio Clock Regenerator N Value Register 2
■ Address Offset: 0x3201
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.8.8 aud_n3
For N expected values, refer to the HDMI 1.4b specification.
■ Name: Audio Clock Regenerator N Value Register 3
■ Address Offset: 0x3202
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.8.9 aud_cts1
For CTS expected values, refer to the HDMI 1.4b specification.
■ Name: Audio Clock Regenerator CTS Value Register 1
■ Address Offset: 0x3203
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.8.10 aud_cts2
For CTS expected values, refer to the HDMI 1.4b specification.
■ Name: Audio Clock Regenerator CTS Value Register 2
■ Address Offset: 0x3204
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.8.11 aud_cts3
For CTS expected values, refer to the HDMI 1.4b specification.
■ Name: Audio Clock Regenerator CTS Value Register 3
■ Address Offset: 0x3205
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
a. When the General Parallel Audio Interface (GPAUD) is enabled (AUDIO_IF = 6) or the AHB DMA Audio Interface is
enabled (AUDIO_IF = 8), writing to these bits has no effect; reading these bits always return 0.
5.2.8.12 aud_inputclkfs
Input audio clock FS factor.
When the General Parallel Audio Interface (GPAUD) is enabled (AUDIO_IF = 6), this register
Note has no meaning. Writing and reading to this register is possible but no functional action is
performed.
5.2.8.13 aud_spdif0
This register allows the system processor to reset audio FIFOs upon underflow/overflow error detection.
This register is present when the hardware configuration parameter AUDIO_IF = SPDIF (2) or DOUBLE (4).
■ Name: Audio S/PDIF Software FIFO Reset Control Register 0
■ Address Offset: 0x3300
■ Size: 8 bits
■ Value after Reset: 0x0F
■ Access: Read/Write
5.2.8.14 aud_spdif1
This register configures the S/PDIF data width. This register is present when the hardware configuration
parameter AUDIO_IF = SPDIF (2) or DOUBLE (4).
■ Name: Audio S/PDIF NL-PCM and Width Configuration Register 1
■ Address Offset: 0x3301
■ Size: 8 bits
■ Value after Reset: 0x18
■ Access: Read/Write
5.2.8.15 aud_spdifint
This register is present when the hardware configuration parameter AUDIO_IF = SPDIF (2) or DOUBLE (4).
■ Name: Audio S/PDIF FIFO Empty/Full Mask Register
■ Address Offset: 0x3302
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.8.16 aud_spdifint1
This register masks interrupts present in the S/PDIF module. This is only present when the AUDIO_IF is set
to SPDIF (2) or DOUBLEIF (4).
■ Name: Audio S/PDIF Mask Interrupt Register 1
■ Address Offset: 0x3303
■ Size: 8 bits
■ Value after Reset: 0x10
■ Access: Read/Write
5.2.9.1 gp_conf0
This register is present when AUDIO_IF = GPAUD (6) or GDOUBLE (7).
■ Name: Audio GPA SW FIFO Reset Control Register 0
■ Address Offset: 0x3500
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.9.2 gp_conf1
This register is present when AUDIO_IF = GPAUD (6) or GDOUBLE (7).
■ Name: Audio GPA Channel Enable Configuration Register 1
■ Address Offset: 0x3501
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.9.3 gp_conf2
This register is present when AUDIO_IF = GPAUD (6) or GDOUBLE (7).
■ Name: Audio GPA HBR Enable Register 2
■ Address Offset: 0x3502
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.9.4 gp_mask
This register is present when AUDIO_IF = GPAUD (6) or GDOUBLE (7).
■ Name: Audio GPA Full and Empty Mask Interrupt Register
■ Address Offset: 0x3506
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.10.1 ahb_dma_conf0
This register contains the software reset bit for the audio FIFOs. It also configures operating modes of the
AHB master. This register is only present when the the AUDIO_IF is set to AHBAUDDMA (8).
■ Name: Audio DMA Software FIFO Reset and DMA Configuration Register 0
■ Address Offset: 0x3600
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.10.2 ahb_dma_start
This register is only present when the the AUDIO_IF is set to AHBAUDDMA (8).
The start_dma_transaction bit field signals the AHB audio DMA to start accessing system memory in order
to fetch data samples to store in the FIFO. After the operation starts, a new request for a DMA start is
ignored until the DMA is stopped or it reaches the end address. Only in one of these situations is a new start
request acknowledged.
The first DMA burst request after start_dma_transaction configuration uses initial_addr[31:0] as
ohaddr[31:0] value; mburstlength[8:0] is set to the maximum admissible value. This maximum value is
constrained by the size of buffer provided, the instantiated FIFO depth, or/and the number of words up to
the next 1 Kbyte boundary.
■ Name: Audio DMA Start Register
■ Address Offset: 0x3601
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.10.3 ahb_dma_stop
This register is only present when the the AUDIO_IF is set to AHBAUDDMA (8).
The stop_dma_transaction bit field signals the AHB audio DMA to stop current memory access. After it
stops, if a new start DMA operation is requested, the DMA engine restarts the memory access using the
initial_addr[31:0], which is programmed at ahb_dma_straddr0 to ahb_dma_straddr3.
■ Name: Audio DMA Stop Register
■ Address Offset: 0x3602
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.10.4 ahb_dma_thrsld
This register defines the FIFO medium threshold occupation value. It is only present when the the
AUDIO_IF is set to AHBAUDDMA (8).
After the AHB master completes a burst transaction successfully, the FIFO may remain full till the data fetch
interface requests samples. Each data fetch operation reduces the number of samples stored in the FIFO by
the number of channels enabled.
As soon as the number of samples in the FIFO drops lower than the fifo_threshold[7:0], the DMA engine
requests a new burst of samples for the AHB master. The length is constrained by the size of buffer
provided, the instantiated FIFO depth minus fifo_threshold[7:0], and/or the number of words up to the
next 1 kbyte boundary.
Therefore, the fifo_threshold[7:0] is the medium number of samples that should be available in the audio
FIFO across the DMA operation.
■ Name: Audio DMA FIFO Threshold Register
■ Address Offset: 0x3603
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.10.9 ahb_dma_mask
This register masks each of the interrupts present in the AHB audio DMA module. This is only present
when the the AUDIO_IF is set to AHBAUDDMA (8).
■ Name: Audio DMA Mask Interrupt Register 0
■ Address Offset: 0x3614
■ Size: 8 bits per register
■ Value after Reset: 0xF7
■ Access: Read/Write
5.2.10.10 ahb_dma_conf1
In AUDS packet configuration with layout 0 selected, the maximum number of active channels is 2.
■ Name: Audio DMA Channel Enable Configuration Register 1
■ Address Offset: 0x3616
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-222 ahb_dma_conf1
5.2.10.11 ahb_dma_buffmask
■ Name: Audio DMA Buffer Mask Interrupt Register
■ Address Offset: 0x3619
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-223 ahb_dma_buffmask
5.2.10.12 ahb_dma_mask1
This register masks interrupts present in the AHB audio DMA module. This is only present when the
AUDIO_IF configuration parameter is set to AHBAUDDMA (8).
■ Name: Audio DMA Mask Interrupt Register 1
■ Address Offset: 0x361B
■ Size: 8 bits per register
■ Value after Reset: 0x03
■ Access: Read/Write
5.2.10.13 ahb_dma_status
■ Name: Audio DMA Status
■ Address Offset: 0x361C
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
0 autostart_status R Indicates the set of start and stop addresses currently used by the AHB
audio DMA.
If clear (1'b0), the start and stop addresses configured in the address
range 0x3604 to 0x360B are being used, and when set (1'b1), the
configurations at address range 0x3620 to 0x3627 are being used.
This bit is always at zero when autostart_enable is clear (1'b0).
5.2.10.14 ahb_dma_conf2
■ Name: Audio DMA Configuration Register 2
■ Address Offset: 0x361D
■ Size: 8 bits
■ Value after Reset: 0x02
■ Access: Read/Write
Table 5-226 ahb_dma_conf2
5.2.11.1 mc_clkdis
Main controller synchronous disable control per clock domain. Upon release of synchronous disable the
corresponding sw reset NRZ request signal, to that domain, is toggled asking to the output for a
synchronized active low reset to be generated to that domain.
■ Name: Main Controller Synchronous Clock Domain Disable Register
■ Address Offset: 0x4001
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.11.2 mc_swrstzreq
Main controller software reset request per clock domain. Writing zero to a bit of this register results in an
NRZ signal toggle at sfrclk rate to an output signal that indicates a software reset request. This toggle must
be used to generate a synchronized reset to de corresponding domain, with at least 1 clock cycle. Register
defaults back to 0xFF.
■ Name: Main Controller Software Reset Register
■ Address Offset: 0x4002
■ Size: 8 bits
■ Value after Reset: 0xFF
■ Access: Read/Write
5.2.11.3 mc_opctrl
This register is present when the HDCP configuration parameter is set to True (1).
■ Name: Main Controller HDCP Bypass Control Register
■ Address Offset: 0x4003
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-237 mc_opctrl
5.2.11.4 mc_flowctrl
■ Name: Main Controller Feed Through Control Register
■ Address Offset: 0x4004
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.11.5 mc_phyrstz
■ Name: Main Controller PHY Reset Register
■ Address Offset: 0x4005
■ Size: 8 bits
■ Value after Reset: 0x00 (PHY GEN 1), 0x01 (PHY GEN 2)
■ Access: Read/Write
5.2.11.6 mc_lockonclock
■ Name: Main Controller Clock Present Register
■ Address Offset: 0x4006
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Clear on Write
5.2.11.7 mc_heacphy_rst
■ Name: Main Controller HEAC PHY Reset Register
■ Address Offset: 0x4007
■ Size: 8 bits
■ Value after Reset: N/A
■ Access: Read/Write
5.2.11.8 mc_lockonclock_2
■ Name: Main Controller Clock Present Register 2
■ Address Offset: 0x4009
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.11.9 mc_swrstzreq_2
Main controller software reset request per clock domain. Writing zero to a bit of this register results in a
signal toggle that indicates a software reset request. This toggle is used to generate a synchronized reset to
the corresponding domain, with one or more clock cycles.
■ Name: Main Controller Software Reset Register 1
■ Address Offset: 0x400A
■ Size: 8 bits per register
■ Value after Reset: 0x01
■ Access: Read/Write
5.2.12.1 csc_cfg
Color Space Conversion configuration register. Configures YCC422 to YCC444 interpolation mode and
YCC444 to YCC422 decimation mode.
■ Name: Color Space Converter Interpolation and Decimation Configuration Register
■ Address Offset: 0x4100
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.12.2 csc_scale
This register is only present when hardware configuration parameter CSC = 1 (True).
■ Name: Color Space Converter Scale and Deep Color Configuration Register
■ Address Offset: 0x4101
■ Size: 8 bits
■ Value after Reset: 0x01
■ Access: Read/Write
Y A1 A2 A3 G A4
csc scale – 14 csc scale – 2
Cr = 2 × B1 B2 B3 R + 2 × B4
Cb C1 C2 C3 B C4
G A1 A2 A3 Y A4
csc scale – 14 csc scale – 2
R = 2 × B 1 B 2 B 3 Cr + 2 × B4
B C 1 C 2 C 3 Cb C4
5.2.13.1 a_hdcpcfg0
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Enable and Functional Control Configuration Register 0
■ Address Offset: 0x5000
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.2 a_hdcpcfg1
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP SW Reset and Functional Control Configuration Register 1
■ Address Offset: 0x5001
■ Size: 8 bits
■ Value after Reset: 0x01
■ Access: Read/Write
5.2.13.3 a_hdcpobs0
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Observation Register 0
■ Address Offset: 0x5002
■ Size: 8 bits
■ Value after Reset: N/A
■ Access: Read
5.2.13.4 a_hdcpobs1
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Observation Register 1
■ Address Offset: 0x5003
■ Size: 8 bits
■ Value after Reset: N/A
■ Access: Read
5.2.13.5 a_hdcpobs2
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Observation Register 2
■ Address Offset: 0x5004
■ Size: 8 bits
■ Value after Reset: N/A
■ Access: Read
5.2.13.6 a_hdcpobs3
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Observation Register 3
■ Address Offset: 0x5005
■ Size: 8 bits
■ Value after Reset: N/A
■ Access: Read
5.2.13.7 a_apiintclr
Write only register, active high and auto cleared, cleans the respective interruption in the interrupt status
register. This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Interrupt Clear Register
■ Address Offset: 0x5006
■ Size: 8 bits
■ Value after Reset: N/A
■ Access: Write
5.2.13.8 a_apiintstat
Read only register, reports the interruption which caused the activation of the interruption output pin. This
register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Interrupt Status Register
■ Address Offset: 0x5007
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.13.9 a_apiintmsk
The configuration of this register mask a given setup of interruption, disabling them from generating
interruption pulses in the interruption output pin. This register is only present when hardware
configuration parameter HDCP = 1 (True).
■ Name: HDCP Interrupt Mask Register
■ Address Offset: 0x5008
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.10 a_vidpolcfg
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Video Polarity Configuration Register
■ Address Offset: 0x5009
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-280 a_vidpolcfg
5.2.13.11 a_oesswcfg
Size of the window of opportunity for the OESS mode. The window of opportunity for the Original
Encryption Status Signaling starts at the active edge of the Vertical synchronism and stops after
oesswindowoffset[7:0]*4 clock cycles of TMDS clock. This register is only present when hardware
configuration parameter HDCP = 1 (True).
■ Name: HDCP OESS WOO Configuration Register
■ Address Offset: 0x500A
■ Size: 8 bits
■ Value after Reset: 0x80
■ Access: Read/Write
5.2.13.12 a_coreverlsb
Design ID number. This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Core Version Register LSB
■ Address Offset: 0x5014
■ Size: 8 bits
■ Value after Reset: 0x02
■ Access: Read
5.2.13.13 a_corevermsb
Revision ID number. This register is only present when hardware configuration parameter HDCP = 1
(True).
■ Name: HDCP Core Version Register MSB
■ Address Offset: 0x5015
■ Size: 8 bits
■ Value after Reset: 0x03
■ Access: Read
5.2.13.14 a_ksvmemctrl
The KSVCTRLupd bit is a notification flag. This flag changes polarity whenever the register is written. This
flag acts as a trigger to other blocks that processes this data. Upon reset the flag returns to low default value.
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP KSV Memory Control Register
■ Address Offset: 0x5016
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.15 hdcp_bstatus_0
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP BStatus Register 0
■ Address Offset: 0x5020
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.16 hdcp_bstatus_1
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP BStatus Register 1
■ Address Offset: 0x5021
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.17 hdcp_m0_0
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP M0 Register 0
■ Address Offset: 0x5022
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.18 hdcp_m0_1
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP M0 Register 1
■ Address Offset: 0x5023
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.19 hdcp_m0_2
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP M0 Register 2
■ Address Offset: 0x5024
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.20 hdcp_m0_3
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP M0 Register 3
■ Address Offset: 0x5025
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.21 hdcp_m0_4
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP M0 Register 4
■ Address Offset: 0x5026
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.22 hdcp_m0_5
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP M0 Register 5
■ Address Offset: 0x5027
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.23 hdcp_m0_6
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP M0 Register 6
■ Address Offset: 0x5028
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.24 hdcp_m0_7
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP M0 Register 7
■ Address Offset: 0x5029
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.25 hdcp_ksv[640]
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP KSV Registers
■ Address Offset: 0x502A
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.26 hdcp_vh[20]
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP SHA-1 VH Registers
■ Address Offset: 0x52a5
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.27 hdcp_revoc_size_0
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Revocation KSV List Size Register 0
■ Address Offset: 0x52b9
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.28 hdcp_revoc_size_1
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Revocation KSV List Size Register 1
■ Address Offset: 0x52ba
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.13.29 hdcp_revoc_list[5120]
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Revocation KSV Registers
■ Address Offset: 0x52bb
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.14.1 hdcpreg_bksv0
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP BKSV Status Register 0
■ Address Offset: 0x7800
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.14.2 hdcpreg_bksv1
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP BKSV Status Register 1
■ Address Offset: 0x7801
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.14.3 hdcpreg_bksv2
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP BKSV Status Register 2
■ Address Offset: 0x7802
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.14.4 hdcpreg_bksv3
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP BKSV Status Register 3
■ Address Offset: 0x7803
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.14.5 hdcpreg_bksv4
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP BKSV Status Register 4
■ Address Offset: 0x7804
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.15.1 hdcpreg_anconf
This register is a single-bit register and enforces the value of AN from the registers hdcpreg_an0 to
hdcpreg_an7. This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP AN Bypass Control Register
■ Address Offset: 0x7805
■ Size: 1 bit
■ Value after Reset: 0x00
■ Access: Read/Write
0 oanbypass R/W ■ When oanbypass=1, the value of AN used in the HDCP engine comes from
the registers hdcpreg_an0 to hdcpreg_an7.
■ When oanbypass=0, the value of AN used in the HDCP engine comes from
the random number input. For more information, refer to “Random Number
Generation Interface” on page 73.
5.2.15.2 hdcpreg_an0
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Forced AN Register 0
■ Address Offset: 0x7806
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.15.3 hdcpreg_an1
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Forced AN Register 1
■ Address Offset: 0x7807
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.15.4 hdcpreg_an2
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Forced AN Register 2
■ Address Offset: 0x7808
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.15.5 hdcpreg_an3
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Forced AN Register 3
■ Address Offset: 0x7809
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.15.6 hdcpreg_an4
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Forced AN Register 4
■ Address Offset: 0x780A
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.15.7 hdcpreg_an5
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Forced AN Register 5
■ Address Offset: 0x780B
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.15.8 hdcpreg_an6
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Forced AN Register 6
■ Address Offset: 0x780C
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.15.9 hdcpreg_an7
This register is only present when hardware configuration parameter HDCP = 1 (True).
■ Name: HDCP Forced AN Register 7
■ Address Offset: 0x780D
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.16.1 cec_ctrl
This register handles the main control of the CEC initiator.
■ Name: CEC Control Register
■ Address Offset: 0x7D00
■ Size: 8 bits
■ Value after Reset: 0x02
■ Access: Read/Write
5.2.16.2 cec_mask
This read/write register masks/unmasks the interrupt events. When the bit is set to 1 (masked), the
corresponding event does not trigger an interrupt signal at the system interface. When the bit is reset to 0,
the interrupt event is unmasked. This register is only present when hardware configuration parameter CEC
= 1 (True).
■ Name: CEC Interrupt Mask Register
■ Address Offset: 0x7D02
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Value
after
Bits Field Name R/W Description Reset
cec_addr_l (0x7D05 address) and cec_addr_h (0x7D06 address)
0 cec_addr_l_0 R/W Logical address 0 – Device TV 1'b0
1 cec_addr_l_1 R/W Logical address 1 – Recording Device 1 1'b0
2 cec_addr_l_2 R/W Logical address 2 – Recording Device 2 1'b0
3 cec_addr_l_3 R/W Logical address 3 – Tuner 1 1'b0
4 cec_addr_l_4 R/W Logical address 4 – Playback Device 1 1'b0
5 cec_addr_l_5 R/W Logical address 5 – Audio System 1'b0
6 cec_addr_l_6 R/W Logical address 6 – Tuner 2 1'b0
7 cec_addr_l_7 R/W Logical address 7 – Tuner 3 1'b0
0 cec_addr_h_0 R/W Logical address 8 – Playback Device 2 1'b0
1 cec_addr_h_1 R/W Logical address 9 – Playback Device 3 1'b0
2 cec_addr_h_2 R/W Logical address 10 – Tuner 4 1'b0
3 cec_addr_h_3 R/W Logical address 11 – Playback Device 3 1'b0
4 cec_addr_h_4 R/W Logical address 12 – Reserved 1'b0
5 cec_addr_h_5 R/W Logical address 13 – Reserved 1'b0
6 cec_addr_h_6 R/W Logical address 14 – Free use 1'b0
7 cec_addr_h_7 R/W Logical address 15 – Unregistered (as initiator address), 1'b1
Broadcast (as destination address)
5.2.16.4 cec_tx_cnt
This register indicates the size of the frame in bytes (including header and data blocks), which are available
in the transmitter data buffer. This register is only present when hardware configuration parameter CEC = 1
(True).
When the value is zero, the CEC controller ignores the send command triggered by software.
Note When the transmission is done (no matter success or not), the current value is held until it is
overwritten by software.
5.2.16.5 cec_rx_cnt
This register indicates the size of the frame in bytes (including header and data blocks), which are available
in the receiver data buffer. This register is only present when hardware configuration parameter CEC = 1
(True).
Note Only after the whole receiving process is finished successfully, the counter is refreshed to the
value which indicates the total number of data bytes in the Receiver Data Register.
Value
after
Address Register Bit Field [7:0] R/W Description Reset
cec_tx_data0 to cec_tx_data15 - 0x7d10 to 0x7d1f addresses
0x7D10 cec_tx_data0 databyte R/W Data bit 0 0x00
0x7D11 cec_tx_data1 databyte R/W Data bit 1 0x00
0x7D12 cec_tx_data2 databyte R/W Data bit 2 0x00
… … R/W … …
0x7D1F cec_tx_data15 databyte R/W Data bit 15 0x00
Value
after
Address Register Bit Field [7:0] R/W Description Reset
CEC_RX_DATA0 to CEC_RX_DATA15 - 0x7D20 to 0x7D2F addresses
0x7D20 cec_rx_data0 databyte R Data bit 0 0x00
0x7D21 cec_rx_data1 databyte R Data bit 1 0x00
0x7D22 cec_rx_data2 databyte R Data bit 2 0x00
… … R … …
0x7D2F cec_rx_data15 databyte R Data bit 15 0x00
5.2.16.8 cec_lock
This register is only present when hardware configuration parameter CEC = 1 (True).
■ Name: CEC Buffer Lock Register
■ Address Offset: 0x7D30
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.16.9 cec_wkupctrl
■ Name: CEC Wake-up Control Register
■ Address Offset: 0x7D31
■ Size: 8 bits
■ Value after Reset: 0xFF
■ Access: Read/Write
After receiving a message in the CEC_RX_DATA1 (OPCODE) registers, the CEC engine verifies the
message opcode[7:0] against one of the previously defined values to generate the wake-up status:
Wakeupstatus is 1 when:
received opcode is 0x04 and opcode0x04en is 1 or
received opcode is 0x0D and opcode0x0Den is 1 or
received opcode is 0x41 and opcode0x41en is 1 or
received opcode is 0x42 and opcode0x42en is 1 or
received opcode is 0x44 and opcode0x44en is 1 or
received opcode is 0x70 and opcode0x70en is 1 or
received opcode is 0x82 and opcode0x82en is 1 or
received opcode is 0x86 and opcode0x86en is 1
This formula means that the wake-up status (on CEC_STAT[6] register) is only ‘1’ if the opcode[7:0]
received is equal to one of the defined values and the corresponding enable bit of that defined value is set to
‘1’.
Value
after
Bits Field Name R/W Description Reset
cec_wkupctrl – 0x7D31 address
7 opcode0x86en R/W OPCODE 0x86 wake up enable 1'b1
6 opcode0x82en R/W OPCODE 0x82 wake up enable 1'b1
5 opcode0x70en R/W OPCODE 0x70 wake up enable 1'b1
4 opcode0x44en R/W OPCODE 0x44 wake up enable 1'b1
3 opcode0x42en R/W OPCODE 0x42 wake up enable 1'b1
2 opcode0x41en R/W OPCODE 0x41 wake up enable 1'b1
1 opcode0x0den R/W OPCODE 0x0D wake up enable 1'b1
0 opcode0x04en R/W OPCODE 0x04 wake up enable 1'b1
5.2.17.1 i2cm_slave
■ Name: I2C DDC Slave Address Configuration Register
■ Address Offset: 0x7E00
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.17.2 i2cm_address
■ Name: I2C DDC Address Configuration Register
■ Address Offset: 0x7E01
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
7:0 address R/W Register address for read and write operations.
5.2.17.3 i2cm_datao
■ Name: I2C DDC Data Write Register
■ Address Offset: 0x7E02
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-322 i2cm_datao Register
5.2.17.4 i2cm_datai
■ Name: I2C DDC Data Read Register
■ Address Offset: 0x7E03
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read
5.2.17.5 i2cm_operation
Read and write operation request. This register can only be written; reading this register always results in
00h. Writing 1'b1 simultaneously to rd, rd_ext and wr requests is considered as a read (rd) request.
■ Name: I2C DDC RD/RD_EXT/WR Operation Register
■ Address Offset: 0x7E04
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Write
5.2.17.6 i2cm_int
This register contains and configures I2C master done interrupt.
■ Name: I2C DDC Done Interrupt Register
■ Address Offset: 0x7E05
■ Size: 8 bits
■ Value after Reset: 0x08
■ Access: Read/Write
5.2.17.7 i2cm_ctlint
This register contains and configures I2C master arbitration error and not acknowledge error interrupt.
■ Name: I2C DDC Error Interrupt Register
■ Address Offset: 0x7E06
■ Size: 8 bits
■ Value after Reset: 0x88
■ Access: Read/Write
5.2.17.8 i2cm_div
This register configures the division relation between master and scl clock.
■ Name: I2C DDC Speed Control Register
■ Address Offset: 0x7E07
■ Size: 8 bits
■ Value after Reset: 0x0B
■ Access: Read/Write
Table 5-327 i2cm_div Register
5.2.17.9 i2cm_segaddr
This register configures the segment address for extended R/W destination and is used for EDID reading
operations, particularly for the Extended Data Read Operation for Enhanced DDC (See “I2C Master
Interface Extended Read Mode” on page 86).
■ Name: I2C DDC Segment Address Configuration Register
■ Address Offset: 0x7E08
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
For more information, see the VESA Enhanced Display Data Channel Standard Specification, Version 1.1.
5.2.17.10 i2cm_softrstz
This register resets the I2C master.
■ Name: I2C DDC Software Reset Control Register
■ Address Offset: 0x7E09
■ Size: 8 bits
■ Value after Reset: 0x01
■ Access: Read/Write
5.2.17.11 i2cm_segptr
This register configures the segment pointer for extended RD/WR request.
■ Name: I2C DDC Segment Pointer Register
■ Address Offset: 0x7E0A
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
The following *CNT registers must be set before any I2C bus transaction can take place to ensure proper I/O
timing. For more information about the SFR_CLK frequency configuration, refer to Section “I2C Clock
Configuration” on page 86.
5.2.17.12 i2cm_ss_scl_hcnt_1_addr
■ Name: I2C DDC Slow Speed SCL High Level Control Register 1
■ Address Offset: 0x7E0B
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
Table 5-331 i2cm_ss_scl_hcnt_1_addr Register
5.2.17.13 i2cm_ss_scl_hcnt_0_addr
■ Name: I2C DDC Slow Speed SCL High Level Control Register 0
■ Address Offset: 0x7E0C
■ Size: 8 bits
■ Value after Reset: 0x6C
■ Access: Read/Write
Table 5-332 i2cm_ss_scl_hcnt_0_addr Register
5.2.17.14 i2cm_ss_scl_lcnt_1_addr
■ Name: I2C DDC Slow Speed SCL Low Level Control Register 1
■ Address Offset: 0x7E0D
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.17.15 i2cm_ss_scl_lcnt_0_addr
■ Name: I2C DDC Slow Speed SCL Low Level Control Register 0
■ Address Offset: 0x7E0E
■ Size: 8 bits
■ Value after Reset: 0x7F
■ Access: Read/Write
5.2.17.16 i2cm_fs_scl_hcnt_1_addr
■ Name: I2C DDC Fast Speed SCL High Level Control Register 1
■ Address Offset: 0x7E0F
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.17.17 i2cm_fs_scl_hcnt_0_addr
■ Name: I2C DDC Fast Speed SCL High Level Control Register 0
■ Address Offset: 0x7E10
■ Size: 8 bits
■ Value after Reset: 0x11
■ Access: Read/Write
5.2.17.18 i2cm_fs_scl_lcnt_1_addr
■ Name: I2C DDC Fast Speed SCL Low Level Control Register 1
■ Address Offset: 0x7E11
■ Size: 8 bits
■ Value after Reset: 0x00
■ Access: Read/Write
5.2.17.19 i2cm_fs_scl_lcnt_0_addr
■ Name: I2C DDC Fast Speed SCL Low Level Control Register 0
■ Address Offset: 0x7E12
■ Size: 8 bits
■ Value after Reset: 0x24
■ Access: Read/Write
Table 5-338 i2cm_fs_scl_lcnt_0_addr Register
5.2.17.20 i2cm_sda_hold
■ Name: I2C DDC SDA HOLD Register
■ Address Offset: 0x7E13
■ Size: 8 bits
■ Value after Reset: 0x09
■ Access: Read/Write
A
HDCP Application Note
This application note discusses the authentication protocol defined by the HDMI 1.4b specification.
■ HDCP TX enables encryption when the first part of the protocol succeeds.
HD CP T R AN SM IT T ER
AUT H EN T ICAT ION PROTOC OL
A0:
Wait for a Wait fo r Active RX
acknow ledge I2C
read
N ot valid KSVs
A1:
Exch an ge KSVs
Send An, AKVS
R eceive BKSV
Start 100m s tim er
A3:
Vali date receiver
HD CP RX not ready After 100ms
Read R0'
C hec k R 0==R0'
Check KSV r evocation
Not V==V'
KSV revocation
SR M integr ity fail
A6: N ot Ri ==R i'
Test if is repeater Test f or rep eater
A 8: A 4:
Wait f or 5 seconds W ait fo r R ead y Update UC CF A u then ti cat ed
Poll HD CP R X ready a) HD CP act ive
b)SRM validated
c)no dev ice revocation
A 9: A 5:
Read K SV list L in k In tegr ity Ch eck
R ead KSV list Check R i ==R i'
R ead V'
C om pute V
Check V==V'
C heck KSV r evocation
No t valid KSVs
Revocation block starts checking
No t R0 ' ready
The block stays in computations until
BKSV integrity. Calculates Km, starts
cipher calculation of Ks, M 0 and R0 No t R0 ==R0 ' the 100ms timer is expired
A2: SRM integrity fail
C alculate Km, Ks, C omp u tatio ns
M0, R 0
Start KSV revocation
Ch eck BKSV 20/20
Wait for 5 second timer to poll the The H DCP is active and
H DCP RX ready bit. Once the Ready authenticated.
bit is detected
A8: A4:
Wait for 5 seconds Wait fo r Read y U pdate UCC F Au then ticated
Poll HD CP RX ready a)H DCP active
b)SRM validated
c)no device revocation
A0 Substate0 If I2C not busy and not timer100mson, request for I2C read Bcaps, go to
Substate1.
Substate3 If I2C not busy, request for I2C read Bstatus, go to Substate4.
Substate5 If HDMI_CAPABLE, test for device in HDMI mode; go to A1, else start again, go to
Substate0.
Substate1 If I2C not busy, request for I2C write Ainfo, go to Substate2.
Substate2 If I2C not busy and cipher not busy, request for I2C write An and AKSV,go to
SubstateA3.
Substate3 If I2C not busy, start timer100ms, request for I2C read BSK, go to SubstateA4.
Substate5 If check bit sum BKSV ended ok, if false go to Substate6 else start BKSV
revocation, go to Substate7.
A3 Substate0 If timer100ms stop and I2C not busy, request I2C read R0, go to Substate1.
Substate1 If I2C not busy and cipher not busy, check I2C acknowledge, go to Substate5 else
go to Substate4.
Substate2 If not Revocbusy, check status true, start timer2s go to Substate3 else go to
Substate4.
A8 Substate0 If not timer5s and I2C not busy, request I2C read Bcaps, go to Substate1.
A4 Substate0 If Integrity Link Check not fail and ELV not failed, AUTHENTIC is true, stay in A4
else go to A0.
The state transitions in the previous table should transition as described on the HDCP spec., page 17 to 20.
When the authentication is not successful, the output image is red (by default). Check DDC
Note (I2C) operations during authentication to see what failed. To assist in debugging, check the
authentication, revocation, and cipher FSMs (presented next) by reading registers
A_HDCPOBS0-2. Make sure that the registers go from state to state as described in the
HDCP specification.
In DWC_hdmi_tx with HDCP, it is very important that the SFR clock be set between 18MHz
and 27 MHz so that the HDCP timers and I2C speed are correct for DDC operations and
successful authentication.
A very useful tool to check the HDCP authentication protocol is Quantum Data, which can be
installed on the DDC lines.
When AUTH_FAIL
AUTH_REQ
is pulsed
Stor es An content,
this takes 4 clock On this state the
cycles, Cipherbusy at KMR_REQ can be
1 E1: Done E2: attended by Cipher.
Store An Ready
! AUTHENTIC AUTH_REQ
Authenticated
Done
AUTH_REQ
The state transitions in the previous table should transition as described on the HDCP specification, page 52
to 53.
While the hdcpRngCipher can be started in almost every state, the other three functions can only be called
when the state is E4(Active).It is important to notice that in order for the cipher state to transit from E2 to E4
it is necessary for the initial keys be calculated. Only after this happens can the protocol verify if the
receiving device is processing the same encryption content.
RESET R0:
RESET Once power-down or
reset are de-asserted
AKSV is read from
the DPK ROM
position 0
R1:
STARTUP Initial computations
ar e complete
R3: Done
Check BKSV
Calculate bitwise sum
of the BKSV and
check is has 20 ones Calculate KM and
compare with internal
calculation.
5. After the operation is concluded, revocation ceases to be busy and state machine returns to IDLE sate
R2.
6. If all test are successful, the next step checks if the device has repeater capability.
a. If this is not true, the block’s work is over, returning to R2, and the BKSV has checked
successfully.
b. If true, the block waits on this state until the 5s expires or the READY flag has been successfully
pulled.
7. On state R5, the KSV list inside the Repeater’s FIFO is requested for a read and is checked with the
revocation list. The KSV list is requested to the Repeater and its content is saved inside the External
Revocation Memory between memory address space 13'h000A - 13'h0284.
8. After reading the KSV list, the SHA1 message digest is also requested to the Repeater and stored
between 13'h0285 - 13'h0298.
9. After reading all information from the Repeater device, the core writes the Bstatus and M0 data to the
memory in locations 13'h0000-13'h000A.
At this moment, all information required to calculate the SHA1 message digest of the Repeater’s KSV
FIFO list is available inside the External Revocation Memory.
10. An interruption is given to the API KSVsha1calcint (bit 1 of A_APIINTSTAT interruption register),
requesting the calculation and validation of such message.
There are no specification requirements for the time spent to respond to the SHA1 calculation even
though the core is waiting for this response and does not enable encryption to the Repeater device
during this period. Details on how the SHA1 message digest is calculated can be found in the HDCP
1.4 specification.
Re Key operation
Assertion of continues if not
Re Key oper ation HSYNC
completed
continues if not
completed D4: D5:
Horizontal blank Vertical blank
Assertion of
VSYNC
Encrypt
data island
Encrypt
video period
Packet dat a
being sent
Not AVMUTE
and ENC_EN
G1':
Frame Key Calc AC and
No HDCP
ENC_DIS and
activity here not AVMUTE
Not AVMUTE New frame key is
and ENC_DIS calculated. State only
and AC ENC_DIS and reached with AC
not AVMUTE
Index
A Deliverables, of PCTL 28
Advance Cipher 74 Device Private Keys 80
AHB Master 54 Display
AMBA format configuration 24
APB slave interface 88 Display Channel (DDC) 24
An value 73 DMA
API low-level driver 28 Engine 56
Audio FSM 59
input interfaces 44 Operation 57
Audio DMA 54 DPK
56-Bit HDCP 80
Audio Stream
8-Bit HDCP 83
HBR 25
DPK (Device Private Keys 80
Audio stream
IEC 61937 compressed 25 DSD 23
L-PCM 25 DST 23
DVI 73
B
DWC_hdmi_tx
Burst 2 Format 47
block diagram 32
Bypass Encryption 74
E
C
ECC generators 69
CEC 88
EDID/HDCP I2C E-DDC 85
clock
E-EDID 25
frequencies 29
ispdifclk 49 Encryption Disable 74
clock channels 24 Enhanced Link Verification 74
Color Space Conversion 43 Ethernet traffic 25
matrix 43 F
Controller with HDCP 71 Features 1.1 74
CTS Calculation 53 Follower Mode 88
D Frame Composer 68
Data Island FSM
Packer 69 EESS 335
Scheduler 69 OESS 334
Data Island Packets Functional description, of PCTL 31
high priority 68 G
low priority 68 GPA 50
SolvNet 1.40a-ea00
338 Synopsys, Inc.
DesignWare.com July 2012
HDMI Transmitter Controller Databook, Early Adopter Edition Index
Interrupt 152
Main Controller 269
Source PHY 226
Video Packetizer 168
Video Sampler 164
Repeater 74
revocmemclk 75
S
S/PDIF 49
SCART 24
Signals
3D TX PHY (phy_gen2) Interface 120
Audio Input Interface 103
CEC Interface 112
E-DDC Interface 111
HDCP Encryption Engine 113
HDMI TX PHY Interface 119
HEAC PHY Interface 121
Scan Test Interface 117
System and Slave Register Interface 109
Video Input Interface 101
Software registers
address map 130
bit map descriptions 147
of PCTL 129
Operational state configuration, control, and sta-
tus 148
Standards compliance, of PCTL 23
System Memory
data organization 55
T
TMDS data 24
Transfer Data Constitution 58
V
Video
data 25
data synchronization 33
Packetizer 42
pixel rates 24
pixel sampler 33
supported modes 36
SolvNet 1.40a-ea00
340 Synopsys, Inc.
DesignWare.com July 2012