OpenCores
URL https://opencores.org/ocsvn/mpeg2fpga/mpeg2fpga/trunk

Subversion Repositories mpeg2fpga

[/] [mpeg2fpga/] [trunk/] [doc/] [mpeg2fpga.lyx] - Rev 3

Go to most recent revision | Compare with Previous | Blame | View Log

#LyX 2.2 created this file. For more info see http://www.lyx.org/
\lyxformat 508
\begin_document
\begin_header
\save_transient_properties true
\origin unavailable
\textclass scrreprt
\begin_preamble
\usepackage[pdftitle={MPEG-2 Decoder User's Guide},pdfauthor={Koenraad De Vleeschauwer},bookmarks]{hyperref}
\sloppy

\usepackage{microtype}

\renewcommand{\headrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0.4pt}
\renewcommand{\chaptermark}[1]{%
 \markboth{\thechapter.\ #1}{}}

\rhead{\sffamily \nouppercase{\leftmark}}
\fancyhead[LE,RO]{\sffamily \leftmark}
\fancyhead[LO,RE]{\sffamily kdv electronics}
\fancyhead[C]{}
\fancyfoot[LO,RE]{\sffamily MPEG2 Decoder User Guide}
\fancyfoot[LE,RO]{\sffamily \thepage}
\fancyfoot[C]{\sffamily \today}

\fancypagestyle{plain}{%
\fancyhead[LE,RO]{}
\fancyhead[LO,RE]{}
\fancyhead[C]{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.4pt}}
\end_preamble
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman "default" "default"
\font_sans "default" "default"
\font_typewriter "default" "default"
\font_math "auto" "auto"
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100 100
\font_tt_scale 100 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize a4paper
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 0
\use_package mathdots 0
\use_package mathtools 1
\use_package mhchem 0
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 0
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 2
\paperpagestyle fancy
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Title
MPEG-2 Decoder User Guide
\end_layout

\begin_layout Author
Koenraad De Vleeschauwer
\begin_inset Newline newline
\end_inset


\family typewriter
kdv@kdvelectronics.eu
\end_layout

\begin_layout Section*
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
thispagestyle{empty}
\end_layout

\end_inset

Copyright Notice
\end_layout

\begin_layout Standard
Copyright 
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
copyright
\end_layout

\end_inset

2007-2009, Koenraad De Vleeschauwer.
 
\end_layout

\begin_layout Standard
Redistribution and use in source (\SpecialChar LyX
 format) and `compiled' forms (PDF, PostScript
, HTML, RTF, etc.), with or without modification, are permitted provided
 that the following conditions are met:
\end_layout

\begin_layout Enumerate
Redistributions of source code (\SpecialChar LyX
 format) must retain the above copyright
 notice, this list of conditions and the following disclaimer.
\end_layout

\begin_layout Enumerate
Redistributions in compiled form (transformed to other DTDs, converted to
 PDF, PostScript, HTML, RTF, and other formats) must reproduce the above
 copyright notice, this list of conditions and the following disclaimer
 in the documentation and/or other materials provided with the distribution.
\end_layout

\begin_layout Enumerate
The name of the author may not be used to endorse or promote products derived
 from this documentation without specific prior written permission.
\end_layout

\begin_layout Standard

\noun on
This documentation is provided by the author 
\begin_inset Quotes eld
\end_inset

as is" and any express or implied warranties, including, but not limited
 to, the implied warranties of merchantability and fitness for a particular
 purpose are disclaimed.
 In no event shall the author be liable for any direct, indirect, incidental,
 special, exemplary, or consequential damages (including, but not limited
 to, procurement of substitute goods or services; loss of use, data, or
 profits; or business interruption) however caused and on any theory of
 liability, whether in contract, strict liability, or tort (including negligence
 or otherwise) arising in any way out of the use of this documentation,
 even if advised of the possibility of such damage.
\end_layout

\begin_layout Section*
MPEG-2 License Notice
\end_layout

\begin_layout Standard
Commercial implementations of MPEG-1 and MPEG-2 video, including shareware,
 are subject to royalty fees to patent holders.
 Many of these patents are general enough such that they are unavoidable
 regardless of implementation design.
\end_layout

\begin_layout Standard

\noun on
MPEG-2 intermediate product.
 Use of this product in any manner that complies with the MPEG-2 standard
 is expressly prohibited without a license under applicable patents in the
 MPEG-2 patent portfolio, which license is available from MPEG LA, L.L.C.,
 250 Stelle Street, suite 300, Denver, Colorado 80206.
\end_layout

\begin_layout Standard
\begin_inset CommandInset toc
LatexCommand tableofcontents

\end_inset


\end_layout

\begin_layout Chapter
\begin_inset CommandInset label
LatexCommand label
name "cha:Processor-Interface"

\end_inset

Processor Interface
\end_layout

\begin_layout Standard
An MPEG2 decoder, implemented in Verilog, is presented.
 Chapter 
\begin_inset CommandInset ref
LatexCommand ref
reference "cha:Processor-Interface"

\end_inset

 describes the decoder for the software engineer who wishes to write a device
 driver.
\end_layout

\begin_layout Section
Decoder Block Diagram
\end_layout

\begin_layout Standard
\align center
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
centering
\end_layout

\end_inset


\begin_inset Graphics
        filename blockdiagram.ps
        height 96page%
        keepAspectRatio
        clip

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:Decoder-Block-Diagram"

\end_inset

Decoder Block Diagram
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Standard
Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:Decoder-Block-Diagram"

\end_inset

 shows the MPEG2 decoder block diagram.
 An external source such as a DVB tuner or DVD drive provides an MPEG2 stream.
 The video elementary stream is extracted and sent to the decoder.
 The 
\emph on
video buffer
\emph default
 acts as a fifo between the incoming MPEG2 video stream and the variable
 length decoder.
 The video buffer evens out temporary differences between the bitrate of
 the incoming MPEG2 bitstream and the bitrate at which the decoder parses
 the bitstream.
\end_layout

\begin_layout Standard
The MPEG2 codec is a variable length codec; codewords which occur often
 occupy less bits than codewords which occur only rarely.
 
\emph on
Getbits
\emph default
 provides a sliding window over the incoming stream.
 As the codewords have a variable length, the sliding window moves forward
 a variable amount of bits at a time.
\end_layout

\begin_layout Standard

\emph on
Variable length decoding
\emph default
 does the actual parsing of the bitstream.
 Variable length decoding stores stream parameters such as horizontal and
 vertical resolution, and produces run/length values and motion vectors.
 Run/length values and motion vectors are different ways of describing an
 image.
 The run/length values describe an image as compressed data contained within
 the bitstream.
 The motion vectors describe an image as a mosaic of already decoded images.
\end_layout

\begin_layout Standard

\emph on
Run-length decoding, inverse quantizing
\emph default
 and 
\emph on
inverse discrete cosine transform
\emph default
 decompress the run/length values.
\end_layout

\begin_layout Standard

\emph on
Motion compensation
\emph default
 retrieves already decoded images from memory and applies the motion vector
 translations.
\end_layout

\begin_layout Standard
The reconstructed image is the sum of the decompressed run/length values
 and translated pieces of already decoded images.
 The reconstructed image is stored in the 
\shape italic
frame store
\shape default
 for later display and reference.
\end_layout

\begin_layout Standard
The frame store receives requests to store and retrieve pixels from three
 different sources: 
\end_layout

\begin_layout Itemize

\emph on
motion compensation
\emph default
, which writes reconstructed image frames to memory
\end_layout

\begin_layout Itemize

\emph on
chroma resampling
\emph default
, which reads reconstructed image frames from memory for displaying
\end_layout

\begin_layout Itemize
writes to the 
\emph on
on-screen display
\emph default
, under software control.
\end_layout

\begin_layout Standard
Some of these blocks have multiple accesses to the frame store.
 Within the MPEG2 decoder a total of six memory read or write requests may
 occur simultaneously.
 The frame store prioritizes these requests and serializes them into a single
 stream of memory read/write requests, which is sent to the memory controller.
 
\end_layout

\begin_layout Standard
The 
\emph on
memory controller
\emph default
 is external to the MPEG2 decoder.
 The memory controller handles the low-level details of interfacing with
 the memory chips.
 If memory is static RAM, interfacing requires little more than a buffer;
 dynamic memory requires a more complex controller.
\end_layout

\begin_layout Standard
The MPEG2 decoder accepts 4:2:0 format video, in which color and brightness
 information have a different resolution: color information (chrominance)
 is sent at half the horizontal and half the vertical resolution of brightness
 information (luminance).
 This makes sense because the human eye uses different mechanisms to perceive
 color and brightness; and the different mechanisms used have different
 sensitivities.
 
\end_layout

\begin_layout Standard
Sending color information at half the horizontal and half the vertical resolutio
n of brightness information implies the reconstructed image in the frame
 store has only one color pixel for every four brightness pixels.
 Assigning the same color information to the four pixels of brightness informati
on would result in a chunky image.
 
\emph on
Chroma resampling
\emph default
 does horizontal and vertical interpolation of the color information, resulting
 in a smooth color image.
\end_layout

\begin_layout Standard
A 
\emph on
dot clock
\emph default
 marks the frequency at which pixels are sent to the display.
 The dot clock is external to the MPEG2 decoder and can be either free running
 or synchronized to another clock.
\end_layout

\begin_layout Standard
The 
\emph on
video synchronization generator
\emph default
 counts pixels, lines and image frames at the dot clock frequency.
 At any given moment, the video synchronization generator knows the horizontal
 and vertical coordinate of the pixel to be displayed.
 
\end_layout

\begin_layout Standard
The pixels generated in chroma resampling and the coordinates generated
 by the video synchronization generator are joined in the 
\emph on
mixer
\emph default
.
 The result is a stream of pixels, at the current horizontal/vertical coordinate
, at the dot clock frequency.
 
\end_layout

\begin_layout Standard
At this point the 
\emph on
on-screen display
\emph default
 is added.
 The on-screen display has the same resolution as the video and uses a 256-color
 palette.
 Software can choose to put the on-screen display on top, completely hiding
 the video; or to blend on-screen display and video, as if they were two
 translucent glass plates.
\end_layout

\begin_layout Standard
The MPEG2 decoder works with chrominance (color) and luminance (brightness)
 information throughout.
 The final step is converting chrominance and luminance to red, green and
 blue in 
\emph on
yuv2rgb
\emph default
.
 The red, green and blue information is the output of the decoder.
\end_layout

\begin_layout Section
Ports
\end_layout

\begin_layout Standard
Table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Ports"

\end_inset

 lists MPEG2 decoder input/output ports.
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="37" columns="5">
<features islongtable="true" longtabularalignment="center">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row endhead="true">
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
Port
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
Bits
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
Description
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
I/O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Clock
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Decoder clock
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Video clock
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_clk
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Memory Controller clock
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
rst
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Reset
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
stream_data
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Program stream data
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
stream_valid
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
stream_data valid
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
busy
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Decoder busy flag
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
reg_addr
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Register address
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
reg_dta_in
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
32
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Register write data
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
reg_wr_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Register write enable
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
reg_dta_out
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
32
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Register read data
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
reg_rd_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Register read enable
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
error
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Decoding error flag
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
interrupt
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Interrupt
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
watchdog_rst
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Watchdog-generated Reset
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
r
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Red
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
g
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Green
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
b
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Blue
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
y
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Y Luminance
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
u
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Cr Chrominance
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
v
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Cb Chrominance
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
pixel_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Pixel enable
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
h_sync
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Horizontal synchronization
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
v_sync
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Vertical synchronization
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
c_sync
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Composite synchronization
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
dot_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_req_rd_cmd
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Memory request command
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_req_rd_addr
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
22
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Memory request address
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_req_rd_dta
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
64
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Memory request data
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_req_rd_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Memory request read enable
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_req_rd_valid
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Memory request valid
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_res_wr_dta
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
64
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Memory response data
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_res_wr_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Memory response enable
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_res_wr_almost_full
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Memory response almost full
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mem_clk
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
testpoint_dip_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Testpoint dip switches enable
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
testpoint_dip
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Testpoint dip switches
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
I
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
testpoint
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
34
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Logical analyzer test point
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
O
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
-
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:Ports"

\end_inset

Ports
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Clocks
\end_layout

\begin_layout Standard
Up to three different clocks may be supplied to the MPEG2 decoder.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
clk
\family default
 Main decoder clock, input.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
dot_clk
\family default
 Video clock, input.
  Variable frequency, varying with current video modeline.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_clk
\family default
 Memory Controller Clock, input.
 
\end_layout

\begin_layout Standard
The decoder produces pixels at a maximum rate of one per 
\family typewriter
clk
\family default
 cycle.
 
\end_layout

\begin_layout Subsection
Reset
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
rst
\family default
 Asynchronous reset, input, active low, internally synchronized.
 
\end_layout

\begin_layout Subsection
Stream Input
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
stream_data
\family default
 8-bit elementary stream data, input, synchronous with  
\family typewriter
clk
\family default
, byte aligned.
 The elementary stream is an MPEG2 4:2:0 video elementary stream.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
stream_valid
\family default
 elementary stream data valid, input, synchronous with 
\family typewriter
clk
\family default
.
 Assert when stream_data valid.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
busy
\family default
 busy, active high, output, synchronous with 
\family typewriter
clk
\family default
.
 When high, indicates maintaining 
\family typewriter
stream_valid
\family default
 high will overflow decoder input buffers.
\end_layout

\begin_layout Subsection
Register File Access
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
reg_addr
\family default
 5-bit register address, input, synchronous with 
\family typewriter
clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
reg_dta_in
\family default
 32-bit register data in, input, synchronous with 
\family typewriter
clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
reg_wr_en
\family default
 register write enable, input, active high, synchronous with 
\family typewriter
clk
\family default
.
 Assert to write 
\family typewriter
reg_dta_in
\family default
 to 
\family typewriter
reg_addr
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
reg_dta_out
\family default
 32-bit register data out, output, synchronous with 
\family typewriter
clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
reg_rd_en
\family default
 Active high register read enable, input, synchronous with 
\family typewriter
clk
\family default
.
 Assert to obtain the contents of register 
\family typewriter
reg_addr
\family default
 at 
\family typewriter
reg_dta_out
\family default
.
\end_layout

\begin_layout Subsection
Memory Controller
\end_layout

\begin_layout Standard
The interface between MPEG2 decoder and memory controller consists of two
 fifos.
 The memory request FIFO sends memory read, write or refresh requests from
 decoder to memory controller.
 The memory response FIFO sends data read from memory controller to MPEG2
 decoder.
 The data from the memory read requests appears in the memory response FIFO
 in the same order as the memory reads were issued in the memory request
 FIFO.
\end_layout

\begin_layout Subsection
Memory Request FIFO
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_req_rd_cmd
\family default
 memory request command, output, synchronous with 
\family typewriter
mem_clk
\family default
.
 Valid values are defined in table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Memory-controller-commands"

\end_inset

.
 
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="5" columns="3">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
mem_req_rd_cmd
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Mnemonic
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Description
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
CMD_NOOP
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
No operation
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
CMD_REFRESH
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Refresh memory
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
CMD_READ
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Read 64-bit word
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
CMD_WRITE
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Write 64-bit word 
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:Memory-controller-commands"

\end_inset

Memory controller commands
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_req_rd_addr
\family default
 22-bit memory request address, output, synchronous with  
\family typewriter
mem_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_req_rd_dta
\family default
 64-bit memory request data, output, synchronous with 
\family typewriter
mem_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_req_rd_en
\family default
 memory request read enable, input, active high, synchronous  with 
\family typewriter
mem_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_req_rd_valid
\family default
 memory request read valid, output, active high, synchronous  with 
\family typewriter
mem_clk
\family default
.
 Indicates when 
\family typewriter
mem_req_rd_cmd
\family default
, 
\family typewriter
mem_req_rd_addr
\family default
 and 
\family typewriter
mem_req_rd_dta
\family default
 have meaningful values.
\end_layout

\begin_layout Subsection
Memory Response FIFO
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_res_wr_dta
\family default
 64-bit memory response write data, input, synchronous with  
\family typewriter
mem_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_res_wr_en
\family default
 memory response write enable, input, active high, synchronous  with 
\family typewriter
mem_clk
\family default
.
 Assert to write 
\family typewriter
mem_res_wr_dta
\family default
 to the memory response FIFO.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_res_wr_almost_full
\family default
 memory response write almost full, output, active  high, synchronous with
 mem_clk.
 When high, indicates maintaining 
\family typewriter
mem_res_wr_en
\family default
 high will overflow the memory response FIFO.
 The current clock cycle can be completed without overflowing the memory
 response FIFO.
\end_layout

\begin_layout Subsection
Video Output
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
r
\family default
 red component, output, synchronous with 
\family typewriter
dot_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
g
\family default
 green component, output, synchronous with 
\family typewriter
dot_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
b
\family default
 blue component, output, synchronous with 
\family typewriter
dot_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
y
\family default
 Y luminance, output, synchronous with 
\family typewriter
dot_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
u
\family default
 Cr chrominance, output, synchronous with 
\family typewriter
dot_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
v
\family default
 Cb chrominance, output, synchronous with 
\family typewriter
dot_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
pixel_en
\family default
 pixel enable, output, active high, synchronous with 
\family typewriter
dot_clk
\family default
.
 When 
\family typewriter
pixel_en
\family default
 is high, 
\family typewriter
r
\family default
, 
\family typewriter
g
\family default
, 
\family typewriter
b
\family default
, 
\family typewriter
y
\family default
, 
\family typewriter
u
\family default
 and 
\family typewriter
v
\family default
 are valid; when 
\family typewriter
pixel_en
\family default
 is low video is blanked.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
h_sync
\family default
 horizontal synchronization, output, active high, synchronous with  
\family typewriter
dot_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
v_sync
\family default
 vertical synchronization, output, active high, synchronous with 
\family typewriter
dot_clk
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
c_sync
\family default
 composite synchronization, output, active low, synchronous with 
\family typewriter
dot_clk
\family default
.
\end_layout

\begin_layout Subsection
Test Point
\end_layout

\begin_layout Standard
The decoder provides a test point for connecting a logic analyzer.
 The signals available at the test point can be selected either by software
 control, or using dip switches.
 The signals available at the test point are not defined as part of this
 specification, may vary even for implementations with the same status register
 version number and are subject to change without notice.
 See Verilog source 
\family typewriter
probe.v
\family default
 for details.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
testpoint_dip_en
\family default
 1-bit input.
 If 
\family typewriter
testpoint_dip_en
\family default
 is high, the registers visible at 
\family typewriter
testpoint
\family default
 are selected using 
\family typewriter
testpoint_dip
\family default
.
 If 
\family typewriter
testpoint_dip_en
\family default
 is low, the registers visible at 
\family typewriter
testpoint
\family default
 output are selected using the 
\family typewriter
testpoint_sel
\family default
 field of register 15.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
testpoint_dip
\family default
  4-bit input.
 
\family typewriter
testpoint_dip
\family default
 selects test point output if 
\family typewriter
testpoint_dip_en
\family default
 is high.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
testpoint
\family default
  34-bit output.
 
\family typewriter
testpoint
\family default
 is a test point to connect a 34-channel logic analyzer probe to the MPEG2
 decoder.
 Up to 16 different sets of signals are available, hardware selectable using
 the 
\family typewriter
testpoint_dip
\family default
 dip switches or software selectable by writing to register 15.
 Any clocks present are on bits 32 and/or 33; bits 0 to 31 are data only.
 Bits 0 to 31 can also be accessed by software, by reading register 15.
 
\end_layout

\begin_layout Subsection
Status
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
error
\family default
 error, output, active high, synchronous with 
\family typewriter
clk
\family default
.
 Indicates variable length decoding encountered an error in the bitstream.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
interrupt
\family default
 interrupt, output, active high, synchronous with 
\family typewriter
clk
\family default
.
 Reading the status register allows software to determine the cause of the
 interrupt, and will clear the interrupt.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
watchdog_rst
\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
 watchdog-generated reset signal, output, active low, 
\family default
\series default
\shape default
\size default
\emph default
\bar default
\noun default
\color inherit
synchronous with 
\family typewriter
clk
\family default
.
 Normally high; low during one clock cycle if the watchdog timer expires.
\end_layout

\begin_layout Section
Processor Tasks
\end_layout

\begin_layout Standard
To decode an MPEG-2 bitstream, the processor should execute the following
 tasks, in order:
\end_layout

\begin_layout Enumerate
Initialize the horizontal, horizontal sync, vertical, vertical sync and
 video mode registers with reasonable defaults.
 Clear 
\family typewriter
osd_enable
\family default
, 
\family typewriter
picture_hdr_intr_en
\family default
 and 
\family typewriter
frame_end_intr_en
\family default
.
 Set the 
\family typewriter
video_ch_intr_en
\family default
 flag.
\end_layout

\begin_layout Enumerate
Start feeding the MPEG-2 bitstream to the 
\family typewriter
stream_data
\family default
 port of the decoder.
\end_layout

\begin_layout Enumerate
The decoder will issue an interrupt when video resolution or frame rate
 changes.
 Whenever the decoder issues an interrupt, clear the interrupt by reading
 the status register.
 Read the size, display size and frame rate registers.
 Calculate a new modeline, change dot clock frequency if necessary, and
 write the new video timing parameters to the horizontal, horizontal sync,
 vertical, vertical sync and video mode registers.
\end_layout

\begin_layout Enumerate
At bitstream end, pad the stream with 8 times hex 000001b7, the sequence
 end code (ISO/IEC 13818-2, par.
 6.2.1, Start Codes).
\end_layout

\begin_layout Standard
If the On-Screen Display (OSD) is used, the processor should execute the
 following tasks as well:
\end_layout

\begin_layout Enumerate
Initialize the On-Screen Display color look-up table.
\end_layout

\begin_layout Enumerate
Wait until 
\family typewriter
horizontal_size
\family default
 and 
\family typewriter
vertical_size
\family default
 have meaningful values.
\end_layout

\begin_layout Enumerate
Write to the On-Screen Display.
\end_layout

\begin_layout Enumerate
Set 
\family typewriter
osd_enable
\family default
 to one.
\end_layout

\begin_layout Enumerate
If a video change interrupt occurs, and 
\family typewriter
horizontal_size
\family default
 or 
\family typewriter
vertical_size
\family default
 has changed, rewrite the On-Screen Display.
\end_layout

\begin_layout Standard
Writing to the OSD is described in detail 
\begin_inset CommandInset ref
LatexCommand vpageref
reference "sec:On-Screen-Display"

\end_inset

.
 Interrupt handling is treated 
\begin_inset CommandInset ref
LatexCommand vpageref
reference "sec:Interrupts"

\end_inset

.
\end_layout

\begin_layout Section
Registers
\end_layout

\begin_layout Standard
The processor interface to the decoder consists of two times 16 32-bit registers.
 These registers can be divided in 16 read-mode registers (Table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Read-mode-Registers"

\end_inset

) and 16 write-mode registers (Table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Write-mode-Registers"

\end_inset

).
 The read-mode registers allow reading decoder status, while the write-mode
 registers allow setting video timing parameters and writing to the On-Screen
 Display (OSD).
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="21" columns="5">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
register
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
bits
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
content
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
read/write
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
version
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
15-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
version
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
status
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
15-8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
matrix_coefficients
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
7
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
watchdog_status
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
6
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_wr_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
5
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_wr_ack
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_wr_full
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
picture_hdr
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
frame_end
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
video_ch
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
error
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
size
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
29-16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
horizontal_size
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
13-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
vertical_size
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
display size
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
29-16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
display_horizontal_size
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
13-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
display_vertical_size
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
frame rate
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
15-12
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
aspect_ratio_information
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
11
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
progressive_sequence
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
10-6
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
frame_rate_extension_d
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
5-4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
frame_rate_extension_n
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
frame_rate_code
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
f
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
testpoint
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
31-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
testpoint
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
r
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:Read-mode-Registers"

\end_inset

Read-mode Registers
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\end_inset


\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="35" columns="5">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
register
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
bits
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
content
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
read/write
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
stream
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
15-8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
watchdog_interval
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_enable
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
picture_hdr_intr_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
frame_end_intr_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
video_ch_intr_en
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row endhead="true" endfirsthead="true">
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
horizontal
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
27-16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
horizontal_resolution
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
11-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
horizontal_length
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
horizontal sync
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
27-16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
horizontal_sync_start
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
11-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
horizontal_sync_end
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
vertical
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
27-16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
vertical_resolution
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
11-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
vertical_length
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
vertical sync
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
27-16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
vertical_sync_start
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
11-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
vertical_sync_end
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
5
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
video mode
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
27-16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
horizontal_halfline
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
clip_display_size
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
pixel_repetition
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
interlaced
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
6
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
osd clt yuvm
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
31-24
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
y
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
23-16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
u
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
15-8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
v
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
7-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_clt_mode
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
7
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
osd clt addr
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
7-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_clt_addr
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
8
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
osd dta high
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
31-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_dta_high
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
9
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
osd dta low
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
31-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_dta_low
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row endhead="true" endfirsthead="true">
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
a
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
osd_addr
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
31-29
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_frame
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
28-27
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_comp
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
26-16
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_addr_x
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
10-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
osd_addr_y
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
b
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
trick mode
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
10
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
deinterlace
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
9-5
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
repeat_frame
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
persistence
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3-1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
source_select
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
flush_vbuf
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
f
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
testpoint
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
testpoint_sel
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
w
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:Write-mode-Registers"

\end_inset

Write-mode Registers
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Section
Read-only Registers
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
version
\family default
 contains a non-zero FPGA bitstream (hardware) version number.
  Software should at least print a warning 
\family typewriter

\begin_inset Quotes eld
\end_inset

Warning: hardware version (%i.%i) more recent than software driver
\begin_inset Quotes erd
\end_inset


\family default
 if the hardware version is higher than expected.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
picture_hdr
\family default
 is set whenever an picture header is encountered in the bitstream.
  
\family typewriter
picture_hdr
\family default
 is cleared whenever the status register is read.
 In a well-behaved MPEG-2 stream, 
\family typewriter
horizontal_size
\family default
, 
\family typewriter
vertical_size
\family default
, 
\family typewriter
display_horizontal_size
\family default
, 
\family typewriter
display_vertical_size, aspect_ratio_information
\family default
 and 
\family typewriter
frame_rate
\family default
 will have meaningful values when a picture header is encountered.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
frame_end
\family default
 is set when video vertical synchronization begins.
  
\family typewriter
frame_end
\family default
 is cleared whenever the status register is read.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
video_ch
\family default
 is set whenever video resolution or frame rate changes.
  
\family typewriter
video_ch
\family default
 is cleared whenever the status register is read.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
error
\family default
 is set when variable length decoding cannot parse the bitstream.
  
\family typewriter
error
\family default
 is cleared whenever the status register is read.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
watchdog_status
\family default
 is high if the watchdog timer expired.
 
\family typewriter
watchdog_status
\family default
 is cleared whenever the status register is read.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
horizontal_size
\family default
 is defined in ISO/IEC 13818-2, par.
  6.2.2.1, par.
 6.3.3.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
vertical_size
\family default
 is defined in ISO/IEC 13818-2, par.
  6.2.2.1, par.
 6.3.3.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
display_horizontal_size
\family default
 is defined in ISO/IEC 13818-2, par.
  6.2.2.4, par.
 6.3.6.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
display_vertical_size
\family default
 is defined in ISO/IEC 13818-2, par.
  6.2.2.4, par.
 6.3.6.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
aspect_ratio_information
\family default
 is defined in ISO/IEC 13818-2, par.
  6.3.3.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
matrix_coefficients
\family default
 is defined in ISO/IEC 13818-2, par.
  6.3.6.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
frame_rate_extension_n
\family default
 is defined in ISO/IEC 13818-2, par.
  6.3.3, par.
 6.3.5.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
frame_rate_code
\family default
 is defined in ISO/IEC 13818-2, par.
  6.3.3, Table 6-4.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
progressive_sequence
\family default
 is defined in ISO/IEC 13818-2, par.
  6.3.5.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
frame_rate_extension_d
\family default
 is defined in ISO/IEC 13818-2, par.
  6.3.3, par.
 6.3.5.
\end_layout

\begin_layout Section
On-Screen Display
\end_layout

\begin_layout Standard
\begin_inset CommandInset label
LatexCommand label
name "sec:On-Screen-Display"

\end_inset

The OSD has the same resolution and aspect ratio as the MPEG-2 video being
 displayed.
 If no MPEG-2 video is being displayed, the OSD is undefined.
 Note feeding the decoder a simple MPEG-2 sequence header with 
\family typewriter
horizontal_size
\family default
 and 
\family typewriter
vertical_size
\family default
 already satisfies the requirements for using the OSD.
\end_layout

\begin_layout Standard
The OSD is only shown if there is video output.
 If one wishes to display an OSD when no MPEG2 video is being reproduced,
 video output can be forced by setting 
\family typewriter
source_select
\family default
 to 4, 5, 6 or 7.
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_layout Standard
The OSD may use up to 256 different colors.
 The OSD color lookup table (CLT) stores 
\family typewriter
y
\family default
, 
\family typewriter
u
\family default
, 
\family typewriter
v
\family default
 and 
\family typewriter
osd_clt_mode
\family default
 data for each color.
 The 
\family typewriter
y
\family default
, 
\family typewriter
u
\family default
 and 
\family typewriter
v
\family default
 values are interpreted as defined by 
\family typewriter
matrix_coefficients
\family default
.
 The 
\family typewriter
osd_clt_mode
\family default
 value determines the color displayed according to Table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:On-Screen-Display-Modes"

\end_inset

.
 
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="24" columns="2">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
osd_clt_mode
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Comment
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx00000
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 0/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx00001
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 1/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx00010
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 2/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx00011
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 3/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx00100
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 4/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx00101
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 5/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx00110
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 6/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx00111
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 7/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx01000
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 8/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx01001
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 9/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx01010
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 10/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx01011
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 11/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx01100
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 12/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx01101
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 13/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx01110
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 14/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx01111
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 15/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xxx11111
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha = 16/16
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xx0xxxxx
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
attenuate video pixel by alpha
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
xx1xxxxx
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
alpha blend osd and video pixel
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
00xxxxxx
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
display video pixel
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
01xxxxxx
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
display attenuated/alpha blended pixel
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
10xxxxxx
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
display osd pixel
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
11xxxxxx
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
display blinking osd pixel
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:On-Screen-Display-Modes"

\end_inset

On-Screen Display Modes
\end_layout

\end_inset


\end_layout

\end_inset

The different modes combine osd and video in various ways:
\end_layout

\begin_layout Itemize
video.
 This is the normal mode of operation.
\end_layout

\begin_layout Itemize
attenuated video.
 16 discrete levels of attenuation can be used to fade video in or out.
\end_layout

\begin_layout Itemize
on-screen display.
\end_layout

\begin_layout Itemize
blend of on-screen display and video.
 16 discrete levels of translucency.
\end_layout

\begin_layout Itemize
blinking on-screen display.
 Alternates between osd pixel and attenuated/alpha blended video pixel with
 a frequency of about one second.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
osd_enable
\family default
 determines whether the On-Screen Display is shown or not.
  If 
\family typewriter
osd_enable
\family default
 is low, the On-Screen Display is not shown.
 If 
\family typewriter
osd_enable
\family default
 is high, the On-Screen Display is shown.
 The osd color lookup table has to be initialized and the osd has to be
 written before 
\family typewriter
osd_enable
\family default
 is raised.
 
\family typewriter
osd_enable
\family default
 is 0 on power-up or reset.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
osd_wr_en
\family default
 is set whenever an osd write is has been accepted, whether the  osd write
 was successful or not.
 
\family typewriter
osd_wr_en
\family default
 is cleared whenever the status register is read.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
osd_wr_ack
\family default
 is set whenever an osd write has been successful.
  
\family typewriter
osd_wr_ack
\family default
 is cleared whenever the status register is read.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
osd_wr_full
\family default
 is set when the osd write fifo is full.
  When the osd write fifo is full, osd writes are not accepted.
\end_layout

\begin_layout Standard
When writing to the osd color lookup table:
\end_layout

\begin_layout Enumerate
Write 
\family typewriter
osd_clt_yuvm.
\end_layout

\begin_layout Enumerate
Write 
\family typewriter
osd_clt_addr.
\end_layout

\begin_layout Standard
Writes to the osd color lookup table take effect immediately.
\end_layout

\begin_layout Standard
When writing to the osd:
\end_layout

\begin_layout Enumerate
Only write to the osd when 
\family typewriter
horizontal_size
\family default
 and 
\family typewriter
vertical_size
\family default
 have meaningful values.
 This is the case when a picture header has been encountered.
\end_layout

\begin_layout Enumerate
Verify 
\family typewriter
osd_wr_full
\family default
 is low.
 Writing when 
\family typewriter
osd_wr_full
\family default
 is high has no effect.
\end_layout

\begin_layout Enumerate
Write the leftmost four pixels to 
\family typewriter
osd_dta_high
\family default
.
\end_layout

\begin_layout Enumerate
Write the rightmost four pixels to 
\family typewriter
osd_dta_low.
\end_layout

\begin_layout Enumerate
Write x and y position of the leftmost pixel to 
\family typewriter
osd_addr
\family default
.
 Note x has to be a multiple of 8.
 
\family typewriter
osd_frame
\family default
 always has value 4 for OSD writes.
 
\family typewriter
osd_comp
\family default
 always has value 0 for OSD writes.
\end_layout

\begin_layout Enumerate
Read the status register until 
\family typewriter
osd_wr_en
\family default
 is asserted.
 When 
\family typewriter
osd_wr_en
\family default
 is high, the value of 
\family typewriter
osd_wr_ack
\family default
 indicates whether the write was successful.
\end_layout

\begin_layout Standard
Writes to the osd pass through a 32-position fifo.
 This introduces some latency.
 Repeating the last osd write 32 times flushes fifo contents, ensuring osd
 memory has been updated.
\end_layout

\begin_layout Section
Frame Store
\end_layout

\begin_layout Standard
Pixels can be written directly to the frame store, using the same mechanism
 as OSD writes.
 By writing pixels to the frame store and afterwards setting the 
\family typewriter
source_select
\family default
 field of the trick register (described
\begin_inset CommandInset ref
LatexCommand vpageref
reference "sec:Trick-mode"

\end_inset

) arbitrary bitmaps can be shown.
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_layout Standard
The only difference between an OSD write and a frame store write is the
 value of 
\family typewriter
osd_frame
\family default
 and/or 
\family typewriter
osd_comp
\family default
.
 Tables 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:OSD-Frame"

\end_inset

 and 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:OSD-Component"

\end_inset

 list the frame and component codes.
 Frames 0 and 1 are used for storing I and P frames.
 Frames 2 and 3 are used for storing B frames.
 All frames are stored in 4:2:0 format, with u and v frames having half
 the width and height of the y frame.
 Note y, u and v values are stored in memory with an offset of 128.
 
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="6" columns="2">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
osd_frame
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Frame
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
OSD
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:OSD-Frame"

\end_inset

OSD Frame
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\end_inset


\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="4" columns="2">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
osd_comp
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Component
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
y
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
u
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
v
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:OSD-Component"

\end_inset

OSD Component
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Standard
Writes to the frame store are only defined when 
\family typewriter
horizontal_size
\family default
 and 
\family typewriter
vertical_size
\family default
 have meaningful values.
 Writes with 
\family typewriter
osd_frame
\family default
 4 are only defined when 
\family typewriter
osd_comp
\family default
 is 0.
\end_layout

\begin_layout Section
\begin_inset CommandInset label
LatexCommand label
name "sec:Video-Modeline"

\end_inset

Video Modeline
\end_layout

\begin_layout Standard
The video timing parameters are:
\end_layout

\begin_layout Itemize

\family typewriter
horizontal_resolution
\end_layout

\begin_layout Itemize

\family typewriter
horizontal_sync_start
\end_layout

\begin_layout Itemize

\family typewriter
horizontal_sync_end
\end_layout

\begin_layout Itemize

\family typewriter
horizontal_length
\end_layout

\begin_layout Itemize

\family typewriter
vertical_resolution
\end_layout

\begin_layout Itemize

\family typewriter
vertical_sync_start
\end_layout

\begin_layout Itemize

\family typewriter
vertical_sync_end
\end_layout

\begin_layout Itemize

\family typewriter
vertical_length
\end_layout

\begin_layout Itemize

\family typewriter
horizontal_halfline
\end_layout

\begin_layout Itemize

\family typewriter
interlaced
\end_layout

\begin_layout Itemize

\family typewriter
pixel_repetition
\end_layout

\begin_layout Standard
These parameters can be deduced from the X11 modeline for the display, which
 is described in the 
\begin_inset Quotes eld
\end_inset

XFree86 Video Timings HOWTO
\begin_inset Quotes erd
\end_inset

.
 Writing to the internal registers which contain the video timing parameters
 will restart the video synchronization generator.
\end_layout

\begin_layout Standard
Two video timing diagrams are shown, one for progressive video (Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:Progressive-Video"

\end_inset

) and one for interlaced video (Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:Interlaced-Video"

\end_inset

).
 The diagrams show the picture area (a light grey rectangle), flanked by
 horizontal sync (a dark grey vertical bar) and vertical sync (a dark grey
 horizontal bar).
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
centering
\end_layout

\end_inset


\begin_inset Graphics
        filename progressive.eps
        width 100line%
        keepAspectRatio

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:Progressive-Video"

\end_inset

Progressive Video
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\end_inset


\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\noindent
\align center
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
centering
\end_layout

\end_inset


\begin_inset Graphics
        filename interlaced.eps
        width 100line%
        keepAspectRatio
        BoundingBox 0bp 0bp 495bp 484bp
        clip

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:Interlaced-Video"

\end_inset

Interlaced Video
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
horizontal_resolution
\family default
 number of dots per scan line.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
horizontal_sync_start
\family default
 used to specify the horizontal position the horizontal  sync pulse begins.
 The leftmost pixel of a line has position zero.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
horizontal_sync_end
\family default
 used to specify the horizontal position the horizontal  sync pulse ends.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
horizontal_length
\family default
 total length, in pixels, of one scan line.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
vertical_resolution
\family default
 number of visible lines per frame (progressive) or field  (interlaced).
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
vertical_sync_start
\family default
 used to specify the line number within the frame (progressive) or field
 (interlaced) the vertical sync pulse begins.
 The topmost line of a frame or field is line number zero.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
vertical_sync_end
\family default
 used to specify the line number within the frame (progressive)  or field
 (interlaced) the vertical sync pulse ends.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
horizontal_halfline
\family default
 used to specify the horizontal position the vertical  sync begins on odd
 fields of interlaced video.
 Not used in progressive mode.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
vertical_length
\family default
 total number of lines of a vertical frame (progressive)  or field (interlaced).
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
clip_display_size
\family default
 If asserted, the image is clipped to (
\family typewriter
display_horizontal_size
\family default
, 
\family typewriter
display_vertical_size
\family default
).
 If not asserted, the image is clipped to (
\family typewriter
horizontal_size
\family default
, 
\family typewriter
vertical_size
\family default
).
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
interlaced
\family default
 used to specify interlaced output is required.
  If 
\family typewriter
interlaced
\family default
 is asserted, vertical sync is delayed one-half scan line at the end of
 odd fields.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
pixel_repetition
\family default
 If 
\family typewriter
pixel_repetition
\family default
 is asserted, each pixel is output twice.
 This can be used if the original dot clock is too low for the transmitter.
 As an example, suppose valid dot clock rates are 25\SpecialChar ldots
165 MHz, but the SDTV
 video being decoded has a dot clock of only 13.5 MHz.
 Asserting 
\family typewriter
pixel_repetition
\family default
 and doubling dot clock frequency results in a dot clock of 27 MHz, sufficient
 for SDTV video to be transmitted across the link.
\end_layout

\begin_layout Section
Interrupts
\end_layout

\begin_layout Standard
\begin_inset CommandInset label
LatexCommand label
name "sec:Interrupts"

\end_inset

Three independent conditions may trigger an interrupt: when a picture header
 is encountered in the bitstream, when frame display ends, and when video
 resolution or frame rate changes.
 All three interrupt sources are optional and can be disabled individually.
\end_layout

\begin_layout Standard
When 
\family typewriter
picture_hdr_intr_en
\family default
 is high and a picture header is encountered in the bitstream, 
\family typewriter
picture_hdr
\family default
 is set and the interrupt signal is asserted until the status register is
 read.
 If 
\family typewriter
picture_hdr_intr_en
\family default
 is low, the interrupt signal is never raised.
 
\family typewriter
picture_hdr and picture_hdr_intr_en
\family default
 are 0 on power-up or reset.
 The picture header interrupt marks the 
\begin_inset Quotes eld
\end_inset

heartbeat
\begin_inset Quotes erd
\end_inset

 of the video decoding engine.
\end_layout

\begin_layout Standard
When video vertical synchronization begins and 
\family typewriter
frame_end_intr_en
\family default
 is high, 
\family typewriter
frame_end
\family default
 is set and the interrupt signal is asserted until the status register is
 read.
 If 
\family typewriter
frame_end_intr_en
\family default
 is low, the interrupt signal is never raised.
 
\family typewriter
frame_end and frame_end_intr_en
\family default
 are 0 on power-up or reset.
 The frame end interrupt marks the 
\begin_inset Quotes eld
\end_inset

heartbeat
\begin_inset Quotes erd
\end_inset

 of the video display engine.
 
\end_layout

\begin_layout Standard
When one of 
\family typewriter
horizontal_size, vertical_size, display_horizontal_size, display_vertical_size,
 progressive_sequence, aspect_ratio_information, frame_rate_code, frame_rate_ext
ension_n,
\family default
 or 
\family typewriter
frame_rate_extension_d
\family default
 changes, and 
\family typewriter
video_ch_intr_en
\family default
 is high, 
\family typewriter
video_ch
\family default
 is set and the interrupt signal is asserted until the status register is
 read.
 If 
\family typewriter
video_ch_intr_en
\family default
 is low, the interrupt signal is never raised.
 
\family typewriter
video_ch
\family default
 and 
\family typewriter
video_ch_intr_en
\family default
 are 0 on power-up or reset.
 The video change interrupt marks an abrupt change in the MPEG2 bitstream.
\end_layout

\begin_layout Standard
It is suggested that software, when receiving a video change interrupt:
\end_layout

\begin_layout Enumerate
Reads the size, display size and frame rate registers.
\end_layout

\begin_layout Enumerate
If 
\family typewriter
frame_rate_code
\family default
, 
\family typewriter
frame_rate_extension_d
\family default
 or 
\family typewriter
frame_rate_extension_n
\family default
 have changed, change dot clock frequency.
\end_layout

\begin_layout Enumerate
Calculates a video modeline, either using a look-up table or algebraically,
 e.g.
 using the VESA General Timing Formula.
\end_layout

\begin_layout Enumerate
Writes the new video modeline parameters to the horizontal, horizontal sync,
 vertical, vertical sync and video mode registers.
 This restarts the video synchronization.
\end_layout

\begin_layout Enumerate
If 
\family typewriter
horizontal_size
\family default
 or 
\family typewriter
vertical_size
\family default
 have changed and 
\family typewriter
osd_enable
\family default
 is high, rewrite the On-Screen Display.
\end_layout

\begin_layout Section
Watchdog
\end_layout

\begin_layout Standard
The MPEG2 decoder contains a watchdog circuit.
 The watchdog circuit resets the decoder if the decoder is unresponsive.
 The decoder is considered unresponsive if the decoder does not accept MPEG2
 data for a period of time longer than the watchdog timeout interval.
 We outline how to configure the watchdog timeout interval, define under
 which conditions the watchdog circuit activates, and describe what happens
 when the watchdog timer expires.
\end_layout

\begin_layout Standard
The watchdog timeout interval can be configured by writing 
\family typewriter
watchdog_interval
\family default
, register 0, bits 15-8.
 
\end_layout

\begin_layout Itemize
writing 0 to 
\family typewriter
watchdog_interval
\family default
 causes the watchdog timer to expire immediately.
 
\end_layout

\begin_layout Itemize
writing a value from 1 to 254, inclusive, to 
\family typewriter
watchdog_interval
\family default
 enables the watchdog circuit.
\end_layout

\begin_layout Itemize
writing 255 decimal to 
\family typewriter
watchdog_interval
\family default
 disables the watchdog circuit.
 
\end_layout

\begin_layout Standard
The default value of 
\family typewriter
watchdog_interval
\family default
 is 127.
 If 
\family typewriter
watchdog_interval
\family default
 has a value from 1 to 254, inclusive, the watchdog timeout is
\begin_inset Formula 
\[
watchdog\_timeout=(watchdog\_interval+1).(repeat\_frame+1).2^{18}
\]

\end_inset


\family typewriter
clk
\family default
 clock cycles.
 
\family typewriter
repeat_frame
\family default
 (Section 
\begin_inset CommandInset ref
LatexCommand ref
reference "sec:Trick-mode"

\end_inset

) determines the numer of times a decoded video frame is displayed.
 Each decoded video image is shown 
\family typewriter
repeat_frame
\family default

\begin_inset space ~
\end_inset

+
\begin_inset space ~
\end_inset

1 times.
 If a video frame is shown n times, the watchdog timeout is multiplied by
 n as well.
 This implies there is no need to adjust the watchdog timer if video is
 reproduced in slow motion.
 
\end_layout

\begin_layout Standard
The default value of 
\family typewriter
repeat_frame
\family default
 is 0.
 If decoder 
\family typewriter
clk
\family default
 frequency is 75 MHz the default watchdog timeout interval is 0.45 seconds.
\end_layout

\begin_layout Standard
The watchdog timer starts running when the decoder raises the 
\family typewriter
busy
\family default
 signal.
 If the 
\family typewriter
busy
\family default
 signal remains high for longer than the watchdog timeout interval, a reset
 is generated.
 
\end_layout

\begin_layout Standard
The watchdog timer is reset 
\end_layout

\begin_layout Itemize
when the global 
\family typewriter
rst
\family default
 input signal is driven low
\end_layout

\begin_layout Itemize
when the decoder 
\family typewriter
busy
\family default
 signal is low
\end_layout

\begin_layout Itemize
when the decoder has been halted to show the current frame (
\family typewriter
repeat_frame
\family default
 is 31, 
\shape italic
freeze-frame
\shape default
)
\end_layout

\begin_layout Itemize
when the decoder has been halted to show a particular framestore frame (
\family typewriter
source_select
\family default
 is non-zero)
\end_layout

\begin_layout Itemize
when the watchdog circuit has been disabled (
\family typewriter
watchdog_interval
\family default
 has been set to 0 or to 255)
\end_layout

\begin_layout Itemize
during the first 
\begin_inset Formula $2^{26}$
\end_inset

 
\family typewriter
clk
\family default
 clock cycles after the watchdog timer expired, or the decoder was reset.
 This watchdog timer 
\shape italic
holdoff
\shape default
 disables the watchdog during system initialisation.
 If clock frequency is 75 MHz, 
\begin_inset Formula $2^{26}$
\end_inset

 clock cycles corresponds to 0.89 seconds.
\end_layout

\begin_layout Standard
When the watchdog timer expires
\end_layout

\begin_layout Itemize
the 
\family typewriter
watchdog_rst
\family default
 output pin becomes low during one 
\family typewriter
clk
\family default
 clock cycle.
 The 
\family typewriter
watchdog_rst
\family default
 output can be used to reset external hardware, or to generate a processor
 interrupt.
\end_layout

\begin_layout Itemize
the 
\family typewriter
watchdog_status
\family default
 bit in the status register is set to 1.
 Software can detect whether the watchdog timer expired by checking 
\family typewriter
watchdog_status
\family default
 in the status register.
 Reading the status register resets the 
\family typewriter
watchdog_status
\family default
 bit back to 0.
\end_layout

\begin_layout Itemize
The framestore, On-Screen Display and circular video buffer are filled with
 zeroes.
\end_layout

\begin_layout Itemize
any data in the memory response fifo is discarded.
 
\end_layout

\begin_layout Itemize

\family typewriter
osd_enable
\family default
 is set to 0.
 This disables the On-Screen Display, as the On-Screen Display now contains
 all zeroes.
\end_layout

\begin_layout Itemize
configuration data written to the register file is 
\series bold
not
\series default
 modified when the watchdog expires.
 In particular, the video timing parameters (Sec.
 
\begin_inset CommandInset ref
LatexCommand ref
reference "sec:Video-Modeline"

\end_inset

) remain unchanged.
\end_layout

\begin_layout Standard
The 
\family typewriter
watchdog_rst
\family default
 output pin can optionally be used to reset external hardware when the watchdog
 expires.
 Examples of external hardware are the memory controller and the DVI dot
 clock generator.
 Note, however, resetting memory controller and DVI dot clock generator
 when the watchdog timer expires is optional.
 
\end_layout

\begin_layout Standard
The MPEG2 decoder does not require the external memory controller to be
 reset when the watchdog timer expires.
 When the watchdog timer expires, the MPEG2 decoder will write zeroes to
 all addresses from FRAME_0_Y to VBUF_END (
\family typewriter
framestore_request.v
\family default
, STATE_CLEAR).
 When the watchdog timer expires, the MPEG2 decoder will also read and discard
 any data from the memory response fifo (
\family typewriter
framestore_response.v
\family default
, STATE_FLUSH).
 These two actions re-synchronize MPEG2 decoder and external memory controller
 and bring memory to a known state.
\end_layout

\begin_layout Standard
The MPEG2 decoder also does not require the DVI clock generator to be reset
 when the watchdog expires.
 When the watchdog timer expires, the video timing parameters (Sec.
 
\begin_inset CommandInset ref
LatexCommand ref
reference "sec:Video-Modeline"

\end_inset

) remain unchanged.
 If the DVI clock frequency remains unchanged when the watchdog timer expires,
 the decoder will continue with exactly the same video timing.
\end_layout

\begin_layout Section
Trick mode
\end_layout

\begin_layout Standard
\begin_inset CommandInset label
LatexCommand label
name "sec:Trick-mode"

\end_inset

The trick mode register provides a toolbox for implementing non-standard
 playback modes.
 An example of a non-standard playback mode is slow motion.
 It is perhaps easiest to visualize trick mode settings as a pipeline (Figure
 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:Trick-mode-pipeline"

\end_inset

).
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
centering
\end_layout

\end_inset


\begin_inset Graphics
        filename trick_mode.eps
        lyxscale 50
        scale 60
        clip

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:Trick-mode-pipeline"

\end_inset

Trick mode pipeline
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
flush_vbuf
\family default
 Writing one to 
\family typewriter
flush_vbuf
\family default
 clears the incoming video buffer.
 Flushing the video buffer may be useful when changing channels.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
persistence
\family default
 If 
\family typewriter
persistence
\family default
 is set, and no new decoded image is available at frame start the last decoded
 image is shown again.
 If 
\family typewriter
persistence
\family default
 is not set, and no new decoded image is available at frame start a blank
 screen is shown.
 
\family typewriter
persistence
\family default
 is 1 on power-up or reset.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
source_select
\family default
 If zero, normal video is shown.
  Non-zero values allow continuous output of a blank screen, or a specific
 frame from the frame store, as in table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Source-Select"

\end_inset

.
 
\family typewriter
source_select
\family default
 is 0 on power-up or reset.
 
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="7" columns="2">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
source_select
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Frame shown
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
last decoded frame
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
blank screen
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
frame 0
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
5
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
frame 1
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
6
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
frame 2
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
7
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
frame 3
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:Source-Select"

\end_inset

Source Select
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
repeat_frame
\family default
 If zero, each decoded image is shown once.
  If non-zero, contains the number of times the decoded image will be additional
ly shown, as in table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Repeat-Frame"

\end_inset

.
 A value of 31 shows the image indefinitely.
 
\family typewriter
repeat_frame
\family default
 is 0 on power-up or reset.
 
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="7" columns="2">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
repeat_frame
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
times shown
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
\SpecialChar ldots

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
30
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
31
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
31
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
forever
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:Repeat-Frame"

\end_inset

Repeat Frame
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
deinterlace
\family default
 Setting 
\family typewriter
deinterlace
\family default
 high forces the decoder to output video as frames, even if the MPEG2 stream
 is interlaced.
 This can be used to reproduce interlaced MPEG2 streams on progressive displays.
 Setting 
\family typewriter
deinterlace
\family default
 is not recommended when reproducing a progressive MPEG2 stream on a progressive
 display.
 Setting 
\family typewriter
deinterlace
\family default
 has no effect if the video modeline specifies interlaced output (
\family typewriter
interlaced
\family default
 set).
 Note no spatial or temporal interpolation is done (
\begin_inset Quotes eld
\end_inset

weaving
\begin_inset Quotes erd
\end_inset

).
\end_layout

\begin_layout Section
Test point
\end_layout

\begin_layout Standard
The MPEG2 decoder provides a test point for connecting a logic analyzer.
 Internally, the decoder contains various test points, only one of which
 is actually output to the logic analyzer.
 Which internal test point is output to the logic analyzer is determined
 by the contents of 
\family typewriter
testpoint_sel
\family default
.
 The value of bits 0..31 of the test point can also be read by software.
 While this is no substitute for a logic analyzer, it is recognized that
 in many cases this may be the only option available.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
testpoint_sel
\family default
 Used in hardware debugging.
  Determines which internal test point is multiplexed to the 34-channel
 logical analyzer test point.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
testpoint
\family default
 Used in hardware debugging.
  Provides the current value of bits 0 to 31 of the 34-channel logical analyzer
 test point.
\end_layout

\begin_layout Chapter
\begin_inset CommandInset label
LatexCommand label
name "cha:Decoder-Sources"

\end_inset

Decoder Sources
\end_layout

\begin_layout Standard
Chapter 
\begin_inset CommandInset ref
LatexCommand ref
reference "cha:Decoder-Sources"

\end_inset

 provides an overview of the decoder sources for the hardware engineer who
 wishes to synthesize or modify the decoder.
\end_layout

\begin_layout Section
Source Directory Structure
\end_layout

\begin_layout Standard
The source files are organized in directories as follows:
\end_layout

\begin_layout Standard
\begin_inset Tabular
<lyxtabular version="3" rows="8" columns="3">
<features tabularvalignment="middle">
<column alignment="left" valignment="top">
<column alignment="left" valignment="top">
<column alignment="left" valignment="top">
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
bench/
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
iverilog
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Icarus behavioral simulation, page 
\begin_inset CommandInset ref
LatexCommand pageref
reference "subsec:Icarus-Verilog-Simulation"

\end_inset


\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
doc/
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Documentation
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
rtl/
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mpeg2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
MPEG2 decoder, page 
\begin_inset CommandInset ref
LatexCommand pageref
reference "sec:MPEG2-Decoder"

\end_inset


\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tools/
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
fsmgraph
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Finite state machine graphs, page 
\begin_inset CommandInset ref
LatexCommand pageref
reference "subsec:FSM-Graphs"

\end_inset


\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
ieee1180
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
IEEE1180 IDCT accuracy test, page 
\begin_inset CommandInset ref
LatexCommand pageref
reference "subsec:IEEE-1180-IDCT"

\end_inset


\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
logicport
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Logicport logic analyzer, page 
\begin_inset CommandInset ref
LatexCommand pageref
reference "subsec:Logicport-Logic-Analyzer"

\end_inset


\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mpeg2dec
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Reference MPEG2 decoder, page 
\begin_inset CommandInset ref
LatexCommand pageref
reference "subsec:mpeg2decode"

\end_inset


\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
streams
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
MPEG2 test streams, page 
\begin_inset CommandInset ref
LatexCommand pageref
reference "subsec:MPEG2-Test-Streams"

\end_inset


\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Standard
A linux system with Icarus Verilog is suggested, but not required, as developmen
t environment.
\end_layout

\begin_layout Section
\begin_inset CommandInset label
LatexCommand label
name "sec:MPEG2-Decoder"

\end_inset

MPEG2 Decoder
\end_layout

\begin_layout Standard
The 
\family typewriter
rtl/mpeg2
\family default
 directory contains the sources of the MPEG2 decoder itself.
 This section describes the changes most likely to be needed when instantiating
 the decoder: changing default modeline, changing FIFO sizes, choosing dual-port
ed ram and fifo models, changing memory mapping.
 In addition, references are provided for the IDCT and bilinear chroma upsamplin
g algorithms.
\end_layout

\begin_layout Subsection
FIFO sizes
\end_layout

\begin_layout Standard
Fifo depth and almost full/almost empty thresholds are defined in 
\family typewriter
fifo_size.v
\family default
.
 Note setting fifo depths and thresholds to arbitrary values can result
 in decoder deadlock.
\end_layout

\begin_layout Standard
Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:MPEG2-decoder-dataflow"

\end_inset

 shows MPEG2 decoder data flow.
 Together, 
\family typewriter
framestore_request
\family default
, memory controller and 
\family typewriter
framestore_response
\family default
 implement the framestore.
 Communication with the framestore is through fifos.
 The incoming MPEG2 stream is written to 
\family typewriter
vbuf_write_fifo
\family default
.
 
\family typewriter
framestore_request
\family default
 reads the stream from 
\family typewriter
vbuf_write_fifo
\family default
 and writes it to the circular video buffer in memory.
 If 
\family typewriter
vbuf_read_fifo
\family default
 is almost empty, 
\family typewriter
framestore_request
\family default
 issues memory read requests for the circular video buffer.
 
\family typewriter
framestore_response
\family default
 receives data from the circular video buffer and writes the data to 
\family typewriter
vbuf_read_fifo
\family default
.
 The net result is 
\family typewriter
vbuf_write_fifo
\family default
, circular video buffer and 
\family typewriter
vbuf_read_fifo
\family default
 acting as a single, huge fifo.
\end_layout

\begin_layout Standard
Variable-length decoding reads the MPEG2 stream from 
\family typewriter
vbuf_read_fifo
\family default
, and produces motion vectors and run/length codes.
 Run/length decoding, inverse quantizing, inverse zig-zag and inverse discrete
 cosine transform (IDCT) read the run/length codes and produce the prediction
 error.
 The prediction error is written to 
\family typewriter
predict_err_fifo
\family default
, one row of eight pixels at a time.
\end_layout

\begin_layout Standard
Motion compensation address generation 
\family typewriter
motcomp_addrgen
\family default
 translates the motion vectors into three sets of memory addresses: the
 addresses where the forward motion compensation pixels can be read, the
 addresses where the backward motion compensation pixels can be read, and
 the addresses where the reconstructed pixels can be written.
 The addresses of the pixels needed for forward and backward motion compensation
 are written to the 
\family typewriter
fwd_reader
\family default
 and 
\family typewriter
bwd_reader
\family default
 address fifos.
 The address of the reconstructed pixels is written to the motion compensation
 destination fifo, 
\family typewriter
dst_fifo
\family default
.
 The memory subsystem reads the 
\family typewriter
fwd_reader
\family default
 and 
\family typewriter
bwd_reader
\family default
 address fifos, and writes the pixel values to the 
\family typewriter
fwd_reader
\family default
 and 
\family typewriter
bwd_reader
\family default
 data fifos.
 
\end_layout

\begin_layout Standard
Motion compensation reconstruction 
\family typewriter
motcomp_recon
\family default
 adds pixel values read from forward motion compensation data fifo, backward
 motion compensation data fifo and prediction error, and writes the result
 to the address read from the motion compensation destination fifo.
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_layout Standard
Displaying the video image requires chroma resampling and yuv to rgb conversion.
 Resampling address generation 
\family typewriter
resample_addrgen
\family default
 scans the reconstructed video image, line by line.
 The addresses of the pixels are written to the 
\family typewriter
disp_reader
\family default
 address fifo.
 The memory subsystem reads the addresses from 
\family typewriter
disp_reader
\family default
 address fifo and writes the pixel values to the 
\family typewriter
disp_reader
\family default
 data fifo.
 
\family typewriter
resample_dta
\family default
 reads the pixel values from the 
\family typewriter
disp_reader
\family default
 data fifo, while 
\family typewriter
resample_bilinear
\family default
 does the actual bilinear chroma upsampling calculations.
 After conversion from yuv to rgb, the pixels are written to the pixel queue
 
\family typewriter
pixel_queue
\family default
 which adapts between decoder and DVI clocks.
 
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Graphics
        filename fifos.ps
        lyxscale 33
        height 90theight%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:MPEG2-decoder-dataflow"

\end_inset

MPEG2 decoder dataflow
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Standard
Note the memory tag fifo 
\family typewriter
mem_tag_fifo
\family default
 between 
\family typewriter
framestore_request
\family default
 and 
\family typewriter
framestore_response
\family default
.
 For every memory read request, 
\family typewriter
framestore_request
\family default
 writes a tag to the memory tag fifo.
 The tag identifies the source of the memory read request: circular video
 buffer, forward and backward motion compensation, or resampling.
 For every data word received from memory, 
\family typewriter
framestore_response
\family default
 reads a tag from the memory tag fifo, and writes the data word received
 from memory to the data fifo corresponding to the tag.
 If the memory tag fifo is almost full, 
\family typewriter
framestore_request
\family default
 stops issuing memory read or write requests.
 As a result, the number of outstanding memory read requests is always less
 than or equal to the size of the memory tag fifo.
\end_layout

\begin_layout Standard
When modifying 
\family typewriter
fifo_size.v
\family default
, care should be taken the fifos can never overflow.
 Note that when 
\family typewriter
framestore_request
\family default
 stops issuing memory read requests, there still may be outstanding memory
 read requests in the memory request queue.
 The number of outstanding memory read requests is always smaller than,
 or equal to, the size of the memory tag fifo.
 When modifying 
\family typewriter
fifo_size.v
\family default
, remember fifos which receive data from memory may receive outstanding
 data, even after 
\family typewriter
framestore_request
\family default
 has stopped sending memory read requests.
\end_layout

\begin_layout Subsection
Dual-ported memory and FIFO models
\end_layout

\begin_layout Standard
FPGAs typically provide dedicated on-chip fifo's and dual-port RAMs.
 The designer then has to choose between using vendor-provided FIFOs and
 dual-port RAMs or writing his own.
\end_layout

\begin_layout Standard
The file 
\family typewriter
wrappers.v
\family default
 defines the implementation of all dual-port RAMs and fifos in the design.
 For each component, two versions are provided: one where read and write
 port share a common clock; and one where read and write port have independent
 clocks.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
dpram_sc
\family default
 dual-ported ram, same clock for read and write ports
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
dpram_dc
\family default
 dual-ported ram, different clock for read and write ports
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
fifo_sc
\family default
 fifo, same clock for read and write ports
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
fifo_dc
\family default
 fifo, different clock for read and write ports
\end_layout

\begin_layout Standard
The dual-ported rams are inferred from code in 
\family typewriter
wrappers.v
\family default
.
 The fifos can be either implemented in Verilog, or instantiated as FPGA
 primitives, depending upon 
\family typewriter
wrappers.v
\family default
.
 Following fifo models are available:
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
xfifo_sc.v
\family default
 fifo, same clock for read and write port.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
generic_fifo_sc_b.v
\family default
 OpenCores generic fifo, different clock for read and write ports.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
xilinx_fifo_sc.v
\family default
 Xilinx Virtex-5 fifo, same clock for read and write ports.
 Uses 
\family typewriter
xilinx_fifo.v
\family default
, 
\family typewriter
xilinx_fifo144.v
\family default
 and 
\family typewriter
xilinx_fifo216.v
\family default
.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
xilinx_fifo_dc.v
\family default
 Xilinx Virtex-5 fifo, different clock for read and write ports.
 Uses 
\family typewriter
xilinx_fifo.v
\family default
, 
\family typewriter
xilinx_fifo144.v
\family default
 and 
\family typewriter
xilinx_fifo216.v
\family default
.
\end_layout

\begin_layout Standard

\family typewriter
xilinx_fifo_sc.v
\family default
 and 
\family typewriter
xilinx_fifo_dc.v
\family default
 implement fifos using FIFO18, FIFO18_36, FIFO36 or FIFO36_72 Virtex-5 primitive
s.
 Table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Xilinx-FIFO-address"

\end_inset

 lists available data and address widths.
 If a 
\family typewriter
xilinx_fifo_sc.v
\family default
 or a 
\family typewriter
xilinx_fifo_dc.v
\family default
 is instantiated with data and/or address widths different from those in
 Table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Xilinx-FIFO-address"

\end_inset

, the actual fifo will be larger and/or wider.
 
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
centering
\end_layout

\end_inset


\begin_inset Tabular
<lyxtabular version="3" rows="12" columns="4">
<features tabularvalignment="middle">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Data bits
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Address bits
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO Depth
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Implementation
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
13
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
8192
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO36
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
12
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4096
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO18
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
9
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
12
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
4096
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO36
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
9
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
11
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2048
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO18
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
18
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
11
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2048
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO36
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
18
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
10
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1024
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO18
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
36
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
10
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1024
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO36
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
36
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
9
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
512
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO18
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
72
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
9
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
512
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
FIFO36_72
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
144
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
9
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
512
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
2 * FIFO36_72
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
216
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
9
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
512
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
3 * FIFO36_72
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:Xilinx-FIFO-address"

\end_inset

Xilinx FIFO address widths
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Subsection
Memory mapping
\end_layout

\begin_layout Standard
The MPEG2 decoder memory mapping is defined in 
\family typewriter
rtl/mpeg2/mem_codes.v
\family default
.
 The default memory mapping needs 4 mbyte RAM and is sufficient for SDTV.
 By defining 
\family typewriter
MP_AT_HL
\family default
 an alternative memory mapping can be chosen which requires 16 mbyte RAM
 and is sufficient for HDTV.
\end_layout

\begin_layout Standard
Translation of macroblock addresses to memory addresses is implemented in
 
\family typewriter
rtl/mpeg2/mem_addr.v
\family default
.
 A macroblock address, a signed motion vector (mv_x, mv_y) with halfpixel
 precision, and an signed offset (delta_x, delta_y) with pixel precision
 are translated to an address in memory.
\end_layout

\begin_layout Standard
The macroblock address is assumed to iterate over all allowable values:
 beginning at zero, incrementing by one, until after the final macroblock
 the macroblock address is reset to zero.
 Macroblock address has to be initialized to zero, or an error condition
 results.
 Macroblock address changes other than incrementing by one, remaining unchanged
 or resetting to zero also result in an error condition.
\end_layout

\begin_layout Standard
Note the motion vector (mv_x, mv_y) is scaled by a factor two when accessing
 chrominance as defined in 
\begin_inset CommandInset citation
LatexCommand cite
after "par. 7.6.3.7"
key "key-1"

\end_inset

.
 The offset (delta_x, delta_y) remains unchanged when accessing chrominance
 blocks.
\end_layout

\begin_layout Standard
The translation of macroblock addresses and motion vectors to memory addresses
 in 
\family typewriter
rtl/mpeg2/mem_addr.v
\family default
 has to be kept synchronized with the framestore dump task 
\family typewriter
write_framestore
\family default
 in 
\family typewriter
rtl/sim/mem_ctl.v
\family default
, else the framestore dumps made during simulation will not accurately represent
 framestore contents.
\end_layout

\begin_layout Standard
Note out-of-range memory accesses are translated to the ADDR_ERR address.
 If a memory request with address 
\family typewriter
mem_req_rd_addr
\family default
 equal to ADDR_ERR occurs during simulation, simulation stops with an error
 message.
\end_layout

\begin_layout Standard
The MPEG2 decoder zeroes out the framestore after system reset or when the
 watchdog timer expires.
 The MPEG2 decoder writes zeroes to all addresses from FRAME_0_Y to VBUF_END
 when the 
\family typewriter
rst
\family default
 input pin goes low or when the 
\family typewriter
watchdog_rst
\family default
 pin goes low.
 
\end_layout

\begin_layout Subsection
Modeline
\end_layout

\begin_layout Standard
The default modeline is 800x600 progressive @ 60 Hz (SVGA).
 The 
\family typewriter
modeline.v
\family default
 source contains the modeline parameters, and can be edited to change horizontal
 and vertical resolution, sync pulse width and position.
 The default pixel frequency on the ML505 is 38.21 MHz, and is defined in
 
\family typewriter
dotclock_synthesizer.v
\family default
.
 Note 
\family typewriter
dotclock_synthesizer.v
\family default
 synthesizes two frequencies, dotclock and dotclock90, equal in frequency
 but 90 degrees phase shifted.
 The frequency synthesized is 
\begin_inset Formula 
\[
f_{out}=f_{osc}.r.\frac{DCM\_ADV\_INST.CLKFX\_MULTIPLY}{DCM\_ADV\_INST.CLKFX\_DIVIDE}
\]

\end_inset


\end_layout

\begin_layout Standard
where 
\begin_inset Formula $f_{osc}$
\end_inset

 is the 100 MHz user clock frequency 
\begin_inset Formula 
\[
f_{osc}=100
\]

\end_inset

and 
\begin_inset Formula 
\[
r=\frac{PLL\_ADV\_INST.CLKFBOUT\_MULT}{PLL\_ADV\_INST.CLKOUT1\_DIVIDE}=0.25
\]

\end_inset

 To change pixel frequency, first calculate the multiplier and divider for
 the new frequency.
 Suppose one wishes to synthesize a frequency of 35 MHz:
\end_layout

\begin_layout LyX-Code
macpro mpeg2ether # ./mpeg2ether --dot_clock 35
\end_layout

\begin_layout LyX-Code
dotclock ftarget =  35.00 fout =  35.00 MHz
\begin_inset Newline newline
\end_inset

 multiplier:  7 divider:  5
\begin_inset Newline newline
\end_inset

 high frequency mode: 0 ch7301 lowfreq: 1 ch7301 colorbars: 0
\end_layout

\begin_layout Standard
A pixel frequency of 35 MHz requires a multiplier of 7 and a divider of
 5, with lowfreq asserted.
 Hence, in 
\family typewriter
dvi/dotclock.v
\family default
:
\end_layout

\begin_layout LyX-Code
parameter [7:0]
\end_layout

\begin_layout LyX-Code
  DEFAULT_DIVIDER       = 8'd4, // Divider minus one, actually
\end_layout

\begin_layout LyX-Code
  DEFAULT_MULTIPLIER    = 8'd6; // Multiplier minus one, actually
\end_layout

\begin_layout LyX-Code

\end_layout

\begin_layout LyX-Code
parameter
\end_layout

\begin_layout LyX-Code
  DEFAULT_LOWFREQ       = 1'b1
\end_layout

\begin_layout LyX-Code

\end_layout

\begin_layout Standard
Note the modeline can be configured at any time using the 
\family typewriter
mpeg2ether
\family default
 utility; it is only when changing the 
\emph on
default
\emph default
 modeline that modifying the sources is necessary.
 The 
\family typewriter
mpeg2ether
\family default
 utility is explained on page 
\begin_inset CommandInset ref
LatexCommand pageref
reference "subsec:mpeg2ether"

\end_inset

.
\end_layout

\begin_layout Subsection
Inverse Discrete Cosine Transform
\end_layout

\begin_layout Standard
The IDCT algorithm used is described in 
\begin_inset CommandInset citation
LatexCommand cite
key "key-3"

\end_inset

.
 A copy of document 
\begin_inset CommandInset citation
LatexCommand cite
key "key-3"

\end_inset

 can be found in the 
\family typewriter
doc
\family default
 directory.
 The IDCT implementation uses 12 18x18 multipliers and two dual-port rams,
 and can do streaming.
 Run-length decoding (
\family typewriter
rld.v
\family default
), inverse quantizing (
\family typewriter
iquant.v, zigzag_table.v
\family default
) and IDCT transform (
\family typewriter
idct.v
\family default
) all operate at the same speed of one pixel per clock.
 The IDCT meets the requirements of the former IEEE-1180.
\end_layout

\begin_layout Subsection
Bilinear chroma upsampling
\end_layout

\begin_layout Standard
The chrominance components have half the vertical and half the horizontal
 resolution of the luminance.
 To obtain equal chrominance and luminance resolution, bilinear chroma upsamplin
g is used.
 Bilinear chroma upsampling computes chroma pixel values by vertical and
 horizontal interpolation.
 Vertical interpolation implies adding two rows of chroma values with different
 weights.
 The chroma row closest to the luma row gets weight 3/4, while the chroma
 row farthest from the luma row gets weight 1/4.
 The document 
\family typewriter
doc/bilinear.pdf
\family default
 shows the weights used.
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_layout Standard
Bilinear chroma upsampling is implemented in various source files, as described
 in Table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Upsampling-source-files"

\end_inset

.
 
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset Tabular
<lyxtabular version="3" rows="5" columns="2">
<features tabularvalignment="middle">
<column alignment="left" valignment="top">
<column alignment="left" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Source
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Description
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
resample.v
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Upsampling top-level file
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
resample_addrgen.v
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Generates memory addresses of chroma/lumi rows
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
resample_dta.v
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Reads chroma/lumi rows from memory
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
resample_bilinear.v
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Performs bilinear upsampling calculations
\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:Upsampling-source-files"

\end_inset

Upsampling source files
\end_layout

\end_inset


\end_layout

\begin_layout Plain Layout

\end_layout

\end_inset


\end_layout

\begin_layout Section
Simulation
\end_layout

\begin_layout Standard
Behavioral simulation using Icarus Verilog is described.
 For timing simulation consult your synthesis software.
\end_layout

\begin_layout Subsection
\begin_inset CommandInset label
LatexCommand label
name "subsec:Icarus-Verilog-Simulation"

\end_inset

Icarus Verilog Simulation
\end_layout

\begin_layout Standard
Behavioral simulation of the decoder can be performed using Icarus Verilog.
 The Icarus Verilog testbench in the 
\family typewriter
bench/iverilog
\family default
 directory contains the following files:
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
testbench.v
\family default
 Top-level Verilog source; instantiates MPEG2 decoder.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
mem_ctl.v
\family default
 Simple memory controller, for simulation only.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
Makefile
\family default
 Makefile to create and run the simulation.
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
wrappers.v
\family default
 Wrapper for dual-port ram and fifos.
 Implements synchronous fifos using 
\family typewriter
xfifo_sc.v
\family default
, and implements asynchronous fifos as OpenCores 
\family typewriter
generic_fifo_sc_b.v
\family default
.
 
\end_layout

\begin_layout Labeling
\labelwidthstring 00.00.0000

\family typewriter
generic_dpram.v, generic_fifo_dc.v, generic_fifo_sc_b.v
\family default
 Opencores generic fifos.
\end_layout

\begin_layout Standard
Create the decoder is easy using the accompanying 
\family typewriter
Makefile
\family default
.
 First, remove any files left over from a previous simulation:
\end_layout

\begin_layout LyX-Code
koen@macpro ~/xilinx/mpeg2/bench/iverilog $ make clean
\end_layout

\begin_layout LyX-Code
rm -f mpeg2 stream.dat testbench.lxt trace framestore_*.ppm tv_out_*.ppm
\end_layout

\begin_layout Standard
Now create the decoder:
\end_layout

\begin_layout LyX-Code
koen@macpro ~/xilinx/mpeg2/bench/iverilog $ make
\end_layout

\begin_layout LyX-Code
iverilog -D__IVERILOG__ -DMODELINE_SIF -I ../../rtl/mpeg2 -o mpeg2
\begin_inset Newline newline
\end_inset

 testbench.v mem_ctl.v wrappers.v generic_fifo_dc.v
\begin_inset Newline newline
\end_inset

 generic_fifo_sc_b.v generic_dpram.v ../../rtl/mpeg2/mpeg2video.v 
\begin_inset Newline newline
\end_inset

../../rtl/mpeg2/vbuf.v ../../rtl/mpeg2/getbits.v 
\begin_inset Newline newline
\end_inset

xxd -c 1 ../../tools/streams/stream-susi.mpg |
\begin_inset Newline newline
\end_inset

 cut -d
\backslash
  -f 2 > stream.dat
\end_layout

\begin_layout Standard
This executes two commands:
\end_layout

\begin_layout Itemize

\family typewriter
iverilog
\family default
 to compile the Verilog sources to an executable, 
\family typewriter
mpeg2
\family default
.
\end_layout

\begin_layout Itemize

\family typewriter
xxd
\family default
 to convert the binary MPEG2 program stream file 
\family typewriter
stream.mpg
\family default
 to an ASCII file 
\family typewriter
stream.dat
\family default
, which the simulator can load.
\end_layout

\begin_layout Standard
When compiling the Verilog sources, two Verilog parameters are defined on
 the command line: 
\family typewriter
__IVERILOG__
\family default
 and 
\family typewriter
MODELINE_SIF
\family default
.
 The first Verilog define, 
\family typewriter
__IVERILOG__
\family default
 , is defined only during simulation, and never during synthesis.
 It is used to enable several run-time checks which only make sense in a
 simulation environment.
 The second Verilog define, 
\family typewriter
MODELINE_SIF
\family default
, chooses one of several pre-defined video output formats from 
\family typewriter
modeline.v
\family default
.
\end_layout

\begin_layout Standard
Finally, run the newly created executable 
\family typewriter
mpeg2:
\end_layout

\begin_layout LyX-Code
koen@macpro ~/xilinx/mpeg2/bench/iverilog $ make test
\end_layout

\begin_layout LyX-Code
IVERILOG_DUMPER=lxt ./mpeg2
\end_layout

\begin_layout LyX-Code
LXT info: dumpfile testbench.lxt opened for output.
\end_layout

\begin_layout LyX-Code
$readmemh(stream.dat): Not enough words in the read file for
\begin_inset Newline newline
\end_inset

 requested range.
\end_layout

\begin_layout LyX-Code
testbench.mem_ctl.write_framestore      dumping framestore to
\begin_inset Newline newline
\end_inset

               framestore_000.ppm @  0.02 ms
\end_layout

\begin_layout LyX-Code
testbench.mem_ctl.write_framestore      dumping framestore to
\begin_inset Newline newline
\end_inset

               framestore_001.ppm @  0.02 ms
\end_layout

\begin_layout LyX-Code
testbench.mpeg2.motcomp macroblock_address:    0
\end_layout

\begin_layout LyX-Code
testbench.mpeg2.motcomp macroblock_address:    1
\end_layout

\begin_layout LyX-Code
testbench.mpeg2.motcomp macroblock_address:    2
\end_layout

\begin_layout LyX-Code
testbench.mpeg2.motcomp macroblock_address:    3
\end_layout

\begin_layout Standard
During simulation, the environment variable 
\family typewriter
IVERILOG_DUMPER=lxt
\family default
 is set.
 This instructs the simulator to produce a dumpfile in the more compact
 
\family typewriter
lxt
\family default
 format, instead of the default 
\family typewriter
vcd
\family default
 format.
\end_layout

\begin_layout Standard
By default, simulator output includes the macroblock address.
 This allows easy monitoring of decoder progress
\family typewriter
.
\end_layout

\begin_layout Standard
Each Verilog source file contains a 
\family typewriter
define DEBUG
\family default
 statement, which can be uncommented or commented to switch trace output
 for that particular source file on or off.
 
\end_layout

\begin_layout Standard
During simulation, two kinds of graphics files are written: framestore dumps
 
\family typewriter
framestore_*.ppm
\family default
 and video captures 
\family typewriter
tv_out_*.ppm
\family default
.
 The framestore is where the decoder stores already decoded images.
 These are Portable Pixmap graphics files in ASCII format.
 Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:susi-framestore-dump"

\end_inset

 shows a sample framestore dump.
\end_layout

\begin_layout Standard
The framestore consists of four frames and the on-screen display (OSD).
 The first two frames contain I and P pictures, while the last two frames
 contain B-pictures.
 Each frame consists of y (luminance), u and v (chrominance) information,
 with u and v having half the horizontal and half the vertical resolution
 of y.
 In the framestore dump, uninitialized memory is displayed in green.
 Looking at figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:susi-framestore-dump"

\end_inset

, one can see that the first three frames of the framestore have already
 been written; the decoder is halfway through the fourth frame.
 The On-Screen Display, at the bottom of the framestore dump, has not been
 initialized yet.
\end_layout

\begin_layout Standard
During simulation, by default, the framestore is dumped whenever a new frame
 begins; and every 200 macroblocks.
 As a framestore dump is a graphics file in ASCII format, one can also look
 at the file using standard text file utilities.
 These are the first 12 lines of a sample framestore dump:
\end_layout

\begin_layout LyX-Code
koen@macpro ~/xilinx/mpeg2/bench/iverilog 
\family typewriter
$ head -12 framestore_0001.ppm
\end_layout

\begin_layout LyX-Code

\family typewriter
P3
\end_layout

\begin_layout LyX-Code

\family typewriter
# mpeg2 framestore dump @ 11.81 ms
\end_layout

\begin_layout LyX-Code

\family typewriter
# frame number 2
\end_layout

\begin_layout LyX-Code

\family typewriter
# horizontal_size 352
\end_layout

\begin_layout LyX-Code

\family typewriter
# vertical_size 288
\end_layout

\begin_layout LyX-Code

\family typewriter
# display_horizontal_size 0
\end_layout

\begin_layout LyX-Code

\family typewriter
# display_vertical_size 0
\end_layout

\begin_layout LyX-Code

\family typewriter
# mb_width 22
\end_layout

\begin_layout LyX-Code

\family typewriter
# mb_height 18
\end_layout

\begin_layout LyX-Code

\family typewriter
# picture_structure frame picture
\end_layout

\begin_layout LyX-Code

\family typewriter
# chroma_format 420
\end_layout

\begin_layout LyX-Code

\family typewriter
352 2618 255
\end_layout

\begin_layout LyX-Code

\family typewriter
255 255 255 255 255 255 255 255 255 255 255 255
\begin_inset Newline newline
\end_inset

 255 255 255 255 255 255 255 255 255 255 255 255
\end_layout

\begin_layout Standard
The header of the framestore dump contains information about decoder status
 at the moment of the dump.
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\align center
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
centering
\end_layout

\end_inset


\begin_inset Graphics
        filename framestore_001.ps
        lyxscale 20
        height 80theight%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:susi-framestore-dump"

\end_inset

Framestore dump
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Standard
Figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:susi-video-output"

\end_inset

 shows video capture file 
\family typewriter
tv_out_0000.ppm.
\family default
Horizontal sync is displayed as a vertical black stripe, to the right of
 the image.
 Vertical sync is displayed as a horizontal black stripe, below the image
 area.
 Blanking is displayed in a dark grey.
 The position of picture, horizontal sync and vertical sync in figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:susi-video-output"

\end_inset

 is as defined in figure 
\begin_inset CommandInset ref
LatexCommand ref
reference "fig:Progressive-Video"

\end_inset

.
 As with the framestore dumps, one can look at 
\family typewriter
tv_out_0000.ppm
\family default
 using standard text utilities.
 
\end_layout

\begin_layout LyX-Code
koen@macpro ~/xilinx/mpeg2/bench/iverilog 
\family typewriter
$ head -10 tv_out_0000.ppm
\end_layout

\begin_layout LyX-Code

\family typewriter
P3
\end_layout

\begin_layout LyX-Code

\family typewriter
# picture 1 @ 10.73 ms
\end_layout

\begin_layout LyX-Code

\family typewriter
# horizontal resolution 352 sync_start 381 sync_end 388 length 458
\end_layout

\begin_layout LyX-Code

\family typewriter
# vertical resolution 288 sync_start 295 sync_end 298 length 315
\end_layout

\begin_layout LyX-Code

\family typewriter
# interlaced 0 halfline 175
\end_layout

\begin_layout LyX-Code

\family typewriter
459 316 255
\end_layout

\begin_layout LyX-Code

\family typewriter
0 0 0
\end_layout

\begin_layout LyX-Code

\family typewriter
0 77 0
\end_layout

\begin_layout LyX-Code

\family typewriter
3 0 3
\end_layout

\begin_layout LyX-Code

\family typewriter
2 0 2
\end_layout

\begin_layout Standard
The header of the video capture file contains information about the video
 modeline at the moment of video capture.
\begin_inset Float figure
wide false
sideways false
status open

\begin_layout Plain Layout
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
centering
\end_layout

\end_inset


\begin_inset Graphics
        filename tv_out_0.ps
        width 60line%

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "fig:susi-video-output"

\end_inset

Video output capture
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Standard
To end the simulation, go to the window where iverilog is running and type
 
\family typewriter
ctrl-c finish
\family default
.
 The simulator will finish writing 
\family typewriter
trace
\family default
 and 
\family typewriter
testbench.lxt
\family default
 files, and return control to the command prompt.
 
\end_layout

\begin_layout Standard
The binary file 
\family typewriter
testbench.lxt
\family default
 is a log of all wire and register changes which occurred during simulation.
 
\family typewriter
testbench.lxt
\family default
 can be displayed using vcd viewers such as 
\family typewriter
gtkwave
\family default
.
 
\end_layout

\begin_layout LyX-Code
koen@macpro ~/xilinx/mpeg2/bench/iverilog 
\family typewriter
$ gtkwave testbench.lxt &
\end_layout

\begin_layout Standard
Once 
\family typewriter
testbench.lxt
\family default
 file has been loaded in 
\family typewriter
gtkwave
\family default
, internal decoder wires and registers can be displayed as waveforms.
\end_layout

\begin_layout Subsection
\begin_inset CommandInset label
LatexCommand label
name "subsec:Conformance-Tests"

\end_inset

Conformance Tests
\end_layout

\begin_layout Standard
The 
\family typewriter
bench/conformance
\family default
 directory contains a testbench for the ISO/IEC 13818-4 MPEG2 conformance
 tests.
 The testbench assumes the ISO/IEC 13818-4 conformance test bitstreams are
 available on your system.
 The ISO/IEC 13818-4 MPEG2 Conformance test bitstreams for Main Profile
 @ Main Level can be downloaded from the ISO web site using the 
\family typewriter
tools/streams/retrieve
\family default
 script.
\end_layout

\begin_layout Standard
Typing 
\family typewriter
make clean test
\family default
 in the 
\family typewriter
bench/conformance
\family default
 directory simulates all MP@ML conformance test bitstreams.
 Table 
\begin_inset CommandInset ref
LatexCommand ref
reference "tab:Conformance-Test-Suite"

\end_inset

 summarizes test results.
 
\end_layout

\begin_layout Standard
When running the compatibility tests, note the decoder is not MPEG1-compatible,
 and does not decode MPEG1 streams.
 The MPEG2 decoder decodes MPEG2 4:2:0 program streams only.
 
\begin_inset Float table
wide false
sideways false
status open

\begin_layout Plain Layout
\begin_inset Tabular
<lyxtabular version="3" rows="43" columns="3">
<features tabularvalignment="middle">
<column alignment="left" valignment="top">
<column alignment="center" valignment="top">
<column alignment="center" valignment="top">
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Test bitstream
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Profile and level
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Remarks
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-16-matrices
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
11172-2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Fail (MPEG1 stream)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-18-d-pict
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
11172-2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Fail (MPEG1 stream)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
compcore/ccm1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
11172-2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Fail (MPEG1 stream)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-19-wide
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
11172-2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Fail (MPEG1 stream)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
toshiba/toshiba_DPall-0
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
nokia/nokia6_dual
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
nokia/nokia6_dual60
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
nokia/nokia_7
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-14-bff-dp
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
ibm/ibm-bw-v3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-8-fp-dp
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-9-fp-dp
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
1 bit off
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mei/MEI.stream16v2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Fail (MPEG1 stream)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mei/MEI.stream16.long
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout
Fail (MPEG1 stream)
\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
ntr/ntr_skipped_v3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
teracom/teracom_vlc4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-15-stuffing
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-17-dots
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
SP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
gi/gi4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
gi/gi6
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
gi/gi_from_tape
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
gi/gi7
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
gi/gi_9
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
ti/TI_cl_2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tceh/tceh_conf2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mei/mei.2conftest.4f
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
mei/mei.2conftest.60f.new
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tek/Tek-5.2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tek/Tek-5-long
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-6-slices
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-7-slices
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
sony/sony-ct1
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
sony/sony-ct2
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
sony/sony-ct3
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
sony/sony-ct4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
att/att_mismatch
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
teracom/teracom_vlc4
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
ccett/mcp10ccett
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
lep/bits_conf_lep_11
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
hhi/hhi_burst_short
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
hhi/hhi_burst_long
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family typewriter
tcela/tcela-10-killer
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\family roman
\series medium
\shape up
\size normal
\emph off
\bar no
\noun off
\color none
MP@ML
\end_layout

\end_inset
</cell>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text

\begin_layout Plain Layout

\end_layout

\end_inset
</cell>
</row>
</lyxtabular>

\end_inset


\end_layout

\begin_layout Plain Layout
\begin_inset Caption Standard

\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "tab:Conformance-Test-Suite"

\end_inset

Conformance Test Suite
\end_layout

\end_inset


\end_layout

\end_inset


\end_layout

\begin_layout Section
\begin_inset CommandInset label
LatexCommand label
name "sec:Tools"

\end_inset

Tools
\end_layout

\begin_layout Standard
The 
\family typewriter
tools
\family default
 directory contains various utilities and tools used during decoder development
 and test.
\end_layout

\begin_layout Subsection
\begin_inset CommandInset label
LatexCommand label
name "subsec:Logicport-Logic-Analyzer"

\end_inset

Logic Analyzer
\end_layout

\begin_layout Standard
On the Xilinx ML505, the MPEG2 decoder testpoint has been broken out to
 the Xilinx Generic Interface (XGI) .
 The test point selection can be done using the GPIO DIP switches.
 If the ML505 is held so the LCD can be read, the GPIO DIP switches are
 at the bottom right of the board.
 GPIO DIP switches are numbered 1 to 8, from left to right.
\end_layout

\begin_layout Standard
If GPIO DIP switch 3 is off, test point selection is made by writing to
 register 15 decimal, REG_WR_TESTPOINT.
 If GPIO DIP switch 3 is on, test point selection is made by dip switches
 5 to 8.
 GPIO DIP switch 5 is MSB, GPIO DIP switch 8 is LSB.
\end_layout

\begin_layout Standard
Verify the probing has been enabled in 
\family typewriter
probe.v
\family default
.
 Note that, as one adds test points, routing and timing closure becomes
 more and more difficult.
 Only define those test points you need.
\end_layout

\begin_layout Standard
The Intronix Logicport is a small USB-based logic analyzer.
 It has 34 channels, two of which can be used as clock inputs, and does
 state analysis at up to 200 MHz.
 The MPEG2 decoder on the ML505 runs at 75 MHz, with a typical dot clock
 of 27 MHz, well within the capabilities of the Logicport logic analyzer.
 Probing the memory controller at 200 MHz, however, is borderline.
 To be on the safe side, when probing the memory controller with the Logicport,
 lower memory clock to 125 MHz .
\end_layout

\begin_layout Standard
A small two-layer adapter board has been designed to connect the Intronix
 Logicport to the Xilinx ML505.
 Board layout can be downloaded from 
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://www.kdvelectronics.eu/probe_adapter/probe_adapter.html
\end_layout

\end_inset

.
\end_layout

\begin_layout Standard
The 
\family typewriter
tools/logicport
\family default
 directory contains Logicport configuration files for the test points defined
 in 
\family typewriter
probe.v
\family default
.
 Note configuration files can be read and waveforms displayed by Logicport
 software even if no analyzer is present.
\end_layout

\begin_layout Subsection
\begin_inset CommandInset label
LatexCommand label
name "subsec:FSM-Graphs"

\end_inset

Finite State Machine Graphs
\end_layout

\begin_layout Standard
The MPEG2 decoder uses Finite State Machines throughout; no embedded processors
 or microcontrollers are used.
 Verifying the correctness of the Finite State Machines is important.
 Finite state machine transition graphs are created from Verilog source
 files as a means of visually inspecting and verifying source correctness.
 The 
\family typewriter
mkfsmgraph
\family default
 Perl script in 
\family typewriter
tools/fsmgraph
\family default
 assumes the comment 
\family typewriter
/* next state logic */
\family default
 marks the beginning of a 
\family typewriter
case
\family default
 statement in an 
\family typewriter
always
\family default
 block, used to select the next state, and that all states begin with STATE_
 :
\end_layout

\begin_layout LyX-Code
/* next state logic */
\end_layout

\begin_layout LyX-Code
always @*
\end_layout

\begin_layout LyX-Code
  case (state)
\end_layout

\begin_layout LyX-Code
    STATE_INIT: if (first_pixel_read) next = STATE_WAIT;
\end_layout

\begin_layout LyX-Code
                else next = STATE_INIT;
\end_layout

\begin_layout LyX-Code
    ...
    
\end_layout

\begin_layout LyX-Code
    default next = STATE_INIT
\end_layout

\begin_layout LyX-Code
  endcase
\end_layout

\begin_layout LyX-Code
/* state */
\end_layout

\begin_layout LyX-Code
always @(posedge clk)
\end_layout

\begin_layout LyX-Code
  if(~rst) state <= STATE_INIT;
\end_layout

\begin_layout LyX-Code
  else state <= next;
\end_layout

\begin_layout Standard
The 
\family typewriter
mkfsmgraph
\family default
 tool parses the Verilog source files using the following algorithm:
\end_layout

\begin_layout Itemize
read the Verilog file until the comment 
\family typewriter
/* next state logic */
\family default
 is found
\end_layout

\begin_layout Itemize
take the first 
\family typewriter
always
\family default
 block after the 
\family typewriter
/* next state logic */
\family default
 comment
\end_layout

\begin_layout Itemize
any word beginning with 
\family typewriter
STATE_
\family default
 is assumed to represent a FSM state.
\end_layout

\begin_layout Itemize
if the character following the FSM state is a colon (:) the state is a graph
 node.
\end_layout

\begin_layout Itemize
if the character following the FSM state is a semicolon (;) the state is
 the end point of a state transition.
\end_layout

\begin_layout Itemize
if the character following the FSM state is neither a colon (:) nor a semicolon
 (;) the state is not added to the graph.
\end_layout

\begin_layout Standard
The resulting graph is written to standard output in gml format.
 Graph layout software uDrawGraph from the University of Bremen, Germany,
 is then used to produce a visually appealing graph.
 
\end_layout

\begin_layout Standard
No attempt has been made to write a script capable of parsing arbitrary
 Verilog sources.
 The Verilog sources have been written so the script can parse them.
\end_layout

\begin_layout Standard
The graph of the variable length-decoding FSM 
\family typewriter
vld.v
\family default
 has been simplified further by removing all transitions to STATE_NEXT_START_COD
E and STATE_ERROR.
 Nodes which transition to STATE_NEXT_START_CODE are drawn with double border.
 Removing transitions to STATE_NEXT_START_CODE and STATE_ERROR produces
 a graph with much less visual clutter.
 A large format version of the FMS graph of 
\family typewriter
vld.v
\family default
  can be found in 
\family typewriter
doc/vld-poster.pdf
\family default
.
 It is suggested to become familiar with the graph before significantly
 modifying 
\family typewriter
vld.v
\family default
.
 
\end_layout

\begin_layout Subsection
\begin_inset CommandInset label
LatexCommand label
name "subsec:IEEE-1180-IDCT"

\end_inset

IEEE-1180 IDCT Accuracy Test
\end_layout

\begin_layout Standard

\family typewriter
idct.v
\family default
 has been tested to comply with the former IEEE-1180, the actual ISO/IEC
 23002-1 
\begin_inset CommandInset citation
LatexCommand cite
key "key-5"

\end_inset

.
 The testbench can be found in the 
\family typewriter
tools/ieee1180
\family default
 directory.
 Test results can be found in the file 
\family typewriter
ieee-1180-results
\family default
.
 Test results indicate the idct implementation is IEEE-1180 compliant.
\end_layout

\begin_layout Subsection
\begin_inset CommandInset label
LatexCommand label
name "subsec:mpeg2decode"

\end_inset

Reference software decoder
\end_layout

\begin_layout Standard
The directory 
\family typewriter
tools/mpeg2dec
\family default
 contains the MPEG2 reference decoder, modified to provide extensive logging
 and to regularly write the framebuffers to file.
 A sample run could be:
\end_layout

\begin_layout LyX-Code
koen@macpro ~/xilinx/mpeg2/tools $ mkdir run
\end_layout

\begin_layout LyX-Code
koen@macpro ~/xilinx/mpeg2/tools $ cd run
\end_layout

\begin_layout LyX-Code
koen@macpro ~/xilinx/mpeg2/tools/run $ ../mpeg2dec/mpeg2decode
\begin_inset Newline newline
\end_inset

 -r -v9 -t -o0 'dump_%d_out_%c' -b ../streams/tcela-17.mpg > log
\end_layout

\begin_layout LyX-Code
saving dump_0_out_f.y.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_out_f.u.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_out_f.v.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_forward_ref_frm.y.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_forward_ref_frm.u.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_forward_ref_frm.v.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_backward_ref_frm.y.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_backward_ref_frm.u.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_backward_ref_frm.v.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_auxframe.y.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_auxframe.u.ppm
\end_layout

\begin_layout LyX-Code
saving dump_0_auxframe.v.ppm
\end_layout

\begin_layout LyX-Code
saving dump_1_out_f.y.ppm
\end_layout

\begin_layout LyX-Code
saving dump_1_out_f.u.ppm
\end_layout

\begin_layout LyX-Code
...
 
\end_layout

\begin_layout Standard
The 
\family typewriter
log
\family default
 file contains detailed information about the execution of the MPEG2 decoding
 algorithm, while the 
\family typewriter
.ppm
\family default
 files contain framestore dumps, using separate graphics files for each
 y, u and v component.
 
\end_layout

\begin_layout Subsection
\begin_inset CommandInset label
LatexCommand label
name "subsec:MPEG2-Test-Streams"

\end_inset

MPEG2 Test Streams
\end_layout

\begin_layout Standard
The 
\family typewriter
tools/streams
\family default
 directory contains some sample MPEG2 program streams, useful during testing.
 The 
\family typewriter
retrieve
\family default
 script in the 
\family typewriter
tools/streams
\family default
 directory can be used to download the ISO/IEC 13818-4 conformance test
 bitstreams from the ISO web site
\begin_inset Foot
status open

\begin_layout Plain Layout
ISO/IEC 13818-4 test bitstreams, 
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_13818-4_2004_Conf
ormance_Testing/Video/bitstreams/main-profile/
\end_layout

\end_inset


\end_layout

\end_inset

.
\end_layout

\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
label "1"
key "key-1"

\end_inset

ITU-T Recommendation H.262 
\begin_inset Quotes eld
\end_inset

Information technology - Generic coding of moving pictures and associated
 audio information: Video
\begin_inset Quotes erd
\end_inset

, 2000.
 Also published as ISO/IEC International Standard 13818-2.
\end_layout

\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
label "2"
key "key-5"

\end_inset

ISO/IEC International Standard 23002-1 
\begin_inset Quotes eld
\end_inset

Information technology - MPEG video technologies - Part 1: Accuracy requirements
 for implementation of integer-output 8x8 inverse discrete cosine transform
\begin_inset Quotes erd
\end_inset

, 2006.
\end_layout

\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
label "3"
key "key-2"

\end_inset


\begin_inset Quotes eld
\end_inset

Architecture and Bus-Arbitration Schemes for MPEG-2 Video Decoder", Jui-Hua
 Li and Nam Ling, IEEE Transactions on Circuits and Systems for Video Technology
, Vol.
 9, No.
 5, August 1999, p.727-736.
\end_layout

\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
label "4"
key "key-3"

\end_inset


\begin_inset Quotes eld
\end_inset

Systematic approach of Fixed Point 8x8 IDCT and DCT Design and Implementation",
 Ci-Xun Zhang , Jing Wang , Lu Yu, Institute of Information and Communication
 Engineering, Zhejiang University, Hangzhou, China, 310027.
\end_layout

\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
label "5"
key "key-4"

\end_inset


\begin_inset Quotes eld
\end_inset

Virtex-5 FPGA User Guide
\begin_inset Quotes erd
\end_inset

, Xilinx UG190 (v3.2), December 11, 2007.
\end_layout

\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
label "6"
key "key-7"

\end_inset


\begin_inset Quotes eld
\end_inset

ML505/506 MIG Design Creation Using ISE 9.2i SP3, MIG 2.0 and ChipScope Pro
 9.2i
\begin_inset Quotes erd
\end_inset

, Xilinx, December 2007.
\end_layout

\end_body
\end_document

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.