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

Subversion Repositories mpeg2fpga

[/] [mpeg2fpga/] [trunk/] [doc/] [mpeg2fpga.lyx] - Blame information for rev 3

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

Line No. Rev Author Line
1 2 kdv
#LyX 2.2 created this file. For more info see http://www.lyx.org/
2
\lyxformat 508
3
\begin_document
4
\begin_header
5
\save_transient_properties true
6
\origin unavailable
7
\textclass scrreprt
8
\begin_preamble
9
\usepackage[pdftitle={MPEG-2 Decoder User's Guide},pdfauthor={Koenraad De Vleeschauwer},bookmarks]{hyperref}
10
\sloppy
11
 
12
\usepackage{microtype}
13
 
14
\renewcommand{\headrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0.4pt}
15
\renewcommand{\chaptermark}[1]{%
16
 \markboth{\thechapter.\ #1}{}}
17
 
18
\rhead{\sffamily \nouppercase{\leftmark}}
19
\fancyhead[LE,RO]{\sffamily \leftmark}
20
\fancyhead[LO,RE]{\sffamily kdv electronics}
21
\fancyhead[C]{}
22
\fancyfoot[LO,RE]{\sffamily MPEG2 Decoder User Guide}
23
\fancyfoot[LE,RO]{\sffamily \thepage}
24
\fancyfoot[C]{\sffamily \today}
25
 
26
\fancypagestyle{plain}{%
27
\fancyhead[LE,RO]{}
28
\fancyhead[LO,RE]{}
29
\fancyhead[C]{}
30
\renewcommand{\headrulewidth}{0pt}
31
\renewcommand{\footrulewidth}{0.4pt}}
32
\end_preamble
33
\use_default_options false
34
\maintain_unincluded_children false
35
\language english
36
\language_package default
37
\inputencoding auto
38
\fontencoding global
39
\font_roman "default" "default"
40
\font_sans "default" "default"
41
\font_typewriter "default" "default"
42
\font_math "auto" "auto"
43
\font_default_family default
44
\use_non_tex_fonts false
45
\font_sc false
46
\font_osf false
47
\font_sf_scale 100 100
48
\font_tt_scale 100 100
49
\graphics default
50
\default_output_format default
51
\output_sync 0
52
\bibtex_command default
53
\index_command default
54
\paperfontsize default
55
\spacing single
56
\use_hyperref false
57
\papersize a4paper
58
\use_geometry false
59
\use_package amsmath 1
60
\use_package amssymb 1
61
\use_package cancel 1
62
\use_package esint 0
63
\use_package mathdots 0
64
\use_package mathtools 1
65
\use_package mhchem 0
66
\use_package stackrel 1
67
\use_package stmaryrd 1
68
\use_package undertilde 1
69
\cite_engine basic
70
\cite_engine_type default
71
\biblio_style plain
72
\use_bibtopic false
73
\use_indices false
74
\paperorientation portrait
75
\suppress_date false
76
\justification true
77
\use_refstyle 0
78
\index Index
79
\shortcut idx
80
\color #008000
81
\end_index
82
\secnumdepth 3
83
\tocdepth 3
84
\paragraph_separation indent
85
\paragraph_indentation default
86
\quotes_language english
87
\papercolumns 1
88
\papersides 2
89
\paperpagestyle fancy
90
\tracking_changes false
91
\output_changes false
92
\html_math_output 0
93
\html_css_as_file 0
94
\html_be_strict false
95
\end_header
96
 
97
\begin_body
98
 
99
\begin_layout Title
100
MPEG-2 Decoder User Guide
101
\end_layout
102
 
103
\begin_layout Author
104
Koenraad De Vleeschauwer
105
\begin_inset Newline newline
106
\end_inset
107
 
108
 
109
\family typewriter
110
kdv@kdvelectronics.eu
111
\end_layout
112
 
113
\begin_layout Section*
114
\begin_inset ERT
115
status open
116
 
117
\begin_layout Plain Layout
118
 
119
 
120
\backslash
121
thispagestyle{empty}
122
\end_layout
123
 
124
\end_inset
125
 
126
Copyright Notice
127
\end_layout
128
 
129
\begin_layout Standard
130
Copyright
131
\begin_inset ERT
132
status open
133
 
134
\begin_layout Plain Layout
135
 
136
 
137
\backslash
138
copyright
139
\end_layout
140
 
141
\end_inset
142
 
143
2007-2009, Koenraad De Vleeschauwer.
144
 
145
\end_layout
146
 
147
\begin_layout Standard
148
Redistribution and use in source (\SpecialChar LyX
149
 format) and `compiled' forms (PDF, PostScript
150
, HTML, RTF, etc.), with or without modification, are permitted provided
151
 that the following conditions are met:
152
\end_layout
153
 
154
\begin_layout Enumerate
155
Redistributions of source code (\SpecialChar LyX
156
 format) must retain the above copyright
157
 notice, this list of conditions and the following disclaimer.
158
\end_layout
159
 
160
\begin_layout Enumerate
161
Redistributions in compiled form (transformed to other DTDs, converted to
162
 PDF, PostScript, HTML, RTF, and other formats) must reproduce the above
163
 copyright notice, this list of conditions and the following disclaimer
164
 in the documentation and/or other materials provided with the distribution.
165
\end_layout
166
 
167
\begin_layout Enumerate
168
The name of the author may not be used to endorse or promote products derived
169
 from this documentation without specific prior written permission.
170
\end_layout
171
 
172
\begin_layout Standard
173
 
174
\noun on
175
This documentation is provided by the author
176
\begin_inset Quotes eld
177
\end_inset
178
 
179
as is" and any express or implied warranties, including, but not limited
180
 to, the implied warranties of merchantability and fitness for a particular
181
 purpose are disclaimed.
182
 In no event shall the author be liable for any direct, indirect, incidental,
183
 special, exemplary, or consequential damages (including, but not limited
184
 to, procurement of substitute goods or services; loss of use, data, or
185
 profits; or business interruption) however caused and on any theory of
186
 liability, whether in contract, strict liability, or tort (including negligence
187
 or otherwise) arising in any way out of the use of this documentation,
188
 even if advised of the possibility of such damage.
189
\end_layout
190
 
191
\begin_layout Section*
192
MPEG-2 License Notice
193
\end_layout
194
 
195
\begin_layout Standard
196
Commercial implementations of MPEG-1 and MPEG-2 video, including shareware,
197
 are subject to royalty fees to patent holders.
198
 Many of these patents are general enough such that they are unavoidable
199
 regardless of implementation design.
200
\end_layout
201
 
202
\begin_layout Standard
203
 
204
\noun on
205
MPEG-2 intermediate product.
206
 Use of this product in any manner that complies with the MPEG-2 standard
207
 is expressly prohibited without a license under applicable patents in the
208
 MPEG-2 patent portfolio, which license is available from MPEG LA, L.L.C.,
209
 250 Stelle Street, suite 300, Denver, Colorado 80206.
210
\end_layout
211
 
212
\begin_layout Standard
213
\begin_inset CommandInset toc
214
LatexCommand tableofcontents
215
 
216
\end_inset
217
 
218
 
219
\end_layout
220
 
221
\begin_layout Chapter
222
\begin_inset CommandInset label
223
LatexCommand label
224
name "cha:Processor-Interface"
225
 
226
\end_inset
227
 
228
Processor Interface
229
\end_layout
230
 
231
\begin_layout Standard
232
An MPEG2 decoder, implemented in Verilog, is presented.
233
 Chapter
234
\begin_inset CommandInset ref
235
LatexCommand ref
236
reference "cha:Processor-Interface"
237
 
238
\end_inset
239
 
240
 describes the decoder for the software engineer who wishes to write a device
241
 driver.
242
\end_layout
243
 
244
\begin_layout Section
245
Decoder Block Diagram
246
\end_layout
247
 
248
\begin_layout Standard
249
\align center
250
\begin_inset Float figure
251
wide false
252
sideways false
253
status open
254
 
255
\begin_layout Plain Layout
256
\align center
257
\begin_inset ERT
258
status open
259
 
260
\begin_layout Plain Layout
261
 
262
 
263
\backslash
264
centering
265
\end_layout
266
 
267
\end_inset
268
 
269
 
270
\begin_inset Graphics
271
        filename blockdiagram.ps
272
        height 96page%
273
        keepAspectRatio
274
        clip
275
 
276
\end_inset
277
 
278
 
279
\end_layout
280
 
281
\begin_layout Plain Layout
282
\begin_inset Caption Standard
283
 
284
\begin_layout Plain Layout
285
\begin_inset CommandInset label
286
LatexCommand label
287
name "fig:Decoder-Block-Diagram"
288
 
289
\end_inset
290
 
291
Decoder Block Diagram
292
\end_layout
293
 
294
\end_inset
295
 
296
 
297
\end_layout
298
 
299
\end_inset
300
 
301
 
302
\end_layout
303
 
304
\begin_layout Standard
305
Figure
306
\begin_inset CommandInset ref
307
LatexCommand ref
308
reference "fig:Decoder-Block-Diagram"
309
 
310
\end_inset
311
 
312
 shows the MPEG2 decoder block diagram.
313
 An external source such as a DVB tuner or DVD drive provides an MPEG2 stream.
314
 The video elementary stream is extracted and sent to the decoder.
315
 The
316
\emph on
317
video buffer
318
\emph default
319
 acts as a fifo between the incoming MPEG2 video stream and the variable
320
 length decoder.
321
 The video buffer evens out temporary differences between the bitrate of
322
 the incoming MPEG2 bitstream and the bitrate at which the decoder parses
323
 the bitstream.
324
\end_layout
325
 
326
\begin_layout Standard
327
The MPEG2 codec is a variable length codec; codewords which occur often
328
 occupy less bits than codewords which occur only rarely.
329
 
330
\emph on
331
Getbits
332
\emph default
333
 provides a sliding window over the incoming stream.
334
 As the codewords have a variable length, the sliding window moves forward
335
 a variable amount of bits at a time.
336
\end_layout
337
 
338
\begin_layout Standard
339
 
340
\emph on
341
Variable length decoding
342
\emph default
343
 does the actual parsing of the bitstream.
344
 Variable length decoding stores stream parameters such as horizontal and
345
 vertical resolution, and produces run/length values and motion vectors.
346
 Run/length values and motion vectors are different ways of describing an
347
 image.
348
 The run/length values describe an image as compressed data contained within
349
 the bitstream.
350
 The motion vectors describe an image as a mosaic of already decoded images.
351
\end_layout
352
 
353
\begin_layout Standard
354
 
355
\emph on
356
Run-length decoding, inverse quantizing
357
\emph default
358
 and
359
\emph on
360
inverse discrete cosine transform
361
\emph default
362
 decompress the run/length values.
363
\end_layout
364
 
365
\begin_layout Standard
366
 
367
\emph on
368
Motion compensation
369
\emph default
370
 retrieves already decoded images from memory and applies the motion vector
371
 translations.
372
\end_layout
373
 
374
\begin_layout Standard
375
The reconstructed image is the sum of the decompressed run/length values
376
 and translated pieces of already decoded images.
377
 The reconstructed image is stored in the
378
\shape italic
379
frame store
380
\shape default
381
 for later display and reference.
382
\end_layout
383
 
384
\begin_layout Standard
385
The frame store receives requests to store and retrieve pixels from three
386
 different sources:
387
\end_layout
388
 
389
\begin_layout Itemize
390
 
391
\emph on
392
motion compensation
393
\emph default
394
, which writes reconstructed image frames to memory
395
\end_layout
396
 
397
\begin_layout Itemize
398
 
399
\emph on
400
chroma resampling
401
\emph default
402
, which reads reconstructed image frames from memory for displaying
403
\end_layout
404
 
405
\begin_layout Itemize
406
writes to the
407
\emph on
408
on-screen display
409
\emph default
410
, under software control.
411
\end_layout
412
 
413
\begin_layout Standard
414
Some of these blocks have multiple accesses to the frame store.
415
 Within the MPEG2 decoder a total of six memory read or write requests may
416
 occur simultaneously.
417
 The frame store prioritizes these requests and serializes them into a single
418
 stream of memory read/write requests, which is sent to the memory controller.
419
 
420
\end_layout
421
 
422
\begin_layout Standard
423
The
424
\emph on
425
memory controller
426
\emph default
427
 is external to the MPEG2 decoder.
428
 The memory controller handles the low-level details of interfacing with
429
 the memory chips.
430
 If memory is static RAM, interfacing requires little more than a buffer;
431
 dynamic memory requires a more complex controller.
432
\end_layout
433
 
434
\begin_layout Standard
435
The MPEG2 decoder accepts 4:2:0 format video, in which color and brightness
436
 information have a different resolution: color information (chrominance)
437
 is sent at half the horizontal and half the vertical resolution of brightness
438
 information (luminance).
439
 This makes sense because the human eye uses different mechanisms to perceive
440
 color and brightness; and the different mechanisms used have different
441
 sensitivities.
442
 
443
\end_layout
444
 
445
\begin_layout Standard
446
Sending color information at half the horizontal and half the vertical resolutio
447
n of brightness information implies the reconstructed image in the frame
448
 store has only one color pixel for every four brightness pixels.
449
 Assigning the same color information to the four pixels of brightness informati
450
on would result in a chunky image.
451
 
452
\emph on
453
Chroma resampling
454
\emph default
455
 does horizontal and vertical interpolation of the color information, resulting
456
 in a smooth color image.
457
\end_layout
458
 
459
\begin_layout Standard
460
A
461
\emph on
462
dot clock
463
\emph default
464
 marks the frequency at which pixels are sent to the display.
465
 The dot clock is external to the MPEG2 decoder and can be either free running
466
 or synchronized to another clock.
467
\end_layout
468
 
469
\begin_layout Standard
470
The
471
\emph on
472
video synchronization generator
473
\emph default
474
 counts pixels, lines and image frames at the dot clock frequency.
475
 At any given moment, the video synchronization generator knows the horizontal
476
 and vertical coordinate of the pixel to be displayed.
477
 
478
\end_layout
479
 
480
\begin_layout Standard
481
The pixels generated in chroma resampling and the coordinates generated
482
 by the video synchronization generator are joined in the
483
\emph on
484
mixer
485
\emph default
486
.
487
 The result is a stream of pixels, at the current horizontal/vertical coordinate
488
, at the dot clock frequency.
489
 
490
\end_layout
491
 
492
\begin_layout Standard
493
At this point the
494
\emph on
495
on-screen display
496
\emph default
497
 is added.
498
 The on-screen display has the same resolution as the video and uses a 256-color
499
 palette.
500
 Software can choose to put the on-screen display on top, completely hiding
501
 the video; or to blend on-screen display and video, as if they were two
502
 translucent glass plates.
503
\end_layout
504
 
505
\begin_layout Standard
506
The MPEG2 decoder works with chrominance (color) and luminance (brightness)
507
 information throughout.
508
 The final step is converting chrominance and luminance to red, green and
509
 blue in
510
\emph on
511
yuv2rgb
512
\emph default
513
.
514
 The red, green and blue information is the output of the decoder.
515
\end_layout
516
 
517
\begin_layout Section
518
Ports
519
\end_layout
520
 
521
\begin_layout Standard
522
Table
523
\begin_inset CommandInset ref
524
LatexCommand ref
525
reference "tab:Ports"
526
 
527
\end_inset
528
 
529
 lists MPEG2 decoder input/output ports.
530
\begin_inset Float table
531
wide false
532
sideways false
533
status open
534
 
535
\begin_layout Plain Layout
536
\align center
537
\begin_inset Tabular
538
539
540
541
542
543
544
545
546
547
\begin_inset Text
548
 
549
\begin_layout Plain Layout
550
 
551
\family roman
552
\series medium
553
\shape up
554
\size normal
555
\emph off
556
\bar no
557
\noun off
558
\color none
559
Port
560
\end_layout
561
 
562
\end_inset
563
564
565
\begin_inset Text
566
 
567
\begin_layout Plain Layout
568
 
569
\family roman
570
\series medium
571
\shape up
572
\size normal
573
\emph off
574
\bar no
575
\noun off
576
\color none
577
Bits
578
\end_layout
579
 
580
\end_inset
581
582
583
\begin_inset Text
584
 
585
\begin_layout Plain Layout
586
 
587
\family roman
588
\series medium
589
\shape up
590
\size normal
591
\emph off
592
\bar no
593
\noun off
594
\color none
595
Description
596
\end_layout
597
 
598
\end_inset
599
600
601
\begin_inset Text
602
 
603
\begin_layout Plain Layout
604
 
605
\family roman
606
\series medium
607
\shape up
608
\size normal
609
\emph off
610
\bar no
611
\noun off
612
\color none
613
I/O
614
\end_layout
615
 
616
\end_inset
617
618
619
\begin_inset Text
620
 
621
\begin_layout Plain Layout
622
Clock
623
\end_layout
624
 
625
\end_inset
626
627
628
629
630
\begin_inset Text
631
 
632
\begin_layout Plain Layout
633
 
634
\family typewriter
635
clk
636
\end_layout
637
 
638
\end_inset
639
640
641
\begin_inset Text
642
 
643
\begin_layout Plain Layout
644
1
645
\end_layout
646
 
647
\end_inset
648
649
650
\begin_inset Text
651
 
652
\begin_layout Plain Layout
653
Decoder clock
654
\end_layout
655
 
656
\end_inset
657
658
659
\begin_inset Text
660
 
661
\begin_layout Plain Layout
662
I
663
\end_layout
664
 
665
\end_inset
666
667
668
\begin_inset Text
669
 
670
\begin_layout Plain Layout
671
-
672
\end_layout
673
 
674
\end_inset
675
676
677
678
679
\begin_inset Text
680
 
681
\begin_layout Plain Layout
682
 
683
\family typewriter
684
dot_clk
685
\end_layout
686
 
687
\end_inset
688
689
690
\begin_inset Text
691
 
692
\begin_layout Plain Layout
693
1
694
\end_layout
695
 
696
\end_inset
697
698
699
\begin_inset Text
700
 
701
\begin_layout Plain Layout
702
Video clock
703
\end_layout
704
 
705
\end_inset
706
707
708
\begin_inset Text
709
 
710
\begin_layout Plain Layout
711
I
712
\end_layout
713
 
714
\end_inset
715
716
717
\begin_inset Text
718
 
719
\begin_layout Plain Layout
720
-
721
\end_layout
722
 
723
\end_inset
724
725
726
727
728
\begin_inset Text
729
 
730
\begin_layout Plain Layout
731
 
732
\family typewriter
733
mem_clk
734
\end_layout
735
 
736
\end_inset
737
738
739
\begin_inset Text
740
 
741
\begin_layout Plain Layout
742
1
743
\end_layout
744
 
745
\end_inset
746
747
748
\begin_inset Text
749
 
750
\begin_layout Plain Layout
751
Memory Controller clock
752
\end_layout
753
 
754
\end_inset
755
756
757
\begin_inset Text
758
 
759
\begin_layout Plain Layout
760
I
761
\end_layout
762
 
763
\end_inset
764
765
766
\begin_inset Text
767
 
768
\begin_layout Plain Layout
769
-
770
\end_layout
771
 
772
\end_inset
773
774
775
776
777
\begin_inset Text
778
 
779
\begin_layout Plain Layout
780
 
781
\family typewriter
782
rst
783
\end_layout
784
 
785
\end_inset
786
787
788
\begin_inset Text
789
 
790
\begin_layout Plain Layout
791
1
792
\end_layout
793
 
794
\end_inset
795
796
797
\begin_inset Text
798
 
799
\begin_layout Plain Layout
800
Reset
801
\end_layout
802
 
803
\end_inset
804
805
806
\begin_inset Text
807
 
808
\begin_layout Plain Layout
809
I
810
\end_layout
811
 
812
\end_inset
813
814
815
\begin_inset Text
816
 
817
\begin_layout Plain Layout
818
-
819
\end_layout
820
 
821
\end_inset
822
823
824
825
826
\begin_inset Text
827
 
828
\begin_layout Plain Layout
829
 
830
\family typewriter
831
stream_data
832
\end_layout
833
 
834
\end_inset
835
836
837
\begin_inset Text
838
 
839
\begin_layout Plain Layout
840
8
841
\end_layout
842
 
843
\end_inset
844
845
846
\begin_inset Text
847
 
848
\begin_layout Plain Layout
849
Program stream data
850
\end_layout
851
 
852
\end_inset
853
854
855
\begin_inset Text
856
 
857
\begin_layout Plain Layout
858
I
859
\end_layout
860
 
861
\end_inset
862
863
864
\begin_inset Text
865
 
866
\begin_layout Plain Layout
867
 
868
\family typewriter
869
clk
870
\end_layout
871
 
872
\end_inset
873
874
875
876
877
\begin_inset Text
878
 
879
\begin_layout Plain Layout
880
 
881
\family typewriter
882
stream_valid
883
\end_layout
884
 
885
\end_inset
886
887
888
\begin_inset Text
889
 
890
\begin_layout Plain Layout
891
1
892
\end_layout
893
 
894
\end_inset
895
896
897
\begin_inset Text
898
 
899
\begin_layout Plain Layout
900
stream_data valid
901
\end_layout
902
 
903
\end_inset
904
905
906
\begin_inset Text
907
 
908
\begin_layout Plain Layout
909
I
910
\end_layout
911
 
912
\end_inset
913
914
915
\begin_inset Text
916
 
917
\begin_layout Plain Layout
918
 
919
\family typewriter
920
clk
921
\end_layout
922
 
923
\end_inset
924
925
926
927
928
\begin_inset Text
929
 
930
\begin_layout Plain Layout
931
 
932
\family typewriter
933
busy
934
\end_layout
935
 
936
\end_inset
937
938
939
\begin_inset Text
940
 
941
\begin_layout Plain Layout
942
1
943
\end_layout
944
 
945
\end_inset
946
947
948
\begin_inset Text
949
 
950
\begin_layout Plain Layout
951
Decoder busy flag
952
\end_layout
953
 
954
\end_inset
955
956
957
\begin_inset Text
958
 
959
\begin_layout Plain Layout
960
O
961
\end_layout
962
 
963
\end_inset
964
965
966
\begin_inset Text
967
 
968
\begin_layout Plain Layout
969
 
970
\family typewriter
971
clk
972
\end_layout
973
 
974
\end_inset
975
976
977
978
979
\begin_inset Text
980
 
981
\begin_layout Plain Layout
982
 
983
\family typewriter
984
reg_addr
985
\end_layout
986
 
987
\end_inset
988
989
990
\begin_inset Text
991
 
992
\begin_layout Plain Layout
993
4
994
\end_layout
995
 
996
\end_inset
997
998
999
\begin_inset Text
1000
 
1001
\begin_layout Plain Layout
1002
Register address
1003
\end_layout
1004
 
1005
\end_inset
1006
1007
1008
\begin_inset Text
1009
 
1010
\begin_layout Plain Layout
1011
I
1012
\end_layout
1013
 
1014
\end_inset
1015
1016
1017
\begin_inset Text
1018
 
1019
\begin_layout Plain Layout
1020
 
1021
\family typewriter
1022
clk
1023
\end_layout
1024
 
1025
\end_inset
1026
1027
1028
1029
1030
\begin_inset Text
1031
 
1032
\begin_layout Plain Layout
1033
 
1034
\family typewriter
1035
reg_dta_in
1036
\end_layout
1037
 
1038
\end_inset
1039
1040
1041
\begin_inset Text
1042
 
1043
\begin_layout Plain Layout
1044
32
1045
\end_layout
1046
 
1047
\end_inset
1048
1049
1050
\begin_inset Text
1051
 
1052
\begin_layout Plain Layout
1053
Register write data
1054
\end_layout
1055
 
1056
\end_inset
1057
1058
1059
\begin_inset Text
1060
 
1061
\begin_layout Plain Layout
1062
I
1063
\end_layout
1064
 
1065
\end_inset
1066
1067
1068
\begin_inset Text
1069
 
1070
\begin_layout Plain Layout
1071
 
1072
\family typewriter
1073
clk
1074
\end_layout
1075
 
1076
\end_inset
1077
1078
1079
1080
1081
\begin_inset Text
1082
 
1083
\begin_layout Plain Layout
1084
 
1085
\family typewriter
1086
reg_wr_en
1087
\end_layout
1088
 
1089
\end_inset
1090
1091
1092
\begin_inset Text
1093
 
1094
\begin_layout Plain Layout
1095
1
1096
\end_layout
1097
 
1098
\end_inset
1099
1100
1101
\begin_inset Text
1102
 
1103
\begin_layout Plain Layout
1104
Register write enable
1105
\end_layout
1106
 
1107
\end_inset
1108
1109
1110
\begin_inset Text
1111
 
1112
\begin_layout Plain Layout
1113
I
1114
\end_layout
1115
 
1116
\end_inset
1117
1118
1119
\begin_inset Text
1120
 
1121
\begin_layout Plain Layout
1122
 
1123
\family typewriter
1124
clk
1125
\end_layout
1126
 
1127
\end_inset
1128
1129
1130
1131
1132
\begin_inset Text
1133
 
1134
\begin_layout Plain Layout
1135
 
1136
\family typewriter
1137
reg_dta_out
1138
\end_layout
1139
 
1140
\end_inset
1141
1142
1143
\begin_inset Text
1144
 
1145
\begin_layout Plain Layout
1146
32
1147
\end_layout
1148
 
1149
\end_inset
1150
1151
1152
\begin_inset Text
1153
 
1154
\begin_layout Plain Layout
1155
Register read data
1156
\end_layout
1157
 
1158
\end_inset
1159
1160
1161
\begin_inset Text
1162
 
1163
\begin_layout Plain Layout
1164
O
1165
\end_layout
1166
 
1167
\end_inset
1168
1169
1170
\begin_inset Text
1171
 
1172
\begin_layout Plain Layout
1173
 
1174
\family typewriter
1175
clk
1176
\end_layout
1177
 
1178
\end_inset
1179
1180
1181
1182
1183
\begin_inset Text
1184
 
1185
\begin_layout Plain Layout
1186
 
1187
\family typewriter
1188
reg_rd_en
1189
\end_layout
1190
 
1191
\end_inset
1192
1193
1194
\begin_inset Text
1195
 
1196
\begin_layout Plain Layout
1197
1
1198
\end_layout
1199
 
1200
\end_inset
1201
1202
1203
\begin_inset Text
1204
 
1205
\begin_layout Plain Layout
1206
Register read enable
1207
\end_layout
1208
 
1209
\end_inset
1210
1211
1212
\begin_inset Text
1213
 
1214
\begin_layout Plain Layout
1215
I
1216
\end_layout
1217
 
1218
\end_inset
1219
1220
1221
\begin_inset Text
1222
 
1223
\begin_layout Plain Layout
1224
 
1225
\family typewriter
1226
clk
1227
\end_layout
1228
 
1229
\end_inset
1230
1231
1232
1233
1234
\begin_inset Text
1235
 
1236
\begin_layout Plain Layout
1237
 
1238
\family typewriter
1239
error
1240
\end_layout
1241
 
1242
\end_inset
1243
1244
1245
\begin_inset Text
1246
 
1247
\begin_layout Plain Layout
1248
1
1249
\end_layout
1250
 
1251
\end_inset
1252
1253
1254
\begin_inset Text
1255
 
1256
\begin_layout Plain Layout
1257
Decoding error flag
1258
\end_layout
1259
 
1260
\end_inset
1261
1262
1263
\begin_inset Text
1264
 
1265
\begin_layout Plain Layout
1266
O
1267
\end_layout
1268
 
1269
\end_inset
1270
1271
1272
\begin_inset Text
1273
 
1274
\begin_layout Plain Layout
1275
 
1276
\family typewriter
1277
clk
1278
\end_layout
1279
 
1280
\end_inset
1281
1282
1283
1284
1285
\begin_inset Text
1286
 
1287
\begin_layout Plain Layout
1288
 
1289
\family typewriter
1290
interrupt
1291
\end_layout
1292
 
1293
\end_inset
1294
1295
1296
\begin_inset Text
1297
 
1298
\begin_layout Plain Layout
1299
1
1300
\end_layout
1301
 
1302
\end_inset
1303
1304
1305
\begin_inset Text
1306
 
1307
\begin_layout Plain Layout
1308
Interrupt
1309
\end_layout
1310
 
1311
\end_inset
1312
1313
1314
\begin_inset Text
1315
 
1316
\begin_layout Plain Layout
1317
O
1318
\end_layout
1319
 
1320
\end_inset
1321
1322
1323
\begin_inset Text
1324
 
1325
\begin_layout Plain Layout
1326
 
1327
\family typewriter
1328
clk
1329
\end_layout
1330
 
1331
\end_inset
1332
1333
1334
1335
1336
\begin_inset Text
1337
 
1338
\begin_layout Plain Layout
1339
 
1340
\family typewriter
1341
watchdog_rst
1342
\end_layout
1343
 
1344
\end_inset
1345
1346
1347
\begin_inset Text
1348
 
1349
\begin_layout Plain Layout
1350
1
1351
\end_layout
1352
 
1353
\end_inset
1354
1355
1356
\begin_inset Text
1357
 
1358
\begin_layout Plain Layout
1359
Watchdog-generated Reset
1360
\end_layout
1361
 
1362
\end_inset
1363
1364
1365
\begin_inset Text
1366
 
1367
\begin_layout Plain Layout
1368
O
1369
\end_layout
1370
 
1371
\end_inset
1372
1373
1374
\begin_inset Text
1375
 
1376
\begin_layout Plain Layout
1377
 
1378
\family typewriter
1379
clk
1380
\end_layout
1381
 
1382
\end_inset
1383
1384
1385
1386
1387
\begin_inset Text
1388
 
1389
\begin_layout Plain Layout
1390
 
1391
\family typewriter
1392
r
1393
\end_layout
1394
 
1395
\end_inset
1396
1397
1398
\begin_inset Text
1399
 
1400
\begin_layout Plain Layout
1401
8
1402
\end_layout
1403
 
1404
\end_inset
1405
1406
1407
\begin_inset Text
1408
 
1409
\begin_layout Plain Layout
1410
Red
1411
\end_layout
1412
 
1413
\end_inset
1414
1415
1416
\begin_inset Text
1417
 
1418
\begin_layout Plain Layout
1419
O
1420
\end_layout
1421
 
1422
\end_inset
1423
1424
1425
\begin_inset Text
1426
 
1427
\begin_layout Plain Layout
1428
 
1429
\family typewriter
1430
dot_clk
1431
\end_layout
1432
 
1433
\end_inset
1434
1435
1436
1437
1438
\begin_inset Text
1439
 
1440
\begin_layout Plain Layout
1441
 
1442
\family typewriter
1443
g
1444
\end_layout
1445
 
1446
\end_inset
1447
1448
1449
\begin_inset Text
1450
 
1451
\begin_layout Plain Layout
1452
8
1453
\end_layout
1454
 
1455
\end_inset
1456
1457
1458
\begin_inset Text
1459
 
1460
\begin_layout Plain Layout
1461
Green
1462
\end_layout
1463
 
1464
\end_inset
1465
1466
1467
\begin_inset Text
1468
 
1469
\begin_layout Plain Layout
1470
O
1471
\end_layout
1472
 
1473
\end_inset
1474
1475
1476
\begin_inset Text
1477
 
1478
\begin_layout Plain Layout
1479
 
1480
\family typewriter
1481
dot_clk
1482
\end_layout
1483
 
1484
\end_inset
1485
1486
1487
1488
1489
\begin_inset Text
1490
 
1491
\begin_layout Plain Layout
1492
 
1493
\family typewriter
1494
b
1495
\end_layout
1496
 
1497
\end_inset
1498
1499
1500
\begin_inset Text
1501
 
1502
\begin_layout Plain Layout
1503
8
1504
\end_layout
1505
 
1506
\end_inset
1507
1508
1509
\begin_inset Text
1510
 
1511
\begin_layout Plain Layout
1512
Blue
1513
\end_layout
1514
 
1515
\end_inset
1516
1517
1518
\begin_inset Text
1519
 
1520
\begin_layout Plain Layout
1521
O
1522
\end_layout
1523
 
1524
\end_inset
1525
1526
1527
\begin_inset Text
1528
 
1529
\begin_layout Plain Layout
1530
 
1531
\family typewriter
1532
dot_clk
1533
\end_layout
1534
 
1535
\end_inset
1536
1537
1538
1539
1540
\begin_inset Text
1541
 
1542
\begin_layout Plain Layout
1543
 
1544
\family typewriter
1545
y
1546
\end_layout
1547
 
1548
\end_inset
1549
1550
1551
\begin_inset Text
1552
 
1553
\begin_layout Plain Layout
1554
8
1555
\end_layout
1556
 
1557
\end_inset
1558
1559
1560
\begin_inset Text
1561
 
1562
\begin_layout Plain Layout
1563
Y Luminance
1564
\end_layout
1565
 
1566
\end_inset
1567
1568
1569
\begin_inset Text
1570
 
1571
\begin_layout Plain Layout
1572
O
1573
\end_layout
1574
 
1575
\end_inset
1576
1577
1578
\begin_inset Text
1579
 
1580
\begin_layout Plain Layout
1581
 
1582
\family typewriter
1583
dot_clk
1584
\end_layout
1585
 
1586
\end_inset
1587
1588
1589
1590
1591
\begin_inset Text
1592
 
1593
\begin_layout Plain Layout
1594
 
1595
\family typewriter
1596
u
1597
\end_layout
1598
 
1599
\end_inset
1600
1601
1602
\begin_inset Text
1603
 
1604
\begin_layout Plain Layout
1605
8
1606
\end_layout
1607
 
1608
\end_inset
1609
1610
1611
\begin_inset Text
1612
 
1613
\begin_layout Plain Layout
1614
Cr Chrominance
1615
\end_layout
1616
 
1617
\end_inset
1618
1619
1620
\begin_inset Text
1621
 
1622
\begin_layout Plain Layout
1623
O
1624
\end_layout
1625
 
1626
\end_inset
1627
1628
1629
\begin_inset Text
1630
 
1631
\begin_layout Plain Layout
1632
 
1633
\family typewriter
1634
dot_clk
1635
\end_layout
1636
 
1637
\end_inset
1638
1639
1640
1641
1642
\begin_inset Text
1643
 
1644
\begin_layout Plain Layout
1645
 
1646
\family typewriter
1647
v
1648
\end_layout
1649
 
1650
\end_inset
1651
1652
1653
\begin_inset Text
1654
 
1655
\begin_layout Plain Layout
1656
8
1657
\end_layout
1658
 
1659
\end_inset
1660
1661
1662
\begin_inset Text
1663
 
1664
\begin_layout Plain Layout
1665
Cb Chrominance
1666
\end_layout
1667
 
1668
\end_inset
1669
1670
1671
\begin_inset Text
1672
 
1673
\begin_layout Plain Layout
1674
O
1675
\end_layout
1676
 
1677
\end_inset
1678
1679
1680
\begin_inset Text
1681
 
1682
\begin_layout Plain Layout
1683
 
1684
\family typewriter
1685
dot_clk
1686
\end_layout
1687
 
1688
\end_inset
1689
1690
1691
1692
1693
\begin_inset Text
1694
 
1695
\begin_layout Plain Layout
1696
 
1697
\family typewriter
1698
pixel_en
1699
\end_layout
1700
 
1701
\end_inset
1702
1703
1704
\begin_inset Text
1705
 
1706
\begin_layout Plain Layout
1707
1
1708
\end_layout
1709
 
1710
\end_inset
1711
1712
1713
\begin_inset Text
1714
 
1715
\begin_layout Plain Layout
1716
Pixel enable
1717
\end_layout
1718
 
1719
\end_inset
1720
1721
1722
\begin_inset Text
1723
 
1724
\begin_layout Plain Layout
1725
O
1726
\end_layout
1727
 
1728
\end_inset
1729
1730
1731
\begin_inset Text
1732
 
1733
\begin_layout Plain Layout
1734
 
1735
\family typewriter
1736
dot_clk
1737
\end_layout
1738
 
1739
\end_inset
1740
1741
1742
1743
1744
\begin_inset Text
1745
 
1746
\begin_layout Plain Layout
1747
 
1748
\family typewriter
1749
h_sync
1750
\end_layout
1751
 
1752
\end_inset
1753
1754
1755
\begin_inset Text
1756
 
1757
\begin_layout Plain Layout
1758
1
1759
\end_layout
1760
 
1761
\end_inset
1762
1763
1764
\begin_inset Text
1765
 
1766
\begin_layout Plain Layout
1767
Horizontal synchronization
1768
\end_layout
1769
 
1770
\end_inset
1771
1772
1773
\begin_inset Text
1774
 
1775
\begin_layout Plain Layout
1776
O
1777
\end_layout
1778
 
1779
\end_inset
1780
1781
1782
\begin_inset Text
1783
 
1784
\begin_layout Plain Layout
1785
 
1786
\family typewriter
1787
dot_clk
1788
\end_layout
1789
 
1790
\end_inset
1791
1792
1793
1794
1795
\begin_inset Text
1796
 
1797
\begin_layout Plain Layout
1798
 
1799
\family typewriter
1800
v_sync
1801
\end_layout
1802
 
1803
\end_inset
1804
1805
1806
\begin_inset Text
1807
 
1808
\begin_layout Plain Layout
1809
1
1810
\end_layout
1811
 
1812
\end_inset
1813
1814
1815
\begin_inset Text
1816
 
1817
\begin_layout Plain Layout
1818
Vertical synchronization
1819
\end_layout
1820
 
1821
\end_inset
1822
1823
1824
\begin_inset Text
1825
 
1826
\begin_layout Plain Layout
1827
O
1828
\end_layout
1829
 
1830
\end_inset
1831
1832
1833
\begin_inset Text
1834
 
1835
\begin_layout Plain Layout
1836
 
1837
\family typewriter
1838
dot_clk
1839
\end_layout
1840
 
1841
\end_inset
1842
1843
1844
1845
1846
\begin_inset Text
1847
 
1848
\begin_layout Plain Layout
1849
 
1850
\family typewriter
1851
c_sync
1852
\end_layout
1853
 
1854
\end_inset
1855
1856
1857
\begin_inset Text
1858
 
1859
\begin_layout Plain Layout
1860
1
1861
\end_layout
1862
 
1863
\end_inset
1864
1865
1866
\begin_inset Text
1867
 
1868
\begin_layout Plain Layout
1869
Composite synchronization
1870
\end_layout
1871
 
1872
\end_inset
1873
1874
1875
\begin_inset Text
1876
 
1877
\begin_layout Plain Layout
1878
O
1879
\end_layout
1880
 
1881
\end_inset
1882
1883
1884
\begin_inset Text
1885
 
1886
\begin_layout Plain Layout
1887
 
1888
\family typewriter
1889
dot_clk
1890
\end_layout
1891
 
1892
\end_inset
1893
1894
1895
1896
1897
\begin_inset Text
1898
 
1899
\begin_layout Plain Layout
1900
 
1901
\family typewriter
1902
mem_req_rd_cmd
1903
\end_layout
1904
 
1905
\end_inset
1906
1907
1908
\begin_inset Text
1909
 
1910
\begin_layout Plain Layout
1911
2
1912
\end_layout
1913
 
1914
\end_inset
1915
1916
1917
\begin_inset Text
1918
 
1919
\begin_layout Plain Layout
1920
Memory request command
1921
\end_layout
1922
 
1923
\end_inset
1924
1925
1926
\begin_inset Text
1927
 
1928
\begin_layout Plain Layout
1929
O
1930
\end_layout
1931
 
1932
\end_inset
1933
1934
1935
\begin_inset Text
1936
 
1937
\begin_layout Plain Layout
1938
 
1939
\family typewriter
1940
mem_clk
1941
\end_layout
1942
 
1943
\end_inset
1944
1945
1946
1947
1948
\begin_inset Text
1949
 
1950
\begin_layout Plain Layout
1951
 
1952
\family typewriter
1953
mem_req_rd_addr
1954
\end_layout
1955
 
1956
\end_inset
1957
1958
1959
\begin_inset Text
1960
 
1961
\begin_layout Plain Layout
1962
22
1963
\end_layout
1964
 
1965
\end_inset
1966
1967
1968
\begin_inset Text
1969
 
1970
\begin_layout Plain Layout
1971
Memory request address
1972
\end_layout
1973
 
1974
\end_inset
1975
1976
1977
\begin_inset Text
1978
 
1979
\begin_layout Plain Layout
1980
O
1981
\end_layout
1982
 
1983
\end_inset
1984
1985
1986
\begin_inset Text
1987
 
1988
\begin_layout Plain Layout
1989
 
1990
\family typewriter
1991
mem_clk
1992
\end_layout
1993
 
1994
\end_inset
1995
1996
1997
1998
1999
\begin_inset Text
2000
 
2001
\begin_layout Plain Layout
2002
 
2003
\family typewriter
2004
mem_req_rd_dta
2005
\end_layout
2006
 
2007
\end_inset
2008
2009
2010
\begin_inset Text
2011
 
2012
\begin_layout Plain Layout
2013
64
2014
\end_layout
2015
 
2016
\end_inset
2017
2018
2019
\begin_inset Text
2020
 
2021
\begin_layout Plain Layout
2022
Memory request data
2023
\end_layout
2024
 
2025
\end_inset
2026
2027
2028
\begin_inset Text
2029
 
2030
\begin_layout Plain Layout
2031
O
2032
\end_layout
2033
 
2034
\end_inset
2035
2036
2037
\begin_inset Text
2038
 
2039
\begin_layout Plain Layout
2040
 
2041
\family typewriter
2042
mem_clk
2043
\end_layout
2044
 
2045
\end_inset
2046
2047
2048
2049
2050
\begin_inset Text
2051
 
2052
\begin_layout Plain Layout
2053
 
2054
\family typewriter
2055
mem_req_rd_en
2056
\end_layout
2057
 
2058
\end_inset
2059
2060
2061
\begin_inset Text
2062
 
2063
\begin_layout Plain Layout
2064
1
2065
\end_layout
2066
 
2067
\end_inset
2068
2069
2070
\begin_inset Text
2071
 
2072
\begin_layout Plain Layout
2073
Memory request read enable
2074
\end_layout
2075
 
2076
\end_inset
2077
2078
2079
\begin_inset Text
2080
 
2081
\begin_layout Plain Layout
2082
I
2083
\end_layout
2084
 
2085
\end_inset
2086
2087
2088
\begin_inset Text
2089
 
2090
\begin_layout Plain Layout
2091
 
2092
\family typewriter
2093
mem_clk
2094
\end_layout
2095
 
2096
\end_inset
2097
2098
2099
2100
2101
\begin_inset Text
2102
 
2103
\begin_layout Plain Layout
2104
 
2105
\family typewriter
2106
mem_req_rd_valid
2107
\end_layout
2108
 
2109
\end_inset
2110
2111
2112
\begin_inset Text
2113
 
2114
\begin_layout Plain Layout
2115
1
2116
\end_layout
2117
 
2118
\end_inset
2119
2120
2121
\begin_inset Text
2122
 
2123
\begin_layout Plain Layout
2124
Memory request valid
2125
\end_layout
2126
 
2127
\end_inset
2128
2129
2130
\begin_inset Text
2131
 
2132
\begin_layout Plain Layout
2133
O
2134
\end_layout
2135
 
2136
\end_inset
2137
2138
2139
\begin_inset Text
2140
 
2141
\begin_layout Plain Layout
2142
 
2143
\family typewriter
2144
mem_clk
2145
\end_layout
2146
 
2147
\end_inset
2148
2149
2150
2151
2152
\begin_inset Text
2153
 
2154
\begin_layout Plain Layout
2155
 
2156
\family typewriter
2157
mem_res_wr_dta
2158
\end_layout
2159
 
2160
\end_inset
2161
2162
2163
\begin_inset Text
2164
 
2165
\begin_layout Plain Layout
2166
64
2167
\end_layout
2168
 
2169
\end_inset
2170
2171
2172
\begin_inset Text
2173
 
2174
\begin_layout Plain Layout
2175
Memory response data
2176
\end_layout
2177
 
2178
\end_inset
2179
2180
2181
\begin_inset Text
2182
 
2183
\begin_layout Plain Layout
2184
I
2185
\end_layout
2186
 
2187
\end_inset
2188
2189
2190
\begin_inset Text
2191
 
2192
\begin_layout Plain Layout
2193
 
2194
\family typewriter
2195
mem_clk
2196
\end_layout
2197
 
2198
\end_inset
2199
2200
2201
2202
2203
\begin_inset Text
2204
 
2205
\begin_layout Plain Layout
2206
 
2207
\family typewriter
2208
mem_res_wr_en
2209
\end_layout
2210
 
2211
\end_inset
2212
2213
2214
\begin_inset Text
2215
 
2216
\begin_layout Plain Layout
2217
1
2218
\end_layout
2219
 
2220
\end_inset
2221
2222
2223
\begin_inset Text
2224
 
2225
\begin_layout Plain Layout
2226
Memory response enable
2227
\end_layout
2228
 
2229
\end_inset
2230
2231
2232
\begin_inset Text
2233
 
2234
\begin_layout Plain Layout
2235
I
2236
\end_layout
2237
 
2238
\end_inset
2239
2240
2241
\begin_inset Text
2242
 
2243
\begin_layout Plain Layout
2244
 
2245
\family typewriter
2246
mem_clk
2247
\end_layout
2248
 
2249
\end_inset
2250
2251
2252
2253
2254
\begin_inset Text
2255
 
2256
\begin_layout Plain Layout
2257
 
2258
\family typewriter
2259
mem_res_wr_almost_full
2260
\end_layout
2261
 
2262
\end_inset
2263
2264
2265
\begin_inset Text
2266
 
2267
\begin_layout Plain Layout
2268
1
2269
\end_layout
2270
 
2271
\end_inset
2272
2273
2274
\begin_inset Text
2275
 
2276
\begin_layout Plain Layout
2277
Memory response almost full
2278
\end_layout
2279
 
2280
\end_inset
2281
2282
2283
\begin_inset Text
2284
 
2285
\begin_layout Plain Layout
2286
O
2287
\end_layout
2288
 
2289
\end_inset
2290
2291
2292
\begin_inset Text
2293
 
2294
\begin_layout Plain Layout
2295
 
2296
\family typewriter
2297
mem_clk
2298
\end_layout
2299
 
2300
\end_inset
2301
2302
2303
2304
2305
\begin_inset Text
2306
 
2307
\begin_layout Plain Layout
2308
 
2309
\family typewriter
2310
testpoint_dip_en
2311
\end_layout
2312
 
2313
\end_inset
2314
2315
2316
\begin_inset Text
2317
 
2318
\begin_layout Plain Layout
2319
1
2320
\end_layout
2321
 
2322
\end_inset
2323
2324
2325
\begin_inset Text
2326
 
2327
\begin_layout Plain Layout
2328
Testpoint dip switches enable
2329
\end_layout
2330
 
2331
\end_inset
2332
2333
2334
\begin_inset Text
2335
 
2336
\begin_layout Plain Layout
2337
I
2338
\end_layout
2339
 
2340
\end_inset
2341
2342
2343
\begin_inset Text
2344
 
2345
\begin_layout Plain Layout
2346
-
2347
\end_layout
2348
 
2349
\end_inset
2350
2351
2352
2353
2354
\begin_inset Text
2355
 
2356
\begin_layout Plain Layout
2357
 
2358
\family typewriter
2359
testpoint_dip
2360
\end_layout
2361
 
2362
\end_inset
2363
2364
2365
\begin_inset Text
2366
 
2367
\begin_layout Plain Layout
2368
4
2369
\end_layout
2370
 
2371
\end_inset
2372
2373
2374
\begin_inset Text
2375
 
2376
\begin_layout Plain Layout
2377
Testpoint dip switches
2378
\end_layout
2379
 
2380
\end_inset
2381
2382
2383
\begin_inset Text
2384
 
2385
\begin_layout Plain Layout
2386
I
2387
\end_layout
2388
 
2389
\end_inset
2390
2391
2392
\begin_inset Text
2393
 
2394
\begin_layout Plain Layout
2395
-
2396
\end_layout
2397
 
2398
\end_inset
2399
2400
2401
2402
2403
\begin_inset Text
2404
 
2405
\begin_layout Plain Layout
2406
 
2407
\family typewriter
2408
testpoint
2409
\end_layout
2410
 
2411
\end_inset
2412
2413
2414
\begin_inset Text
2415
 
2416
\begin_layout Plain Layout
2417
34
2418
\end_layout
2419
 
2420
\end_inset
2421
2422
2423
\begin_inset Text
2424
 
2425
\begin_layout Plain Layout
2426
Logical analyzer test point
2427
\end_layout
2428
 
2429
\end_inset
2430
2431
2432
\begin_inset Text
2433
 
2434
\begin_layout Plain Layout
2435
O
2436
\end_layout
2437
 
2438
\end_inset
2439
2440
2441
\begin_inset Text
2442
 
2443
\begin_layout Plain Layout
2444
-
2445
\end_layout
2446
 
2447
\end_inset
2448
2449
2450
2451
 
2452
\end_inset
2453
 
2454
 
2455
\end_layout
2456
 
2457
\begin_layout Plain Layout
2458
\begin_inset Caption Standard
2459
 
2460
\begin_layout Plain Layout
2461
\begin_inset CommandInset label
2462
LatexCommand label
2463
name "tab:Ports"
2464
 
2465
\end_inset
2466
 
2467
Ports
2468
\end_layout
2469
 
2470
\end_inset
2471
 
2472
 
2473
\end_layout
2474
 
2475
\end_inset
2476
 
2477
 
2478
\end_layout
2479
 
2480
\begin_layout Subsection
2481
Clocks
2482
\end_layout
2483
 
2484
\begin_layout Standard
2485
Up to three different clocks may be supplied to the MPEG2 decoder.
2486
 
2487
\end_layout
2488
 
2489
\begin_layout Labeling
2490
\labelwidthstring 00.00.0000
2491
 
2492
\family typewriter
2493
clk
2494
\family default
2495
 Main decoder clock, input.
2496
 
2497
\end_layout
2498
 
2499
\begin_layout Labeling
2500
\labelwidthstring 00.00.0000
2501
 
2502
\family typewriter
2503
dot_clk
2504
\family default
2505
 Video clock, input.
2506
  Variable frequency, varying with current video modeline.
2507
 
2508
\end_layout
2509
 
2510
\begin_layout Labeling
2511
\labelwidthstring 00.00.0000
2512
 
2513
\family typewriter
2514
mem_clk
2515
\family default
2516
 Memory Controller Clock, input.
2517
 
2518
\end_layout
2519
 
2520
\begin_layout Standard
2521
The decoder produces pixels at a maximum rate of one per
2522
\family typewriter
2523
clk
2524
\family default
2525
 cycle.
2526
 
2527
\end_layout
2528
 
2529
\begin_layout Subsection
2530
Reset
2531
\end_layout
2532
 
2533
\begin_layout Labeling
2534
\labelwidthstring 00.00.0000
2535
 
2536
\family typewriter
2537
rst
2538
\family default
2539
 Asynchronous reset, input, active low, internally synchronized.
2540
 
2541
\end_layout
2542
 
2543
\begin_layout Subsection
2544
Stream Input
2545
\end_layout
2546
 
2547
\begin_layout Labeling
2548
\labelwidthstring 00.00.0000
2549
 
2550
\family typewriter
2551
stream_data
2552
\family default
2553
 8-bit elementary stream data, input, synchronous with
2554
\family typewriter
2555
clk
2556
\family default
2557
, byte aligned.
2558
 The elementary stream is an MPEG2 4:2:0 video elementary stream.
2559
\end_layout
2560
 
2561
\begin_layout Labeling
2562
\labelwidthstring 00.00.0000
2563
 
2564
\family typewriter
2565
stream_valid
2566
\family default
2567
 elementary stream data valid, input, synchronous with
2568
\family typewriter
2569
clk
2570
\family default
2571
.
2572
 Assert when stream_data valid.
2573
\end_layout
2574
 
2575
\begin_layout Labeling
2576
\labelwidthstring 00.00.0000
2577
 
2578
\family typewriter
2579
busy
2580
\family default
2581
 busy, active high, output, synchronous with
2582
\family typewriter
2583
clk
2584
\family default
2585
.
2586
 When high, indicates maintaining
2587
\family typewriter
2588
stream_valid
2589
\family default
2590
 high will overflow decoder input buffers.
2591
\end_layout
2592
 
2593
\begin_layout Subsection
2594
Register File Access
2595
\end_layout
2596
 
2597
\begin_layout Labeling
2598
\labelwidthstring 00.00.0000
2599
 
2600
\family typewriter
2601
reg_addr
2602
\family default
2603
 5-bit register address, input, synchronous with
2604
\family typewriter
2605
clk
2606
\family default
2607
.
2608
\end_layout
2609
 
2610
\begin_layout Labeling
2611
\labelwidthstring 00.00.0000
2612
 
2613
\family typewriter
2614
reg_dta_in
2615
\family default
2616
 32-bit register data in, input, synchronous with
2617
\family typewriter
2618
clk
2619
\family default
2620
.
2621
\end_layout
2622
 
2623
\begin_layout Labeling
2624
\labelwidthstring 00.00.0000
2625
 
2626
\family typewriter
2627
reg_wr_en
2628
\family default
2629
 register write enable, input, active high, synchronous with
2630
\family typewriter
2631
clk
2632
\family default
2633
.
2634
 Assert to write
2635
\family typewriter
2636
reg_dta_in
2637
\family default
2638
 to
2639
\family typewriter
2640
reg_addr
2641
\family default
2642
.
2643
\end_layout
2644
 
2645
\begin_layout Labeling
2646
\labelwidthstring 00.00.0000
2647
 
2648
\family typewriter
2649
reg_dta_out
2650
\family default
2651
 32-bit register data out, output, synchronous with
2652
\family typewriter
2653
clk
2654
\family default
2655
.
2656
\end_layout
2657
 
2658
\begin_layout Labeling
2659
\labelwidthstring 00.00.0000
2660
 
2661
\family typewriter
2662
reg_rd_en
2663
\family default
2664
 Active high register read enable, input, synchronous with
2665
\family typewriter
2666
clk
2667
\family default
2668
.
2669
 Assert to obtain the contents of register
2670
\family typewriter
2671
reg_addr
2672
\family default
2673
 at
2674
\family typewriter
2675
reg_dta_out
2676
\family default
2677
.
2678
\end_layout
2679
 
2680
\begin_layout Subsection
2681
Memory Controller
2682
\end_layout
2683
 
2684
\begin_layout Standard
2685
The interface between MPEG2 decoder and memory controller consists of two
2686
 fifos.
2687
 The memory request FIFO sends memory read, write or refresh requests from
2688
 decoder to memory controller.
2689
 The memory response FIFO sends data read from memory controller to MPEG2
2690
 decoder.
2691
 The data from the memory read requests appears in the memory response FIFO
2692
 in the same order as the memory reads were issued in the memory request
2693
 FIFO.
2694
\end_layout
2695
 
2696
\begin_layout Subsection
2697
Memory Request FIFO
2698
\end_layout
2699
 
2700
\begin_layout Labeling
2701
\labelwidthstring 00.00.0000
2702
 
2703
\family typewriter
2704
mem_req_rd_cmd
2705
\family default
2706
 memory request command, output, synchronous with
2707
\family typewriter
2708
mem_clk
2709
\family default
2710
.
2711
 Valid values are defined in table
2712
\begin_inset CommandInset ref
2713
LatexCommand ref
2714
reference "tab:Memory-controller-commands"
2715
 
2716
\end_inset
2717
 
2718
.
2719
 
2720
\begin_inset Float table
2721
wide false
2722
sideways false
2723
status open
2724
 
2725
\begin_layout Plain Layout
2726
\align center
2727
\begin_inset Tabular
2728
2729
2730
2731
2732
2733
2734
2735
\begin_inset Text
2736
 
2737
\begin_layout Plain Layout
2738
mem_req_rd_cmd
2739
\end_layout
2740
 
2741
\end_inset
2742
2743
2744
\begin_inset Text
2745
 
2746
\begin_layout Plain Layout
2747
Mnemonic
2748
\end_layout
2749
 
2750
\end_inset
2751
2752
2753
\begin_inset Text
2754
 
2755
\begin_layout Plain Layout
2756
Description
2757
\end_layout
2758
 
2759
\end_inset
2760
2761
2762
2763
2764
\begin_inset Text
2765
 
2766
\begin_layout Plain Layout
2767
 
2768
\end_layout
2769
 
2770
\end_inset
2771
2772
2773
\begin_inset Text
2774
 
2775
\begin_layout Plain Layout
2776
CMD_NOOP
2777
\end_layout
2778
 
2779
\end_inset
2780
2781
2782
\begin_inset Text
2783
 
2784
\begin_layout Plain Layout
2785
No operation
2786
\end_layout
2787
 
2788
\end_inset
2789
2790
2791
2792
2793
\begin_inset Text
2794
 
2795
\begin_layout Plain Layout
2796
1
2797
\end_layout
2798
 
2799
\end_inset
2800
2801
2802
\begin_inset Text
2803
 
2804
\begin_layout Plain Layout
2805
CMD_REFRESH
2806
\end_layout
2807
 
2808
\end_inset
2809
2810
2811
\begin_inset Text
2812
 
2813
\begin_layout Plain Layout
2814
Refresh memory
2815
\end_layout
2816
 
2817
\end_inset
2818
2819
2820
2821
2822
\begin_inset Text
2823
 
2824
\begin_layout Plain Layout
2825
2
2826
\end_layout
2827
 
2828
\end_inset
2829
2830
2831
\begin_inset Text
2832
 
2833
\begin_layout Plain Layout
2834
CMD_READ
2835
\end_layout
2836
 
2837
\end_inset
2838
2839
2840
\begin_inset Text
2841
 
2842
\begin_layout Plain Layout
2843
Read 64-bit word
2844
\end_layout
2845
 
2846
\end_inset
2847
2848
2849
2850
2851
\begin_inset Text
2852
 
2853
\begin_layout Plain Layout
2854
3
2855
\end_layout
2856
 
2857
\end_inset
2858
2859
2860
\begin_inset Text
2861
 
2862
\begin_layout Plain Layout
2863
CMD_WRITE
2864
\end_layout
2865
 
2866
\end_inset
2867
2868
2869
\begin_inset Text
2870
 
2871
\begin_layout Plain Layout
2872
Write 64-bit word
2873
\end_layout
2874
 
2875
\end_inset
2876
2877
2878
2879
 
2880
\end_inset
2881
 
2882
 
2883
\end_layout
2884
 
2885
\begin_layout Plain Layout
2886
\begin_inset Caption Standard
2887
 
2888
\begin_layout Plain Layout
2889
\begin_inset CommandInset label
2890
LatexCommand label
2891
name "tab:Memory-controller-commands"
2892
 
2893
\end_inset
2894
 
2895
Memory controller commands
2896
\end_layout
2897
 
2898
\end_inset
2899
 
2900
 
2901
\end_layout
2902
 
2903
\end_inset
2904
 
2905
 
2906
\end_layout
2907
 
2908
\begin_layout Labeling
2909
\labelwidthstring 00.00.0000
2910
 
2911
\family typewriter
2912
mem_req_rd_addr
2913
\family default
2914
 22-bit memory request address, output, synchronous with
2915
\family typewriter
2916
mem_clk
2917
\family default
2918
.
2919
\end_layout
2920
 
2921
\begin_layout Labeling
2922
\labelwidthstring 00.00.0000
2923
 
2924
\family typewriter
2925
mem_req_rd_dta
2926
\family default
2927
 64-bit memory request data, output, synchronous with
2928
\family typewriter
2929
mem_clk
2930
\family default
2931
.
2932
\end_layout
2933
 
2934
\begin_layout Labeling
2935
\labelwidthstring 00.00.0000
2936
 
2937
\family typewriter
2938
mem_req_rd_en
2939
\family default
2940
 memory request read enable, input, active high, synchronous  with
2941
\family typewriter
2942
mem_clk
2943
\family default
2944
.
2945
\end_layout
2946
 
2947
\begin_layout Labeling
2948
\labelwidthstring 00.00.0000
2949
 
2950
\family typewriter
2951
mem_req_rd_valid
2952
\family default
2953
 memory request read valid, output, active high, synchronous  with
2954
\family typewriter
2955
mem_clk
2956
\family default
2957
.
2958
 Indicates when
2959
\family typewriter
2960
mem_req_rd_cmd
2961
\family default
2962
,
2963
\family typewriter
2964
mem_req_rd_addr
2965
\family default
2966
 and
2967
\family typewriter
2968
mem_req_rd_dta
2969
\family default
2970
 have meaningful values.
2971
\end_layout
2972
 
2973
\begin_layout Subsection
2974
Memory Response FIFO
2975
\end_layout
2976
 
2977
\begin_layout Labeling
2978
\labelwidthstring 00.00.0000
2979
 
2980
\family typewriter
2981
mem_res_wr_dta
2982
\family default
2983
 64-bit memory response write data, input, synchronous with
2984
\family typewriter
2985
mem_clk
2986
\family default
2987
.
2988
\end_layout
2989
 
2990
\begin_layout Labeling
2991
\labelwidthstring 00.00.0000
2992
 
2993
\family typewriter
2994
mem_res_wr_en
2995
\family default
2996
 memory response write enable, input, active high, synchronous  with
2997
\family typewriter
2998
mem_clk
2999
\family default
3000
.
3001
 Assert to write
3002
\family typewriter
3003
mem_res_wr_dta
3004
\family default
3005
 to the memory response FIFO.
3006
 
3007
\end_layout
3008
 
3009
\begin_layout Labeling
3010
\labelwidthstring 00.00.0000
3011
 
3012
\family typewriter
3013
mem_res_wr_almost_full
3014
\family default
3015
 memory response write almost full, output, active  high, synchronous with
3016
 mem_clk.
3017
 When high, indicates maintaining
3018
\family typewriter
3019
mem_res_wr_en
3020
\family default
3021
 high will overflow the memory response FIFO.
3022
 The current clock cycle can be completed without overflowing the memory
3023
 response FIFO.
3024
\end_layout
3025
 
3026
\begin_layout Subsection
3027
Video Output
3028
\end_layout
3029
 
3030
\begin_layout Labeling
3031
\labelwidthstring 00.00.0000
3032
 
3033
\family typewriter
3034
r
3035
\family default
3036
 red component, output, synchronous with
3037
\family typewriter
3038
dot_clk
3039
\family default
3040
.
3041
\end_layout
3042
 
3043
\begin_layout Labeling
3044
\labelwidthstring 00.00.0000
3045
 
3046
\family typewriter
3047
g
3048
\family default
3049
 green component, output, synchronous with
3050
\family typewriter
3051
dot_clk
3052
\family default
3053
.
3054
\end_layout
3055
 
3056
\begin_layout Labeling
3057
\labelwidthstring 00.00.0000
3058
 
3059
\family typewriter
3060
b
3061
\family default
3062
 blue component, output, synchronous with
3063
\family typewriter
3064
dot_clk
3065
\family default
3066
.
3067
\end_layout
3068
 
3069
\begin_layout Labeling
3070
\labelwidthstring 00.00.0000
3071
 
3072
\family typewriter
3073
y
3074
\family default
3075
 Y luminance, output, synchronous with
3076
\family typewriter
3077
dot_clk
3078
\family default
3079
.
3080
\end_layout
3081
 
3082
\begin_layout Labeling
3083
\labelwidthstring 00.00.0000
3084
 
3085
\family typewriter
3086
u
3087
\family default
3088
 Cr chrominance, output, synchronous with
3089
\family typewriter
3090
dot_clk
3091
\family default
3092
.
3093
\end_layout
3094
 
3095
\begin_layout Labeling
3096
\labelwidthstring 00.00.0000
3097
 
3098
\family typewriter
3099
v
3100
\family default
3101
 Cb chrominance, output, synchronous with
3102
\family typewriter
3103
dot_clk
3104
\family default
3105
.
3106
\end_layout
3107
 
3108
\begin_layout Labeling
3109
\labelwidthstring 00.00.0000
3110
 
3111
\family typewriter
3112
pixel_en
3113
\family default
3114
 pixel enable, output, active high, synchronous with
3115
\family typewriter
3116
dot_clk
3117
\family default
3118
.
3119
 When
3120
\family typewriter
3121
pixel_en
3122
\family default
3123
 is high,
3124
\family typewriter
3125
r
3126
\family default
3127
,
3128
\family typewriter
3129
g
3130
\family default
3131
,
3132
\family typewriter
3133
b
3134
\family default
3135
,
3136
\family typewriter
3137
y
3138
\family default
3139
,
3140
\family typewriter
3141
u
3142
\family default
3143
 and
3144
\family typewriter
3145
v
3146
\family default
3147
 are valid; when
3148
\family typewriter
3149
pixel_en
3150
\family default
3151
 is low video is blanked.
3152
\end_layout
3153
 
3154
\begin_layout Labeling
3155
\labelwidthstring 00.00.0000
3156
 
3157
\family typewriter
3158
h_sync
3159
\family default
3160
 horizontal synchronization, output, active high, synchronous with
3161
\family typewriter
3162
dot_clk
3163
\family default
3164
.
3165
\end_layout
3166
 
3167
\begin_layout Labeling
3168
\labelwidthstring 00.00.0000
3169
 
3170
\family typewriter
3171
v_sync
3172
\family default
3173
 vertical synchronization, output, active high, synchronous with
3174
\family typewriter
3175
dot_clk
3176
\family default
3177
.
3178
\end_layout
3179
 
3180
\begin_layout Labeling
3181
\labelwidthstring 00.00.0000
3182
 
3183
\family typewriter
3184
c_sync
3185
\family default
3186
 composite synchronization, output, active low, synchronous with
3187
\family typewriter
3188
dot_clk
3189
\family default
3190
.
3191
\end_layout
3192
 
3193
\begin_layout Subsection
3194
Test Point
3195
\end_layout
3196
 
3197
\begin_layout Standard
3198
The decoder provides a test point for connecting a logic analyzer.
3199
 The signals available at the test point can be selected either by software
3200
 control, or using dip switches.
3201
 The signals available at the test point are not defined as part of this
3202
 specification, may vary even for implementations with the same status register
3203
 version number and are subject to change without notice.
3204
 See Verilog source
3205
\family typewriter
3206
probe.v
3207
\family default
3208
 for details.
3209
\end_layout
3210
 
3211
\begin_layout Labeling
3212
\labelwidthstring 00.00.0000
3213
 
3214
\family typewriter
3215
testpoint_dip_en
3216
\family default
3217
 1-bit input.
3218
 If
3219
\family typewriter
3220
testpoint_dip_en
3221
\family default
3222
 is high, the registers visible at
3223
\family typewriter
3224
testpoint
3225
\family default
3226
 are selected using
3227
\family typewriter
3228
testpoint_dip
3229
\family default
3230
.
3231
 If
3232
\family typewriter
3233
testpoint_dip_en
3234
\family default
3235
 is low, the registers visible at
3236
\family typewriter
3237
testpoint
3238
\family default
3239
 output are selected using the
3240
\family typewriter
3241
testpoint_sel
3242
\family default
3243
 field of register 15.
3244
\end_layout
3245
 
3246
\begin_layout Labeling
3247
\labelwidthstring 00.00.0000
3248
 
3249
\family typewriter
3250
testpoint_dip
3251
\family default
3252
  4-bit input.
3253
 
3254
\family typewriter
3255
testpoint_dip
3256
\family default
3257
 selects test point output if
3258
\family typewriter
3259
testpoint_dip_en
3260
\family default
3261
 is high.
3262
\end_layout
3263
 
3264
\begin_layout Labeling
3265
\labelwidthstring 00.00.0000
3266
 
3267
\family typewriter
3268
testpoint
3269
\family default
3270
  34-bit output.
3271
 
3272
\family typewriter
3273
testpoint
3274
\family default
3275
 is a test point to connect a 34-channel logic analyzer probe to the MPEG2
3276
 decoder.
3277
 Up to 16 different sets of signals are available, hardware selectable using
3278
 the
3279
\family typewriter
3280
testpoint_dip
3281
\family default
3282
 dip switches or software selectable by writing to register 15.
3283
 Any clocks present are on bits 32 and/or 33; bits 0 to 31 are data only.
3284
 Bits 0 to 31 can also be accessed by software, by reading register 15.
3285
 
3286
\end_layout
3287
 
3288
\begin_layout Subsection
3289
Status
3290
\end_layout
3291
 
3292
\begin_layout Labeling
3293
\labelwidthstring 00.00.0000
3294
 
3295
\family typewriter
3296
error
3297
\family default
3298
 error, output, active high, synchronous with
3299
\family typewriter
3300
clk
3301
\family default
3302
.
3303
 Indicates variable length decoding encountered an error in the bitstream.
3304
\end_layout
3305
 
3306
\begin_layout Labeling
3307
\labelwidthstring 00.00.0000
3308
 
3309
\family typewriter
3310
interrupt
3311
\family default
3312
 interrupt, output, active high, synchronous with
3313
\family typewriter
3314
clk
3315
\family default
3316
.
3317
 Reading the status register allows software to determine the cause of the
3318
 interrupt, and will clear the interrupt.
3319
\end_layout
3320
 
3321
\begin_layout Labeling
3322
\labelwidthstring 00.00.0000
3323
 
3324
\family typewriter
3325
watchdog_rst
3326
\family roman
3327
\series medium
3328
\shape up
3329
\size normal
3330
\emph off
3331
\bar no
3332
\noun off
3333
\color none
3334
 watchdog-generated reset signal, output, active low,
3335
\family default
3336
\series default
3337
\shape default
3338
\size default
3339
\emph default
3340
\bar default
3341
\noun default
3342
\color inherit
3343
synchronous with
3344
\family typewriter
3345
clk
3346
\family default
3347
.
3348
 Normally high; low during one clock cycle if the watchdog timer expires.
3349
\end_layout
3350
 
3351
\begin_layout Section
3352
Processor Tasks
3353
\end_layout
3354
 
3355
\begin_layout Standard
3356
To decode an MPEG-2 bitstream, the processor should execute the following
3357
 tasks, in order:
3358
\end_layout
3359
 
3360
\begin_layout Enumerate
3361
Initialize the horizontal, horizontal sync, vertical, vertical sync and
3362
 video mode registers with reasonable defaults.
3363
 Clear
3364
\family typewriter
3365
osd_enable
3366
\family default
3367
,
3368
\family typewriter
3369
picture_hdr_intr_en
3370
\family default
3371
 and
3372
\family typewriter
3373
frame_end_intr_en
3374
\family default
3375
.
3376
 Set the
3377
\family typewriter
3378
video_ch_intr_en
3379
\family default
3380
 flag.
3381
\end_layout
3382
 
3383
\begin_layout Enumerate
3384
Start feeding the MPEG-2 bitstream to the
3385
\family typewriter
3386
stream_data
3387
\family default
3388
 port of the decoder.
3389
\end_layout
3390
 
3391
\begin_layout Enumerate
3392
The decoder will issue an interrupt when video resolution or frame rate
3393
 changes.
3394
 Whenever the decoder issues an interrupt, clear the interrupt by reading
3395
 the status register.
3396
 Read the size, display size and frame rate registers.
3397
 Calculate a new modeline, change dot clock frequency if necessary, and
3398
 write the new video timing parameters to the horizontal, horizontal sync,
3399
 vertical, vertical sync and video mode registers.
3400
\end_layout
3401
 
3402
\begin_layout Enumerate
3403
At bitstream end, pad the stream with 8 times hex 000001b7, the sequence
3404
 end code (ISO/IEC 13818-2, par.
3405
 6.2.1, Start Codes).
3406
\end_layout
3407
 
3408
\begin_layout Standard
3409
If the On-Screen Display (OSD) is used, the processor should execute the
3410
 following tasks as well:
3411
\end_layout
3412
 
3413
\begin_layout Enumerate
3414
Initialize the On-Screen Display color look-up table.
3415
\end_layout
3416
 
3417
\begin_layout Enumerate
3418
Wait until
3419
\family typewriter
3420
horizontal_size
3421
\family default
3422
 and
3423
\family typewriter
3424
vertical_size
3425
\family default
3426
 have meaningful values.
3427
\end_layout
3428
 
3429
\begin_layout Enumerate
3430
Write to the On-Screen Display.
3431
\end_layout
3432
 
3433
\begin_layout Enumerate
3434
Set
3435
\family typewriter
3436
osd_enable
3437
\family default
3438
 to one.
3439
\end_layout
3440
 
3441
\begin_layout Enumerate
3442
If a video change interrupt occurs, and
3443
\family typewriter
3444
horizontal_size
3445
\family default
3446
 or
3447
\family typewriter
3448
vertical_size
3449
\family default
3450
 has changed, rewrite the On-Screen Display.
3451
\end_layout
3452
 
3453
\begin_layout Standard
3454
Writing to the OSD is described in detail
3455
\begin_inset CommandInset ref
3456
LatexCommand vpageref
3457
reference "sec:On-Screen-Display"
3458
 
3459
\end_inset
3460
 
3461
.
3462
 Interrupt handling is treated
3463
\begin_inset CommandInset ref
3464
LatexCommand vpageref
3465
reference "sec:Interrupts"
3466
 
3467
\end_inset
3468
 
3469
.
3470
\end_layout
3471
 
3472
\begin_layout Section
3473
Registers
3474
\end_layout
3475
 
3476
\begin_layout Standard
3477
The processor interface to the decoder consists of two times 16 32-bit registers.
3478
 These registers can be divided in 16 read-mode registers (Table
3479
\begin_inset CommandInset ref
3480
LatexCommand ref
3481
reference "tab:Read-mode-Registers"
3482
 
3483
\end_inset
3484
 
3485
) and 16 write-mode registers (Table
3486
\begin_inset CommandInset ref
3487
LatexCommand ref
3488
reference "tab:Write-mode-Registers"
3489
 
3490
\end_inset
3491
 
3492
).
3493
 The read-mode registers allow reading decoder status, while the write-mode
3494
 registers allow setting video timing parameters and writing to the On-Screen
3495
 Display (OSD).
3496
\begin_inset Float table
3497
wide false
3498
sideways false
3499
status open
3500
 
3501
\begin_layout Plain Layout
3502
\align center
3503
\begin_inset Tabular
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
\begin_inset Text
3514
 
3515
\begin_layout Plain Layout
3516
 
3517
\end_layout
3518
 
3519
\end_inset
3520
3521
3522
\begin_inset Text
3523
 
3524
\begin_layout Plain Layout
3525
register
3526
\end_layout
3527
 
3528
\end_inset
3529
3530
3531
\begin_inset Text
3532
 
3533
\begin_layout Plain Layout
3534
bits
3535
\end_layout
3536
 
3537
\end_inset
3538
3539
3540
\begin_inset Text
3541
 
3542
\begin_layout Plain Layout
3543
content
3544
\end_layout
3545
 
3546
\end_inset
3547
3548
3549
\begin_inset Text
3550
 
3551
\begin_layout Plain Layout
3552
read/write
3553
\end_layout
3554
 
3555
\end_inset
3556
3557
3558
3559
3560
\begin_inset Text
3561
 
3562
\begin_layout Plain Layout
3563
 
3564
\end_layout
3565
 
3566
\end_inset
3567
3568
3569
\begin_inset Text
3570
 
3571
\begin_layout Plain Layout
3572
version
3573
\end_layout
3574
 
3575
\end_inset
3576
3577
3578
\begin_inset Text
3579
 
3580
\begin_layout Plain Layout
3581
15-0
3582
\end_layout
3583
 
3584
\end_inset
3585
3586
3587
\begin_inset Text
3588
 
3589
\begin_layout Plain Layout
3590
 
3591
\family typewriter
3592
version
3593
\end_layout
3594
 
3595
\end_inset
3596
3597
3598
\begin_inset Text
3599
 
3600
\begin_layout Plain Layout
3601
r
3602
\end_layout
3603
 
3604
\end_inset
3605
3606
3607
3608
3609
\begin_inset Text
3610
 
3611
\begin_layout Plain Layout
3612
1
3613
\end_layout
3614
 
3615
\end_inset
3616
3617
3618
\begin_inset Text
3619
 
3620
\begin_layout Plain Layout
3621
status
3622
\end_layout
3623
 
3624
\end_inset
3625
3626
3627
\begin_inset Text
3628
 
3629
\begin_layout Plain Layout
3630
15-8
3631
\end_layout
3632
 
3633
\end_inset
3634
3635
3636
\begin_inset Text
3637
 
3638
\begin_layout Plain Layout
3639
 
3640
\family typewriter
3641
matrix_coefficients
3642
\end_layout
3643
 
3644
\end_inset
3645
3646
3647
\begin_inset Text
3648
 
3649
\begin_layout Plain Layout
3650
r
3651
\end_layout
3652
 
3653
\end_inset
3654
3655
3656
3657
3658
\begin_inset Text
3659
 
3660
\begin_layout Plain Layout
3661
 
3662
\end_layout
3663
 
3664
\end_inset
3665
3666
3667
\begin_inset Text
3668
 
3669
\begin_layout Plain Layout
3670
 
3671
\end_layout
3672
 
3673
\end_inset
3674
3675
3676
\begin_inset Text
3677
 
3678
\begin_layout Plain Layout
3679
7
3680
\end_layout
3681
 
3682
\end_inset
3683
3684
3685
\begin_inset Text
3686
 
3687
\begin_layout Plain Layout
3688
 
3689
\family typewriter
3690
watchdog_status
3691
\end_layout
3692
 
3693
\end_inset
3694
3695
3696
\begin_inset Text
3697
 
3698
\begin_layout Plain Layout
3699
r
3700
\end_layout
3701
 
3702
\end_inset
3703
3704
3705
3706
3707
\begin_inset Text
3708
 
3709
\begin_layout Plain Layout
3710
 
3711
\end_layout
3712
 
3713
\end_inset
3714
3715
3716
\begin_inset Text
3717
 
3718
\begin_layout Plain Layout
3719
 
3720
\end_layout
3721
 
3722
\end_inset
3723
3724
3725
\begin_inset Text
3726
 
3727
\begin_layout Plain Layout
3728
6
3729
\end_layout
3730
 
3731
\end_inset
3732
3733
3734
\begin_inset Text
3735
 
3736
\begin_layout Plain Layout
3737
 
3738
\family typewriter
3739
osd_wr_en
3740
\end_layout
3741
 
3742
\end_inset
3743
3744
3745
\begin_inset Text
3746
 
3747
\begin_layout Plain Layout
3748
r
3749
\end_layout
3750
 
3751
\end_inset
3752
3753
3754
3755
3756
\begin_inset Text
3757
 
3758
\begin_layout Plain Layout
3759
 
3760
\end_layout
3761
 
3762
\end_inset
3763
3764
3765
\begin_inset Text
3766
 
3767
\begin_layout Plain Layout
3768
 
3769
\end_layout
3770
 
3771
\end_inset
3772
3773
3774
\begin_inset Text
3775
 
3776
\begin_layout Plain Layout
3777
5
3778
\end_layout
3779
 
3780
\end_inset
3781
3782
3783
\begin_inset Text
3784
 
3785
\begin_layout Plain Layout
3786
 
3787
\family typewriter
3788
osd_wr_ack
3789
\end_layout
3790
 
3791
\end_inset
3792
3793
3794
\begin_inset Text
3795
 
3796
\begin_layout Plain Layout
3797
r
3798
\end_layout
3799
 
3800
\end_inset
3801
3802
3803
3804
3805
\begin_inset Text
3806
 
3807
\begin_layout Plain Layout
3808
 
3809
\end_layout
3810
 
3811
\end_inset
3812
3813
3814
\begin_inset Text
3815
 
3816
\begin_layout Plain Layout
3817
 
3818
\end_layout
3819
 
3820
\end_inset
3821
3822
3823
\begin_inset Text
3824
 
3825
\begin_layout Plain Layout
3826
4
3827
\end_layout
3828
 
3829
\end_inset
3830
3831
3832
\begin_inset Text
3833
 
3834
\begin_layout Plain Layout
3835
 
3836
\family typewriter
3837
osd_wr_full
3838
\end_layout
3839
 
3840
\end_inset
3841
3842
3843
\begin_inset Text
3844
 
3845
\begin_layout Plain Layout
3846
r
3847
\end_layout
3848
 
3849
\end_inset
3850
3851
3852
3853
3854
\begin_inset Text
3855
 
3856
\begin_layout Plain Layout
3857
 
3858
\end_layout
3859
 
3860
\end_inset
3861
3862
3863
\begin_inset Text
3864
 
3865
\begin_layout Plain Layout
3866
 
3867
\end_layout
3868
 
3869
\end_inset
3870
3871
3872
\begin_inset Text
3873
 
3874
\begin_layout Plain Layout
3875
3
3876
\end_layout
3877
 
3878
\end_inset
3879
3880
3881
\begin_inset Text
3882
 
3883
\begin_layout Plain Layout
3884
 
3885
\family typewriter
3886
picture_hdr
3887
\end_layout
3888
 
3889
\end_inset
3890
3891
3892
\begin_inset Text
3893
 
3894
\begin_layout Plain Layout
3895
r
3896
\end_layout
3897
 
3898
\end_inset
3899
3900
3901
3902
3903
\begin_inset Text
3904
 
3905
\begin_layout Plain Layout
3906
 
3907
\end_layout
3908
 
3909
\end_inset
3910
3911
3912
\begin_inset Text
3913
 
3914
\begin_layout Plain Layout
3915
 
3916
\end_layout
3917
 
3918
\end_inset
3919
3920
3921
\begin_inset Text
3922
 
3923
\begin_layout Plain Layout
3924
2
3925
\end_layout
3926
 
3927
\end_inset
3928
3929
3930
\begin_inset Text
3931
 
3932
\begin_layout Plain Layout
3933
 
3934
\family typewriter
3935
frame_end
3936
\end_layout
3937
 
3938
\end_inset
3939
3940
3941
\begin_inset Text
3942
 
3943
\begin_layout Plain Layout
3944
r
3945
\end_layout
3946
 
3947
\end_inset
3948
3949
3950
3951
3952
\begin_inset Text
3953
 
3954
\begin_layout Plain Layout
3955
 
3956
\end_layout
3957
 
3958
\end_inset
3959
3960
3961
\begin_inset Text
3962
 
3963
\begin_layout Plain Layout
3964
 
3965
\end_layout
3966
 
3967
\end_inset
3968
3969
3970
\begin_inset Text
3971
 
3972
\begin_layout Plain Layout
3973
1
3974
\end_layout
3975
 
3976
\end_inset
3977
3978
3979
\begin_inset Text
3980
 
3981
\begin_layout Plain Layout
3982
 
3983
\family typewriter
3984
video_ch
3985
\end_layout
3986
 
3987
\end_inset
3988
3989
3990
\begin_inset Text
3991
 
3992
\begin_layout Plain Layout
3993
r
3994
\end_layout
3995
 
3996
\end_inset
3997
3998
3999
4000
4001
\begin_inset Text
4002
 
4003
\begin_layout Plain Layout
4004
 
4005
\end_layout
4006
 
4007
\end_inset
4008
4009
4010
\begin_inset Text
4011
 
4012
\begin_layout Plain Layout
4013
 
4014
\end_layout
4015
 
4016
\end_inset
4017
4018
4019
\begin_inset Text
4020
 
4021
\begin_layout Plain Layout
4022
 
4023
\end_layout
4024
 
4025
\end_inset
4026
4027
4028
\begin_inset Text
4029
 
4030
\begin_layout Plain Layout
4031
 
4032
\family typewriter
4033
error
4034
\end_layout
4035
 
4036
\end_inset
4037
4038
4039
\begin_inset Text
4040
 
4041
\begin_layout Plain Layout
4042
r
4043
\end_layout
4044
 
4045
\end_inset
4046
4047
4048
4049
4050
\begin_inset Text
4051
 
4052
\begin_layout Plain Layout
4053
2
4054
\end_layout
4055
 
4056
\end_inset
4057
4058
4059
\begin_inset Text
4060
 
4061
\begin_layout Plain Layout
4062
size
4063
\end_layout
4064
 
4065
\end_inset
4066
4067
4068
\begin_inset Text
4069
 
4070
\begin_layout Plain Layout
4071
29-16
4072
\end_layout
4073
 
4074
\end_inset
4075
4076
4077
\begin_inset Text
4078
 
4079
\begin_layout Plain Layout
4080
 
4081
\family typewriter
4082
horizontal_size
4083
\end_layout
4084
 
4085
\end_inset
4086
4087
4088
\begin_inset Text
4089
 
4090
\begin_layout Plain Layout
4091
r
4092
\end_layout
4093
 
4094
\end_inset
4095
4096
4097
4098
4099
\begin_inset Text
4100
 
4101
\begin_layout Plain Layout
4102
 
4103
\end_layout
4104
 
4105
\end_inset
4106
4107
4108
\begin_inset Text
4109
 
4110
\begin_layout Plain Layout
4111
 
4112
\end_layout
4113
 
4114
\end_inset
4115
4116
4117
\begin_inset Text
4118
 
4119
\begin_layout Plain Layout
4120
13-0
4121
\end_layout
4122
 
4123
\end_inset
4124
4125
4126
\begin_inset Text
4127
 
4128
\begin_layout Plain Layout
4129
 
4130
\family typewriter
4131
vertical_size
4132
\end_layout
4133
 
4134
\end_inset
4135
4136
4137
\begin_inset Text
4138
 
4139
\begin_layout Plain Layout
4140
r
4141
\end_layout
4142
 
4143
\end_inset
4144
4145
4146
4147
4148
\begin_inset Text
4149
 
4150
\begin_layout Plain Layout
4151
3
4152
\end_layout
4153
 
4154
\end_inset
4155
4156
4157
\begin_inset Text
4158
 
4159
\begin_layout Plain Layout
4160
display size
4161
\end_layout
4162
 
4163
\end_inset
4164
4165
4166
\begin_inset Text
4167
 
4168
\begin_layout Plain Layout
4169
29-16
4170
\end_layout
4171
 
4172
\end_inset
4173
4174
4175
\begin_inset Text
4176
 
4177
\begin_layout Plain Layout
4178
 
4179
\family typewriter
4180
display_horizontal_size
4181
\end_layout
4182
 
4183
\end_inset
4184
4185
4186
\begin_inset Text
4187
 
4188
\begin_layout Plain Layout
4189
r
4190
\end_layout
4191
 
4192
\end_inset
4193
4194
4195
4196
4197
\begin_inset Text
4198
 
4199
\begin_layout Plain Layout
4200
 
4201
\end_layout
4202
 
4203
\end_inset
4204
4205
4206
\begin_inset Text
4207
 
4208
\begin_layout Plain Layout
4209
 
4210
\end_layout
4211
 
4212
\end_inset
4213
4214
4215
\begin_inset Text
4216
 
4217
\begin_layout Plain Layout
4218
13-0
4219
\end_layout
4220
 
4221
\end_inset
4222
4223
4224
\begin_inset Text
4225
 
4226
\begin_layout Plain Layout
4227
 
4228
\family typewriter
4229
display_vertical_size
4230
\end_layout
4231
 
4232
\end_inset
4233
4234
4235
\begin_inset Text
4236
 
4237
\begin_layout Plain Layout
4238
r
4239
\end_layout
4240
 
4241
\end_inset
4242
4243
4244
4245
4246
\begin_inset Text
4247
 
4248
\begin_layout Plain Layout
4249
4
4250
\end_layout
4251
 
4252
\end_inset
4253
4254
4255
\begin_inset Text
4256
 
4257
\begin_layout Plain Layout
4258
frame rate
4259
\end_layout
4260
 
4261
\end_inset
4262
4263
4264
\begin_inset Text
4265
 
4266
\begin_layout Plain Layout
4267
15-12
4268
\end_layout
4269
 
4270
\end_inset
4271
4272
4273
\begin_inset Text
4274
 
4275
\begin_layout Plain Layout
4276
 
4277
\family typewriter
4278
aspect_ratio_information
4279
\end_layout
4280
 
4281
\end_inset
4282
4283
4284
\begin_inset Text
4285
 
4286
\begin_layout Plain Layout
4287
r
4288
\end_layout
4289
 
4290
\end_inset
4291
4292
4293
4294
4295
\begin_inset Text
4296
 
4297
\begin_layout Plain Layout
4298
 
4299
\end_layout
4300
 
4301
\end_inset
4302
4303
4304
\begin_inset Text
4305
 
4306
\begin_layout Plain Layout
4307
 
4308
\end_layout
4309
 
4310
\end_inset
4311
4312
4313
\begin_inset Text
4314
 
4315
\begin_layout Plain Layout
4316
11
4317
\end_layout
4318
 
4319
\end_inset
4320
4321
4322
\begin_inset Text
4323
 
4324
\begin_layout Plain Layout
4325
 
4326
\family typewriter
4327
progressive_sequence
4328
\end_layout
4329
 
4330
\end_inset
4331
4332
4333
\begin_inset Text
4334
 
4335
\begin_layout Plain Layout
4336
r
4337
\end_layout
4338
 
4339
\end_inset
4340
4341
4342
4343
4344
\begin_inset Text
4345
 
4346
\begin_layout Plain Layout
4347
 
4348
\end_layout
4349
 
4350
\end_inset
4351
4352
4353
\begin_inset Text
4354
 
4355
\begin_layout Plain Layout
4356
 
4357
\end_layout
4358
 
4359
\end_inset
4360
4361
4362
\begin_inset Text
4363
 
4364
\begin_layout Plain Layout
4365
10-6
4366
\end_layout
4367
 
4368
\end_inset
4369
4370
4371
\begin_inset Text
4372
 
4373
\begin_layout Plain Layout
4374
 
4375
\family typewriter
4376
frame_rate_extension_d
4377
\end_layout
4378
 
4379
\end_inset
4380
4381
4382
\begin_inset Text
4383
 
4384
\begin_layout Plain Layout
4385
r
4386
\end_layout
4387
 
4388
\end_inset
4389
4390
4391
4392
4393
\begin_inset Text
4394
 
4395
\begin_layout Plain Layout
4396
 
4397
\end_layout
4398
 
4399
\end_inset
4400
4401
4402
\begin_inset Text
4403
 
4404
\begin_layout Plain Layout
4405
 
4406
\end_layout
4407
 
4408
\end_inset
4409
4410
4411
\begin_inset Text
4412
 
4413
\begin_layout Plain Layout
4414
5-4
4415
\end_layout
4416
 
4417
\end_inset
4418
4419
4420
\begin_inset Text
4421
 
4422
\begin_layout Plain Layout
4423
 
4424
\family typewriter
4425
frame_rate_extension_n
4426
\end_layout
4427
 
4428
\end_inset
4429
4430
4431
\begin_inset Text
4432
 
4433
\begin_layout Plain Layout
4434
r
4435
\end_layout
4436
 
4437
\end_inset
4438
4439
4440
4441
4442
\begin_inset Text
4443
 
4444
\begin_layout Plain Layout
4445
 
4446
\end_layout
4447
 
4448
\end_inset
4449
4450
4451
\begin_inset Text
4452
 
4453
\begin_layout Plain Layout
4454
 
4455
\end_layout
4456
 
4457
\end_inset
4458
4459
4460
\begin_inset Text
4461
 
4462
\begin_layout Plain Layout
4463
3-0
4464
\end_layout
4465
 
4466
\end_inset
4467
4468
4469
\begin_inset Text
4470
 
4471
\begin_layout Plain Layout
4472
 
4473
\family typewriter
4474
frame_rate_code
4475
\end_layout
4476
 
4477
\end_inset
4478
4479
4480
\begin_inset Text
4481
 
4482
\begin_layout Plain Layout
4483
r
4484
\end_layout
4485
 
4486
\end_inset
4487
4488
4489
4490
4491
\begin_inset Text
4492
 
4493
\begin_layout Plain Layout
4494
f
4495
\end_layout
4496
 
4497
\end_inset
4498
4499
4500
\begin_inset Text
4501
 
4502
\begin_layout Plain Layout
4503
testpoint
4504
\end_layout
4505
 
4506
\end_inset
4507
4508
4509
\begin_inset Text
4510
 
4511
\begin_layout Plain Layout
4512
31-0
4513
\end_layout
4514
 
4515
\end_inset
4516
4517
4518
\begin_inset Text
4519
 
4520
\begin_layout Plain Layout
4521
 
4522
\family typewriter
4523
testpoint
4524
\end_layout
4525
 
4526
\end_inset
4527
4528
4529
\begin_inset Text
4530
 
4531
\begin_layout Plain Layout
4532
r
4533
\end_layout
4534
 
4535
\end_inset
4536
4537
4538
4539
 
4540
\end_inset
4541
 
4542
 
4543
\end_layout
4544
 
4545
\begin_layout Plain Layout
4546
\begin_inset Caption Standard
4547
 
4548
\begin_layout Plain Layout
4549
\begin_inset CommandInset label
4550
LatexCommand label
4551
name "tab:Read-mode-Registers"
4552
 
4553
\end_inset
4554
 
4555
Read-mode Registers
4556
\end_layout
4557
 
4558
\end_inset
4559
 
4560
 
4561
\begin_inset Separator latexpar
4562
\end_inset
4563
 
4564
 
4565
\end_layout
4566
 
4567
\end_inset
4568
 
4569
 
4570
\begin_inset Float table
4571
wide false
4572
sideways false
4573
status open
4574
 
4575
\begin_layout Plain Layout
4576
\align center
4577
\begin_inset Tabular
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
\begin_inset Text
4588
 
4589
\begin_layout Plain Layout
4590
 
4591
\end_layout
4592
 
4593
\end_inset
4594
4595
4596
\begin_inset Text
4597
 
4598
\begin_layout Plain Layout
4599
register
4600
\end_layout
4601
 
4602
\end_inset
4603
4604
4605
\begin_inset Text
4606
 
4607
\begin_layout Plain Layout
4608
bits
4609
\end_layout
4610
 
4611
\end_inset
4612
4613
4614
\begin_inset Text
4615
 
4616
\begin_layout Plain Layout
4617
content
4618
\end_layout
4619
 
4620
\end_inset
4621
4622
4623
\begin_inset Text
4624
 
4625
\begin_layout Plain Layout
4626
read/write
4627
\end_layout
4628
 
4629
\end_inset
4630
4631
4632
4633
4634
\begin_inset Text
4635
 
4636
\begin_layout Plain Layout
4637
 
4638
\end_layout
4639
 
4640
\end_inset
4641
4642
4643
\begin_inset Text
4644
 
4645
\begin_layout Plain Layout
4646
stream
4647
\end_layout
4648
 
4649
\end_inset
4650
4651
4652
\begin_inset Text
4653
 
4654
\begin_layout Plain Layout
4655
15-8
4656
\end_layout
4657
 
4658
\end_inset
4659
4660
4661
\begin_inset Text
4662
 
4663
\begin_layout Plain Layout
4664
 
4665
\family typewriter
4666
watchdog_interval
4667
\end_layout
4668
 
4669
\end_inset
4670
4671
4672
\begin_inset Text
4673
 
4674
\begin_layout Plain Layout
4675
w
4676
\end_layout
4677
 
4678
\end_inset
4679
4680
4681
4682
4683
\begin_inset Text
4684
 
4685
\begin_layout Plain Layout
4686
 
4687
\end_layout
4688
 
4689
\end_inset
4690
4691
4692
\begin_inset Text
4693
 
4694
\begin_layout Plain Layout
4695
 
4696
\end_layout
4697
 
4698
\end_inset
4699
4700
4701
\begin_inset Text
4702
 
4703
\begin_layout Plain Layout
4704
3
4705
\end_layout
4706
 
4707
\end_inset
4708
4709
4710
\begin_inset Text
4711
 
4712
\begin_layout Plain Layout
4713
 
4714
\family typewriter
4715
osd_enable
4716
\end_layout
4717
 
4718
\end_inset
4719
4720
4721
\begin_inset Text
4722
 
4723
\begin_layout Plain Layout
4724
w
4725
\end_layout
4726
 
4727
\end_inset
4728
4729
4730
4731
4732
\begin_inset Text
4733
 
4734
\begin_layout Plain Layout
4735
 
4736
\end_layout
4737
 
4738
\end_inset
4739
4740
4741
\begin_inset Text
4742
 
4743
\begin_layout Plain Layout
4744
 
4745
\end_layout
4746
 
4747
\end_inset
4748
4749
4750
\begin_inset Text
4751
 
4752
\begin_layout Plain Layout
4753
2
4754
\end_layout
4755
 
4756
\end_inset
4757
4758
4759
\begin_inset Text
4760
 
4761
\begin_layout Plain Layout
4762
 
4763
\family typewriter
4764
picture_hdr_intr_en
4765
\end_layout
4766
 
4767
\end_inset
4768
4769
4770
\begin_inset Text
4771
 
4772
\begin_layout Plain Layout
4773
w
4774
\end_layout
4775
 
4776
\end_inset
4777
4778
4779
4780
4781
\begin_inset Text
4782
 
4783
\begin_layout Plain Layout
4784
 
4785
\end_layout
4786
 
4787
\end_inset
4788
4789
4790
\begin_inset Text
4791
 
4792
\begin_layout Plain Layout
4793
 
4794
\end_layout
4795
 
4796
\end_inset
4797
4798
4799
\begin_inset Text
4800
 
4801
\begin_layout Plain Layout
4802
1
4803
\end_layout
4804
 
4805
\end_inset
4806
4807
4808
\begin_inset Text
4809
 
4810
\begin_layout Plain Layout
4811
 
4812
\family typewriter
4813
frame_end_intr_en
4814
\end_layout
4815
 
4816
\end_inset
4817
4818
4819
\begin_inset Text
4820
 
4821
\begin_layout Plain Layout
4822
w
4823
\end_layout
4824
 
4825
\end_inset
4826
4827
4828
4829
4830
\begin_inset Text
4831
 
4832
\begin_layout Plain Layout
4833
 
4834
\end_layout
4835
 
4836
\end_inset
4837
4838
4839
\begin_inset Text
4840
 
4841
\begin_layout Plain Layout
4842
 
4843
\end_layout
4844
 
4845
\end_inset
4846
4847
4848
\begin_inset Text
4849
 
4850
\begin_layout Plain Layout
4851
 
4852
\end_layout
4853
 
4854
\end_inset
4855
4856
4857
\begin_inset Text
4858
 
4859
\begin_layout Plain Layout
4860
 
4861
\family typewriter
4862
video_ch_intr_en
4863
\end_layout
4864
 
4865
\end_inset
4866
4867
4868
\begin_inset Text
4869
 
4870
\begin_layout Plain Layout
4871
w
4872
\end_layout
4873
 
4874
\end_inset
4875
4876
4877
4878
4879
\begin_inset Text
4880
 
4881
\begin_layout Plain Layout
4882
1
4883
\end_layout
4884
 
4885
\end_inset
4886
4887
4888
\begin_inset Text
4889
 
4890
\begin_layout Plain Layout
4891
horizontal
4892
\end_layout
4893
 
4894
\end_inset
4895
4896
4897
\begin_inset Text
4898
 
4899
\begin_layout Plain Layout
4900
27-16
4901
\end_layout
4902
 
4903
\end_inset
4904
4905
4906
\begin_inset Text
4907
 
4908
\begin_layout Plain Layout
4909
 
4910
\family typewriter
4911
horizontal_resolution
4912
\end_layout
4913
 
4914
\end_inset
4915
4916
4917
\begin_inset Text
4918
 
4919
\begin_layout Plain Layout
4920
w
4921
\end_layout
4922
 
4923
\end_inset
4924
4925
4926
4927
4928
\begin_inset Text
4929
 
4930
\begin_layout Plain Layout
4931
 
4932
\end_layout
4933
 
4934
\end_inset
4935
4936
4937
\begin_inset Text
4938
 
4939
\begin_layout Plain Layout
4940
 
4941
\end_layout
4942
 
4943
\end_inset
4944
4945
4946
\begin_inset Text
4947
 
4948
\begin_layout Plain Layout
4949
11-0
4950
\end_layout
4951
 
4952
\end_inset
4953
4954
4955
\begin_inset Text
4956
 
4957
\begin_layout Plain Layout
4958
 
4959
\family typewriter
4960
horizontal_length
4961
\end_layout
4962
 
4963
\end_inset
4964
4965
4966
\begin_inset Text
4967
 
4968
\begin_layout Plain Layout
4969
w
4970
\end_layout
4971
 
4972
\end_inset
4973
4974
4975
4976
4977
\begin_inset Text
4978
 
4979
\begin_layout Plain Layout
4980
2
4981
\end_layout
4982
 
4983
\end_inset
4984
4985
4986
\begin_inset Text
4987
 
4988
\begin_layout Plain Layout
4989
horizontal sync
4990
\end_layout
4991
 
4992
\end_inset
4993
4994
4995
\begin_inset Text
4996
 
4997
\begin_layout Plain Layout
4998
27-16
4999
\end_layout
5000
 
5001
\end_inset
5002
5003
5004
\begin_inset Text
5005
 
5006
\begin_layout Plain Layout
5007
 
5008
\family typewriter
5009
horizontal_sync_start
5010
\end_layout
5011
 
5012
\end_inset
5013
5014
5015
\begin_inset Text
5016
 
5017
\begin_layout Plain Layout
5018
w
5019
\end_layout
5020
 
5021
\end_inset
5022
5023
5024
5025
5026
\begin_inset Text
5027
 
5028
\begin_layout Plain Layout
5029
 
5030
\end_layout
5031
 
5032
\end_inset
5033
5034
5035
\begin_inset Text
5036
 
5037
\begin_layout Plain Layout
5038
 
5039
\end_layout
5040
 
5041
\end_inset
5042
5043
5044
\begin_inset Text
5045
 
5046
\begin_layout Plain Layout
5047
11-0
5048
\end_layout
5049
 
5050
\end_inset
5051
5052
5053
\begin_inset Text
5054
 
5055
\begin_layout Plain Layout
5056
 
5057
\family typewriter
5058
horizontal_sync_end
5059
\end_layout
5060
 
5061
\end_inset
5062
5063
5064
\begin_inset Text
5065
 
5066
\begin_layout Plain Layout
5067
w
5068
\end_layout
5069
 
5070
\end_inset
5071
5072
5073
5074
5075
\begin_inset Text
5076
 
5077
\begin_layout Plain Layout
5078
3
5079
\end_layout
5080
 
5081
\end_inset
5082
5083
5084
\begin_inset Text
5085
 
5086
\begin_layout Plain Layout
5087
vertical
5088
\end_layout
5089
 
5090
\end_inset
5091
5092
5093
\begin_inset Text
5094
 
5095
\begin_layout Plain Layout
5096
27-16
5097
\end_layout
5098
 
5099
\end_inset
5100
5101
5102
\begin_inset Text
5103
 
5104
\begin_layout Plain Layout
5105
 
5106
\family typewriter
5107
vertical_resolution
5108
\end_layout
5109
 
5110
\end_inset
5111
5112
5113
\begin_inset Text
5114
 
5115
\begin_layout Plain Layout
5116
w
5117
\end_layout
5118
 
5119
\end_inset
5120
5121
5122
5123
5124
\begin_inset Text
5125
 
5126
\begin_layout Plain Layout
5127
 
5128
\end_layout
5129
 
5130
\end_inset
5131
5132
5133
\begin_inset Text
5134
 
5135
\begin_layout Plain Layout
5136
 
5137
\end_layout
5138
 
5139
\end_inset
5140
5141
5142
\begin_inset Text
5143
 
5144
\begin_layout Plain Layout
5145
11-0
5146
\end_layout
5147
 
5148
\end_inset
5149
5150
5151
\begin_inset Text
5152
 
5153
\begin_layout Plain Layout
5154
 
5155
\family typewriter
5156
vertical_length
5157
\end_layout
5158
 
5159
\end_inset
5160
5161
5162
\begin_inset Text
5163
 
5164
\begin_layout Plain Layout
5165
w
5166
\end_layout
5167
 
5168
\end_inset
5169
5170
5171
5172
5173
\begin_inset Text
5174
 
5175
\begin_layout Plain Layout
5176
4
5177
\end_layout
5178
 
5179
\end_inset
5180
5181
5182
\begin_inset Text
5183
 
5184
\begin_layout Plain Layout
5185
vertical sync
5186
\end_layout
5187
 
5188
\end_inset
5189
5190
5191
\begin_inset Text
5192
 
5193
\begin_layout Plain Layout
5194
27-16
5195
\end_layout
5196
 
5197
\end_inset
5198
5199
5200
\begin_inset Text
5201
 
5202
\begin_layout Plain Layout
5203
 
5204
\family typewriter
5205
vertical_sync_start
5206
\end_layout
5207
 
5208
\end_inset
5209
5210
5211
\begin_inset Text
5212
 
5213
\begin_layout Plain Layout
5214
w
5215
\end_layout
5216
 
5217
\end_inset
5218
5219
5220
5221
5222
\begin_inset Text
5223
 
5224
\begin_layout Plain Layout
5225
 
5226
\end_layout
5227
 
5228
\end_inset
5229
5230
5231
\begin_inset Text
5232
 
5233
\begin_layout Plain Layout
5234
 
5235
\end_layout
5236
 
5237
\end_inset
5238
5239
5240
\begin_inset Text
5241
 
5242
\begin_layout Plain Layout
5243
11-0
5244
\end_layout
5245
 
5246
\end_inset
5247
5248
5249
\begin_inset Text
5250
 
5251
\begin_layout Plain Layout
5252
 
5253
\family typewriter
5254
vertical_sync_end
5255
\end_layout
5256
 
5257
\end_inset
5258
5259
5260
\begin_inset Text
5261
 
5262
\begin_layout Plain Layout
5263
w
5264
\end_layout
5265
 
5266
\end_inset
5267
5268
5269
5270
5271
\begin_inset Text
5272
 
5273
\begin_layout Plain Layout
5274
5
5275
\end_layout
5276
 
5277
\end_inset
5278
5279
5280
\begin_inset Text
5281
 
5282
\begin_layout Plain Layout
5283
video mode
5284
\end_layout
5285
 
5286
\end_inset
5287
5288
5289
\begin_inset Text
5290
 
5291
\begin_layout Plain Layout
5292
27-16
5293
\end_layout
5294
 
5295
\end_inset
5296
5297
5298
\begin_inset Text
5299
 
5300
\begin_layout Plain Layout
5301
 
5302
\family typewriter
5303
horizontal_halfline
5304
\end_layout
5305
 
5306
\end_inset
5307
5308
5309
\begin_inset Text
5310
 
5311
\begin_layout Plain Layout
5312
w
5313
\end_layout
5314
 
5315
\end_inset
5316
5317
5318
5319
5320
\begin_inset Text
5321
 
5322
\begin_layout Plain Layout
5323
 
5324
\end_layout
5325
 
5326
\end_inset
5327
5328
5329
\begin_inset Text
5330
 
5331
\begin_layout Plain Layout
5332
 
5333
\end_layout
5334
 
5335
\end_inset
5336
5337
5338
\begin_inset Text
5339
 
5340
\begin_layout Plain Layout
5341
2
5342
\end_layout
5343
 
5344
\end_inset
5345
5346
5347
\begin_inset Text
5348
 
5349
\begin_layout Plain Layout
5350
 
5351
\family typewriter
5352
clip_display_size
5353
\end_layout
5354
 
5355
\end_inset
5356
5357
5358
\begin_inset Text
5359
 
5360
\begin_layout Plain Layout
5361
w
5362
\end_layout
5363
 
5364
\end_inset
5365
5366
5367
5368
5369
\begin_inset Text
5370
 
5371
\begin_layout Plain Layout
5372
 
5373
\end_layout
5374
 
5375
\end_inset
5376
5377
5378
\begin_inset Text
5379
 
5380
\begin_layout Plain Layout
5381
 
5382
\end_layout
5383
 
5384
\end_inset
5385
5386
5387
\begin_inset Text
5388
 
5389
\begin_layout Plain Layout
5390
1
5391
\end_layout
5392
 
5393
\end_inset
5394
5395
5396
\begin_inset Text
5397
 
5398
\begin_layout Plain Layout
5399
 
5400
\family typewriter
5401
pixel_repetition
5402
\end_layout
5403
 
5404
\end_inset
5405
5406
5407
\begin_inset Text
5408
 
5409
\begin_layout Plain Layout
5410
w
5411
\end_layout
5412
 
5413
\end_inset
5414
5415
5416
5417
5418
\begin_inset Text
5419
 
5420
\begin_layout Plain Layout
5421
 
5422
\end_layout
5423
 
5424
\end_inset
5425
5426
5427
\begin_inset Text
5428
 
5429
\begin_layout Plain Layout
5430
 
5431
\end_layout
5432
 
5433
\end_inset
5434
5435
5436
\begin_inset Text
5437
 
5438
\begin_layout Plain Layout
5439
 
5440
\end_layout
5441
 
5442
\end_inset
5443
5444
5445
\begin_inset Text
5446
 
5447
\begin_layout Plain Layout
5448
 
5449
\family typewriter
5450
interlaced
5451
\end_layout
5452
 
5453
\end_inset
5454
5455
5456
\begin_inset Text
5457
 
5458
\begin_layout Plain Layout
5459
w
5460
\end_layout
5461
 
5462
\end_inset
5463
5464
5465
5466
5467
\begin_inset Text
5468
 
5469
\begin_layout Plain Layout
5470
6
5471
\end_layout
5472
 
5473
\end_inset
5474
5475
5476
\begin_inset Text
5477
 
5478
\begin_layout Plain Layout
5479
osd clt yuvm
5480
\end_layout
5481
 
5482
\end_inset
5483
5484
5485
\begin_inset Text
5486
 
5487
\begin_layout Plain Layout
5488
31-24
5489
\end_layout
5490
 
5491
\end_inset
5492
5493
5494
\begin_inset Text
5495
 
5496
\begin_layout Plain Layout
5497
 
5498
\family typewriter
5499
y
5500
\end_layout
5501
 
5502
\end_inset
5503
5504
5505
\begin_inset Text
5506
 
5507
\begin_layout Plain Layout
5508
w
5509
\end_layout
5510
 
5511
\end_inset
5512
5513
5514
5515
5516
\begin_inset Text
5517
 
5518
\begin_layout Plain Layout
5519
 
5520
\end_layout
5521
 
5522
\end_inset
5523
5524
5525
\begin_inset Text
5526
 
5527
\begin_layout Plain Layout
5528
 
5529
\end_layout
5530
 
5531
\end_inset
5532
5533
5534
\begin_inset Text
5535
 
5536
\begin_layout Plain Layout
5537
23-16
5538
\end_layout
5539
 
5540
\end_inset
5541
5542
5543
\begin_inset Text
5544
 
5545
\begin_layout Plain Layout
5546
 
5547
\family typewriter
5548
u
5549
\end_layout
5550
 
5551
\end_inset
5552
5553
5554
\begin_inset Text
5555
 
5556
\begin_layout Plain Layout
5557
w
5558
\end_layout
5559
 
5560
\end_inset
5561
5562
5563
5564
5565
\begin_inset Text
5566
 
5567
\begin_layout Plain Layout
5568
 
5569
\end_layout
5570
 
5571
\end_inset
5572
5573
5574
\begin_inset Text
5575
 
5576
\begin_layout Plain Layout
5577
 
5578
\end_layout
5579
 
5580
\end_inset
5581
5582
5583
\begin_inset Text
5584
 
5585
\begin_layout Plain Layout
5586
15-8
5587
\end_layout
5588
 
5589
\end_inset
5590
5591
5592
\begin_inset Text
5593
 
5594
\begin_layout Plain Layout
5595
 
5596
\family typewriter
5597
v
5598
\end_layout
5599
 
5600
\end_inset
5601
5602
5603
\begin_inset Text
5604
 
5605
\begin_layout Plain Layout
5606
w
5607
\end_layout
5608
 
5609
\end_inset
5610
5611
5612
5613
5614
\begin_inset Text
5615
 
5616
\begin_layout Plain Layout
5617
 
5618
\end_layout
5619
 
5620
\end_inset
5621
5622
5623
\begin_inset Text
5624
 
5625
\begin_layout Plain Layout
5626
 
5627
\end_layout
5628
 
5629
\end_inset
5630
5631
5632
\begin_inset Text
5633
 
5634
\begin_layout Plain Layout
5635
7-0
5636
\end_layout
5637
 
5638
\end_inset
5639
5640
5641
\begin_inset Text
5642
 
5643
\begin_layout Plain Layout
5644
 
5645
\family typewriter
5646
osd_clt_mode
5647
\end_layout
5648
 
5649
\end_inset
5650
5651
5652
\begin_inset Text
5653
 
5654
\begin_layout Plain Layout
5655
w
5656
\end_layout
5657
 
5658
\end_inset
5659
5660
5661
5662
5663
\begin_inset Text
5664
 
5665
\begin_layout Plain Layout
5666
7
5667
\end_layout
5668
 
5669
\end_inset
5670
5671
5672
\begin_inset Text
5673
 
5674
\begin_layout Plain Layout
5675
osd clt addr
5676
\end_layout
5677
 
5678
\end_inset
5679
5680
5681
\begin_inset Text
5682
 
5683
\begin_layout Plain Layout
5684
7-0
5685
\end_layout
5686
 
5687
\end_inset
5688
5689
5690
\begin_inset Text
5691
 
5692
\begin_layout Plain Layout
5693
 
5694
\family typewriter
5695
osd_clt_addr
5696
\end_layout
5697
 
5698
\end_inset
5699
5700
5701
\begin_inset Text
5702
 
5703
\begin_layout Plain Layout
5704
w
5705
\end_layout
5706
 
5707
\end_inset
5708
5709
5710
5711
5712
\begin_inset Text
5713
 
5714
\begin_layout Plain Layout
5715
8
5716
\end_layout
5717
 
5718
\end_inset
5719
5720
5721
\begin_inset Text
5722
 
5723
\begin_layout Plain Layout
5724
osd dta high
5725
\end_layout
5726
 
5727
\end_inset
5728
5729
5730
\begin_inset Text
5731
 
5732
\begin_layout Plain Layout
5733
31-0
5734
\end_layout
5735
 
5736
\end_inset
5737
5738
5739
\begin_inset Text
5740
 
5741
\begin_layout Plain Layout
5742
 
5743
\family typewriter
5744
osd_dta_high
5745
\end_layout
5746
 
5747
\end_inset
5748
5749
5750
\begin_inset Text
5751
 
5752
\begin_layout Plain Layout
5753
w
5754
\end_layout
5755
 
5756
\end_inset
5757
5758
5759
5760
5761
\begin_inset Text
5762
 
5763
\begin_layout Plain Layout
5764
9
5765
\end_layout
5766
 
5767
\end_inset
5768
5769
5770
\begin_inset Text
5771
 
5772
\begin_layout Plain Layout
5773
osd dta low
5774
\end_layout
5775
 
5776
\end_inset
5777
5778
5779
\begin_inset Text
5780
 
5781
\begin_layout Plain Layout
5782
31-0
5783
\end_layout
5784
 
5785
\end_inset
5786
5787
5788
\begin_inset Text
5789
 
5790
\begin_layout Plain Layout
5791
 
5792
\family typewriter
5793
osd_dta_low
5794
\end_layout
5795
 
5796
\end_inset
5797
5798
5799
\begin_inset Text
5800
 
5801
\begin_layout Plain Layout
5802
w
5803
\end_layout
5804
 
5805
\end_inset
5806
5807
5808
5809
5810
\begin_inset Text
5811
 
5812
\begin_layout Plain Layout
5813
a
5814
\end_layout
5815
 
5816
\end_inset
5817
5818
5819
\begin_inset Text
5820
 
5821
\begin_layout Plain Layout
5822
osd_addr
5823
\end_layout
5824
 
5825
\end_inset
5826
5827
5828
\begin_inset Text
5829
 
5830
\begin_layout Plain Layout
5831
31-29
5832
\end_layout
5833
 
5834
\end_inset
5835
5836
5837
\begin_inset Text
5838
 
5839
\begin_layout Plain Layout
5840
 
5841
\family typewriter
5842
osd_frame
5843
\end_layout
5844
 
5845
\end_inset
5846
5847
5848
\begin_inset Text
5849
 
5850
\begin_layout Plain Layout
5851
w
5852
\end_layout
5853
 
5854
\end_inset
5855
5856
5857
5858
5859
\begin_inset Text
5860
 
5861
\begin_layout Plain Layout
5862
 
5863
\end_layout
5864
 
5865
\end_inset
5866
5867
5868
\begin_inset Text
5869
 
5870
\begin_layout Plain Layout
5871
 
5872
\end_layout
5873
 
5874
\end_inset
5875
5876
5877
\begin_inset Text
5878
 
5879
\begin_layout Plain Layout
5880
28-27
5881
\end_layout
5882
 
5883
\end_inset
5884
5885
5886
\begin_inset Text
5887
 
5888
\begin_layout Plain Layout
5889
 
5890
\family typewriter
5891
osd_comp
5892
\end_layout
5893
 
5894
\end_inset
5895
5896
5897
\begin_inset Text
5898
 
5899
\begin_layout Plain Layout
5900
w
5901
\end_layout
5902
 
5903
\end_inset
5904
5905
5906
5907
5908
\begin_inset Text
5909
 
5910
\begin_layout Plain Layout
5911
 
5912
\end_layout
5913
 
5914
\end_inset
5915
5916
5917
\begin_inset Text
5918
 
5919
\begin_layout Plain Layout
5920
 
5921
\end_layout
5922
 
5923
\end_inset
5924
5925
5926
\begin_inset Text
5927
 
5928
\begin_layout Plain Layout
5929
26-16
5930
\end_layout
5931
 
5932
\end_inset
5933
5934
5935
\begin_inset Text
5936
 
5937
\begin_layout Plain Layout
5938
 
5939
\family typewriter
5940
osd_addr_x
5941
\end_layout
5942
 
5943
\end_inset
5944
5945
5946
\begin_inset Text
5947
 
5948
\begin_layout Plain Layout
5949
w
5950
\end_layout
5951
 
5952
\end_inset
5953
5954
5955
5956
5957
\begin_inset Text
5958
 
5959
\begin_layout Plain Layout
5960
 
5961
\end_layout
5962
 
5963
\end_inset
5964
5965
5966
\begin_inset Text
5967
 
5968
\begin_layout Plain Layout
5969
 
5970
\end_layout
5971
 
5972
\end_inset
5973
5974
5975
\begin_inset Text
5976
 
5977
\begin_layout Plain Layout
5978
10-0
5979
\end_layout
5980
 
5981
\end_inset
5982
5983
5984
\begin_inset Text
5985
 
5986
\begin_layout Plain Layout
5987
 
5988
\family typewriter
5989
osd_addr_y
5990
\end_layout
5991
 
5992
\end_inset
5993
5994
5995
\begin_inset Text
5996
 
5997
\begin_layout Plain Layout
5998
w
5999
\end_layout
6000
 
6001
\end_inset
6002
6003
6004
6005
6006
\begin_inset Text
6007
 
6008
\begin_layout Plain Layout
6009
b
6010
\end_layout
6011
 
6012
\end_inset
6013
6014
6015
\begin_inset Text
6016
 
6017
\begin_layout Plain Layout
6018
trick mode
6019
\end_layout
6020
 
6021
\end_inset
6022
6023
6024
\begin_inset Text
6025
 
6026
\begin_layout Plain Layout
6027
10
6028
\end_layout
6029
 
6030
\end_inset
6031
6032
6033
\begin_inset Text
6034
 
6035
\begin_layout Plain Layout
6036
 
6037
\family typewriter
6038
deinterlace
6039
\end_layout
6040
 
6041
\end_inset
6042
6043
6044
\begin_inset Text
6045
 
6046
\begin_layout Plain Layout
6047
w
6048
\end_layout
6049
 
6050
\end_inset
6051
6052
6053
6054
6055
\begin_inset Text
6056
 
6057
\begin_layout Plain Layout
6058
 
6059
\end_layout
6060
 
6061
\end_inset
6062
6063
6064
\begin_inset Text
6065
 
6066
\begin_layout Plain Layout
6067
 
6068
\end_layout
6069
 
6070
\end_inset
6071
6072
6073
\begin_inset Text
6074
 
6075
\begin_layout Plain Layout
6076
9-5
6077
\end_layout
6078
 
6079
\end_inset
6080
6081
6082
\begin_inset Text
6083
 
6084
\begin_layout Plain Layout
6085
 
6086
\family typewriter
6087
repeat_frame
6088
\end_layout
6089
 
6090
\end_inset
6091
6092
6093
\begin_inset Text
6094
 
6095
\begin_layout Plain Layout
6096
w
6097
\end_layout
6098
 
6099
\end_inset
6100
6101
6102
6103
6104
\begin_inset Text
6105
 
6106
\begin_layout Plain Layout
6107
 
6108
\end_layout
6109
 
6110
\end_inset
6111
6112
6113
\begin_inset Text
6114
 
6115
\begin_layout Plain Layout
6116
 
6117
\end_layout
6118
 
6119
\end_inset
6120
6121
6122
\begin_inset Text
6123
 
6124
\begin_layout Plain Layout
6125
4
6126
\end_layout
6127
 
6128
\end_inset
6129
6130
6131
\begin_inset Text
6132
 
6133
\begin_layout Plain Layout
6134
 
6135
\family typewriter
6136
persistence
6137
\end_layout
6138
 
6139
\end_inset
6140
6141
6142
\begin_inset Text
6143
 
6144
\begin_layout Plain Layout
6145
w
6146
\end_layout
6147
 
6148
\end_inset
6149
6150
6151
6152
6153
\begin_inset Text
6154
 
6155
\begin_layout Plain Layout
6156
 
6157
\end_layout
6158
 
6159
\end_inset
6160
6161
6162
\begin_inset Text
6163
 
6164
\begin_layout Plain Layout
6165
 
6166
\end_layout
6167
 
6168
\end_inset
6169
6170
6171
\begin_inset Text
6172
 
6173
\begin_layout Plain Layout
6174
3-1
6175
\end_layout
6176
 
6177
\end_inset
6178
6179
6180
\begin_inset Text
6181
 
6182
\begin_layout Plain Layout
6183
 
6184
\family typewriter
6185
source_select
6186
\end_layout
6187
 
6188
\end_inset
6189
6190
6191
\begin_inset Text
6192
 
6193
\begin_layout Plain Layout
6194
w
6195
\end_layout
6196
 
6197
\end_inset
6198
6199
6200
6201
6202
\begin_inset Text
6203
 
6204
\begin_layout Plain Layout
6205
 
6206
\end_layout
6207
 
6208
\end_inset
6209
6210
6211
\begin_inset Text
6212
 
6213
\begin_layout Plain Layout
6214
 
6215
\end_layout
6216
 
6217
\end_inset
6218
6219
6220
\begin_inset Text
6221
 
6222
\begin_layout Plain Layout
6223
 
6224
\end_layout
6225
 
6226
\end_inset
6227
6228
6229
\begin_inset Text
6230
 
6231
\begin_layout Plain Layout
6232
 
6233
\family typewriter
6234
flush_vbuf
6235
\end_layout
6236
 
6237
\end_inset
6238
6239
6240
\begin_inset Text
6241
 
6242
\begin_layout Plain Layout
6243
w
6244
\end_layout
6245
 
6246
\end_inset
6247
6248
6249
6250
6251
\begin_inset Text
6252
 
6253
\begin_layout Plain Layout
6254
f
6255
\end_layout
6256
 
6257
\end_inset
6258
6259
6260
\begin_inset Text
6261
 
6262
\begin_layout Plain Layout
6263
testpoint
6264
\end_layout
6265
 
6266
\end_inset
6267
6268
6269
\begin_inset Text
6270
 
6271
\begin_layout Plain Layout
6272
3-0
6273
\end_layout
6274
 
6275
\end_inset
6276
6277
6278
\begin_inset Text
6279
 
6280
\begin_layout Plain Layout
6281
 
6282
\family typewriter
6283
testpoint_sel
6284
\end_layout
6285
 
6286
\end_inset
6287
6288
6289
\begin_inset Text
6290
 
6291
\begin_layout Plain Layout
6292
w
6293
\end_layout
6294
 
6295
\end_inset
6296
6297
6298
6299
 
6300
\end_inset
6301
 
6302
 
6303
\end_layout
6304
 
6305
\begin_layout Plain Layout
6306
\begin_inset Caption Standard
6307
 
6308
\begin_layout Plain Layout
6309
\begin_inset CommandInset label
6310
LatexCommand label
6311
name "tab:Write-mode-Registers"
6312
 
6313
\end_inset
6314
 
6315
Write-mode Registers
6316
\end_layout
6317
 
6318
\end_inset
6319
 
6320
 
6321
\end_layout
6322
 
6323
\end_inset
6324
 
6325
 
6326
\end_layout
6327
 
6328
\begin_layout Section
6329
Read-only Registers
6330
\end_layout
6331
 
6332
\begin_layout Labeling
6333
\labelwidthstring 00.00.0000
6334
 
6335
\family typewriter
6336
version
6337
\family default
6338
 contains a non-zero FPGA bitstream (hardware) version number.
6339
  Software should at least print a warning
6340
\family typewriter
6341
 
6342
\begin_inset Quotes eld
6343
\end_inset
6344
 
6345
Warning: hardware version (%i.%i) more recent than software driver
6346
\begin_inset Quotes erd
6347
\end_inset
6348
 
6349
 
6350
\family default
6351
 if the hardware version is higher than expected.
6352
\end_layout
6353
 
6354
\begin_layout Labeling
6355
\labelwidthstring 00.00.0000
6356
 
6357
\family typewriter
6358
picture_hdr
6359
\family default
6360
 is set whenever an picture header is encountered in the bitstream.
6361
 
6362
\family typewriter
6363
picture_hdr
6364
\family default
6365
 is cleared whenever the status register is read.
6366
 In a well-behaved MPEG-2 stream,
6367
\family typewriter
6368
horizontal_size
6369
\family default
6370
,
6371
\family typewriter
6372
vertical_size
6373
\family default
6374
,
6375
\family typewriter
6376
display_horizontal_size
6377
\family default
6378
,
6379
\family typewriter
6380
display_vertical_size, aspect_ratio_information
6381
\family default
6382
 and
6383
\family typewriter
6384
frame_rate
6385
\family default
6386
 will have meaningful values when a picture header is encountered.
6387
\end_layout
6388
 
6389
\begin_layout Labeling
6390
\labelwidthstring 00.00.0000
6391
 
6392
\family typewriter
6393
frame_end
6394
\family default
6395
 is set when video vertical synchronization begins.
6396
 
6397
\family typewriter
6398
frame_end
6399
\family default
6400
 is cleared whenever the status register is read.
6401
\end_layout
6402
 
6403
\begin_layout Labeling
6404
\labelwidthstring 00.00.0000
6405
 
6406
\family typewriter
6407
video_ch
6408
\family default
6409
 is set whenever video resolution or frame rate changes.
6410
 
6411
\family typewriter
6412
video_ch
6413
\family default
6414
 is cleared whenever the status register is read.
6415
\end_layout
6416
 
6417
\begin_layout Labeling
6418
\labelwidthstring 00.00.0000
6419
 
6420
\family typewriter
6421
error
6422
\family default
6423
 is set when variable length decoding cannot parse the bitstream.
6424
 
6425
\family typewriter
6426
error
6427
\family default
6428
 is cleared whenever the status register is read.
6429
\end_layout
6430
 
6431
\begin_layout Labeling
6432
\labelwidthstring 00.00.0000
6433
 
6434
\family typewriter
6435
watchdog_status
6436
\family default
6437
 is high if the watchdog timer expired.
6438
 
6439
\family typewriter
6440
watchdog_status
6441
\family default
6442
 is cleared whenever the status register is read.
6443
\end_layout
6444
 
6445
\begin_layout Labeling
6446
\labelwidthstring 00.00.0000
6447
 
6448
\family typewriter
6449
horizontal_size
6450
\family default
6451
 is defined in ISO/IEC 13818-2, par.
6452
  6.2.2.1, par.
6453
 6.3.3.
6454
\end_layout
6455
 
6456
\begin_layout Labeling
6457
\labelwidthstring 00.00.0000
6458
 
6459
\family typewriter
6460
vertical_size
6461
\family default
6462
 is defined in ISO/IEC 13818-2, par.
6463
  6.2.2.1, par.
6464
 6.3.3.
6465
\end_layout
6466
 
6467
\begin_layout Labeling
6468
\labelwidthstring 00.00.0000
6469
 
6470
\family typewriter
6471
display_horizontal_size
6472
\family default
6473
 is defined in ISO/IEC 13818-2, par.
6474
  6.2.2.4, par.
6475
 6.3.6.
6476
\end_layout
6477
 
6478
\begin_layout Labeling
6479
\labelwidthstring 00.00.0000
6480
 
6481
\family typewriter
6482
display_vertical_size
6483
\family default
6484
 is defined in ISO/IEC 13818-2, par.
6485
  6.2.2.4, par.
6486
 6.3.6.
6487
\end_layout
6488
 
6489
\begin_layout Labeling
6490
\labelwidthstring 00.00.0000
6491
 
6492
\family typewriter
6493
aspect_ratio_information
6494
\family default
6495
 is defined in ISO/IEC 13818-2, par.
6496
  6.3.3.
6497
\end_layout
6498
 
6499
\begin_layout Labeling
6500
\labelwidthstring 00.00.0000
6501
 
6502
\family typewriter
6503
matrix_coefficients
6504
\family default
6505
 is defined in ISO/IEC 13818-2, par.
6506
  6.3.6.
6507
\end_layout
6508
 
6509
\begin_layout Labeling
6510
\labelwidthstring 00.00.0000
6511
 
6512
\family typewriter
6513
frame_rate_extension_n
6514
\family default
6515
 is defined in ISO/IEC 13818-2, par.
6516
  6.3.3, par.
6517
 6.3.5.
6518
\end_layout
6519
 
6520
\begin_layout Labeling
6521
\labelwidthstring 00.00.0000
6522
 
6523
\family typewriter
6524
frame_rate_code
6525
\family default
6526
 is defined in ISO/IEC 13818-2, par.
6527
  6.3.3, Table 6-4.
6528
\end_layout
6529
 
6530
\begin_layout Labeling
6531
\labelwidthstring 00.00.0000
6532
 
6533
\family typewriter
6534
progressive_sequence
6535
\family default
6536
 is defined in ISO/IEC 13818-2, par.
6537
  6.3.5.
6538
\end_layout
6539
 
6540
\begin_layout Labeling
6541
\labelwidthstring 00.00.0000
6542
 
6543
\family typewriter
6544
frame_rate_extension_d
6545
\family default
6546
 is defined in ISO/IEC 13818-2, par.
6547
  6.3.3, par.
6548
 6.3.5.
6549
\end_layout
6550
 
6551
\begin_layout Section
6552
On-Screen Display
6553
\end_layout
6554
 
6555
\begin_layout Standard
6556
\begin_inset CommandInset label
6557
LatexCommand label
6558
name "sec:On-Screen-Display"
6559
 
6560
\end_inset
6561
 
6562
The OSD has the same resolution and aspect ratio as the MPEG-2 video being
6563
 displayed.
6564
 If no MPEG-2 video is being displayed, the OSD is undefined.
6565
 Note feeding the decoder a simple MPEG-2 sequence header with
6566
\family typewriter
6567
horizontal_size
6568
\family default
6569
 and
6570
\family typewriter
6571
vertical_size
6572
\family default
6573
 already satisfies the requirements for using the OSD.
6574
\end_layout
6575
 
6576
\begin_layout Standard
6577
The OSD is only shown if there is video output.
6578
 If one wishes to display an OSD when no MPEG2 video is being reproduced,
6579
 video output can be forced by setting
6580
\family typewriter
6581
source_select
6582
\family default
6583
 to 4, 5, 6 or 7.
6584
\begin_inset Separator latexpar
6585
\end_inset
6586
 
6587
 
6588
\end_layout
6589
 
6590
\begin_layout Standard
6591
The OSD may use up to 256 different colors.
6592
 The OSD color lookup table (CLT) stores
6593
\family typewriter
6594
y
6595
\family default
6596
,
6597
\family typewriter
6598
u
6599
\family default
6600
,
6601
\family typewriter
6602
v
6603
\family default
6604
 and
6605
\family typewriter
6606
osd_clt_mode
6607
\family default
6608
 data for each color.
6609
 The
6610
\family typewriter
6611
y
6612
\family default
6613
,
6614
\family typewriter
6615
u
6616
\family default
6617
 and
6618
\family typewriter
6619
v
6620
\family default
6621
 values are interpreted as defined by
6622
\family typewriter
6623
matrix_coefficients
6624
\family default
6625
.
6626
 The
6627
\family typewriter
6628
osd_clt_mode
6629
\family default
6630
 value determines the color displayed according to Table
6631
\begin_inset CommandInset ref
6632
LatexCommand ref
6633
reference "tab:On-Screen-Display-Modes"
6634
 
6635
\end_inset
6636
 
6637
.
6638
 
6639
\begin_inset Float table
6640
wide false
6641
sideways false
6642
status open
6643
 
6644
\begin_layout Plain Layout
6645
\align center
6646
\begin_inset Tabular
6647
6648
6649
6650
6651
6652
6653
\begin_inset Text
6654
 
6655
\begin_layout Plain Layout
6656
osd_clt_mode
6657
\end_layout
6658
 
6659
\end_inset
6660
6661
6662
\begin_inset Text
6663
 
6664
\begin_layout Plain Layout
6665
Comment
6666
\end_layout
6667
 
6668
\end_inset
6669
6670
6671
6672
6673
\begin_inset Text
6674
 
6675
\begin_layout Plain Layout
6676
xxx00000
6677
\end_layout
6678
 
6679
\end_inset
6680
6681
6682
\begin_inset Text
6683
 
6684
\begin_layout Plain Layout
6685
alpha = 0/16
6686
\end_layout
6687
 
6688
\end_inset
6689
6690
6691
6692
6693
\begin_inset Text
6694
 
6695
\begin_layout Plain Layout
6696
xxx00001
6697
\end_layout
6698
 
6699
\end_inset
6700
6701
6702
\begin_inset Text
6703
 
6704
\begin_layout Plain Layout
6705
alpha = 1/16
6706
\end_layout
6707
 
6708
\end_inset
6709
6710
6711
6712
6713
\begin_inset Text
6714
 
6715
\begin_layout Plain Layout
6716
xxx00010
6717
\end_layout
6718
 
6719
\end_inset
6720
6721
6722
\begin_inset Text
6723
 
6724
\begin_layout Plain Layout
6725
alpha = 2/16
6726
\end_layout
6727
 
6728
\end_inset
6729
6730
6731
6732
6733
\begin_inset Text
6734
 
6735
\begin_layout Plain Layout
6736
xxx00011
6737
\end_layout
6738
 
6739
\end_inset
6740
6741
6742
\begin_inset Text
6743
 
6744
\begin_layout Plain Layout
6745
alpha = 3/16
6746
\end_layout
6747
 
6748
\end_inset
6749
6750
6751
6752
6753
\begin_inset Text
6754
 
6755
\begin_layout Plain Layout
6756
xxx00100
6757
\end_layout
6758
 
6759
\end_inset
6760
6761
6762
\begin_inset Text
6763
 
6764
\begin_layout Plain Layout
6765
alpha = 4/16
6766
\end_layout
6767
 
6768
\end_inset
6769
6770
6771
6772
6773
\begin_inset Text
6774
 
6775
\begin_layout Plain Layout
6776
xxx00101
6777
\end_layout
6778
 
6779
\end_inset
6780
6781
6782
\begin_inset Text
6783
 
6784
\begin_layout Plain Layout
6785
alpha = 5/16
6786
\end_layout
6787
 
6788
\end_inset
6789
6790
6791
6792
6793
\begin_inset Text
6794
 
6795
\begin_layout Plain Layout
6796
xxx00110
6797
\end_layout
6798
 
6799
\end_inset
6800
6801
6802
\begin_inset Text
6803
 
6804
\begin_layout Plain Layout
6805
alpha = 6/16
6806
\end_layout
6807
 
6808
\end_inset
6809
6810
6811
6812
6813
\begin_inset Text
6814
 
6815
\begin_layout Plain Layout
6816
xxx00111
6817
\end_layout
6818
 
6819
\end_inset
6820
6821
6822
\begin_inset Text
6823
 
6824
\begin_layout Plain Layout
6825
alpha = 7/16
6826
\end_layout
6827
 
6828
\end_inset
6829
6830
6831
6832
6833
\begin_inset Text
6834
 
6835
\begin_layout Plain Layout
6836
xxx01000
6837
\end_layout
6838
 
6839
\end_inset
6840
6841
6842
\begin_inset Text
6843
 
6844
\begin_layout Plain Layout
6845
alpha = 8/16
6846
\end_layout
6847
 
6848
\end_inset
6849
6850
6851
6852
6853
\begin_inset Text
6854
 
6855
\begin_layout Plain Layout
6856
xxx01001
6857
\end_layout
6858
 
6859
\end_inset
6860
6861
6862
\begin_inset Text
6863
 
6864
\begin_layout Plain Layout
6865
alpha = 9/16
6866
\end_layout
6867
 
6868
\end_inset
6869
6870
6871
6872
6873
\begin_inset Text
6874
 
6875
\begin_layout Plain Layout
6876
xxx01010
6877
\end_layout
6878
 
6879
\end_inset
6880
6881
6882
\begin_inset Text
6883
 
6884
\begin_layout Plain Layout
6885
alpha = 10/16
6886
\end_layout
6887
 
6888
\end_inset
6889
6890
6891
6892
6893
\begin_inset Text
6894
 
6895
\begin_layout Plain Layout
6896
xxx01011
6897
\end_layout
6898
 
6899
\end_inset
6900
6901
6902
\begin_inset Text
6903
 
6904
\begin_layout Plain Layout
6905
alpha = 11/16
6906
\end_layout
6907
 
6908
\end_inset
6909
6910
6911
6912
6913
\begin_inset Text
6914
 
6915
\begin_layout Plain Layout
6916
xxx01100
6917
\end_layout
6918
 
6919
\end_inset
6920
6921
6922
\begin_inset Text
6923
 
6924
\begin_layout Plain Layout
6925
alpha = 12/16
6926
\end_layout
6927
 
6928
\end_inset
6929
6930
6931
6932
6933
\begin_inset Text
6934
 
6935
\begin_layout Plain Layout
6936
xxx01101
6937
\end_layout
6938
 
6939
\end_inset
6940
6941
6942
\begin_inset Text
6943
 
6944
\begin_layout Plain Layout
6945
alpha = 13/16
6946
\end_layout
6947
 
6948
\end_inset
6949
6950
6951
6952
6953
\begin_inset Text
6954
 
6955
\begin_layout Plain Layout
6956
xxx01110
6957
\end_layout
6958
 
6959
\end_inset
6960
6961
6962
\begin_inset Text
6963
 
6964
\begin_layout Plain Layout
6965
alpha = 14/16
6966
\end_layout
6967
 
6968
\end_inset
6969
6970
6971
6972
6973
\begin_inset Text
6974
 
6975
\begin_layout Plain Layout
6976
xxx01111
6977
\end_layout
6978
 
6979
\end_inset
6980
6981
6982
\begin_inset Text
6983
 
6984
\begin_layout Plain Layout
6985
alpha = 15/16
6986
\end_layout
6987
 
6988
\end_inset
6989
6990
6991
6992
6993
\begin_inset Text
6994
 
6995
\begin_layout Plain Layout
6996
xxx11111
6997
\end_layout
6998
 
6999
\end_inset
7000
7001
7002
\begin_inset Text
7003
 
7004
\begin_layout Plain Layout
7005
alpha = 16/16
7006
\end_layout
7007
 
7008
\end_inset
7009
7010
7011
7012
7013
\begin_inset Text
7014
 
7015
\begin_layout Plain Layout
7016
xx0xxxxx
7017
\end_layout
7018
 
7019
\end_inset
7020
7021
7022
\begin_inset Text
7023
 
7024
\begin_layout Plain Layout
7025
attenuate video pixel by alpha
7026
\end_layout
7027
 
7028
\end_inset
7029
7030
7031
7032
7033
\begin_inset Text
7034
 
7035
\begin_layout Plain Layout
7036
xx1xxxxx
7037
\end_layout
7038
 
7039
\end_inset
7040
7041
7042
\begin_inset Text
7043
 
7044
\begin_layout Plain Layout
7045
alpha blend osd and video pixel
7046
\end_layout
7047
 
7048
\end_inset
7049
7050
7051
7052
7053
\begin_inset Text
7054
 
7055
\begin_layout Plain Layout
7056
00xxxxxx
7057
\end_layout
7058
 
7059
\end_inset
7060
7061
7062
\begin_inset Text
7063
 
7064
\begin_layout Plain Layout
7065
display video pixel
7066
\end_layout
7067
 
7068
\end_inset
7069
7070
7071
7072
7073
\begin_inset Text
7074
 
7075
\begin_layout Plain Layout
7076
01xxxxxx
7077
\end_layout
7078
 
7079
\end_inset
7080
7081
7082
\begin_inset Text
7083
 
7084
\begin_layout Plain Layout
7085
display attenuated/alpha blended pixel
7086
\end_layout
7087
 
7088
\end_inset
7089
7090
7091
7092
7093
\begin_inset Text
7094
 
7095
\begin_layout Plain Layout
7096
10xxxxxx
7097
\end_layout
7098
 
7099
\end_inset
7100
7101
7102
\begin_inset Text
7103
 
7104
\begin_layout Plain Layout
7105
display osd pixel
7106
\end_layout
7107
 
7108
\end_inset
7109
7110
7111
7112
7113
\begin_inset Text
7114
 
7115
\begin_layout Plain Layout
7116
11xxxxxx
7117
\end_layout
7118
 
7119
\end_inset
7120
7121
7122
\begin_inset Text
7123
 
7124
\begin_layout Plain Layout
7125
display blinking osd pixel
7126
\end_layout
7127
 
7128
\end_inset
7129
7130
7131
7132
 
7133
\end_inset
7134
 
7135
 
7136
\end_layout
7137
 
7138
\begin_layout Plain Layout
7139
\begin_inset Caption Standard
7140
 
7141
\begin_layout Plain Layout
7142
\begin_inset CommandInset label
7143
LatexCommand label
7144
name "tab:On-Screen-Display-Modes"
7145
 
7146
\end_inset
7147
 
7148
On-Screen Display Modes
7149
\end_layout
7150
 
7151
\end_inset
7152
 
7153
 
7154
\end_layout
7155
 
7156
\end_inset
7157
 
7158
The different modes combine osd and video in various ways:
7159
\end_layout
7160
 
7161
\begin_layout Itemize
7162
video.
7163
 This is the normal mode of operation.
7164
\end_layout
7165
 
7166
\begin_layout Itemize
7167
attenuated video.
7168
 16 discrete levels of attenuation can be used to fade video in or out.
7169
\end_layout
7170
 
7171
\begin_layout Itemize
7172
on-screen display.
7173
\end_layout
7174
 
7175
\begin_layout Itemize
7176
blend of on-screen display and video.
7177
 16 discrete levels of translucency.
7178
\end_layout
7179
 
7180
\begin_layout Itemize
7181
blinking on-screen display.
7182
 Alternates between osd pixel and attenuated/alpha blended video pixel with
7183
 a frequency of about one second.
7184
\end_layout
7185
 
7186
\begin_layout Labeling
7187
\labelwidthstring 00.00.0000
7188
 
7189
\family typewriter
7190
osd_enable
7191
\family default
7192
 determines whether the On-Screen Display is shown or not.
7193
  If
7194
\family typewriter
7195
osd_enable
7196
\family default
7197
 is low, the On-Screen Display is not shown.
7198
 If
7199
\family typewriter
7200
osd_enable
7201
\family default
7202
 is high, the On-Screen Display is shown.
7203
 The osd color lookup table has to be initialized and the osd has to be
7204
 written before
7205
\family typewriter
7206
osd_enable
7207
\family default
7208
 is raised.
7209
 
7210
\family typewriter
7211
osd_enable
7212
\family default
7213
 is 0 on power-up or reset.
7214
 
7215
\end_layout
7216
 
7217
\begin_layout Labeling
7218
\labelwidthstring 00.00.0000
7219
 
7220
\family typewriter
7221
osd_wr_en
7222
\family default
7223
 is set whenever an osd write is has been accepted, whether the  osd write
7224
 was successful or not.
7225
 
7226
\family typewriter
7227
osd_wr_en
7228
\family default
7229
 is cleared whenever the status register is read.
7230
\end_layout
7231
 
7232
\begin_layout Labeling
7233
\labelwidthstring 00.00.0000
7234
 
7235
\family typewriter
7236
osd_wr_ack
7237
\family default
7238
 is set whenever an osd write has been successful.
7239
 
7240
\family typewriter
7241
osd_wr_ack
7242
\family default
7243
 is cleared whenever the status register is read.
7244
\end_layout
7245
 
7246
\begin_layout Labeling
7247
\labelwidthstring 00.00.0000
7248
 
7249
\family typewriter
7250
osd_wr_full
7251
\family default
7252
 is set when the osd write fifo is full.
7253
  When the osd write fifo is full, osd writes are not accepted.
7254
\end_layout
7255
 
7256
\begin_layout Standard
7257
When writing to the osd color lookup table:
7258
\end_layout
7259
 
7260
\begin_layout Enumerate
7261
Write
7262
\family typewriter
7263
osd_clt_yuvm.
7264
\end_layout
7265
 
7266
\begin_layout Enumerate
7267
Write
7268
\family typewriter
7269
osd_clt_addr.
7270
\end_layout
7271
 
7272
\begin_layout Standard
7273
Writes to the osd color lookup table take effect immediately.
7274
\end_layout
7275
 
7276
\begin_layout Standard
7277
When writing to the osd:
7278
\end_layout
7279
 
7280
\begin_layout Enumerate
7281
Only write to the osd when
7282
\family typewriter
7283
horizontal_size
7284
\family default
7285
 and
7286
\family typewriter
7287
vertical_size
7288
\family default
7289
 have meaningful values.
7290
 This is the case when a picture header has been encountered.
7291
\end_layout
7292
 
7293
\begin_layout Enumerate
7294
Verify
7295
\family typewriter
7296
osd_wr_full
7297
\family default
7298
 is low.
7299
 Writing when
7300
\family typewriter
7301
osd_wr_full
7302
\family default
7303
 is high has no effect.
7304
\end_layout
7305
 
7306
\begin_layout Enumerate
7307
Write the leftmost four pixels to
7308
\family typewriter
7309
osd_dta_high
7310
\family default
7311
.
7312
\end_layout
7313
 
7314
\begin_layout Enumerate
7315
Write the rightmost four pixels to
7316
\family typewriter
7317
osd_dta_low.
7318
\end_layout
7319
 
7320
\begin_layout Enumerate
7321
Write x and y position of the leftmost pixel to
7322
\family typewriter
7323
osd_addr
7324
\family default
7325
.
7326
 Note x has to be a multiple of 8.
7327
 
7328
\family typewriter
7329
osd_frame
7330
\family default
7331
 always has value 4 for OSD writes.
7332
 
7333
\family typewriter
7334
osd_comp
7335
\family default
7336
 always has value 0 for OSD writes.
7337
\end_layout
7338
 
7339
\begin_layout Enumerate
7340
Read the status register until
7341
\family typewriter
7342
osd_wr_en
7343
\family default
7344
 is asserted.
7345
 When
7346
\family typewriter
7347
osd_wr_en
7348
\family default
7349
 is high, the value of
7350
\family typewriter
7351
osd_wr_ack
7352
\family default
7353
 indicates whether the write was successful.
7354
\end_layout
7355
 
7356
\begin_layout Standard
7357
Writes to the osd pass through a 32-position fifo.
7358
 This introduces some latency.
7359
 Repeating the last osd write 32 times flushes fifo contents, ensuring osd
7360
 memory has been updated.
7361
\end_layout
7362
 
7363
\begin_layout Section
7364
Frame Store
7365
\end_layout
7366
 
7367
\begin_layout Standard
7368
Pixels can be written directly to the frame store, using the same mechanism
7369
 as OSD writes.
7370
 By writing pixels to the frame store and afterwards setting the
7371
\family typewriter
7372
source_select
7373
\family default
7374
 field of the trick register (described
7375
\begin_inset CommandInset ref
7376
LatexCommand vpageref
7377
reference "sec:Trick-mode"
7378
 
7379
\end_inset
7380
 
7381
) arbitrary bitmaps can be shown.
7382
\begin_inset Separator latexpar
7383
\end_inset
7384
 
7385
 
7386
\end_layout
7387
 
7388
\begin_layout Standard
7389
The only difference between an OSD write and a frame store write is the
7390
 value of
7391
\family typewriter
7392
osd_frame
7393
\family default
7394
 and/or
7395
\family typewriter
7396
osd_comp
7397
\family default
7398
.
7399
 Tables
7400
\begin_inset CommandInset ref
7401
LatexCommand ref
7402
reference "tab:OSD-Frame"
7403
 
7404
\end_inset
7405
 
7406
 and
7407
\begin_inset CommandInset ref
7408
LatexCommand ref
7409
reference "tab:OSD-Component"
7410
 
7411
\end_inset
7412
 
7413
 list the frame and component codes.
7414
 Frames 0 and 1 are used for storing I and P frames.
7415
 Frames 2 and 3 are used for storing B frames.
7416
 All frames are stored in 4:2:0 format, with u and v frames having half
7417
 the width and height of the y frame.
7418
 Note y, u and v values are stored in memory with an offset of 128.
7419
 
7420
\begin_inset Float table
7421
wide false
7422
sideways false
7423
status open
7424
 
7425
\begin_layout Plain Layout
7426
\align center
7427
\begin_inset Tabular
7428
7429
7430
7431
7432
7433
7434
\begin_inset Text
7435
 
7436
\begin_layout Plain Layout
7437
osd_frame
7438
\end_layout
7439
 
7440
\end_inset
7441
7442
7443
\begin_inset Text
7444
 
7445
\begin_layout Plain Layout
7446
Frame
7447
\end_layout
7448
 
7449
\end_inset
7450
7451
7452
7453
7454
\begin_inset Text
7455
 
7456
\begin_layout Plain Layout
7457
 
7458
\end_layout
7459
 
7460
\end_inset
7461
7462
7463
\begin_inset Text
7464
 
7465
\begin_layout Plain Layout
7466
 
7467
\end_layout
7468
 
7469
\end_inset
7470
7471
7472
7473
7474
\begin_inset Text
7475
 
7476
\begin_layout Plain Layout
7477
1
7478
\end_layout
7479
 
7480
\end_inset
7481
7482
7483
\begin_inset Text
7484
 
7485
\begin_layout Plain Layout
7486
1
7487
\end_layout
7488
 
7489
\end_inset
7490
7491
7492
7493
7494
\begin_inset Text
7495
 
7496
\begin_layout Plain Layout
7497
2
7498
\end_layout
7499
 
7500
\end_inset
7501
7502
7503
\begin_inset Text
7504
 
7505
\begin_layout Plain Layout
7506
2
7507
\end_layout
7508
 
7509
\end_inset
7510
7511
7512
7513
7514
\begin_inset Text
7515
 
7516
\begin_layout Plain Layout
7517
3
7518
\end_layout
7519
 
7520
\end_inset
7521
7522
7523
\begin_inset Text
7524
 
7525
\begin_layout Plain Layout
7526
3
7527
\end_layout
7528
 
7529
\end_inset
7530
7531
7532
7533
7534
\begin_inset Text
7535
 
7536
\begin_layout Plain Layout
7537
4
7538
\end_layout
7539
 
7540
\end_inset
7541
7542
7543
\begin_inset Text
7544
 
7545
\begin_layout Plain Layout
7546
OSD
7547
\end_layout
7548
 
7549
\end_inset
7550
7551
7552
7553
 
7554
\end_inset
7555
 
7556
 
7557
\end_layout
7558
 
7559
\begin_layout Plain Layout
7560
\begin_inset Caption Standard
7561
 
7562
\begin_layout Plain Layout
7563
\begin_inset CommandInset label
7564
LatexCommand label
7565
name "tab:OSD-Frame"
7566
 
7567
\end_inset
7568
 
7569
OSD Frame
7570
\end_layout
7571
 
7572
\end_inset
7573
 
7574
 
7575
\begin_inset Separator latexpar
7576
\end_inset
7577
 
7578
 
7579
\end_layout
7580
 
7581
\end_inset
7582
 
7583
 
7584
\begin_inset Float table
7585
wide false
7586
sideways false
7587
status open
7588
 
7589
\begin_layout Plain Layout
7590
\align center
7591
\begin_inset Tabular
7592
7593
7594
7595
7596
7597
7598
\begin_inset Text
7599
 
7600
\begin_layout Plain Layout
7601
osd_comp
7602
\end_layout
7603
 
7604
\end_inset
7605
7606
7607
\begin_inset Text
7608
 
7609
\begin_layout Plain Layout
7610
Component
7611
\end_layout
7612
 
7613
\end_inset
7614
7615
7616
7617
7618
\begin_inset Text
7619
 
7620
\begin_layout Plain Layout
7621
 
7622
\end_layout
7623
 
7624
\end_inset
7625
7626
7627
\begin_inset Text
7628
 
7629
\begin_layout Plain Layout
7630
y
7631
\end_layout
7632
 
7633
\end_inset
7634
7635
7636
7637
7638
\begin_inset Text
7639
 
7640
\begin_layout Plain Layout
7641
1
7642
\end_layout
7643
 
7644
\end_inset
7645
7646
7647
\begin_inset Text
7648
 
7649
\begin_layout Plain Layout
7650
u
7651
\end_layout
7652
 
7653
\end_inset
7654
7655
7656
7657
7658
\begin_inset Text
7659
 
7660
\begin_layout Plain Layout
7661
2
7662
\end_layout
7663
 
7664
\end_inset
7665
7666
7667
\begin_inset Text
7668
 
7669
\begin_layout Plain Layout
7670
v
7671
\end_layout
7672
 
7673
\end_inset
7674
7675
7676
7677
 
7678
\end_inset
7679
 
7680
 
7681
\end_layout
7682
 
7683
\begin_layout Plain Layout
7684
\begin_inset Caption Standard
7685
 
7686
\begin_layout Plain Layout
7687
\begin_inset CommandInset label
7688
LatexCommand label
7689
name "tab:OSD-Component"
7690
 
7691
\end_inset
7692
 
7693
OSD Component
7694
\end_layout
7695
 
7696
\end_inset
7697
 
7698
 
7699
\end_layout
7700
 
7701
\end_inset
7702
 
7703
 
7704
\end_layout
7705
 
7706
\begin_layout Standard
7707
Writes to the frame store are only defined when
7708
\family typewriter
7709
horizontal_size
7710
\family default
7711
 and
7712
\family typewriter
7713
vertical_size
7714
\family default
7715
 have meaningful values.
7716
 Writes with
7717
\family typewriter
7718
osd_frame
7719
\family default
7720
 4 are only defined when
7721
\family typewriter
7722
osd_comp
7723
\family default
7724
 is 0.
7725
\end_layout
7726
 
7727
\begin_layout Section
7728
\begin_inset CommandInset label
7729
LatexCommand label
7730
name "sec:Video-Modeline"
7731
 
7732
\end_inset
7733
 
7734
Video Modeline
7735
\end_layout
7736
 
7737
\begin_layout Standard
7738
The video timing parameters are:
7739
\end_layout
7740
 
7741
\begin_layout Itemize
7742
 
7743
\family typewriter
7744
horizontal_resolution
7745
\end_layout
7746
 
7747
\begin_layout Itemize
7748
 
7749
\family typewriter
7750
horizontal_sync_start
7751
\end_layout
7752
 
7753
\begin_layout Itemize
7754
 
7755
\family typewriter
7756
horizontal_sync_end
7757
\end_layout
7758
 
7759
\begin_layout Itemize
7760
 
7761
\family typewriter
7762
horizontal_length
7763
\end_layout
7764
 
7765
\begin_layout Itemize
7766
 
7767
\family typewriter
7768
vertical_resolution
7769
\end_layout
7770
 
7771
\begin_layout Itemize
7772
 
7773
\family typewriter
7774
vertical_sync_start
7775
\end_layout
7776
 
7777
\begin_layout Itemize
7778
 
7779
\family typewriter
7780
vertical_sync_end
7781
\end_layout
7782
 
7783
\begin_layout Itemize
7784
 
7785
\family typewriter
7786
vertical_length
7787
\end_layout
7788
 
7789
\begin_layout Itemize
7790
 
7791
\family typewriter
7792
horizontal_halfline
7793
\end_layout
7794
 
7795
\begin_layout Itemize
7796
 
7797
\family typewriter
7798
interlaced
7799
\end_layout
7800
 
7801
\begin_layout Itemize
7802
 
7803
\family typewriter
7804
pixel_repetition
7805
\end_layout
7806
 
7807
\begin_layout Standard
7808
These parameters can be deduced from the X11 modeline for the display, which
7809
 is described in the
7810
\begin_inset Quotes eld
7811
\end_inset
7812
 
7813
XFree86 Video Timings HOWTO
7814
\begin_inset Quotes erd
7815
\end_inset
7816
 
7817
.
7818
 Writing to the internal registers which contain the video timing parameters
7819
 will restart the video synchronization generator.
7820
\end_layout
7821
 
7822
\begin_layout Standard
7823
Two video timing diagrams are shown, one for progressive video (Figure
7824
\begin_inset CommandInset ref
7825
LatexCommand ref
7826
reference "fig:Progressive-Video"
7827
 
7828
\end_inset
7829
 
7830
) and one for interlaced video (Figure
7831
\begin_inset CommandInset ref
7832
LatexCommand ref
7833
reference "fig:Interlaced-Video"
7834
 
7835
\end_inset
7836
 
7837
).
7838
 The diagrams show the picture area (a light grey rectangle), flanked by
7839
 horizontal sync (a dark grey vertical bar) and vertical sync (a dark grey
7840
 horizontal bar).
7841
\begin_inset Float figure
7842
wide false
7843
sideways false
7844
status open
7845
 
7846
\begin_layout Plain Layout
7847
\begin_inset ERT
7848
status open
7849
 
7850
\begin_layout Plain Layout
7851
 
7852
 
7853
\backslash
7854
centering
7855
\end_layout
7856
 
7857
\end_inset
7858
 
7859
 
7860
\begin_inset Graphics
7861
        filename progressive.eps
7862
        width 100line%
7863
        keepAspectRatio
7864
 
7865
\end_inset
7866
 
7867
 
7868
\end_layout
7869
 
7870
\begin_layout Plain Layout
7871
\begin_inset Caption Standard
7872
 
7873
\begin_layout Plain Layout
7874
\begin_inset CommandInset label
7875
LatexCommand label
7876
name "fig:Progressive-Video"
7877
 
7878
\end_inset
7879
 
7880
Progressive Video
7881
\end_layout
7882
 
7883
\end_inset
7884
 
7885
 
7886
\begin_inset Separator latexpar
7887
\end_inset
7888
 
7889
 
7890
\end_layout
7891
 
7892
\end_inset
7893
 
7894
 
7895
\begin_inset Float figure
7896
wide false
7897
sideways false
7898
status open
7899
 
7900
\begin_layout Plain Layout
7901
\noindent
7902
\align center
7903
\begin_inset ERT
7904
status open
7905
 
7906
\begin_layout Plain Layout
7907
 
7908
 
7909
\backslash
7910
centering
7911
\end_layout
7912
 
7913
\end_inset
7914
 
7915
 
7916
\begin_inset Graphics
7917
        filename interlaced.eps
7918
        width 100line%
7919
        keepAspectRatio
7920
        BoundingBox 0bp 0bp 495bp 484bp
7921
        clip
7922
 
7923
\end_inset
7924
 
7925
 
7926
\end_layout
7927
 
7928
\begin_layout Plain Layout
7929
\begin_inset Caption Standard
7930
 
7931
\begin_layout Plain Layout
7932
\begin_inset CommandInset label
7933
LatexCommand label
7934
name "fig:Interlaced-Video"
7935
 
7936
\end_inset
7937
 
7938
Interlaced Video
7939
\end_layout
7940
 
7941
\end_inset
7942
 
7943
 
7944
\end_layout
7945
 
7946
\end_inset
7947
 
7948
 
7949
\end_layout
7950
 
7951
\begin_layout Labeling
7952
\labelwidthstring 00.00.0000
7953
 
7954
\family typewriter
7955
horizontal_resolution
7956
\family default
7957
 number of dots per scan line.
7958
 
7959
\end_layout
7960
 
7961
\begin_layout Labeling
7962
\labelwidthstring 00.00.0000
7963
 
7964
\family typewriter
7965
horizontal_sync_start
7966
\family default
7967
 used to specify the horizontal position the horizontal  sync pulse begins.
7968
 The leftmost pixel of a line has position zero.
7969
\end_layout
7970
 
7971
\begin_layout Labeling
7972
\labelwidthstring 00.00.0000
7973
 
7974
\family typewriter
7975
horizontal_sync_end
7976
\family default
7977
 used to specify the horizontal position the horizontal  sync pulse ends.
7978
 
7979
\end_layout
7980
 
7981
\begin_layout Labeling
7982
\labelwidthstring 00.00.0000
7983
 
7984
\family typewriter
7985
horizontal_length
7986
\family default
7987
 total length, in pixels, of one scan line.
7988
 
7989
\end_layout
7990
 
7991
\begin_layout Labeling
7992
\labelwidthstring 00.00.0000
7993
 
7994
\family typewriter
7995
vertical_resolution
7996
\family default
7997
 number of visible lines per frame (progressive) or field  (interlaced).
7998
\end_layout
7999
 
8000
\begin_layout Labeling
8001
\labelwidthstring 00.00.0000
8002
 
8003
\family typewriter
8004
vertical_sync_start
8005
\family default
8006
 used to specify the line number within the frame (progressive) or field
8007
 (interlaced) the vertical sync pulse begins.
8008
 The topmost line of a frame or field is line number zero.
8009
\end_layout
8010
 
8011
\begin_layout Labeling
8012
\labelwidthstring 00.00.0000
8013
 
8014
\family typewriter
8015
vertical_sync_end
8016
\family default
8017
 used to specify the line number within the frame (progressive)  or field
8018
 (interlaced) the vertical sync pulse ends.
8019
 
8020
\end_layout
8021
 
8022
\begin_layout Labeling
8023
\labelwidthstring 00.00.0000
8024
 
8025
\family typewriter
8026
horizontal_halfline
8027
\family default
8028
 used to specify the horizontal position the vertical  sync begins on odd
8029
 fields of interlaced video.
8030
 Not used in progressive mode.
8031
 
8032
\end_layout
8033
 
8034
\begin_layout Labeling
8035
\labelwidthstring 00.00.0000
8036
 
8037
\family typewriter
8038
vertical_length
8039
\family default
8040
 total number of lines of a vertical frame (progressive)  or field (interlaced).
8041
\end_layout
8042
 
8043
\begin_layout Labeling
8044
\labelwidthstring 00.00.0000
8045
 
8046
\family typewriter
8047
clip_display_size
8048
\family default
8049
 If asserted, the image is clipped to (
8050
\family typewriter
8051
display_horizontal_size
8052
\family default
8053
,
8054
\family typewriter
8055
display_vertical_size
8056
\family default
8057
).
8058
 If not asserted, the image is clipped to (
8059
\family typewriter
8060
horizontal_size
8061
\family default
8062
,
8063
\family typewriter
8064
vertical_size
8065
\family default
8066
).
8067
\end_layout
8068
 
8069
\begin_layout Labeling
8070
\labelwidthstring 00.00.0000
8071
 
8072
\family typewriter
8073
interlaced
8074
\family default
8075
 used to specify interlaced output is required.
8076
  If
8077
\family typewriter
8078
interlaced
8079
\family default
8080
 is asserted, vertical sync is delayed one-half scan line at the end of
8081
 odd fields.
8082
\end_layout
8083
 
8084
\begin_layout Labeling
8085
\labelwidthstring 00.00.0000
8086
 
8087
\family typewriter
8088
pixel_repetition
8089
\family default
8090
 If
8091
\family typewriter
8092
pixel_repetition
8093
\family default
8094
 is asserted, each pixel is output twice.
8095
 This can be used if the original dot clock is too low for the transmitter.
8096
 As an example, suppose valid dot clock rates are 25\SpecialChar ldots
8097
165 MHz, but the SDTV
8098
 video being decoded has a dot clock of only 13.5 MHz.
8099
 Asserting
8100
\family typewriter
8101
pixel_repetition
8102
\family default
8103
 and doubling dot clock frequency results in a dot clock of 27 MHz, sufficient
8104
 for SDTV video to be transmitted across the link.
8105
\end_layout
8106
 
8107
\begin_layout Section
8108
Interrupts
8109
\end_layout
8110
 
8111
\begin_layout Standard
8112
\begin_inset CommandInset label
8113
LatexCommand label
8114
name "sec:Interrupts"
8115
 
8116
\end_inset
8117
 
8118
Three independent conditions may trigger an interrupt: when a picture header
8119
 is encountered in the bitstream, when frame display ends, and when video
8120
 resolution or frame rate changes.
8121
 All three interrupt sources are optional and can be disabled individually.
8122
\end_layout
8123
 
8124
\begin_layout Standard
8125
When
8126
\family typewriter
8127
picture_hdr_intr_en
8128
\family default
8129
 is high and a picture header is encountered in the bitstream,
8130
\family typewriter
8131
picture_hdr
8132
\family default
8133
 is set and the interrupt signal is asserted until the status register is
8134
 read.
8135
 If
8136
\family typewriter
8137
picture_hdr_intr_en
8138
\family default
8139
 is low, the interrupt signal is never raised.
8140
 
8141
\family typewriter
8142
picture_hdr and picture_hdr_intr_en
8143
\family default
8144
 are 0 on power-up or reset.
8145
 The picture header interrupt marks the
8146
\begin_inset Quotes eld
8147
\end_inset
8148
 
8149
heartbeat
8150
\begin_inset Quotes erd
8151
\end_inset
8152
 
8153
 of the video decoding engine.
8154
\end_layout
8155
 
8156
\begin_layout Standard
8157
When video vertical synchronization begins and
8158
\family typewriter
8159
frame_end_intr_en
8160
\family default
8161
 is high,
8162
\family typewriter
8163
frame_end
8164
\family default
8165
 is set and the interrupt signal is asserted until the status register is
8166
 read.
8167
 If
8168
\family typewriter
8169
frame_end_intr_en
8170
\family default
8171
 is low, the interrupt signal is never raised.
8172
 
8173
\family typewriter
8174
frame_end and frame_end_intr_en
8175
\family default
8176
 are 0 on power-up or reset.
8177
 The frame end interrupt marks the
8178
\begin_inset Quotes eld
8179
\end_inset
8180
 
8181
heartbeat
8182
\begin_inset Quotes erd
8183
\end_inset
8184
 
8185
 of the video display engine.
8186
 
8187
\end_layout
8188
 
8189
\begin_layout Standard
8190
When one of
8191
\family typewriter
8192
horizontal_size, vertical_size, display_horizontal_size, display_vertical_size,
8193
 progressive_sequence, aspect_ratio_information, frame_rate_code, frame_rate_ext
8194
ension_n,
8195
\family default
8196
 or
8197
\family typewriter
8198
frame_rate_extension_d
8199
\family default
8200
 changes, and
8201
\family typewriter
8202
video_ch_intr_en
8203
\family default
8204
 is high,
8205
\family typewriter
8206
video_ch
8207
\family default
8208
 is set and the interrupt signal is asserted until the status register is
8209
 read.
8210
 If
8211
\family typewriter
8212
video_ch_intr_en
8213
\family default
8214
 is low, the interrupt signal is never raised.
8215
 
8216
\family typewriter
8217
video_ch
8218
\family default
8219
 and
8220
\family typewriter
8221
video_ch_intr_en
8222
\family default
8223
 are 0 on power-up or reset.
8224
 The video change interrupt marks an abrupt change in the MPEG2 bitstream.
8225
\end_layout
8226
 
8227
\begin_layout Standard
8228
It is suggested that software, when receiving a video change interrupt:
8229
\end_layout
8230
 
8231
\begin_layout Enumerate
8232
Reads the size, display size and frame rate registers.
8233
\end_layout
8234
 
8235
\begin_layout Enumerate
8236
If
8237
\family typewriter
8238
frame_rate_code
8239
\family default
8240
,
8241
\family typewriter
8242
frame_rate_extension_d
8243
\family default
8244
 or
8245
\family typewriter
8246
frame_rate_extension_n
8247
\family default
8248
 have changed, change dot clock frequency.
8249
\end_layout
8250
 
8251
\begin_layout Enumerate
8252
Calculates a video modeline, either using a look-up table or algebraically,
8253
 e.g.
8254
 using the VESA General Timing Formula.
8255
\end_layout
8256
 
8257
\begin_layout Enumerate
8258
Writes the new video modeline parameters to the horizontal, horizontal sync,
8259
 vertical, vertical sync and video mode registers.
8260
 This restarts the video synchronization.
8261
\end_layout
8262
 
8263
\begin_layout Enumerate
8264
If
8265
\family typewriter
8266
horizontal_size
8267
\family default
8268
 or
8269
\family typewriter
8270
vertical_size
8271
\family default
8272
 have changed and
8273
\family typewriter
8274
osd_enable
8275
\family default
8276
 is high, rewrite the On-Screen Display.
8277
\end_layout
8278
 
8279
\begin_layout Section
8280
Watchdog
8281
\end_layout
8282
 
8283
\begin_layout Standard
8284
The MPEG2 decoder contains a watchdog circuit.
8285
 The watchdog circuit resets the decoder if the decoder is unresponsive.
8286
 The decoder is considered unresponsive if the decoder does not accept MPEG2
8287
 data for a period of time longer than the watchdog timeout interval.
8288
 We outline how to configure the watchdog timeout interval, define under
8289
 which conditions the watchdog circuit activates, and describe what happens
8290
 when the watchdog timer expires.
8291
\end_layout
8292
 
8293
\begin_layout Standard
8294
The watchdog timeout interval can be configured by writing
8295
\family typewriter
8296
watchdog_interval
8297
\family default
8298
, register 0, bits 15-8.
8299
 
8300
\end_layout
8301
 
8302
\begin_layout Itemize
8303
writing 0 to
8304
\family typewriter
8305
watchdog_interval
8306
\family default
8307
 causes the watchdog timer to expire immediately.
8308
 
8309
\end_layout
8310
 
8311
\begin_layout Itemize
8312
writing a value from 1 to 254, inclusive, to
8313
\family typewriter
8314
watchdog_interval
8315
\family default
8316
 enables the watchdog circuit.
8317
\end_layout
8318
 
8319
\begin_layout Itemize
8320
writing 255 decimal to
8321
\family typewriter
8322
watchdog_interval
8323
\family default
8324
 disables the watchdog circuit.
8325
 
8326
\end_layout
8327
 
8328
\begin_layout Standard
8329
The default value of
8330
\family typewriter
8331
watchdog_interval
8332
\family default
8333
 is 127.
8334
 If
8335
\family typewriter
8336
watchdog_interval
8337
\family default
8338
 has a value from 1 to 254, inclusive, the watchdog timeout is
8339
\begin_inset Formula
8340
\[
8341
watchdog\_timeout=(watchdog\_interval+1).(repeat\_frame+1).2^{18}
8342
\]
8343
 
8344
\end_inset
8345
 
8346
 
8347
\family typewriter
8348
clk
8349
\family default
8350
 clock cycles.
8351
 
8352
\family typewriter
8353
repeat_frame
8354
\family default
8355
 (Section
8356
\begin_inset CommandInset ref
8357
LatexCommand ref
8358
reference "sec:Trick-mode"
8359
 
8360
\end_inset
8361
 
8362
) determines the numer of times a decoded video frame is displayed.
8363
 Each decoded video image is shown
8364
\family typewriter
8365
repeat_frame
8366
\family default
8367
 
8368
\begin_inset space ~
8369
\end_inset
8370
 
8371
+
8372
\begin_inset space ~
8373
\end_inset
8374
 
8375
1 times.
8376
 If a video frame is shown n times, the watchdog timeout is multiplied by
8377
 n as well.
8378
 This implies there is no need to adjust the watchdog timer if video is
8379
 reproduced in slow motion.
8380
 
8381
\end_layout
8382
 
8383
\begin_layout Standard
8384
The default value of
8385
\family typewriter
8386
repeat_frame
8387
\family default
8388
 is 0.
8389
 If decoder
8390
\family typewriter
8391
clk
8392
\family default
8393
 frequency is 75 MHz the default watchdog timeout interval is 0.45 seconds.
8394
\end_layout
8395
 
8396
\begin_layout Standard
8397
The watchdog timer starts running when the decoder raises the
8398
\family typewriter
8399
busy
8400
\family default
8401
 signal.
8402
 If the
8403
\family typewriter
8404
busy
8405
\family default
8406
 signal remains high for longer than the watchdog timeout interval, a reset
8407
 is generated.
8408
 
8409
\end_layout
8410
 
8411
\begin_layout Standard
8412
The watchdog timer is reset
8413
\end_layout
8414
 
8415
\begin_layout Itemize
8416
when the global
8417
\family typewriter
8418
rst
8419
\family default
8420
 input signal is driven low
8421
\end_layout
8422
 
8423
\begin_layout Itemize
8424
when the decoder
8425
\family typewriter
8426
busy
8427
\family default
8428
 signal is low
8429
\end_layout
8430
 
8431
\begin_layout Itemize
8432
when the decoder has been halted to show the current frame (
8433
\family typewriter
8434
repeat_frame
8435
\family default
8436
 is 31,
8437
\shape italic
8438
freeze-frame
8439
\shape default
8440
)
8441
\end_layout
8442
 
8443
\begin_layout Itemize
8444
when the decoder has been halted to show a particular framestore frame (
8445
\family typewriter
8446
source_select
8447
\family default
8448
 is non-zero)
8449
\end_layout
8450
 
8451
\begin_layout Itemize
8452
when the watchdog circuit has been disabled (
8453
\family typewriter
8454
watchdog_interval
8455
\family default
8456
 has been set to 0 or to 255)
8457
\end_layout
8458
 
8459
\begin_layout Itemize
8460
during the first
8461
\begin_inset Formula $2^{26}$
8462
\end_inset
8463
 
8464
 
8465
\family typewriter
8466
clk
8467
\family default
8468
 clock cycles after the watchdog timer expired, or the decoder was reset.
8469
 This watchdog timer
8470
\shape italic
8471
holdoff
8472
\shape default
8473
 disables the watchdog during system initialisation.
8474
 If clock frequency is 75 MHz,
8475
\begin_inset Formula $2^{26}$
8476
\end_inset
8477
 
8478
 clock cycles corresponds to 0.89 seconds.
8479
\end_layout
8480
 
8481
\begin_layout Standard
8482
When the watchdog timer expires
8483
\end_layout
8484
 
8485
\begin_layout Itemize
8486
the
8487
\family typewriter
8488
watchdog_rst
8489
\family default
8490
 output pin becomes low during one
8491
\family typewriter
8492
clk
8493
\family default
8494
 clock cycle.
8495
 The
8496
\family typewriter
8497
watchdog_rst
8498
\family default
8499
 output can be used to reset external hardware, or to generate a processor
8500
 interrupt.
8501
\end_layout
8502
 
8503
\begin_layout Itemize
8504
the
8505
\family typewriter
8506
watchdog_status
8507
\family default
8508
 bit in the status register is set to 1.
8509
 Software can detect whether the watchdog timer expired by checking
8510
\family typewriter
8511
watchdog_status
8512
\family default
8513
 in the status register.
8514
 Reading the status register resets the
8515
\family typewriter
8516
watchdog_status
8517
\family default
8518
 bit back to 0.
8519
\end_layout
8520
 
8521
\begin_layout Itemize
8522
The framestore, On-Screen Display and circular video buffer are filled with
8523
 zeroes.
8524
\end_layout
8525
 
8526
\begin_layout Itemize
8527
any data in the memory response fifo is discarded.
8528
 
8529
\end_layout
8530
 
8531
\begin_layout Itemize
8532
 
8533
\family typewriter
8534
osd_enable
8535
\family default
8536
 is set to 0.
8537
 This disables the On-Screen Display, as the On-Screen Display now contains
8538
 all zeroes.
8539
\end_layout
8540
 
8541
\begin_layout Itemize
8542
configuration data written to the register file is
8543
\series bold
8544
not
8545
\series default
8546
 modified when the watchdog expires.
8547
 In particular, the video timing parameters (Sec.
8548
 
8549
\begin_inset CommandInset ref
8550
LatexCommand ref
8551
reference "sec:Video-Modeline"
8552
 
8553
\end_inset
8554
 
8555
) remain unchanged.
8556
\end_layout
8557
 
8558
\begin_layout Standard
8559
The
8560
\family typewriter
8561
watchdog_rst
8562
\family default
8563
 output pin can optionally be used to reset external hardware when the watchdog
8564
 expires.
8565
 Examples of external hardware are the memory controller and the DVI dot
8566
 clock generator.
8567
 Note, however, resetting memory controller and DVI dot clock generator
8568
 when the watchdog timer expires is optional.
8569
 
8570
\end_layout
8571
 
8572
\begin_layout Standard
8573
The MPEG2 decoder does not require the external memory controller to be
8574
 reset when the watchdog timer expires.
8575
 When the watchdog timer expires, the MPEG2 decoder will write zeroes to
8576
 all addresses from FRAME_0_Y to VBUF_END (
8577
\family typewriter
8578
framestore_request.v
8579
\family default
8580
, STATE_CLEAR).
8581
 When the watchdog timer expires, the MPEG2 decoder will also read and discard
8582
 any data from the memory response fifo (
8583
\family typewriter
8584
framestore_response.v
8585
\family default
8586
, STATE_FLUSH).
8587
 These two actions re-synchronize MPEG2 decoder and external memory controller
8588
 and bring memory to a known state.
8589
\end_layout
8590
 
8591
\begin_layout Standard
8592
The MPEG2 decoder also does not require the DVI clock generator to be reset
8593
 when the watchdog expires.
8594
 When the watchdog timer expires, the video timing parameters (Sec.
8595
 
8596
\begin_inset CommandInset ref
8597
LatexCommand ref
8598
reference "sec:Video-Modeline"
8599
 
8600
\end_inset
8601
 
8602
) remain unchanged.
8603
 If the DVI clock frequency remains unchanged when the watchdog timer expires,
8604
 the decoder will continue with exactly the same video timing.
8605
\end_layout
8606
 
8607
\begin_layout Section
8608
Trick mode
8609
\end_layout
8610
 
8611
\begin_layout Standard
8612
\begin_inset CommandInset label
8613
LatexCommand label
8614
name "sec:Trick-mode"
8615
 
8616
\end_inset
8617
 
8618
The trick mode register provides a toolbox for implementing non-standard
8619
 playback modes.
8620
 An example of a non-standard playback mode is slow motion.
8621
 It is perhaps easiest to visualize trick mode settings as a pipeline (Figure
8622
 
8623
\begin_inset CommandInset ref
8624
LatexCommand ref
8625
reference "fig:Trick-mode-pipeline"
8626
 
8627
\end_inset
8628
 
8629
).
8630
\begin_inset Float figure
8631
wide false
8632
sideways false
8633
status open
8634
 
8635
\begin_layout Plain Layout
8636
\align center
8637
\begin_inset ERT
8638
status open
8639
 
8640
\begin_layout Plain Layout
8641
 
8642
 
8643
\backslash
8644
centering
8645
\end_layout
8646
 
8647
\end_inset
8648
 
8649
 
8650
\begin_inset Graphics
8651
        filename trick_mode.eps
8652
        lyxscale 50
8653
        scale 60
8654
        clip
8655
 
8656
\end_inset
8657
 
8658
 
8659
\end_layout
8660
 
8661
\begin_layout Plain Layout
8662
\begin_inset Caption Standard
8663
 
8664
\begin_layout Plain Layout
8665
\begin_inset CommandInset label
8666
LatexCommand label
8667
name "fig:Trick-mode-pipeline"
8668
 
8669
\end_inset
8670
 
8671
Trick mode pipeline
8672
\end_layout
8673
 
8674
\end_inset
8675
 
8676
 
8677
\end_layout
8678
 
8679
\end_inset
8680
 
8681
 
8682
\end_layout
8683
 
8684
\begin_layout Labeling
8685
\labelwidthstring 00.00.0000
8686
 
8687
\family typewriter
8688
flush_vbuf
8689
\family default
8690
 Writing one to
8691
\family typewriter
8692
flush_vbuf
8693
\family default
8694
 clears the incoming video buffer.
8695
 Flushing the video buffer may be useful when changing channels.
8696
\end_layout
8697
 
8698
\begin_layout Labeling
8699
\labelwidthstring 00.00.0000
8700
 
8701
\family typewriter
8702
persistence
8703
\family default
8704
 If
8705
\family typewriter
8706
persistence
8707
\family default
8708
 is set, and no new decoded image is available at frame start the last decoded
8709
 image is shown again.
8710
 If
8711
\family typewriter
8712
persistence
8713
\family default
8714
 is not set, and no new decoded image is available at frame start a blank
8715
 screen is shown.
8716
 
8717
\family typewriter
8718
persistence
8719
\family default
8720
 is 1 on power-up or reset.
8721
\end_layout
8722
 
8723
\begin_layout Labeling
8724
\labelwidthstring 00.00.0000
8725
 
8726
\family typewriter
8727
source_select
8728
\family default
8729
 If zero, normal video is shown.
8730
  Non-zero values allow continuous output of a blank screen, or a specific
8731
 frame from the frame store, as in table
8732
\begin_inset CommandInset ref
8733
LatexCommand ref
8734
reference "tab:Source-Select"
8735
 
8736
\end_inset
8737
 
8738
.
8739
 
8740
\family typewriter
8741
source_select
8742
\family default
8743
 is 0 on power-up or reset.
8744
 
8745
\begin_inset Float table
8746
wide false
8747
sideways false
8748
status open
8749
 
8750
\begin_layout Plain Layout
8751
\align center
8752
\begin_inset Tabular
8753
8754
8755
8756
8757
8758
8759
\begin_inset Text
8760
 
8761
\begin_layout Plain Layout
8762
source_select
8763
\end_layout
8764
 
8765
\end_inset
8766
8767
8768
\begin_inset Text
8769
 
8770
\begin_layout Plain Layout
8771
Frame shown
8772
\end_layout
8773
 
8774
\end_inset
8775
8776
8777
8778
8779
\begin_inset Text
8780
 
8781
\begin_layout Plain Layout
8782
 
8783
\end_layout
8784
 
8785
\end_inset
8786
8787
8788
\begin_inset Text
8789
 
8790
\begin_layout Plain Layout
8791
last decoded frame
8792
\end_layout
8793
 
8794
\end_inset
8795
8796
8797
8798
8799
\begin_inset Text
8800
 
8801
\begin_layout Plain Layout
8802
1
8803
\end_layout
8804
 
8805
\end_inset
8806
8807
8808
\begin_inset Text
8809
 
8810
\begin_layout Plain Layout
8811
blank screen
8812
\end_layout
8813
 
8814
\end_inset
8815
8816
8817
8818
8819
\begin_inset Text
8820
 
8821
\begin_layout Plain Layout
8822
4
8823
\end_layout
8824
 
8825
\end_inset
8826
8827
8828
\begin_inset Text
8829
 
8830
\begin_layout Plain Layout
8831
frame 0
8832
\end_layout
8833
 
8834
\end_inset
8835
8836
8837
8838
8839
\begin_inset Text
8840
 
8841
\begin_layout Plain Layout
8842
5
8843
\end_layout
8844
 
8845
\end_inset
8846
8847
8848
\begin_inset Text
8849
 
8850
\begin_layout Plain Layout
8851
frame 1
8852
\end_layout
8853
 
8854
\end_inset
8855
8856
8857
8858
8859
\begin_inset Text
8860
 
8861
\begin_layout Plain Layout
8862
6
8863
\end_layout
8864
 
8865
\end_inset
8866
8867
8868
\begin_inset Text
8869
 
8870
\begin_layout Plain Layout
8871
frame 2
8872
\end_layout
8873
 
8874
\end_inset
8875
8876
8877
8878
8879
\begin_inset Text
8880
 
8881
\begin_layout Plain Layout
8882
7
8883
\end_layout
8884
 
8885
\end_inset
8886
8887
8888
\begin_inset Text
8889
 
8890
\begin_layout Plain Layout
8891
frame 3
8892
\end_layout
8893
 
8894
\end_inset
8895
8896
8897
8898
 
8899
\end_inset
8900
 
8901
 
8902
\end_layout
8903
 
8904
\begin_layout Plain Layout
8905
\begin_inset Caption Standard
8906
 
8907
\begin_layout Plain Layout
8908
\begin_inset CommandInset label
8909
LatexCommand label
8910
name "tab:Source-Select"
8911
 
8912
\end_inset
8913
 
8914
Source Select
8915
\end_layout
8916
 
8917
\end_inset
8918
 
8919
 
8920
\end_layout
8921
 
8922
\end_inset
8923
 
8924
 
8925
\end_layout
8926
 
8927
\begin_layout Labeling
8928
\labelwidthstring 00.00.0000
8929
 
8930
\family typewriter
8931
repeat_frame
8932
\family default
8933
 If zero, each decoded image is shown once.
8934
  If non-zero, contains the number of times the decoded image will be additional
8935
ly shown, as in table
8936
\begin_inset CommandInset ref
8937
LatexCommand ref
8938
reference "tab:Repeat-Frame"
8939
 
8940
\end_inset
8941
 
8942
.
8943
 A value of 31 shows the image indefinitely.
8944
 
8945
\family typewriter
8946
repeat_frame
8947
\family default
8948
 is 0 on power-up or reset.
8949
 
8950
\begin_inset Float table
8951
wide false
8952
sideways false
8953
status open
8954
 
8955
\begin_layout Plain Layout
8956
\align center
8957
\begin_inset Tabular
8958
8959
8960
8961
8962
8963
8964
\begin_inset Text
8965
 
8966
\begin_layout Plain Layout
8967
repeat_frame
8968
\end_layout
8969
 
8970
\end_inset
8971
8972
8973
\begin_inset Text
8974
 
8975
\begin_layout Plain Layout
8976
times shown
8977
\end_layout
8978
 
8979
\end_inset
8980
8981
8982
8983
8984
\begin_inset Text
8985
 
8986
\begin_layout Plain Layout
8987
 
8988
\end_layout
8989
 
8990
\end_inset
8991
8992
8993
\begin_inset Text
8994
 
8995
\begin_layout Plain Layout
8996
1
8997
\end_layout
8998
 
8999
\end_inset
9000
9001
9002
9003
9004
\begin_inset Text
9005
 
9006
\begin_layout Plain Layout
9007
1
9008
\end_layout
9009
 
9010
\end_inset
9011
9012
9013
\begin_inset Text
9014
 
9015
\begin_layout Plain Layout
9016
2
9017
\end_layout
9018
 
9019
\end_inset
9020
9021
9022
9023
9024
\begin_inset Text
9025
 
9026
\begin_layout Plain Layout
9027
2
9028
\end_layout
9029
 
9030
\end_inset
9031
9032
9033
\begin_inset Text
9034
 
9035
\begin_layout Plain Layout
9036
3
9037
\end_layout
9038
 
9039
\end_inset
9040
9041
9042
9043
9044
\begin_inset Text
9045
 
9046
\begin_layout Plain Layout
9047
\SpecialChar ldots
9048
 
9049
\end_layout
9050
 
9051
\end_inset
9052
9053
9054
\begin_inset Text
9055
 
9056
\begin_layout Plain Layout
9057
 
9058
\end_layout
9059
 
9060
\end_inset
9061
9062
9063
9064
9065
\begin_inset Text
9066
 
9067
\begin_layout Plain Layout
9068
30
9069
\end_layout
9070
 
9071
\end_inset
9072
9073
9074
\begin_inset Text
9075
 
9076
\begin_layout Plain Layout
9077
31
9078
\end_layout
9079
 
9080
\end_inset
9081
9082
9083
9084
9085
\begin_inset Text
9086
 
9087
\begin_layout Plain Layout
9088
31
9089
\end_layout
9090
 
9091
\end_inset
9092
9093
9094
\begin_inset Text
9095
 
9096
\begin_layout Plain Layout
9097
forever
9098
\end_layout
9099
 
9100
\end_inset
9101
9102
9103
9104
 
9105
\end_inset
9106
 
9107
 
9108
\end_layout
9109
 
9110
\begin_layout Plain Layout
9111
\begin_inset Caption Standard
9112
 
9113
\begin_layout Plain Layout
9114
\begin_inset CommandInset label
9115
LatexCommand label
9116
name "tab:Repeat-Frame"
9117
 
9118
\end_inset
9119
 
9120
Repeat Frame
9121
\end_layout
9122
 
9123
\end_inset
9124
 
9125
 
9126
\end_layout
9127
 
9128
\end_inset
9129
 
9130
 
9131
\end_layout
9132
 
9133
\begin_layout Labeling
9134
\labelwidthstring 00.00.0000
9135
 
9136
\family typewriter
9137
deinterlace
9138
\family default
9139
 Setting
9140
\family typewriter
9141
deinterlace
9142
\family default
9143
 high forces the decoder to output video as frames, even if the MPEG2 stream
9144
 is interlaced.
9145
 This can be used to reproduce interlaced MPEG2 streams on progressive displays.
9146
 Setting
9147
\family typewriter
9148
deinterlace
9149
\family default
9150
 is not recommended when reproducing a progressive MPEG2 stream on a progressive
9151
 display.
9152
 Setting
9153
\family typewriter
9154
deinterlace
9155
\family default
9156
 has no effect if the video modeline specifies interlaced output (
9157
\family typewriter
9158
interlaced
9159
\family default
9160
 set).
9161
 Note no spatial or temporal interpolation is done (
9162
\begin_inset Quotes eld
9163
\end_inset
9164
 
9165
weaving
9166
\begin_inset Quotes erd
9167
\end_inset
9168
 
9169
).
9170
\end_layout
9171
 
9172
\begin_layout Section
9173
Test point
9174
\end_layout
9175
 
9176
\begin_layout Standard
9177
The MPEG2 decoder provides a test point for connecting a logic analyzer.
9178
 Internally, the decoder contains various test points, only one of which
9179
 is actually output to the logic analyzer.
9180
 Which internal test point is output to the logic analyzer is determined
9181
 by the contents of
9182
\family typewriter
9183
testpoint_sel
9184
\family default
9185
.
9186
 The value of bits 0..31 of the test point can also be read by software.
9187
 While this is no substitute for a logic analyzer, it is recognized that
9188
 in many cases this may be the only option available.
9189
\end_layout
9190
 
9191
\begin_layout Labeling
9192
\labelwidthstring 00.00.0000
9193
 
9194
\family typewriter
9195
testpoint_sel
9196
\family default
9197
 Used in hardware debugging.
9198
  Determines which internal test point is multiplexed to the 34-channel
9199
 logical analyzer test point.
9200
\end_layout
9201
 
9202
\begin_layout Labeling
9203
\labelwidthstring 00.00.0000
9204
 
9205
\family typewriter
9206
testpoint
9207
\family default
9208
 Used in hardware debugging.
9209
  Provides the current value of bits 0 to 31 of the 34-channel logical analyzer
9210
 test point.
9211
\end_layout
9212
 
9213
\begin_layout Chapter
9214
\begin_inset CommandInset label
9215
LatexCommand label
9216
name "cha:Decoder-Sources"
9217
 
9218
\end_inset
9219
 
9220
Decoder Sources
9221
\end_layout
9222
 
9223
\begin_layout Standard
9224
Chapter
9225
\begin_inset CommandInset ref
9226
LatexCommand ref
9227
reference "cha:Decoder-Sources"
9228
 
9229
\end_inset
9230
 
9231
 provides an overview of the decoder sources for the hardware engineer who
9232
 wishes to synthesize or modify the decoder.
9233
\end_layout
9234
 
9235
\begin_layout Section
9236
Source Directory Structure
9237
\end_layout
9238
 
9239
\begin_layout Standard
9240
The source files are organized in directories as follows:
9241
\end_layout
9242
 
9243
\begin_layout Standard
9244
\begin_inset Tabular
9245
9246
9247
9248
9249
9250
9251
9252
\begin_inset Text
9253
 
9254
\begin_layout Plain Layout
9255
 
9256
\family typewriter
9257
bench/
9258
\end_layout
9259
 
9260
\end_inset
9261
9262
9263
\begin_inset Text
9264
 
9265
\begin_layout Plain Layout
9266
 
9267
\family typewriter
9268
iverilog
9269
\end_layout
9270
 
9271
\end_inset
9272
9273
9274
\begin_inset Text
9275
 
9276
\begin_layout Plain Layout
9277
Icarus behavioral simulation, page
9278
\begin_inset CommandInset ref
9279
LatexCommand pageref
9280
reference "subsec:Icarus-Verilog-Simulation"
9281
 
9282
\end_inset
9283
 
9284
 
9285
\end_layout
9286
 
9287
\end_inset
9288
9289
9290
9291
9292
\begin_inset Text
9293
 
9294
\begin_layout Plain Layout
9295
 
9296
\family typewriter
9297
doc/
9298
\end_layout
9299
 
9300
\end_inset
9301
9302
9303
\begin_inset Text
9304
 
9305
\begin_layout Plain Layout
9306
 
9307
\end_layout
9308
 
9309
\end_inset
9310
9311
9312
\begin_inset Text
9313
 
9314
\begin_layout Plain Layout
9315
Documentation
9316
\end_layout
9317
 
9318
\end_inset
9319
9320
9321
9322
9323
\begin_inset Text
9324
 
9325
\begin_layout Plain Layout
9326
 
9327
\family typewriter
9328
rtl/
9329
\end_layout
9330
 
9331
\end_inset
9332
9333
9334
\begin_inset Text
9335
 
9336
\begin_layout Plain Layout
9337
 
9338
\family typewriter
9339
mpeg2
9340
\end_layout
9341
 
9342
\end_inset
9343
9344
9345
\begin_inset Text
9346
 
9347
\begin_layout Plain Layout
9348
MPEG2 decoder, page
9349
\begin_inset CommandInset ref
9350
LatexCommand pageref
9351
reference "sec:MPEG2-Decoder"
9352
 
9353
\end_inset
9354
 
9355
 
9356
\end_layout
9357
 
9358
\end_inset
9359
9360
9361
9362
9363
\begin_inset Text
9364
 
9365
\begin_layout Plain Layout
9366
 
9367
\family typewriter
9368
tools/
9369
\end_layout
9370
 
9371
\end_inset
9372
9373
9374
\begin_inset Text
9375
 
9376
\begin_layout Plain Layout
9377
 
9378
\family typewriter
9379
fsmgraph
9380
\end_layout
9381
 
9382
\end_inset
9383
9384
9385
\begin_inset Text
9386
 
9387
\begin_layout Plain Layout
9388
Finite state machine graphs, page
9389
\begin_inset CommandInset ref
9390
LatexCommand pageref
9391
reference "subsec:FSM-Graphs"
9392
 
9393
\end_inset
9394
 
9395
 
9396
\end_layout
9397
 
9398
\end_inset
9399
9400
9401
9402
9403
\begin_inset Text
9404
 
9405
\begin_layout Plain Layout
9406
 
9407
\end_layout
9408
 
9409
\end_inset
9410
9411
9412
\begin_inset Text
9413
 
9414
\begin_layout Plain Layout
9415
 
9416
\family typewriter
9417
ieee1180
9418
\end_layout
9419
 
9420
\end_inset
9421
9422
9423
\begin_inset Text
9424
 
9425
\begin_layout Plain Layout
9426
IEEE1180 IDCT accuracy test, page
9427
\begin_inset CommandInset ref
9428
LatexCommand pageref
9429
reference "subsec:IEEE-1180-IDCT"
9430
 
9431
\end_inset
9432
 
9433
 
9434
\end_layout
9435
 
9436
\end_inset
9437
9438
9439
9440
9441
\begin_inset Text
9442
 
9443
\begin_layout Plain Layout
9444
 
9445
\end_layout
9446
 
9447
\end_inset
9448
9449
9450
\begin_inset Text
9451
 
9452
\begin_layout Plain Layout
9453
 
9454
\family typewriter
9455
logicport
9456
\end_layout
9457
 
9458
\end_inset
9459
9460
9461
\begin_inset Text
9462
 
9463
\begin_layout Plain Layout
9464
Logicport logic analyzer, page
9465
\begin_inset CommandInset ref
9466
LatexCommand pageref
9467
reference "subsec:Logicport-Logic-Analyzer"
9468
 
9469
\end_inset
9470
 
9471
 
9472
\end_layout
9473
 
9474
\end_inset
9475
9476
9477
9478
9479
\begin_inset Text
9480
 
9481
\begin_layout Plain Layout
9482
 
9483
\end_layout
9484
 
9485
\end_inset
9486
9487
9488
\begin_inset Text
9489
 
9490
\begin_layout Plain Layout
9491
 
9492
\family typewriter
9493
mpeg2dec
9494
\end_layout
9495
 
9496
\end_inset
9497
9498
9499
\begin_inset Text
9500
 
9501
\begin_layout Plain Layout
9502
Reference MPEG2 decoder, page
9503
\begin_inset CommandInset ref
9504
LatexCommand pageref
9505
reference "subsec:mpeg2decode"
9506
 
9507
\end_inset
9508
 
9509
 
9510
\end_layout
9511
 
9512
\end_inset
9513
9514
9515
9516
9517
\begin_inset Text
9518
 
9519
\begin_layout Plain Layout
9520
 
9521
\end_layout
9522
 
9523
\end_inset
9524
9525
9526
\begin_inset Text
9527
 
9528
\begin_layout Plain Layout
9529
 
9530
\family typewriter
9531
streams
9532
\end_layout
9533
 
9534
\end_inset
9535
9536
9537
\begin_inset Text
9538
 
9539
\begin_layout Plain Layout
9540
MPEG2 test streams, page
9541
\begin_inset CommandInset ref
9542
LatexCommand pageref
9543
reference "subsec:MPEG2-Test-Streams"
9544
 
9545
\end_inset
9546
 
9547
 
9548
\end_layout
9549
 
9550
\end_inset
9551
9552
9553
9554
 
9555
\end_inset
9556
 
9557
 
9558
\end_layout
9559
 
9560
\begin_layout Standard
9561
A linux system with Icarus Verilog is suggested, but not required, as developmen
9562
t environment.
9563
\end_layout
9564
 
9565
\begin_layout Section
9566
\begin_inset CommandInset label
9567
LatexCommand label
9568
name "sec:MPEG2-Decoder"
9569
 
9570
\end_inset
9571
 
9572
MPEG2 Decoder
9573
\end_layout
9574
 
9575
\begin_layout Standard
9576
The
9577
\family typewriter
9578
rtl/mpeg2
9579
\family default
9580
 directory contains the sources of the MPEG2 decoder itself.
9581
 This section describes the changes most likely to be needed when instantiating
9582
 the decoder: changing default modeline, changing FIFO sizes, choosing dual-port
9583
ed ram and fifo models, changing memory mapping.
9584
 In addition, references are provided for the IDCT and bilinear chroma upsamplin
9585
g algorithms.
9586
\end_layout
9587
 
9588
\begin_layout Subsection
9589
FIFO sizes
9590
\end_layout
9591
 
9592
\begin_layout Standard
9593
Fifo depth and almost full/almost empty thresholds are defined in
9594
\family typewriter
9595
fifo_size.v
9596
\family default
9597
.
9598
 Note setting fifo depths and thresholds to arbitrary values can result
9599
 in decoder deadlock.
9600
\end_layout
9601
 
9602
\begin_layout Standard
9603
Figure
9604
\begin_inset CommandInset ref
9605
LatexCommand ref
9606
reference "fig:MPEG2-decoder-dataflow"
9607
 
9608
\end_inset
9609
 
9610
 shows MPEG2 decoder data flow.
9611
 Together,
9612
\family typewriter
9613
framestore_request
9614
\family default
9615
, memory controller and
9616
\family typewriter
9617
framestore_response
9618
\family default
9619
 implement the framestore.
9620
 Communication with the framestore is through fifos.
9621
 The incoming MPEG2 stream is written to
9622
\family typewriter
9623
vbuf_write_fifo
9624
\family default
9625
.
9626
 
9627
\family typewriter
9628
framestore_request
9629
\family default
9630
 reads the stream from
9631
\family typewriter
9632
vbuf_write_fifo
9633
\family default
9634
 and writes it to the circular video buffer in memory.
9635
 If
9636
\family typewriter
9637
vbuf_read_fifo
9638
\family default
9639
 is almost empty,
9640
\family typewriter
9641
framestore_request
9642
\family default
9643
 issues memory read requests for the circular video buffer.
9644
 
9645
\family typewriter
9646
framestore_response
9647
\family default
9648
 receives data from the circular video buffer and writes the data to
9649
\family typewriter
9650
vbuf_read_fifo
9651
\family default
9652
.
9653
 The net result is
9654
\family typewriter
9655
vbuf_write_fifo
9656
\family default
9657
, circular video buffer and
9658
\family typewriter
9659
vbuf_read_fifo
9660
\family default
9661
 acting as a single, huge fifo.
9662
\end_layout
9663
 
9664
\begin_layout Standard
9665
Variable-length decoding reads the MPEG2 stream from
9666
\family typewriter
9667
vbuf_read_fifo
9668
\family default
9669
, and produces motion vectors and run/length codes.
9670
 Run/length decoding, inverse quantizing, inverse zig-zag and inverse discrete
9671
 cosine transform (IDCT) read the run/length codes and produce the prediction
9672
 error.
9673
 The prediction error is written to
9674
\family typewriter
9675
predict_err_fifo
9676
\family default
9677
, one row of eight pixels at a time.
9678
\end_layout
9679
 
9680
\begin_layout Standard
9681
Motion compensation address generation
9682
\family typewriter
9683
motcomp_addrgen
9684
\family default
9685
 translates the motion vectors into three sets of memory addresses: the
9686
 addresses where the forward motion compensation pixels can be read, the
9687
 addresses where the backward motion compensation pixels can be read, and
9688
 the addresses where the reconstructed pixels can be written.
9689
 The addresses of the pixels needed for forward and backward motion compensation
9690
 are written to the
9691
\family typewriter
9692
fwd_reader
9693
\family default
9694
 and
9695
\family typewriter
9696
bwd_reader
9697
\family default
9698
 address fifos.
9699
 The address of the reconstructed pixels is written to the motion compensation
9700
 destination fifo,
9701
\family typewriter
9702
dst_fifo
9703
\family default
9704
.
9705
 The memory subsystem reads the
9706
\family typewriter
9707
fwd_reader
9708
\family default
9709
 and
9710
\family typewriter
9711
bwd_reader
9712
\family default
9713
 address fifos, and writes the pixel values to the
9714
\family typewriter
9715
fwd_reader
9716
\family default
9717
 and
9718
\family typewriter
9719
bwd_reader
9720
\family default
9721
 data fifos.
9722
 
9723
\end_layout
9724
 
9725
\begin_layout Standard
9726
Motion compensation reconstruction
9727
\family typewriter
9728
motcomp_recon
9729
\family default
9730
 adds pixel values read from forward motion compensation data fifo, backward
9731
 motion compensation data fifo and prediction error, and writes the result
9732
 to the address read from the motion compensation destination fifo.
9733
\begin_inset Separator latexpar
9734
\end_inset
9735
 
9736
 
9737
\end_layout
9738
 
9739
\begin_layout Standard
9740
Displaying the video image requires chroma resampling and yuv to rgb conversion.
9741
 Resampling address generation
9742
\family typewriter
9743
resample_addrgen
9744
\family default
9745
 scans the reconstructed video image, line by line.
9746
 The addresses of the pixels are written to the
9747
\family typewriter
9748
disp_reader
9749
\family default
9750
 address fifo.
9751
 The memory subsystem reads the addresses from
9752
\family typewriter
9753
disp_reader
9754
\family default
9755
 address fifo and writes the pixel values to the
9756
\family typewriter
9757
disp_reader
9758
\family default
9759
 data fifo.
9760
 
9761
\family typewriter
9762
resample_dta
9763
\family default
9764
 reads the pixel values from the
9765
\family typewriter
9766
disp_reader
9767
\family default
9768
 data fifo, while
9769
\family typewriter
9770
resample_bilinear
9771
\family default
9772
 does the actual bilinear chroma upsampling calculations.
9773
 After conversion from yuv to rgb, the pixels are written to the pixel queue
9774
 
9775
\family typewriter
9776
pixel_queue
9777
\family default
9778
 which adapts between decoder and DVI clocks.
9779
 
9780
\begin_inset Float figure
9781
wide false
9782
sideways false
9783
status open
9784
 
9785
\begin_layout Plain Layout
9786
\align center
9787
\begin_inset Graphics
9788
        filename fifos.ps
9789
        lyxscale 33
9790
        height 90theight%
9791
 
9792
\end_inset
9793
 
9794
 
9795
\end_layout
9796
 
9797
\begin_layout Plain Layout
9798
\begin_inset Caption Standard
9799
 
9800
\begin_layout Plain Layout
9801
\begin_inset CommandInset label
9802
LatexCommand label
9803
name "fig:MPEG2-decoder-dataflow"
9804
 
9805
\end_inset
9806
 
9807
MPEG2 decoder dataflow
9808
\end_layout
9809
 
9810
\end_inset
9811
 
9812
 
9813
\end_layout
9814
 
9815
\end_inset
9816
 
9817
 
9818
\end_layout
9819
 
9820
\begin_layout Standard
9821
Note the memory tag fifo
9822
\family typewriter
9823
mem_tag_fifo
9824
\family default
9825
 between
9826
\family typewriter
9827
framestore_request
9828
\family default
9829
 and
9830
\family typewriter
9831
framestore_response
9832
\family default
9833
.
9834
 For every memory read request,
9835
\family typewriter
9836
framestore_request
9837
\family default
9838
 writes a tag to the memory tag fifo.
9839
 The tag identifies the source of the memory read request: circular video
9840
 buffer, forward and backward motion compensation, or resampling.
9841
 For every data word received from memory,
9842
\family typewriter
9843
framestore_response
9844
\family default
9845
 reads a tag from the memory tag fifo, and writes the data word received
9846
 from memory to the data fifo corresponding to the tag.
9847
 If the memory tag fifo is almost full,
9848
\family typewriter
9849
framestore_request
9850
\family default
9851
 stops issuing memory read or write requests.
9852
 As a result, the number of outstanding memory read requests is always less
9853
 than or equal to the size of the memory tag fifo.
9854
\end_layout
9855
 
9856
\begin_layout Standard
9857
When modifying
9858
\family typewriter
9859
fifo_size.v
9860
\family default
9861
, care should be taken the fifos can never overflow.
9862
 Note that when
9863
\family typewriter
9864
framestore_request
9865
\family default
9866
 stops issuing memory read requests, there still may be outstanding memory
9867
 read requests in the memory request queue.
9868
 The number of outstanding memory read requests is always smaller than,
9869
 or equal to, the size of the memory tag fifo.
9870
 When modifying
9871
\family typewriter
9872
fifo_size.v
9873
\family default
9874
, remember fifos which receive data from memory may receive outstanding
9875
 data, even after
9876
\family typewriter
9877
framestore_request
9878
\family default
9879
 has stopped sending memory read requests.
9880
\end_layout
9881
 
9882
\begin_layout Subsection
9883
Dual-ported memory and FIFO models
9884
\end_layout
9885
 
9886
\begin_layout Standard
9887
FPGAs typically provide dedicated on-chip fifo's and dual-port RAMs.
9888
 The designer then has to choose between using vendor-provided FIFOs and
9889
 dual-port RAMs or writing his own.
9890
\end_layout
9891
 
9892
\begin_layout Standard
9893
The file
9894
\family typewriter
9895
wrappers.v
9896
\family default
9897
 defines the implementation of all dual-port RAMs and fifos in the design.
9898
 For each component, two versions are provided: one where read and write
9899
 port share a common clock; and one where read and write port have independent
9900
 clocks.
9901
 
9902
\end_layout
9903
 
9904
\begin_layout Labeling
9905
\labelwidthstring 00.00.0000
9906
 
9907
\family typewriter
9908
dpram_sc
9909
\family default
9910
 dual-ported ram, same clock for read and write ports
9911
\end_layout
9912
 
9913
\begin_layout Labeling
9914
\labelwidthstring 00.00.0000
9915
 
9916
\family typewriter
9917
dpram_dc
9918
\family default
9919
 dual-ported ram, different clock for read and write ports
9920
\end_layout
9921
 
9922
\begin_layout Labeling
9923
\labelwidthstring 00.00.0000
9924
 
9925
\family typewriter
9926
fifo_sc
9927
\family default
9928
 fifo, same clock for read and write ports
9929
\end_layout
9930
 
9931
\begin_layout Labeling
9932
\labelwidthstring 00.00.0000
9933
 
9934
\family typewriter
9935
fifo_dc
9936
\family default
9937
 fifo, different clock for read and write ports
9938
\end_layout
9939
 
9940
\begin_layout Standard
9941
The dual-ported rams are inferred from code in
9942
\family typewriter
9943
wrappers.v
9944
\family default
9945
.
9946
 The fifos can be either implemented in Verilog, or instantiated as FPGA
9947
 primitives, depending upon
9948
\family typewriter
9949
wrappers.v
9950
\family default
9951
.
9952
 Following fifo models are available:
9953
\end_layout
9954
 
9955
\begin_layout Labeling
9956
\labelwidthstring 00.00.0000
9957
 
9958
\family typewriter
9959
xfifo_sc.v
9960
\family default
9961
 fifo, same clock for read and write port.
9962
\end_layout
9963
 
9964
\begin_layout Labeling
9965
\labelwidthstring 00.00.0000
9966
 
9967
\family typewriter
9968
generic_fifo_sc_b.v
9969
\family default
9970
 OpenCores generic fifo, different clock for read and write ports.
9971
\end_layout
9972
 
9973
\begin_layout Labeling
9974
\labelwidthstring 00.00.0000
9975
 
9976
\family typewriter
9977
xilinx_fifo_sc.v
9978
\family default
9979
 Xilinx Virtex-5 fifo, same clock for read and write ports.
9980
 Uses
9981
\family typewriter
9982
xilinx_fifo.v
9983
\family default
9984
,
9985
\family typewriter
9986
xilinx_fifo144.v
9987
\family default
9988
 and
9989
\family typewriter
9990
xilinx_fifo216.v
9991
\family default
9992
.
9993
\end_layout
9994
 
9995
\begin_layout Labeling
9996
\labelwidthstring 00.00.0000
9997
 
9998
\family typewriter
9999
xilinx_fifo_dc.v
10000
\family default
10001
 Xilinx Virtex-5 fifo, different clock for read and write ports.
10002
 Uses
10003
\family typewriter
10004
xilinx_fifo.v
10005
\family default
10006
,
10007
\family typewriter
10008
xilinx_fifo144.v
10009
\family default
10010
 and
10011
\family typewriter
10012
xilinx_fifo216.v
10013
\family default
10014
.
10015
\end_layout
10016
 
10017
\begin_layout Standard
10018
 
10019
\family typewriter
10020
xilinx_fifo_sc.v
10021
\family default
10022
 and
10023
\family typewriter
10024
xilinx_fifo_dc.v
10025
\family default
10026
 implement fifos using FIFO18, FIFO18_36, FIFO36 or FIFO36_72 Virtex-5 primitive
10027
s.
10028
 Table
10029
\begin_inset CommandInset ref
10030
LatexCommand ref
10031
reference "tab:Xilinx-FIFO-address"
10032
 
10033
\end_inset
10034
 
10035
 lists available data and address widths.
10036
 If a
10037
\family typewriter
10038
xilinx_fifo_sc.v
10039
\family default
10040
 or a
10041
\family typewriter
10042
xilinx_fifo_dc.v
10043
\family default
10044
 is instantiated with data and/or address widths different from those in
10045
 Table
10046
\begin_inset CommandInset ref
10047
LatexCommand ref
10048
reference "tab:Xilinx-FIFO-address"
10049
 
10050
\end_inset
10051
 
10052
, the actual fifo will be larger and/or wider.
10053
 
10054
\begin_inset Float table
10055
wide false
10056
sideways false
10057
status open
10058
 
10059
\begin_layout Plain Layout
10060
\begin_inset ERT
10061
status open
10062
 
10063
\begin_layout Plain Layout
10064
 
10065
 
10066
\backslash
10067
centering
10068
\end_layout
10069
 
10070
\end_inset
10071
 
10072
 
10073
\begin_inset Tabular
10074
10075
10076
10077
10078
10079
10080
10081
10082
\begin_inset Text
10083
 
10084
\begin_layout Plain Layout
10085
Data bits
10086
\end_layout
10087
 
10088
\end_inset
10089
10090
10091
\begin_inset Text
10092
 
10093
\begin_layout Plain Layout
10094
Address bits
10095
\end_layout
10096
 
10097
\end_inset
10098
10099
10100
\begin_inset Text
10101
 
10102
\begin_layout Plain Layout
10103
FIFO Depth
10104
\end_layout
10105
 
10106
\end_inset
10107
10108
10109
\begin_inset Text
10110
 
10111
\begin_layout Plain Layout
10112
Implementation
10113
\end_layout
10114
 
10115
\end_inset
10116
10117
10118
10119
10120
\begin_inset Text
10121
 
10122
\begin_layout Plain Layout
10123
4
10124
\end_layout
10125
 
10126
\end_inset
10127
10128
10129
\begin_inset Text
10130
 
10131
\begin_layout Plain Layout
10132
13
10133
\end_layout
10134
 
10135
\end_inset
10136
10137
10138
\begin_inset Text
10139
 
10140
\begin_layout Plain Layout
10141
8192
10142
\end_layout
10143
 
10144
\end_inset
10145
10146
10147
\begin_inset Text
10148
 
10149
\begin_layout Plain Layout
10150
FIFO36
10151
\end_layout
10152
 
10153
\end_inset
10154
10155
10156
10157
10158
\begin_inset Text
10159
 
10160
\begin_layout Plain Layout
10161
4
10162
\end_layout
10163
 
10164
\end_inset
10165
10166
10167
\begin_inset Text
10168
 
10169
\begin_layout Plain Layout
10170
12
10171
\end_layout
10172
 
10173
\end_inset
10174
10175
10176
\begin_inset Text
10177
 
10178
\begin_layout Plain Layout
10179
4096
10180
\end_layout
10181
 
10182
\end_inset
10183
10184
10185
\begin_inset Text
10186
 
10187
\begin_layout Plain Layout
10188
FIFO18
10189
\end_layout
10190
 
10191
\end_inset
10192
10193
10194
10195
10196
\begin_inset Text
10197
 
10198
\begin_layout Plain Layout
10199
9
10200
\end_layout
10201
 
10202
\end_inset
10203
10204
10205
\begin_inset Text
10206
 
10207
\begin_layout Plain Layout
10208
12
10209
\end_layout
10210
 
10211
\end_inset
10212
10213
10214
\begin_inset Text
10215
 
10216
\begin_layout Plain Layout
10217
4096
10218
\end_layout
10219
 
10220
\end_inset
10221
10222
10223
\begin_inset Text
10224
 
10225
\begin_layout Plain Layout
10226
FIFO36
10227
\end_layout
10228
 
10229
\end_inset
10230
10231
10232
10233
10234
\begin_inset Text
10235
 
10236
\begin_layout Plain Layout
10237
9
10238
\end_layout
10239
 
10240
\end_inset
10241
10242
10243
\begin_inset Text
10244
 
10245
\begin_layout Plain Layout
10246
11
10247
\end_layout
10248
 
10249
\end_inset
10250
10251
10252
\begin_inset Text
10253
 
10254
\begin_layout Plain Layout
10255
2048
10256
\end_layout
10257
 
10258
\end_inset
10259
10260
10261
\begin_inset Text
10262
 
10263
\begin_layout Plain Layout
10264
FIFO18
10265
\end_layout
10266
 
10267
\end_inset
10268
10269
10270
10271
10272
\begin_inset Text
10273
 
10274
\begin_layout Plain Layout
10275
18
10276
\end_layout
10277
 
10278
\end_inset
10279
10280
10281
\begin_inset Text
10282
 
10283
\begin_layout Plain Layout
10284
11
10285
\end_layout
10286
 
10287
\end_inset
10288
10289
10290
\begin_inset Text
10291
 
10292
\begin_layout Plain Layout
10293
2048
10294
\end_layout
10295
 
10296
\end_inset
10297
10298
10299
\begin_inset Text
10300
 
10301
\begin_layout Plain Layout
10302
FIFO36
10303
\end_layout
10304
 
10305
\end_inset
10306
10307
10308
10309
10310
\begin_inset Text
10311
 
10312
\begin_layout Plain Layout
10313
18
10314
\end_layout
10315
 
10316
\end_inset
10317
10318
10319
\begin_inset Text
10320
 
10321
\begin_layout Plain Layout
10322
10
10323
\end_layout
10324
 
10325
\end_inset
10326
10327
10328
\begin_inset Text
10329
 
10330
\begin_layout Plain Layout
10331
1024
10332
\end_layout
10333
 
10334
\end_inset
10335
10336
10337
\begin_inset Text
10338
 
10339
\begin_layout Plain Layout
10340
FIFO18
10341
\end_layout
10342
 
10343
\end_inset
10344
10345
10346
10347
10348
\begin_inset Text
10349
 
10350
\begin_layout Plain Layout
10351
36
10352
\end_layout
10353
 
10354
\end_inset
10355
10356
10357
\begin_inset Text
10358
 
10359
\begin_layout Plain Layout
10360
10
10361
\end_layout
10362
 
10363
\end_inset
10364
10365
10366
\begin_inset Text
10367
 
10368
\begin_layout Plain Layout
10369
1024
10370
\end_layout
10371
 
10372
\end_inset
10373
10374
10375
\begin_inset Text
10376
 
10377
\begin_layout Plain Layout
10378
FIFO36
10379
\end_layout
10380
 
10381
\end_inset
10382
10383
10384
10385
10386
\begin_inset Text
10387
 
10388
\begin_layout Plain Layout
10389
36
10390
\end_layout
10391
 
10392
\end_inset
10393
10394
10395
\begin_inset Text
10396
 
10397
\begin_layout Plain Layout
10398
9
10399
\end_layout
10400
 
10401
\end_inset
10402
10403
10404
\begin_inset Text
10405
 
10406
\begin_layout Plain Layout
10407
512
10408
\end_layout
10409
 
10410
\end_inset
10411
10412
10413
\begin_inset Text
10414
 
10415
\begin_layout Plain Layout
10416
FIFO18
10417
\end_layout
10418
 
10419
\end_inset
10420
10421
10422
10423
10424
\begin_inset Text
10425
 
10426
\begin_layout Plain Layout
10427
72
10428
\end_layout
10429
 
10430
\end_inset
10431
10432
10433
\begin_inset Text
10434
 
10435
\begin_layout Plain Layout
10436
9
10437
\end_layout
10438
 
10439
\end_inset
10440
10441
10442
\begin_inset Text
10443
 
10444
\begin_layout Plain Layout
10445
512
10446
\end_layout
10447
 
10448
\end_inset
10449
10450
10451
\begin_inset Text
10452
 
10453
\begin_layout Plain Layout
10454
FIFO36_72
10455
\end_layout
10456
 
10457
\end_inset
10458
10459
10460
10461
10462
\begin_inset Text
10463
 
10464
\begin_layout Plain Layout
10465
144
10466
\end_layout
10467
 
10468
\end_inset
10469
10470
10471
\begin_inset Text
10472
 
10473
\begin_layout Plain Layout
10474
9
10475
\end_layout
10476
 
10477
\end_inset
10478
10479
10480
\begin_inset Text
10481
 
10482
\begin_layout Plain Layout
10483
512
10484
\end_layout
10485
 
10486
\end_inset
10487
10488
10489
\begin_inset Text
10490
 
10491
\begin_layout Plain Layout
10492
2 * FIFO36_72
10493
\end_layout
10494
 
10495
\end_inset
10496
10497
10498
10499
10500
\begin_inset Text
10501
 
10502
\begin_layout Plain Layout
10503
216
10504
\end_layout
10505
 
10506
\end_inset
10507
10508
10509
\begin_inset Text
10510
 
10511
\begin_layout Plain Layout
10512
9
10513
\end_layout
10514
 
10515
\end_inset
10516
10517
10518
\begin_inset Text
10519
 
10520
\begin_layout Plain Layout
10521
512
10522
\end_layout
10523
 
10524
\end_inset
10525
10526
10527
\begin_inset Text
10528
 
10529
\begin_layout Plain Layout
10530
3 * FIFO36_72
10531
\end_layout
10532
 
10533
\end_inset
10534
10535
10536
10537
 
10538
\end_inset
10539
 
10540
 
10541
\end_layout
10542
 
10543
\begin_layout Plain Layout
10544
\begin_inset Caption Standard
10545
 
10546
\begin_layout Plain Layout
10547
\begin_inset CommandInset label
10548
LatexCommand label
10549
name "tab:Xilinx-FIFO-address"
10550
 
10551
\end_inset
10552
 
10553
Xilinx FIFO address widths
10554
\end_layout
10555
 
10556
\end_inset
10557
 
10558
 
10559
\end_layout
10560
 
10561
\end_inset
10562
 
10563
 
10564
\end_layout
10565
 
10566
\begin_layout Subsection
10567
Memory mapping
10568
\end_layout
10569
 
10570
\begin_layout Standard
10571
The MPEG2 decoder memory mapping is defined in
10572
\family typewriter
10573
rtl/mpeg2/mem_codes.v
10574
\family default
10575
.
10576
 The default memory mapping needs 4 mbyte RAM and is sufficient for SDTV.
10577
 By defining
10578
\family typewriter
10579
MP_AT_HL
10580
\family default
10581
 an alternative memory mapping can be chosen which requires 16 mbyte RAM
10582
 and is sufficient for HDTV.
10583
\end_layout
10584
 
10585
\begin_layout Standard
10586
Translation of macroblock addresses to memory addresses is implemented in
10587
 
10588
\family typewriter
10589
rtl/mpeg2/mem_addr.v
10590
\family default
10591
.
10592
 A macroblock address, a signed motion vector (mv_x, mv_y) with halfpixel
10593
 precision, and an signed offset (delta_x, delta_y) with pixel precision
10594
 are translated to an address in memory.
10595
\end_layout
10596
 
10597
\begin_layout Standard
10598
The macroblock address is assumed to iterate over all allowable values:
10599
 beginning at zero, incrementing by one, until after the final macroblock
10600
 the macroblock address is reset to zero.
10601
 Macroblock address has to be initialized to zero, or an error condition
10602
 results.
10603
 Macroblock address changes other than incrementing by one, remaining unchanged
10604
 or resetting to zero also result in an error condition.
10605
\end_layout
10606
 
10607
\begin_layout Standard
10608
Note the motion vector (mv_x, mv_y) is scaled by a factor two when accessing
10609
 chrominance as defined in
10610
\begin_inset CommandInset citation
10611
LatexCommand cite
10612
after "par. 7.6.3.7"
10613
key "key-1"
10614
 
10615
\end_inset
10616
 
10617
.
10618
 The offset (delta_x, delta_y) remains unchanged when accessing chrominance
10619
 blocks.
10620
\end_layout
10621
 
10622
\begin_layout Standard
10623
The translation of macroblock addresses and motion vectors to memory addresses
10624
 in
10625
\family typewriter
10626
rtl/mpeg2/mem_addr.v
10627
\family default
10628
 has to be kept synchronized with the framestore dump task
10629
\family typewriter
10630
write_framestore
10631
\family default
10632
 in
10633
\family typewriter
10634
rtl/sim/mem_ctl.v
10635
\family default
10636
, else the framestore dumps made during simulation will not accurately represent
10637
 framestore contents.
10638
\end_layout
10639
 
10640
\begin_layout Standard
10641
Note out-of-range memory accesses are translated to the ADDR_ERR address.
10642
 If a memory request with address
10643
\family typewriter
10644
mem_req_rd_addr
10645
\family default
10646
 equal to ADDR_ERR occurs during simulation, simulation stops with an error
10647
 message.
10648
\end_layout
10649
 
10650
\begin_layout Standard
10651
The MPEG2 decoder zeroes out the framestore after system reset or when the
10652
 watchdog timer expires.
10653
 The MPEG2 decoder writes zeroes to all addresses from FRAME_0_Y to VBUF_END
10654
 when the
10655
\family typewriter
10656
rst
10657
\family default
10658
 input pin goes low or when the
10659
\family typewriter
10660
watchdog_rst
10661
\family default
10662
 pin goes low.
10663
 
10664
\end_layout
10665
 
10666
\begin_layout Subsection
10667
Modeline
10668
\end_layout
10669
 
10670
\begin_layout Standard
10671
The default modeline is 800x600 progressive @ 60 Hz (SVGA).
10672
 The
10673
\family typewriter
10674
modeline.v
10675
\family default
10676
 source contains the modeline parameters, and can be edited to change horizontal
10677
 and vertical resolution, sync pulse width and position.
10678
 The default pixel frequency on the ML505 is 38.21 MHz, and is defined in
10679
 
10680
\family typewriter
10681
dotclock_synthesizer.v
10682
\family default
10683
.
10684
 Note
10685
\family typewriter
10686
dotclock_synthesizer.v
10687
\family default
10688
 synthesizes two frequencies, dotclock and dotclock90, equal in frequency
10689
 but 90 degrees phase shifted.
10690
 The frequency synthesized is
10691
\begin_inset Formula
10692
\[
10693
f_{out}=f_{osc}.r.\frac{DCM\_ADV\_INST.CLKFX\_MULTIPLY}{DCM\_ADV\_INST.CLKFX\_DIVIDE}
10694
\]
10695
 
10696
\end_inset
10697
 
10698
 
10699
\end_layout
10700
 
10701
\begin_layout Standard
10702
where
10703
\begin_inset Formula $f_{osc}$
10704
\end_inset
10705
 
10706
 is the 100 MHz user clock frequency
10707
\begin_inset Formula
10708
\[
10709
f_{osc}=100
10710
\]
10711
 
10712
\end_inset
10713
 
10714
and
10715
\begin_inset Formula
10716
\[
10717
r=\frac{PLL\_ADV\_INST.CLKFBOUT\_MULT}{PLL\_ADV\_INST.CLKOUT1\_DIVIDE}=0.25
10718
\]
10719
 
10720
\end_inset
10721
 
10722
 To change pixel frequency, first calculate the multiplier and divider for
10723
 the new frequency.
10724
 Suppose one wishes to synthesize a frequency of 35 MHz:
10725
\end_layout
10726
 
10727
\begin_layout LyX-Code
10728
macpro mpeg2ether # ./mpeg2ether --dot_clock 35
10729
\end_layout
10730
 
10731
\begin_layout LyX-Code
10732
dotclock ftarget =  35.00 fout =  35.00 MHz
10733
\begin_inset Newline newline
10734
\end_inset
10735
 
10736
 multiplier:  7 divider:  5
10737
\begin_inset Newline newline
10738
\end_inset
10739
 
10740
 high frequency mode: 0 ch7301 lowfreq: 1 ch7301 colorbars: 0
10741
\end_layout
10742
 
10743
\begin_layout Standard
10744
A pixel frequency of 35 MHz requires a multiplier of 7 and a divider of
10745
 5, with lowfreq asserted.
10746
 Hence, in
10747
\family typewriter
10748
dvi/dotclock.v
10749
\family default
10750
:
10751
\end_layout
10752
 
10753
\begin_layout LyX-Code
10754
parameter [7:0]
10755
\end_layout
10756
 
10757
\begin_layout LyX-Code
10758
  DEFAULT_DIVIDER       = 8'd4, // Divider minus one, actually
10759
\end_layout
10760
 
10761
\begin_layout LyX-Code
10762
  DEFAULT_MULTIPLIER    = 8'd6; // Multiplier minus one, actually
10763
\end_layout
10764
 
10765
\begin_layout LyX-Code
10766
 
10767
\end_layout
10768
 
10769
\begin_layout LyX-Code
10770
parameter
10771
\end_layout
10772
 
10773
\begin_layout LyX-Code
10774
  DEFAULT_LOWFREQ       = 1'b1
10775
\end_layout
10776
 
10777
\begin_layout LyX-Code
10778
 
10779
\end_layout
10780
 
10781
\begin_layout Standard
10782
Note the modeline can be configured at any time using the
10783
\family typewriter
10784
mpeg2ether
10785
\family default
10786
 utility; it is only when changing the
10787
\emph on
10788
default
10789
\emph default
10790
 modeline that modifying the sources is necessary.
10791
 The
10792
\family typewriter
10793
mpeg2ether
10794
\family default
10795
 utility is explained on page
10796
\begin_inset CommandInset ref
10797
LatexCommand pageref
10798
reference "subsec:mpeg2ether"
10799
 
10800
\end_inset
10801
 
10802
.
10803
\end_layout
10804
 
10805
\begin_layout Subsection
10806
Inverse Discrete Cosine Transform
10807
\end_layout
10808
 
10809
\begin_layout Standard
10810
The IDCT algorithm used is described in
10811
\begin_inset CommandInset citation
10812
LatexCommand cite
10813
key "key-3"
10814
 
10815
\end_inset
10816
 
10817
.
10818
 A copy of document
10819
\begin_inset CommandInset citation
10820
LatexCommand cite
10821
key "key-3"
10822
 
10823
\end_inset
10824
 
10825
 can be found in the
10826
\family typewriter
10827
doc
10828
\family default
10829
 directory.
10830
 The IDCT implementation uses 12 18x18 multipliers and two dual-port rams,
10831
 and can do streaming.
10832
 Run-length decoding (
10833
\family typewriter
10834
rld.v
10835
\family default
10836
), inverse quantizing (
10837
\family typewriter
10838
iquant.v, zigzag_table.v
10839
\family default
10840
) and IDCT transform (
10841
\family typewriter
10842
idct.v
10843
\family default
10844
) all operate at the same speed of one pixel per clock.
10845
 The IDCT meets the requirements of the former IEEE-1180.
10846
\end_layout
10847
 
10848
\begin_layout Subsection
10849
Bilinear chroma upsampling
10850
\end_layout
10851
 
10852
\begin_layout Standard
10853
The chrominance components have half the vertical and half the horizontal
10854
 resolution of the luminance.
10855
 To obtain equal chrominance and luminance resolution, bilinear chroma upsamplin
10856
g is used.
10857
 Bilinear chroma upsampling computes chroma pixel values by vertical and
10858
 horizontal interpolation.
10859
 Vertical interpolation implies adding two rows of chroma values with different
10860
 weights.
10861
 The chroma row closest to the luma row gets weight 3/4, while the chroma
10862
 row farthest from the luma row gets weight 1/4.
10863
 The document
10864
\family typewriter
10865
doc/bilinear.pdf
10866
\family default
10867
 shows the weights used.
10868
\begin_inset Separator latexpar
10869
\end_inset
10870
 
10871
 
10872
\end_layout
10873
 
10874
\begin_layout Standard
10875
Bilinear chroma upsampling is implemented in various source files, as described
10876
 in Table
10877
\begin_inset CommandInset ref
10878
LatexCommand ref
10879
reference "tab:Upsampling-source-files"
10880
 
10881
\end_inset
10882
 
10883
.
10884
 
10885
\begin_inset Float table
10886
wide false
10887
sideways false
10888
status open
10889
 
10890
\begin_layout Plain Layout
10891
\align center
10892
\begin_inset Tabular
10893
10894
10895
10896
10897
10898
10899
\begin_inset Text
10900
 
10901
\begin_layout Plain Layout
10902
Source
10903
\end_layout
10904
 
10905
\end_inset
10906
10907
10908
\begin_inset Text
10909
 
10910
\begin_layout Plain Layout
10911
Description
10912
\end_layout
10913
 
10914
\end_inset
10915
10916
10917
10918
10919
\begin_inset Text
10920
 
10921
\begin_layout Plain Layout
10922
 
10923
\family typewriter
10924
resample.v
10925
\end_layout
10926
 
10927
\end_inset
10928
10929
10930
\begin_inset Text
10931
 
10932
\begin_layout Plain Layout
10933
Upsampling top-level file
10934
\end_layout
10935
 
10936
\end_inset
10937
10938
10939
10940
10941
\begin_inset Text
10942
 
10943
\begin_layout Plain Layout
10944
 
10945
\family typewriter
10946
resample_addrgen.v
10947
\end_layout
10948
 
10949
\end_inset
10950
10951
10952
\begin_inset Text
10953
 
10954
\begin_layout Plain Layout
10955
Generates memory addresses of chroma/lumi rows
10956
\end_layout
10957
 
10958
\end_inset
10959
10960
10961
10962
10963
\begin_inset Text
10964
 
10965
\begin_layout Plain Layout
10966
 
10967
\family typewriter
10968
resample_dta.v
10969
\end_layout
10970
 
10971
\end_inset
10972
10973
10974
\begin_inset Text
10975
 
10976
\begin_layout Plain Layout
10977
Reads chroma/lumi rows from memory
10978
\end_layout
10979
 
10980
\end_inset
10981
10982
10983
10984
10985
\begin_inset Text
10986
 
10987
\begin_layout Plain Layout
10988
 
10989
\family typewriter
10990
resample_bilinear.v
10991
\end_layout
10992
 
10993
\end_inset
10994
10995
10996
\begin_inset Text
10997
 
10998
\begin_layout Plain Layout
10999
Performs bilinear upsampling calculations
11000
\end_layout
11001
 
11002
\end_inset
11003
11004
11005
11006
 
11007
\end_inset
11008
 
11009
 
11010
\end_layout
11011
 
11012
\begin_layout Plain Layout
11013
\begin_inset Caption Standard
11014
 
11015
\begin_layout Plain Layout
11016
\begin_inset CommandInset label
11017
LatexCommand label
11018
name "tab:Upsampling-source-files"
11019
 
11020
\end_inset
11021
 
11022
Upsampling source files
11023
\end_layout
11024
 
11025
\end_inset
11026
 
11027
 
11028
\end_layout
11029
 
11030
\begin_layout Plain Layout
11031
 
11032
\end_layout
11033
 
11034
\end_inset
11035
 
11036
 
11037
\end_layout
11038
 
11039
\begin_layout Section
11040
Simulation
11041
\end_layout
11042
 
11043
\begin_layout Standard
11044
Behavioral simulation using Icarus Verilog is described.
11045
 For timing simulation consult your synthesis software.
11046
\end_layout
11047
 
11048
\begin_layout Subsection
11049
\begin_inset CommandInset label
11050
LatexCommand label
11051
name "subsec:Icarus-Verilog-Simulation"
11052
 
11053
\end_inset
11054
 
11055
Icarus Verilog Simulation
11056
\end_layout
11057
 
11058
\begin_layout Standard
11059
Behavioral simulation of the decoder can be performed using Icarus Verilog.
11060
 The Icarus Verilog testbench in the
11061
\family typewriter
11062
bench/iverilog
11063
\family default
11064
 directory contains the following files:
11065
\end_layout
11066
 
11067
\begin_layout Labeling
11068
\labelwidthstring 00.00.0000
11069
 
11070
\family typewriter
11071
testbench.v
11072
\family default
11073
 Top-level Verilog source; instantiates MPEG2 decoder.
11074
\end_layout
11075
 
11076
\begin_layout Labeling
11077
\labelwidthstring 00.00.0000
11078
 
11079
\family typewriter
11080
mem_ctl.v
11081
\family default
11082
 Simple memory controller, for simulation only.
11083
\end_layout
11084
 
11085
\begin_layout Labeling
11086
\labelwidthstring 00.00.0000
11087
 
11088
\family typewriter
11089
Makefile
11090
\family default
11091
 Makefile to create and run the simulation.
11092
\end_layout
11093
 
11094
\begin_layout Labeling
11095
\labelwidthstring 00.00.0000
11096
 
11097
\family typewriter
11098
wrappers.v
11099
\family default
11100
 Wrapper for dual-port ram and fifos.
11101
 Implements synchronous fifos using
11102
\family typewriter
11103
xfifo_sc.v
11104
\family default
11105
, and implements asynchronous fifos as OpenCores
11106
\family typewriter
11107
generic_fifo_sc_b.v
11108
\family default
11109
.
11110
 
11111
\end_layout
11112
 
11113
\begin_layout Labeling
11114
\labelwidthstring 00.00.0000
11115
 
11116
\family typewriter
11117
generic_dpram.v, generic_fifo_dc.v, generic_fifo_sc_b.v
11118
\family default
11119
 Opencores generic fifos.
11120
\end_layout
11121
 
11122
\begin_layout Standard
11123
Create the decoder is easy using the accompanying
11124
\family typewriter
11125
Makefile
11126
\family default
11127
.
11128
 First, remove any files left over from a previous simulation:
11129
\end_layout
11130
 
11131
\begin_layout LyX-Code
11132
koen@macpro ~/xilinx/mpeg2/bench/iverilog $ make clean
11133
\end_layout
11134
 
11135
\begin_layout LyX-Code
11136
rm -f mpeg2 stream.dat testbench.lxt trace framestore_*.ppm tv_out_*.ppm
11137
\end_layout
11138
 
11139
\begin_layout Standard
11140
Now create the decoder:
11141
\end_layout
11142
 
11143
\begin_layout LyX-Code
11144
koen@macpro ~/xilinx/mpeg2/bench/iverilog $ make
11145
\end_layout
11146
 
11147
\begin_layout LyX-Code
11148
iverilog -D__IVERILOG__ -DMODELINE_SIF -I ../../rtl/mpeg2 -o mpeg2
11149
\begin_inset Newline newline
11150
\end_inset
11151
 
11152
 testbench.v mem_ctl.v wrappers.v generic_fifo_dc.v
11153
\begin_inset Newline newline
11154
\end_inset
11155
 
11156
 generic_fifo_sc_b.v generic_dpram.v ../../rtl/mpeg2/mpeg2video.v
11157
\begin_inset Newline newline
11158
\end_inset
11159
 
11160
../../rtl/mpeg2/vbuf.v ../../rtl/mpeg2/getbits.v
11161
\begin_inset Newline newline
11162
\end_inset
11163
 
11164
xxd -c 1 ../../tools/streams/stream-susi.mpg |
11165
\begin_inset Newline newline
11166
\end_inset
11167
 
11168
 cut -d
11169
\backslash
11170
  -f 2 > stream.dat
11171
\end_layout
11172
 
11173
\begin_layout Standard
11174
This executes two commands:
11175
\end_layout
11176
 
11177
\begin_layout Itemize
11178
 
11179
\family typewriter
11180
iverilog
11181
\family default
11182
 to compile the Verilog sources to an executable,
11183
\family typewriter
11184
mpeg2
11185
\family default
11186
.
11187
\end_layout
11188
 
11189
\begin_layout Itemize
11190
 
11191
\family typewriter
11192
xxd
11193
\family default
11194
 to convert the binary MPEG2 program stream file
11195
\family typewriter
11196
stream.mpg
11197
\family default
11198
 to an ASCII file
11199
\family typewriter
11200
stream.dat
11201
\family default
11202
, which the simulator can load.
11203
\end_layout
11204
 
11205
\begin_layout Standard
11206
When compiling the Verilog sources, two Verilog parameters are defined on
11207
 the command line:
11208
\family typewriter
11209
__IVERILOG__
11210
\family default
11211
 and
11212
\family typewriter
11213
MODELINE_SIF
11214
\family default
11215
.
11216
 The first Verilog define,
11217
\family typewriter
11218
__IVERILOG__
11219
\family default
11220
 , is defined only during simulation, and never during synthesis.
11221
 It is used to enable several run-time checks which only make sense in a
11222
 simulation environment.
11223
 The second Verilog define,
11224
\family typewriter
11225
MODELINE_SIF
11226
\family default
11227
, chooses one of several pre-defined video output formats from
11228
\family typewriter
11229
modeline.v
11230
\family default
11231
.
11232
\end_layout
11233
 
11234
\begin_layout Standard
11235
Finally, run the newly created executable
11236
\family typewriter
11237
mpeg2:
11238
\end_layout
11239
 
11240
\begin_layout LyX-Code
11241
koen@macpro ~/xilinx/mpeg2/bench/iverilog $ make test
11242
\end_layout
11243
 
11244
\begin_layout LyX-Code
11245
IVERILOG_DUMPER=lxt ./mpeg2
11246
\end_layout
11247
 
11248
\begin_layout LyX-Code
11249
LXT info: dumpfile testbench.lxt opened for output.
11250
\end_layout
11251
 
11252
\begin_layout LyX-Code
11253
$readmemh(stream.dat): Not enough words in the read file for
11254
\begin_inset Newline newline
11255
\end_inset
11256
 
11257
 requested range.
11258
\end_layout
11259
 
11260
\begin_layout LyX-Code
11261
testbench.mem_ctl.write_framestore      dumping framestore to
11262
\begin_inset Newline newline
11263
\end_inset
11264
 
11265
               framestore_000.ppm @  0.02 ms
11266
\end_layout
11267
 
11268
\begin_layout LyX-Code
11269
testbench.mem_ctl.write_framestore      dumping framestore to
11270
\begin_inset Newline newline
11271
\end_inset
11272
 
11273
               framestore_001.ppm @  0.02 ms
11274
\end_layout
11275
 
11276
\begin_layout LyX-Code
11277
testbench.mpeg2.motcomp macroblock_address:    0
11278
\end_layout
11279
 
11280
\begin_layout LyX-Code
11281
testbench.mpeg2.motcomp macroblock_address:    1
11282
\end_layout
11283
 
11284
\begin_layout LyX-Code
11285
testbench.mpeg2.motcomp macroblock_address:    2
11286
\end_layout
11287
 
11288
\begin_layout LyX-Code
11289
testbench.mpeg2.motcomp macroblock_address:    3
11290
\end_layout
11291
 
11292
\begin_layout Standard
11293
During simulation, the environment variable
11294
\family typewriter
11295
IVERILOG_DUMPER=lxt
11296
\family default
11297
 is set.
11298
 This instructs the simulator to produce a dumpfile in the more compact
11299
 
11300
\family typewriter
11301
lxt
11302
\family default
11303
 format, instead of the default
11304
\family typewriter
11305
vcd
11306
\family default
11307
 format.
11308
\end_layout
11309
 
11310
\begin_layout Standard
11311
By default, simulator output includes the macroblock address.
11312
 This allows easy monitoring of decoder progress
11313
\family typewriter
11314
.
11315
\end_layout
11316
 
11317
\begin_layout Standard
11318
Each Verilog source file contains a
11319
\family typewriter
11320
define DEBUG
11321
\family default
11322
 statement, which can be uncommented or commented to switch trace output
11323
 for that particular source file on or off.
11324
 
11325
\end_layout
11326
 
11327
\begin_layout Standard
11328
During simulation, two kinds of graphics files are written: framestore dumps
11329
 
11330
\family typewriter
11331
framestore_*.ppm
11332
\family default
11333
 and video captures
11334
\family typewriter
11335
tv_out_*.ppm
11336
\family default
11337
.
11338
 The framestore is where the decoder stores already decoded images.
11339
 These are Portable Pixmap graphics files in ASCII format.
11340
 Figure
11341
\begin_inset CommandInset ref
11342
LatexCommand ref
11343
reference "fig:susi-framestore-dump"
11344
 
11345
\end_inset
11346
 
11347
 shows a sample framestore dump.
11348
\end_layout
11349
 
11350
\begin_layout Standard
11351
The framestore consists of four frames and the on-screen display (OSD).
11352
 The first two frames contain I and P pictures, while the last two frames
11353
 contain B-pictures.
11354
 Each frame consists of y (luminance), u and v (chrominance) information,
11355
 with u and v having half the horizontal and half the vertical resolution
11356
 of y.
11357
 In the framestore dump, uninitialized memory is displayed in green.
11358
 Looking at figure
11359
\begin_inset CommandInset ref
11360
LatexCommand ref
11361
reference "fig:susi-framestore-dump"
11362
 
11363
\end_inset
11364
 
11365
, one can see that the first three frames of the framestore have already
11366
 been written; the decoder is halfway through the fourth frame.
11367
 The On-Screen Display, at the bottom of the framestore dump, has not been
11368
 initialized yet.
11369
\end_layout
11370
 
11371
\begin_layout Standard
11372
During simulation, by default, the framestore is dumped whenever a new frame
11373
 begins; and every 200 macroblocks.
11374
 As a framestore dump is a graphics file in ASCII format, one can also look
11375
 at the file using standard text file utilities.
11376
 These are the first 12 lines of a sample framestore dump:
11377
\end_layout
11378
 
11379
\begin_layout LyX-Code
11380
koen@macpro ~/xilinx/mpeg2/bench/iverilog
11381
\family typewriter
11382
$ head -12 framestore_0001.ppm
11383
\end_layout
11384
 
11385
\begin_layout LyX-Code
11386
 
11387
\family typewriter
11388
P3
11389
\end_layout
11390
 
11391
\begin_layout LyX-Code
11392
 
11393
\family typewriter
11394
# mpeg2 framestore dump @ 11.81 ms
11395
\end_layout
11396
 
11397
\begin_layout LyX-Code
11398
 
11399
\family typewriter
11400
# frame number 2
11401
\end_layout
11402
 
11403
\begin_layout LyX-Code
11404
 
11405
\family typewriter
11406
# horizontal_size 352
11407
\end_layout
11408
 
11409
\begin_layout LyX-Code
11410
 
11411
\family typewriter
11412
# vertical_size 288
11413
\end_layout
11414
 
11415
\begin_layout LyX-Code
11416
 
11417
\family typewriter
11418
# display_horizontal_size 0
11419
\end_layout
11420
 
11421
\begin_layout LyX-Code
11422
 
11423
\family typewriter
11424
# display_vertical_size 0
11425
\end_layout
11426
 
11427
\begin_layout LyX-Code
11428
 
11429
\family typewriter
11430
# mb_width 22
11431
\end_layout
11432
 
11433
\begin_layout LyX-Code
11434
 
11435
\family typewriter
11436
# mb_height 18
11437
\end_layout
11438
 
11439
\begin_layout LyX-Code
11440
 
11441
\family typewriter
11442
# picture_structure frame picture
11443
\end_layout
11444
 
11445
\begin_layout LyX-Code
11446
 
11447
\family typewriter
11448
# chroma_format 420
11449
\end_layout
11450
 
11451
\begin_layout LyX-Code
11452
 
11453
\family typewriter
11454
352 2618 255
11455
\end_layout
11456
 
11457
\begin_layout LyX-Code
11458
 
11459
\family typewriter
11460
255 255 255 255 255 255 255 255 255 255 255 255
11461
\begin_inset Newline newline
11462
\end_inset
11463
 
11464
 255 255 255 255 255 255 255 255 255 255 255 255
11465
\end_layout
11466
 
11467
\begin_layout Standard
11468
The header of the framestore dump contains information about decoder status
11469
 at the moment of the dump.
11470
\begin_inset Float figure
11471
wide false
11472
sideways false
11473
status open
11474
 
11475
\begin_layout Plain Layout
11476
\align center
11477
\begin_inset ERT
11478
status open
11479
 
11480
\begin_layout Plain Layout
11481
 
11482
 
11483
\backslash
11484
centering
11485
\end_layout
11486
 
11487
\end_inset
11488
 
11489
 
11490
\begin_inset Graphics
11491
        filename framestore_001.ps
11492
        lyxscale 20
11493
        height 80theight%
11494
 
11495
\end_inset
11496
 
11497
 
11498
\end_layout
11499
 
11500
\begin_layout Plain Layout
11501
\begin_inset Caption Standard
11502
 
11503
\begin_layout Plain Layout
11504
\begin_inset CommandInset label
11505
LatexCommand label
11506
name "fig:susi-framestore-dump"
11507
 
11508
\end_inset
11509
 
11510
Framestore dump
11511
\end_layout
11512
 
11513
\end_inset
11514
 
11515
 
11516
\end_layout
11517
 
11518
\end_inset
11519
 
11520
 
11521
\end_layout
11522
 
11523
\begin_layout Standard
11524
Figure
11525
\begin_inset CommandInset ref
11526
LatexCommand ref
11527
reference "fig:susi-video-output"
11528
 
11529
\end_inset
11530
 
11531
 shows video capture file
11532
\family typewriter
11533
tv_out_0000.ppm.
11534
\family default
11535
Horizontal sync is displayed as a vertical black stripe, to the right of
11536
 the image.
11537
 Vertical sync is displayed as a horizontal black stripe, below the image
11538
 area.
11539
 Blanking is displayed in a dark grey.
11540
 The position of picture, horizontal sync and vertical sync in figure
11541
\begin_inset CommandInset ref
11542
LatexCommand ref
11543
reference "fig:susi-video-output"
11544
 
11545
\end_inset
11546
 
11547
 is as defined in figure
11548
\begin_inset CommandInset ref
11549
LatexCommand ref
11550
reference "fig:Progressive-Video"
11551
 
11552
\end_inset
11553
 
11554
.
11555
 As with the framestore dumps, one can look at
11556
\family typewriter
11557
tv_out_0000.ppm
11558
\family default
11559
 using standard text utilities.
11560
 
11561
\end_layout
11562
 
11563
\begin_layout LyX-Code
11564
koen@macpro ~/xilinx/mpeg2/bench/iverilog
11565
\family typewriter
11566
$ head -10 tv_out_0000.ppm
11567
\end_layout
11568
 
11569
\begin_layout LyX-Code
11570
 
11571
\family typewriter
11572
P3
11573
\end_layout
11574
 
11575
\begin_layout LyX-Code
11576
 
11577
\family typewriter
11578
# picture 1 @ 10.73 ms
11579
\end_layout
11580
 
11581
\begin_layout LyX-Code
11582
 
11583
\family typewriter
11584
# horizontal resolution 352 sync_start 381 sync_end 388 length 458
11585
\end_layout
11586
 
11587
\begin_layout LyX-Code
11588
 
11589
\family typewriter
11590
# vertical resolution 288 sync_start 295 sync_end 298 length 315
11591
\end_layout
11592
 
11593
\begin_layout LyX-Code
11594
 
11595
\family typewriter
11596
# interlaced 0 halfline 175
11597
\end_layout
11598
 
11599
\begin_layout LyX-Code
11600
 
11601
\family typewriter
11602
459 316 255
11603
\end_layout
11604
 
11605
\begin_layout LyX-Code
11606
 
11607
\family typewriter
11608
 
11609
\end_layout
11610
 
11611
\begin_layout LyX-Code
11612
 
11613
\family typewriter
11614
 
11615
\end_layout
11616
 
11617
\begin_layout LyX-Code
11618
 
11619
\family typewriter
11620
3 0 3
11621
\end_layout
11622
 
11623
\begin_layout LyX-Code
11624
 
11625
\family typewriter
11626
2 0 2
11627
\end_layout
11628
 
11629
\begin_layout Standard
11630
The header of the video capture file contains information about the video
11631
 modeline at the moment of video capture.
11632
\begin_inset Float figure
11633
wide false
11634
sideways false
11635
status open
11636
 
11637
\begin_layout Plain Layout
11638
\begin_inset ERT
11639
status open
11640
 
11641
\begin_layout Plain Layout
11642
 
11643
 
11644
\backslash
11645
centering
11646
\end_layout
11647
 
11648
\end_inset
11649
 
11650
 
11651
\begin_inset Graphics
11652
        filename tv_out_0.ps
11653
        width 60line%
11654
 
11655
\end_inset
11656
 
11657
 
11658
\end_layout
11659
 
11660
\begin_layout Plain Layout
11661
\begin_inset Caption Standard
11662
 
11663
\begin_layout Plain Layout
11664
\begin_inset CommandInset label
11665
LatexCommand label
11666
name "fig:susi-video-output"
11667
 
11668
\end_inset
11669
 
11670
Video output capture
11671
\end_layout
11672
 
11673
\end_inset
11674
 
11675
 
11676
\end_layout
11677
 
11678
\end_inset
11679
 
11680
 
11681
\end_layout
11682
 
11683
\begin_layout Standard
11684
To end the simulation, go to the window where iverilog is running and type
11685
 
11686
\family typewriter
11687
ctrl-c finish
11688
\family default
11689
.
11690
 The simulator will finish writing
11691
\family typewriter
11692
trace
11693
\family default
11694
 and
11695
\family typewriter
11696
testbench.lxt
11697
\family default
11698
 files, and return control to the command prompt.
11699
 
11700
\end_layout
11701
 
11702
\begin_layout Standard
11703
The binary file
11704
\family typewriter
11705
testbench.lxt
11706
\family default
11707
 is a log of all wire and register changes which occurred during simulation.
11708
 
11709
\family typewriter
11710
testbench.lxt
11711
\family default
11712
 can be displayed using vcd viewers such as
11713
\family typewriter
11714
gtkwave
11715
\family default
11716
.
11717
 
11718
\end_layout
11719
 
11720
\begin_layout LyX-Code
11721
koen@macpro ~/xilinx/mpeg2/bench/iverilog
11722
\family typewriter
11723
$ gtkwave testbench.lxt &
11724
\end_layout
11725
 
11726
\begin_layout Standard
11727
Once
11728
\family typewriter
11729
testbench.lxt
11730
\family default
11731
 file has been loaded in
11732
\family typewriter
11733
gtkwave
11734
\family default
11735
, internal decoder wires and registers can be displayed as waveforms.
11736
\end_layout
11737
 
11738
\begin_layout Subsection
11739
\begin_inset CommandInset label
11740
LatexCommand label
11741
name "subsec:Conformance-Tests"
11742
 
11743
\end_inset
11744
 
11745
Conformance Tests
11746
\end_layout
11747
 
11748
\begin_layout Standard
11749
The
11750
\family typewriter
11751
bench/conformance
11752
\family default
11753
 directory contains a testbench for the ISO/IEC 13818-4 MPEG2 conformance
11754
 tests.
11755
 The testbench assumes the ISO/IEC 13818-4 conformance test bitstreams are
11756
 available on your system.
11757
 The ISO/IEC 13818-4 MPEG2 Conformance test bitstreams for Main Profile
11758
 @ Main Level can be downloaded from the ISO web site using the
11759
\family typewriter
11760
tools/streams/retrieve
11761
\family default
11762
 script.
11763
\end_layout
11764
 
11765
\begin_layout Standard
11766
Typing
11767
\family typewriter
11768
make clean test
11769
\family default
11770
 in the
11771
\family typewriter
11772
bench/conformance
11773
\family default
11774
 directory simulates all MP@ML conformance test bitstreams.
11775
 Table
11776
\begin_inset CommandInset ref
11777
LatexCommand ref
11778
reference "tab:Conformance-Test-Suite"
11779
 
11780
\end_inset
11781
 
11782
 summarizes test results.
11783
 
11784
\end_layout
11785
 
11786
\begin_layout Standard
11787
When running the compatibility tests, note the decoder is not MPEG1-compatible,
11788
 and does not decode MPEG1 streams.
11789
 The MPEG2 decoder decodes MPEG2 4:2:0 program streams only.
11790
 
11791
\begin_inset Float table
11792
wide false
11793
sideways false
11794
status open
11795
 
11796
\begin_layout Plain Layout
11797
\begin_inset Tabular
11798
11799
11800
11801
11802
11803
11804
11805
\begin_inset Text
11806
 
11807
\begin_layout Plain Layout
11808
Test bitstream
11809
\end_layout
11810
 
11811
\end_inset
11812
11813
11814
\begin_inset Text
11815
 
11816
\begin_layout Plain Layout
11817
Profile and level
11818
\end_layout
11819
 
11820
\end_inset
11821
11822
11823
\begin_inset Text
11824
 
11825
\begin_layout Plain Layout
11826
Remarks
11827
\end_layout
11828
 
11829
\end_inset
11830
11831
11832
11833
11834
\begin_inset Text
11835
 
11836
\begin_layout Plain Layout
11837
 
11838
\family typewriter
11839
tcela/tcela-16-matrices
11840
\end_layout
11841
 
11842
\end_inset
11843
11844
11845
\begin_inset Text
11846
 
11847
\begin_layout Plain Layout
11848
 
11849
\family roman
11850
\series medium
11851
\shape up
11852
\size normal
11853
\emph off
11854
\bar no
11855
\noun off
11856
\color none
11857
11172-2
11858
\end_layout
11859
 
11860
\end_inset
11861
11862
11863
\begin_inset Text
11864
 
11865
\begin_layout Plain Layout
11866
Fail (MPEG1 stream)
11867
\end_layout
11868
 
11869
\end_inset
11870
11871
11872
11873
11874
\begin_inset Text
11875
 
11876
\begin_layout Plain Layout
11877
 
11878
\family typewriter
11879
tcela/tcela-18-d-pict
11880
\end_layout
11881
 
11882
\end_inset
11883
11884
11885
\begin_inset Text
11886
 
11887
\begin_layout Plain Layout
11888
 
11889
\family roman
11890
\series medium
11891
\shape up
11892
\size normal
11893
\emph off
11894
\bar no
11895
\noun off
11896
\color none
11897
11172-2
11898
\end_layout
11899
 
11900
\end_inset
11901
11902
11903
\begin_inset Text
11904
 
11905
\begin_layout Plain Layout
11906
Fail (MPEG1 stream)
11907
\end_layout
11908
 
11909
\end_inset
11910
11911
11912
11913
11914
\begin_inset Text
11915
 
11916
\begin_layout Plain Layout
11917
 
11918
\family typewriter
11919
compcore/ccm1
11920
\end_layout
11921
 
11922
\end_inset
11923
11924
11925
\begin_inset Text
11926
 
11927
\begin_layout Plain Layout
11928
 
11929
\family roman
11930
\series medium
11931
\shape up
11932
\size normal
11933
\emph off
11934
\bar no
11935
\noun off
11936
\color none
11937
11172-2
11938
\end_layout
11939
 
11940
\end_inset
11941
11942
11943
\begin_inset Text
11944
 
11945
\begin_layout Plain Layout
11946
Fail (MPEG1 stream)
11947
\end_layout
11948
 
11949
\end_inset
11950
11951
11952
11953
11954
\begin_inset Text
11955
 
11956
\begin_layout Plain Layout
11957
 
11958
\family typewriter
11959
tcela/tcela-19-wide
11960
\end_layout
11961
 
11962
\end_inset
11963
11964
11965
\begin_inset Text
11966
 
11967
\begin_layout Plain Layout
11968
 
11969
\family roman
11970
\series medium
11971
\shape up
11972
\size normal
11973
\emph off
11974
\bar no
11975
\noun off
11976
\color none
11977
11172-2
11978
\end_layout
11979
 
11980
\end_inset
11981
11982
11983
\begin_inset Text
11984
 
11985
\begin_layout Plain Layout
11986
Fail (MPEG1 stream)
11987
\end_layout
11988
 
11989
\end_inset
11990
11991
11992
11993
11994
\begin_inset Text
11995
 
11996
\begin_layout Plain Layout
11997
 
11998
\family typewriter
11999
toshiba/toshiba_DPall-0
12000
\end_layout
12001
 
12002
\end_inset
12003
12004
12005
\begin_inset Text
12006
 
12007
\begin_layout Plain Layout
12008
 
12009
\family roman
12010
\series medium
12011
\shape up
12012
\size normal
12013
\emph off
12014
\bar no
12015
\noun off
12016
\color none
12017
SP@ML
12018
\end_layout
12019
 
12020
\end_inset
12021
12022
12023
\begin_inset Text
12024
 
12025
\begin_layout Plain Layout
12026
 
12027
\end_layout
12028
 
12029
\end_inset
12030
12031
12032
12033
12034
\begin_inset Text
12035
 
12036
\begin_layout Plain Layout
12037
 
12038
\family typewriter
12039
nokia/nokia6_dual
12040
\end_layout
12041
 
12042
\end_inset
12043
12044
12045
\begin_inset Text
12046
 
12047
\begin_layout Plain Layout
12048
 
12049
\family roman
12050
\series medium
12051
\shape up
12052
\size normal
12053
\emph off
12054
\bar no
12055
\noun off
12056
\color none
12057
SP@ML
12058
\end_layout
12059
 
12060
\end_inset
12061
12062
12063
\begin_inset Text
12064
 
12065
\begin_layout Plain Layout
12066
 
12067
\end_layout
12068
 
12069
\end_inset
12070
12071
12072
12073
12074
\begin_inset Text
12075
 
12076
\begin_layout Plain Layout
12077
 
12078
\family typewriter
12079
nokia/nokia6_dual60
12080
\end_layout
12081
 
12082
\end_inset
12083
12084
12085
\begin_inset Text
12086
 
12087
\begin_layout Plain Layout
12088
 
12089
\family roman
12090
\series medium
12091
\shape up
12092
\size normal
12093
\emph off
12094
\bar no
12095
\noun off
12096
\color none
12097
SP@ML
12098
\end_layout
12099
 
12100
\end_inset
12101
12102
12103
\begin_inset Text
12104
 
12105
\begin_layout Plain Layout
12106
 
12107
\end_layout
12108
 
12109
\end_inset
12110
12111
12112
12113
12114
\begin_inset Text
12115
 
12116
\begin_layout Plain Layout
12117
 
12118
\family typewriter
12119
nokia/nokia_7
12120
\end_layout
12121
 
12122
\end_inset
12123
12124
12125
\begin_inset Text
12126
 
12127
\begin_layout Plain Layout
12128
 
12129
\family roman
12130
\series medium
12131
\shape up
12132
\size normal
12133
\emph off
12134
\bar no
12135
\noun off
12136
\color none
12137
SP@ML
12138
\end_layout
12139
 
12140
\end_inset
12141
12142
12143
\begin_inset Text
12144
 
12145
\begin_layout Plain Layout
12146
 
12147
\end_layout
12148
 
12149
\end_inset
12150
12151
12152
12153
12154
\begin_inset Text
12155
 
12156
\begin_layout Plain Layout
12157
 
12158
\family typewriter
12159
tcela/tcela-14-bff-dp
12160
\end_layout
12161
 
12162
\end_inset
12163
12164
12165
\begin_inset Text
12166
 
12167
\begin_layout Plain Layout
12168
 
12169
\family roman
12170
\series medium
12171
\shape up
12172
\size normal
12173
\emph off
12174
\bar no
12175
\noun off
12176
\color none
12177
SP@ML
12178
\end_layout
12179
 
12180
\end_inset
12181
12182
12183
\begin_inset Text
12184
 
12185
\begin_layout Plain Layout
12186
 
12187
\end_layout
12188
 
12189
\end_inset
12190
12191
12192
12193
12194
\begin_inset Text
12195
 
12196
\begin_layout Plain Layout
12197
 
12198
\family typewriter
12199
ibm/ibm-bw-v3
12200
\end_layout
12201
 
12202
\end_inset
12203
12204
12205
\begin_inset Text
12206
 
12207
\begin_layout Plain Layout
12208
 
12209
\family roman
12210
\series medium
12211
\shape up
12212
\size normal
12213
\emph off
12214
\bar no
12215
\noun off
12216
\color none
12217
SP@ML
12218
\end_layout
12219
 
12220
\end_inset
12221
12222
12223
\begin_inset Text
12224
 
12225
\begin_layout Plain Layout
12226
 
12227
\end_layout
12228
 
12229
\end_inset
12230
12231
12232
12233
12234
\begin_inset Text
12235
 
12236
\begin_layout Plain Layout
12237
 
12238
\family typewriter
12239
tcela/tcela-8-fp-dp
12240
\end_layout
12241
 
12242
\end_inset
12243
12244
12245
\begin_inset Text
12246
 
12247
\begin_layout Plain Layout
12248
 
12249
\family roman
12250
\series medium
12251
\shape up
12252
\size normal
12253
\emph off
12254
\bar no
12255
\noun off
12256
\color none
12257
SP@ML
12258
\end_layout
12259
 
12260
\end_inset
12261
12262
12263
\begin_inset Text
12264
 
12265
\begin_layout Plain Layout
12266
 
12267
\end_layout
12268
 
12269
\end_inset
12270
12271
12272
12273
12274
\begin_inset Text
12275
 
12276
\begin_layout Plain Layout
12277
 
12278
\family typewriter
12279
tcela/tcela-9-fp-dp
12280
\end_layout
12281
 
12282
\end_inset
12283
12284
12285
\begin_inset Text
12286
 
12287
\begin_layout Plain Layout
12288
 
12289
\family roman
12290
\series medium
12291
\shape up
12292
\size normal
12293
\emph off
12294
\bar no
12295
\noun off
12296
\color none
12297
SP@ML
12298
\end_layout
12299
 
12300
\end_inset
12301
12302
12303
\begin_inset Text
12304
 
12305
\begin_layout Plain Layout
12306
1 bit off
12307
\end_layout
12308
 
12309
\end_inset
12310
12311
12312
12313
12314
\begin_inset Text
12315
 
12316
\begin_layout Plain Layout
12317
 
12318
\family typewriter
12319
mei/MEI.stream16v2
12320
\end_layout
12321
 
12322
\end_inset
12323
12324
12325
\begin_inset Text
12326
 
12327
\begin_layout Plain Layout
12328
 
12329
\family roman
12330
\series medium
12331
\shape up
12332
\size normal
12333
\emph off
12334
\bar no
12335
\noun off
12336
\color none
12337
SP@ML
12338
\end_layout
12339
 
12340
\end_inset
12341
12342
12343
\begin_inset Text
12344
 
12345
\begin_layout Plain Layout
12346
Fail (MPEG1 stream)
12347
\end_layout
12348
 
12349
\end_inset
12350
12351
12352
12353
12354
\begin_inset Text
12355
 
12356
\begin_layout Plain Layout
12357
 
12358
\family typewriter
12359
mei/MEI.stream16.long
12360
\end_layout
12361
 
12362
\end_inset
12363
12364
12365
\begin_inset Text
12366
 
12367
\begin_layout Plain Layout
12368
 
12369
\family roman
12370
\series medium
12371
\shape up
12372
\size normal
12373
\emph off
12374
\bar no
12375
\noun off
12376
\color none
12377
SP@ML
12378
\end_layout
12379
 
12380
\end_inset
12381
12382
12383
\begin_inset Text
12384
 
12385
\begin_layout Plain Layout
12386
Fail (MPEG1 stream)
12387
\end_layout
12388
 
12389
\end_inset
12390
12391
12392
12393
12394
\begin_inset Text
12395
 
12396
\begin_layout Plain Layout
12397
 
12398
\family typewriter
12399
ntr/ntr_skipped_v3
12400
\end_layout
12401
 
12402
\end_inset
12403
12404
12405
\begin_inset Text
12406
 
12407
\begin_layout Plain Layout
12408
 
12409
\family roman
12410
\series medium
12411
\shape up
12412
\size normal
12413
\emph off
12414
\bar no
12415
\noun off
12416
\color none
12417
SP@ML
12418
\end_layout
12419
 
12420
\end_inset
12421
12422
12423
\begin_inset Text
12424
 
12425
\begin_layout Plain Layout
12426
 
12427
\end_layout
12428
 
12429
\end_inset
12430
12431
12432
12433
12434
\begin_inset Text
12435
 
12436
\begin_layout Plain Layout
12437
 
12438
\family typewriter
12439
teracom/teracom_vlc4
12440
\end_layout
12441
 
12442
\end_inset
12443
12444
12445
\begin_inset Text
12446
 
12447
\begin_layout Plain Layout
12448
 
12449
\family roman
12450
\series medium
12451
\shape up
12452
\size normal
12453
\emph off
12454
\bar no
12455
\noun off
12456
\color none
12457
SP@ML
12458
\end_layout
12459
 
12460
\end_inset
12461
12462
12463
\begin_inset Text
12464
 
12465
\begin_layout Plain Layout
12466
 
12467
\end_layout
12468
 
12469
\end_inset
12470
12471
12472
12473
12474
\begin_inset Text
12475
 
12476
\begin_layout Plain Layout
12477
 
12478
\family typewriter
12479
tcela/tcela-15-stuffing
12480
\end_layout
12481
 
12482
\end_inset
12483
12484
12485
\begin_inset Text
12486
 
12487
\begin_layout Plain Layout
12488
 
12489
\family roman
12490
\series medium
12491
\shape up
12492
\size normal
12493
\emph off
12494
\bar no
12495
\noun off
12496
\color none
12497
SP@ML
12498
\end_layout
12499
 
12500
\end_inset
12501
12502
12503
\begin_inset Text
12504
 
12505
\begin_layout Plain Layout
12506
 
12507
\end_layout
12508
 
12509
\end_inset
12510
12511
12512
12513
12514
\begin_inset Text
12515
 
12516
\begin_layout Plain Layout
12517
 
12518
\family typewriter
12519
tcela/tcela-17-dots
12520
\end_layout
12521
 
12522
\end_inset
12523
12524
12525
\begin_inset Text
12526
 
12527
\begin_layout Plain Layout
12528
 
12529
\family roman
12530
\series medium
12531
\shape up
12532
\size normal
12533
\emph off
12534
\bar no
12535
\noun off
12536
\color none
12537
SP@ML
12538
\end_layout
12539
 
12540
\end_inset
12541
12542
12543
\begin_inset Text
12544
 
12545
\begin_layout Plain Layout
12546
 
12547
\end_layout
12548
 
12549
\end_inset
12550
12551
12552
12553
12554
\begin_inset Text
12555
 
12556
\begin_layout Plain Layout
12557
 
12558
\family typewriter
12559
gi/gi4
12560
\end_layout
12561
 
12562
\end_inset
12563
12564
12565
\begin_inset Text
12566
 
12567
\begin_layout Plain Layout
12568
 
12569
\family roman
12570
\series medium
12571
\shape up
12572
\size normal
12573
\emph off
12574
\bar no
12575
\noun off
12576
\color none
12577
MP@ML
12578
\end_layout
12579
 
12580
\end_inset
12581
12582
12583
\begin_inset Text
12584
 
12585
\begin_layout Plain Layout
12586
 
12587
\end_layout
12588
 
12589
\end_inset
12590
12591
12592
12593
12594
\begin_inset Text
12595
 
12596
\begin_layout Plain Layout
12597
 
12598
\family typewriter
12599
gi/gi6
12600
\end_layout
12601
 
12602
\end_inset
12603
12604
12605
\begin_inset Text
12606
 
12607
\begin_layout Plain Layout
12608
 
12609
\family roman
12610
\series medium
12611
\shape up
12612
\size normal
12613
\emph off
12614
\bar no
12615
\noun off
12616
\color none
12617
MP@ML
12618
\end_layout
12619
 
12620
\end_inset
12621
12622
12623
\begin_inset Text
12624
 
12625
\begin_layout Plain Layout
12626
 
12627
\end_layout
12628
 
12629
\end_inset
12630
12631
12632
12633
12634
\begin_inset Text
12635
 
12636
\begin_layout Plain Layout
12637
 
12638
\family typewriter
12639
gi/gi_from_tape
12640
\end_layout
12641
 
12642
\end_inset
12643
12644
12645
\begin_inset Text
12646
 
12647
\begin_layout Plain Layout
12648
 
12649
\family roman
12650
\series medium
12651
\shape up
12652
\size normal
12653
\emph off
12654
\bar no
12655
\noun off
12656
\color none
12657
MP@ML
12658
\end_layout
12659
 
12660
\end_inset
12661
12662
12663
\begin_inset Text
12664
 
12665
\begin_layout Plain Layout
12666
 
12667
\end_layout
12668
 
12669
\end_inset
12670
12671
12672
12673
12674
\begin_inset Text
12675
 
12676
\begin_layout Plain Layout
12677
 
12678
\family typewriter
12679
gi/gi7
12680
\end_layout
12681
 
12682
\end_inset
12683
12684
12685
\begin_inset Text
12686
 
12687
\begin_layout Plain Layout
12688
 
12689
\family roman
12690
\series medium
12691
\shape up
12692
\size normal
12693
\emph off
12694
\bar no
12695
\noun off
12696
\color none
12697
MP@ML
12698
\end_layout
12699
 
12700
\end_inset
12701
12702
12703
\begin_inset Text
12704
 
12705
\begin_layout Plain Layout
12706
 
12707
\end_layout
12708
 
12709
\end_inset
12710
12711
12712
12713
12714
\begin_inset Text
12715
 
12716
\begin_layout Plain Layout
12717
 
12718
\family typewriter
12719
gi/gi_9
12720
\end_layout
12721
 
12722
\end_inset
12723
12724
12725
\begin_inset Text
12726
 
12727
\begin_layout Plain Layout
12728
 
12729
\family roman
12730
\series medium
12731
\shape up
12732
\size normal
12733
\emph off
12734
\bar no
12735
\noun off
12736
\color none
12737
MP@ML
12738
\end_layout
12739
 
12740
\end_inset
12741
12742
12743
\begin_inset Text
12744
 
12745
\begin_layout Plain Layout
12746
 
12747
\end_layout
12748
 
12749
\end_inset
12750
12751
12752
12753
12754
\begin_inset Text
12755
 
12756
\begin_layout Plain Layout
12757
 
12758
\family typewriter
12759
ti/TI_cl_2
12760
\end_layout
12761
 
12762
\end_inset
12763
12764
12765
\begin_inset Text
12766
 
12767
\begin_layout Plain Layout
12768
 
12769
\family roman
12770
\series medium
12771
\shape up
12772
\size normal
12773
\emph off
12774
\bar no
12775
\noun off
12776
\color none
12777
MP@ML
12778
\end_layout
12779
 
12780
\end_inset
12781
12782
12783
\begin_inset Text
12784
 
12785
\begin_layout Plain Layout
12786
 
12787
\end_layout
12788
 
12789
\end_inset
12790
12791
12792
12793
12794
\begin_inset Text
12795
 
12796
\begin_layout Plain Layout
12797
 
12798
\family typewriter
12799
tceh/tceh_conf2
12800
\end_layout
12801
 
12802
\end_inset
12803
12804
12805
\begin_inset Text
12806
 
12807
\begin_layout Plain Layout
12808
 
12809
\family roman
12810
\series medium
12811
\shape up
12812
\size normal
12813
\emph off
12814
\bar no
12815
\noun off
12816
\color none
12817
MP@ML
12818
\end_layout
12819
 
12820
\end_inset
12821
12822
12823
\begin_inset Text
12824
 
12825
\begin_layout Plain Layout
12826
 
12827
\end_layout
12828
 
12829
\end_inset
12830
12831
12832
12833
12834
\begin_inset Text
12835
 
12836
\begin_layout Plain Layout
12837
 
12838
\family typewriter
12839
mei/mei.2conftest.4f
12840
\end_layout
12841
 
12842
\end_inset
12843
12844
12845
\begin_inset Text
12846
 
12847
\begin_layout Plain Layout
12848
 
12849
\family roman
12850
\series medium
12851
\shape up
12852
\size normal
12853
\emph off
12854
\bar no
12855
\noun off
12856
\color none
12857
MP@ML
12858
\end_layout
12859
 
12860
\end_inset
12861
12862
12863
\begin_inset Text
12864
 
12865
\begin_layout Plain Layout
12866
 
12867
\end_layout
12868
 
12869
\end_inset
12870
12871
12872
12873
12874
\begin_inset Text
12875
 
12876
\begin_layout Plain Layout
12877
 
12878
\family typewriter
12879
mei/mei.2conftest.60f.new
12880
\end_layout
12881
 
12882
\end_inset
12883
12884
12885
\begin_inset Text
12886
 
12887
\begin_layout Plain Layout
12888
 
12889
\family roman
12890
\series medium
12891
\shape up
12892
\size normal
12893
\emph off
12894
\bar no
12895
\noun off
12896
\color none
12897
MP@ML
12898
\end_layout
12899
 
12900
\end_inset
12901
12902
12903
\begin_inset Text
12904
 
12905
\begin_layout Plain Layout
12906
 
12907
\end_layout
12908
 
12909
\end_inset
12910
12911
12912
12913
12914
\begin_inset Text
12915
 
12916
\begin_layout Plain Layout
12917
 
12918
\family typewriter
12919
tek/Tek-5.2
12920
\end_layout
12921
 
12922
\end_inset
12923
12924
12925
\begin_inset Text
12926
 
12927
\begin_layout Plain Layout
12928
 
12929
\family roman
12930
\series medium
12931
\shape up
12932
\size normal
12933
\emph off
12934
\bar no
12935
\noun off
12936
\color none
12937
MP@ML
12938
\end_layout
12939
 
12940
\end_inset
12941
12942
12943
\begin_inset Text
12944
 
12945
\begin_layout Plain Layout
12946
 
12947
\end_layout
12948
 
12949
\end_inset
12950
12951
12952
12953
12954
\begin_inset Text
12955
 
12956
\begin_layout Plain Layout
12957
 
12958
\family typewriter
12959
tek/Tek-5-long
12960
\end_layout
12961
 
12962
\end_inset
12963
12964
12965
\begin_inset Text
12966
 
12967
\begin_layout Plain Layout
12968
 
12969
\family roman
12970
\series medium
12971
\shape up
12972
\size normal
12973
\emph off
12974
\bar no
12975
\noun off
12976
\color none
12977
MP@ML
12978
\end_layout
12979
 
12980
\end_inset
12981
12982
12983
\begin_inset Text
12984
 
12985
\begin_layout Plain Layout
12986
 
12987
\end_layout
12988
 
12989
\end_inset
12990
12991
12992
12993
12994
\begin_inset Text
12995
 
12996
\begin_layout Plain Layout
12997
 
12998
\family typewriter
12999
tcela/tcela-6-slices
13000
\end_layout
13001
 
13002
\end_inset
13003
13004
13005
\begin_inset Text
13006
 
13007
\begin_layout Plain Layout
13008
 
13009
\family roman
13010
\series medium
13011
\shape up
13012
\size normal
13013
\emph off
13014
\bar no
13015
\noun off
13016
\color none
13017
MP@ML
13018
\end_layout
13019
 
13020
\end_inset
13021
13022
13023
\begin_inset Text
13024
 
13025
\begin_layout Plain Layout
13026
 
13027
\end_layout
13028
 
13029
\end_inset
13030
13031
13032
13033
13034
\begin_inset Text
13035
 
13036
\begin_layout Plain Layout
13037
 
13038
\family typewriter
13039
tcela/tcela-7-slices
13040
\end_layout
13041
 
13042
\end_inset
13043
13044
13045
\begin_inset Text
13046
 
13047
\begin_layout Plain Layout
13048
 
13049
\family roman
13050
\series medium
13051
\shape up
13052
\size normal
13053
\emph off
13054
\bar no
13055
\noun off
13056
\color none
13057
MP@ML
13058
\end_layout
13059
 
13060
\end_inset
13061
13062
13063
\begin_inset Text
13064
 
13065
\begin_layout Plain Layout
13066
 
13067
\end_layout
13068
 
13069
\end_inset
13070
13071
13072
13073
13074
\begin_inset Text
13075
 
13076
\begin_layout Plain Layout
13077
 
13078
\family typewriter
13079
sony/sony-ct1
13080
\end_layout
13081
 
13082
\end_inset
13083
13084
13085
\begin_inset Text
13086
 
13087
\begin_layout Plain Layout
13088
 
13089
\family roman
13090
\series medium
13091
\shape up
13092
\size normal
13093
\emph off
13094
\bar no
13095
\noun off
13096
\color none
13097
MP@ML
13098
\end_layout
13099
 
13100
\end_inset
13101
13102
13103
\begin_inset Text
13104
 
13105
\begin_layout Plain Layout
13106
 
13107
\end_layout
13108
 
13109
\end_inset
13110
13111
13112
13113
13114
\begin_inset Text
13115
 
13116
\begin_layout Plain Layout
13117
 
13118
\family typewriter
13119
sony/sony-ct2
13120
\end_layout
13121
 
13122
\end_inset
13123
13124
13125
\begin_inset Text
13126
 
13127
\begin_layout Plain Layout
13128
 
13129
\family roman
13130
\series medium
13131
\shape up
13132
\size normal
13133
\emph off
13134
\bar no
13135
\noun off
13136
\color none
13137
MP@ML
13138
\end_layout
13139
 
13140
\end_inset
13141
13142
13143
\begin_inset Text
13144
 
13145
\begin_layout Plain Layout
13146
 
13147
\end_layout
13148
 
13149
\end_inset
13150
13151
13152
13153
13154
\begin_inset Text
13155
 
13156
\begin_layout Plain Layout
13157
 
13158
\family typewriter
13159
sony/sony-ct3
13160
\end_layout
13161
 
13162
\end_inset
13163
13164
13165
\begin_inset Text
13166
 
13167
\begin_layout Plain Layout
13168
 
13169
\family roman
13170
\series medium
13171
\shape up
13172
\size normal
13173
\emph off
13174
\bar no
13175
\noun off
13176
\color none
13177
MP@ML
13178
\end_layout
13179
 
13180
\end_inset
13181
13182
13183
\begin_inset Text
13184
 
13185
\begin_layout Plain Layout
13186
 
13187
\end_layout
13188
 
13189
\end_inset
13190
13191
13192
13193
13194
\begin_inset Text
13195
 
13196
\begin_layout Plain Layout
13197
 
13198
\family typewriter
13199
sony/sony-ct4
13200
\end_layout
13201
 
13202
\end_inset
13203
13204
13205
\begin_inset Text
13206
 
13207
\begin_layout Plain Layout
13208
 
13209
\family roman
13210
\series medium
13211
\shape up
13212
\size normal
13213
\emph off
13214
\bar no
13215
\noun off
13216
\color none
13217
MP@ML
13218
\end_layout
13219
 
13220
\end_inset
13221
13222
13223
\begin_inset Text
13224
 
13225
\begin_layout Plain Layout
13226
 
13227
\end_layout
13228
 
13229
\end_inset
13230
13231
13232
13233
13234
\begin_inset Text
13235
 
13236
\begin_layout Plain Layout
13237
 
13238
\family typewriter
13239
att/att_mismatch
13240
\end_layout
13241
 
13242
\end_inset
13243
13244
13245
\begin_inset Text
13246
 
13247
\begin_layout Plain Layout
13248
 
13249
\family roman
13250
\series medium
13251
\shape up
13252
\size normal
13253
\emph off
13254
\bar no
13255
\noun off
13256
\color none
13257
MP@ML
13258
\end_layout
13259
 
13260
\end_inset
13261
13262
13263
\begin_inset Text
13264
 
13265
\begin_layout Plain Layout
13266
 
13267
\end_layout
13268
 
13269
\end_inset
13270
13271
13272
13273
13274
\begin_inset Text
13275
 
13276
\begin_layout Plain Layout
13277
 
13278
\family typewriter
13279
teracom/teracom_vlc4
13280
\end_layout
13281
 
13282
\end_inset
13283
13284
13285
\begin_inset Text
13286
 
13287
\begin_layout Plain Layout
13288
 
13289
\family roman
13290
\series medium
13291
\shape up
13292
\size normal
13293
\emph off
13294
\bar no
13295
\noun off
13296
\color none
13297
MP@ML
13298
\end_layout
13299
 
13300
\end_inset
13301
13302
13303
\begin_inset Text
13304
 
13305
\begin_layout Plain Layout
13306
 
13307
\end_layout
13308
 
13309
\end_inset
13310
13311
13312
13313
13314
\begin_inset Text
13315
 
13316
\begin_layout Plain Layout
13317
 
13318
\family typewriter
13319
ccett/mcp10ccett
13320
\end_layout
13321
 
13322
\end_inset
13323
13324
13325
\begin_inset Text
13326
 
13327
\begin_layout Plain Layout
13328
 
13329
\family roman
13330
\series medium
13331
\shape up
13332
\size normal
13333
\emph off
13334
\bar no
13335
\noun off
13336
\color none
13337
MP@ML
13338
\end_layout
13339
 
13340
\end_inset
13341
13342
13343
\begin_inset Text
13344
 
13345
\begin_layout Plain Layout
13346
 
13347
\end_layout
13348
 
13349
\end_inset
13350
13351
13352
13353
13354
\begin_inset Text
13355
 
13356
\begin_layout Plain Layout
13357
 
13358
\family typewriter
13359
lep/bits_conf_lep_11
13360
\end_layout
13361
 
13362
\end_inset
13363
13364
13365
\begin_inset Text
13366
 
13367
\begin_layout Plain Layout
13368
 
13369
\family roman
13370
\series medium
13371
\shape up
13372
\size normal
13373
\emph off
13374
\bar no
13375
\noun off
13376
\color none
13377
MP@ML
13378
\end_layout
13379
 
13380
\end_inset
13381
13382
13383
\begin_inset Text
13384
 
13385
\begin_layout Plain Layout
13386
 
13387
\end_layout
13388
 
13389
\end_inset
13390
13391
13392
13393
13394
\begin_inset Text
13395
 
13396
\begin_layout Plain Layout
13397
 
13398
\family typewriter
13399
hhi/hhi_burst_short
13400
\end_layout
13401
 
13402
\end_inset
13403
13404
13405
\begin_inset Text
13406
 
13407
\begin_layout Plain Layout
13408
 
13409
\family roman
13410
\series medium
13411
\shape up
13412
\size normal
13413
\emph off
13414
\bar no
13415
\noun off
13416
\color none
13417
MP@ML
13418
\end_layout
13419
 
13420
\end_inset
13421
13422
13423
\begin_inset Text
13424
 
13425
\begin_layout Plain Layout
13426
 
13427
\end_layout
13428
 
13429
\end_inset
13430
13431
13432
13433
13434
\begin_inset Text
13435
 
13436
\begin_layout Plain Layout
13437
 
13438
\family typewriter
13439
hhi/hhi_burst_long
13440
\end_layout
13441
 
13442
\end_inset
13443
13444
13445
\begin_inset Text
13446
 
13447
\begin_layout Plain Layout
13448
 
13449
\family roman
13450
\series medium
13451
\shape up
13452
\size normal
13453
\emph off
13454
\bar no
13455
\noun off
13456
\color none
13457
MP@ML
13458
\end_layout
13459
 
13460
\end_inset
13461
13462
13463
\begin_inset Text
13464
 
13465
\begin_layout Plain Layout
13466
 
13467
\end_layout
13468
 
13469
\end_inset
13470
13471
13472
13473
13474
\begin_inset Text
13475
 
13476
\begin_layout Plain Layout
13477
 
13478
\family typewriter
13479
tcela/tcela-10-killer
13480
\end_layout
13481
 
13482
\end_inset
13483
13484
13485
\begin_inset Text
13486
 
13487
\begin_layout Plain Layout
13488
 
13489
\family roman
13490
\series medium
13491
\shape up
13492
\size normal
13493
\emph off
13494
\bar no
13495
\noun off
13496
\color none
13497
MP@ML
13498
\end_layout
13499
 
13500
\end_inset
13501
13502
13503
\begin_inset Text
13504
 
13505
\begin_layout Plain Layout
13506
 
13507
\end_layout
13508
 
13509
\end_inset
13510
13511
13512
13513
 
13514
\end_inset
13515
 
13516
 
13517
\end_layout
13518
 
13519
\begin_layout Plain Layout
13520
\begin_inset Caption Standard
13521
 
13522
\begin_layout Plain Layout
13523
\begin_inset CommandInset label
13524
LatexCommand label
13525
name "tab:Conformance-Test-Suite"
13526
 
13527
\end_inset
13528
 
13529
Conformance Test Suite
13530
\end_layout
13531
 
13532
\end_inset
13533
 
13534
 
13535
\end_layout
13536
 
13537
\end_inset
13538
 
13539
 
13540
\end_layout
13541
 
13542
\begin_layout Section
13543
\begin_inset CommandInset label
13544
LatexCommand label
13545
name "sec:Tools"
13546
 
13547
\end_inset
13548
 
13549
Tools
13550
\end_layout
13551
 
13552
\begin_layout Standard
13553
The
13554
\family typewriter
13555
tools
13556
\family default
13557
 directory contains various utilities and tools used during decoder development
13558
 and test.
13559
\end_layout
13560
 
13561
\begin_layout Subsection
13562
\begin_inset CommandInset label
13563
LatexCommand label
13564
name "subsec:Logicport-Logic-Analyzer"
13565
 
13566
\end_inset
13567
 
13568
Logic Analyzer
13569
\end_layout
13570
 
13571
\begin_layout Standard
13572
On the Xilinx ML505, the MPEG2 decoder testpoint has been broken out to
13573
 the Xilinx Generic Interface (XGI) .
13574
 The test point selection can be done using the GPIO DIP switches.
13575
 If the ML505 is held so the LCD can be read, the GPIO DIP switches are
13576
 at the bottom right of the board.
13577
 GPIO DIP switches are numbered 1 to 8, from left to right.
13578
\end_layout
13579
 
13580
\begin_layout Standard
13581
If GPIO DIP switch 3 is off, test point selection is made by writing to
13582
 register 15 decimal, REG_WR_TESTPOINT.
13583
 If GPIO DIP switch 3 is on, test point selection is made by dip switches
13584
 5 to 8.
13585
 GPIO DIP switch 5 is MSB, GPIO DIP switch 8 is LSB.
13586
\end_layout
13587
 
13588
\begin_layout Standard
13589
Verify the probing has been enabled in
13590
\family typewriter
13591
probe.v
13592
\family default
13593
.
13594
 Note that, as one adds test points, routing and timing closure becomes
13595
 more and more difficult.
13596
 Only define those test points you need.
13597
\end_layout
13598
 
13599
\begin_layout Standard
13600
The Intronix Logicport is a small USB-based logic analyzer.
13601
 It has 34 channels, two of which can be used as clock inputs, and does
13602
 state analysis at up to 200 MHz.
13603
 The MPEG2 decoder on the ML505 runs at 75 MHz, with a typical dot clock
13604
 of 27 MHz, well within the capabilities of the Logicport logic analyzer.
13605
 Probing the memory controller at 200 MHz, however, is borderline.
13606
 To be on the safe side, when probing the memory controller with the Logicport,
13607
 lower memory clock to 125 MHz .
13608
\end_layout
13609
 
13610
\begin_layout Standard
13611
A small two-layer adapter board has been designed to connect the Intronix
13612
 Logicport to the Xilinx ML505.
13613
 Board layout can be downloaded from
13614
\begin_inset Flex URL
13615
status collapsed
13616
 
13617
\begin_layout Plain Layout
13618
 
13619
http://www.kdvelectronics.eu/probe_adapter/probe_adapter.html
13620
\end_layout
13621
 
13622
\end_inset
13623
 
13624
.
13625
\end_layout
13626
 
13627
\begin_layout Standard
13628
The
13629
\family typewriter
13630
tools/logicport
13631
\family default
13632
 directory contains Logicport configuration files for the test points defined
13633
 in
13634
\family typewriter
13635
probe.v
13636
\family default
13637
.
13638
 Note configuration files can be read and waveforms displayed by Logicport
13639
 software even if no analyzer is present.
13640
\end_layout
13641
 
13642
\begin_layout Subsection
13643
\begin_inset CommandInset label
13644
LatexCommand label
13645
name "subsec:FSM-Graphs"
13646
 
13647
\end_inset
13648
 
13649
Finite State Machine Graphs
13650
\end_layout
13651
 
13652
\begin_layout Standard
13653
The MPEG2 decoder uses Finite State Machines throughout; no embedded processors
13654
 or microcontrollers are used.
13655
 Verifying the correctness of the Finite State Machines is important.
13656
 Finite state machine transition graphs are created from Verilog source
13657
 files as a means of visually inspecting and verifying source correctness.
13658
 The
13659
\family typewriter
13660
mkfsmgraph
13661
\family default
13662
 Perl script in
13663
\family typewriter
13664
tools/fsmgraph
13665
\family default
13666
 assumes the comment
13667
\family typewriter
13668
/* next state logic */
13669
\family default
13670
 marks the beginning of a
13671
\family typewriter
13672
case
13673
\family default
13674
 statement in an
13675
\family typewriter
13676
always
13677
\family default
13678
 block, used to select the next state, and that all states begin with STATE_
13679
 :
13680
\end_layout
13681
 
13682
\begin_layout LyX-Code
13683
/* next state logic */
13684
\end_layout
13685
 
13686
\begin_layout LyX-Code
13687
always @*
13688
\end_layout
13689
 
13690
\begin_layout LyX-Code
13691
  case (state)
13692
\end_layout
13693
 
13694
\begin_layout LyX-Code
13695
    STATE_INIT: if (first_pixel_read) next = STATE_WAIT;
13696
\end_layout
13697
 
13698
\begin_layout LyX-Code
13699
                else next = STATE_INIT;
13700
\end_layout
13701
 
13702
\begin_layout LyX-Code
13703
    ...
13704
 
13705
\end_layout
13706
 
13707
\begin_layout LyX-Code
13708
    default next = STATE_INIT
13709
\end_layout
13710
 
13711
\begin_layout LyX-Code
13712
  endcase
13713
\end_layout
13714
 
13715
\begin_layout LyX-Code
13716
/* state */
13717
\end_layout
13718
 
13719
\begin_layout LyX-Code
13720
always @(posedge clk)
13721
\end_layout
13722
 
13723
\begin_layout LyX-Code
13724
  if(~rst) state <= STATE_INIT;
13725
\end_layout
13726
 
13727
\begin_layout LyX-Code
13728
  else state <= next;
13729
\end_layout
13730
 
13731
\begin_layout Standard
13732
The
13733
\family typewriter
13734
mkfsmgraph
13735
\family default
13736
 tool parses the Verilog source files using the following algorithm:
13737
\end_layout
13738
 
13739
\begin_layout Itemize
13740
read the Verilog file until the comment
13741
\family typewriter
13742
/* next state logic */
13743
\family default
13744
 is found
13745
\end_layout
13746
 
13747
\begin_layout Itemize
13748
take the first
13749
\family typewriter
13750
always
13751
\family default
13752
 block after the
13753
\family typewriter
13754
/* next state logic */
13755
\family default
13756
 comment
13757
\end_layout
13758
 
13759
\begin_layout Itemize
13760
any word beginning with
13761
\family typewriter
13762
STATE_
13763
\family default
13764
 is assumed to represent a FSM state.
13765
\end_layout
13766
 
13767
\begin_layout Itemize
13768
if the character following the FSM state is a colon (:) the state is a graph
13769
 node.
13770
\end_layout
13771
 
13772
\begin_layout Itemize
13773
if the character following the FSM state is a semicolon (;) the state is
13774
 the end point of a state transition.
13775
\end_layout
13776
 
13777
\begin_layout Itemize
13778
if the character following the FSM state is neither a colon (:) nor a semicolon
13779
 (;) the state is not added to the graph.
13780
\end_layout
13781
 
13782
\begin_layout Standard
13783
The resulting graph is written to standard output in gml format.
13784
 Graph layout software uDrawGraph from the University of Bremen, Germany,
13785
 is then used to produce a visually appealing graph.
13786
 
13787
\end_layout
13788
 
13789
\begin_layout Standard
13790
No attempt has been made to write a script capable of parsing arbitrary
13791
 Verilog sources.
13792
 The Verilog sources have been written so the script can parse them.
13793
\end_layout
13794
 
13795
\begin_layout Standard
13796
The graph of the variable length-decoding FSM
13797
\family typewriter
13798
vld.v
13799
\family default
13800
 has been simplified further by removing all transitions to STATE_NEXT_START_COD
13801
E and STATE_ERROR.
13802
 Nodes which transition to STATE_NEXT_START_CODE are drawn with double border.
13803
 Removing transitions to STATE_NEXT_START_CODE and STATE_ERROR produces
13804
 a graph with much less visual clutter.
13805
 A large format version of the FMS graph of
13806
\family typewriter
13807
vld.v
13808
\family default
13809
  can be found in
13810
\family typewriter
13811
doc/vld-poster.pdf
13812
\family default
13813
.
13814
 It is suggested to become familiar with the graph before significantly
13815
 modifying
13816
\family typewriter
13817
vld.v
13818
\family default
13819
.
13820
 
13821
\end_layout
13822
 
13823
\begin_layout Subsection
13824
\begin_inset CommandInset label
13825
LatexCommand label
13826
name "subsec:IEEE-1180-IDCT"
13827
 
13828
\end_inset
13829
 
13830
IEEE-1180 IDCT Accuracy Test
13831
\end_layout
13832
 
13833
\begin_layout Standard
13834
 
13835
\family typewriter
13836
idct.v
13837
\family default
13838
 has been tested to comply with the former IEEE-1180, the actual ISO/IEC
13839
 23002-1
13840
\begin_inset CommandInset citation
13841
LatexCommand cite
13842
key "key-5"
13843
 
13844
\end_inset
13845
 
13846
.
13847
 The testbench can be found in the
13848
\family typewriter
13849
tools/ieee1180
13850
\family default
13851
 directory.
13852
 Test results can be found in the file
13853
\family typewriter
13854
ieee-1180-results
13855
\family default
13856
.
13857
 Test results indicate the idct implementation is IEEE-1180 compliant.
13858
\end_layout
13859
 
13860
\begin_layout Subsection
13861
\begin_inset CommandInset label
13862
LatexCommand label
13863
name "subsec:mpeg2decode"
13864
 
13865
\end_inset
13866
 
13867
Reference software decoder
13868
\end_layout
13869
 
13870
\begin_layout Standard
13871
The directory
13872
\family typewriter
13873
tools/mpeg2dec
13874
\family default
13875
 contains the MPEG2 reference decoder, modified to provide extensive logging
13876
 and to regularly write the framebuffers to file.
13877
 A sample run could be:
13878
\end_layout
13879
 
13880
\begin_layout LyX-Code
13881
koen@macpro ~/xilinx/mpeg2/tools $ mkdir run
13882
\end_layout
13883
 
13884
\begin_layout LyX-Code
13885
koen@macpro ~/xilinx/mpeg2/tools $ cd run
13886
\end_layout
13887
 
13888
\begin_layout LyX-Code
13889
koen@macpro ~/xilinx/mpeg2/tools/run $ ../mpeg2dec/mpeg2decode
13890
\begin_inset Newline newline
13891
\end_inset
13892
 
13893
 -r -v9 -t -o0 'dump_%d_out_%c' -b ../streams/tcela-17.mpg > log
13894
\end_layout
13895
 
13896
\begin_layout LyX-Code
13897
saving dump_0_out_f.y.ppm
13898
\end_layout
13899
 
13900
\begin_layout LyX-Code
13901
saving dump_0_out_f.u.ppm
13902
\end_layout
13903
 
13904
\begin_layout LyX-Code
13905
saving dump_0_out_f.v.ppm
13906
\end_layout
13907
 
13908
\begin_layout LyX-Code
13909
saving dump_0_forward_ref_frm.y.ppm
13910
\end_layout
13911
 
13912
\begin_layout LyX-Code
13913
saving dump_0_forward_ref_frm.u.ppm
13914
\end_layout
13915
 
13916
\begin_layout LyX-Code
13917
saving dump_0_forward_ref_frm.v.ppm
13918
\end_layout
13919
 
13920
\begin_layout LyX-Code
13921
saving dump_0_backward_ref_frm.y.ppm
13922
\end_layout
13923
 
13924
\begin_layout LyX-Code
13925
saving dump_0_backward_ref_frm.u.ppm
13926
\end_layout
13927
 
13928
\begin_layout LyX-Code
13929
saving dump_0_backward_ref_frm.v.ppm
13930
\end_layout
13931
 
13932
\begin_layout LyX-Code
13933
saving dump_0_auxframe.y.ppm
13934
\end_layout
13935
 
13936
\begin_layout LyX-Code
13937
saving dump_0_auxframe.u.ppm
13938
\end_layout
13939
 
13940
\begin_layout LyX-Code
13941
saving dump_0_auxframe.v.ppm
13942
\end_layout
13943
 
13944
\begin_layout LyX-Code
13945
saving dump_1_out_f.y.ppm
13946
\end_layout
13947
 
13948
\begin_layout LyX-Code
13949
saving dump_1_out_f.u.ppm
13950
\end_layout
13951
 
13952
\begin_layout LyX-Code
13953
...
13954
 
13955
\end_layout
13956
 
13957
\begin_layout Standard
13958
The
13959
\family typewriter
13960
log
13961
\family default
13962
 file contains detailed information about the execution of the MPEG2 decoding
13963
 algorithm, while the
13964
\family typewriter
13965
.ppm
13966
\family default
13967
 files contain framestore dumps, using separate graphics files for each
13968
 y, u and v component.
13969
 
13970
\end_layout
13971
 
13972
\begin_layout Subsection
13973
\begin_inset CommandInset label
13974
LatexCommand label
13975
name "subsec:MPEG2-Test-Streams"
13976
 
13977
\end_inset
13978
 
13979
MPEG2 Test Streams
13980
\end_layout
13981
 
13982
\begin_layout Standard
13983
The
13984
\family typewriter
13985
tools/streams
13986
\family default
13987
 directory contains some sample MPEG2 program streams, useful during testing.
13988
 The
13989
\family typewriter
13990
retrieve
13991
\family default
13992
 script in the
13993
\family typewriter
13994
tools/streams
13995
\family default
13996
 directory can be used to download the ISO/IEC 13818-4 conformance test
13997
 bitstreams from the ISO web site
13998
\begin_inset Foot
13999
status open
14000
 
14001
\begin_layout Plain Layout
14002
ISO/IEC 13818-4 test bitstreams,
14003
\begin_inset Flex URL
14004
status collapsed
14005
 
14006
\begin_layout Plain Layout
14007
 
14008
http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_13818-4_2004_Conf
14009
ormance_Testing/Video/bitstreams/main-profile/
14010
\end_layout
14011
 
14012
\end_inset
14013
 
14014
 
14015
\end_layout
14016
 
14017
\end_inset
14018
 
14019
.
14020
\end_layout
14021
 
14022
\begin_layout Bibliography
14023
\begin_inset CommandInset bibitem
14024
LatexCommand bibitem
14025
label "1"
14026
key "key-1"
14027
 
14028
\end_inset
14029
 
14030
ITU-T Recommendation H.262
14031
\begin_inset Quotes eld
14032
\end_inset
14033
 
14034
Information technology - Generic coding of moving pictures and associated
14035
 audio information: Video
14036
\begin_inset Quotes erd
14037
\end_inset
14038
 
14039
, 2000.
14040
 Also published as ISO/IEC International Standard 13818-2.
14041
\end_layout
14042
 
14043
\begin_layout Bibliography
14044
\begin_inset CommandInset bibitem
14045
LatexCommand bibitem
14046
label "2"
14047
key "key-5"
14048
 
14049
\end_inset
14050
 
14051
ISO/IEC International Standard 23002-1
14052
\begin_inset Quotes eld
14053
\end_inset
14054
 
14055
Information technology - MPEG video technologies - Part 1: Accuracy requirements
14056
 for implementation of integer-output 8x8 inverse discrete cosine transform
14057
\begin_inset Quotes erd
14058
\end_inset
14059
 
14060
, 2006.
14061
\end_layout
14062
 
14063
\begin_layout Bibliography
14064
\begin_inset CommandInset bibitem
14065
LatexCommand bibitem
14066
label "3"
14067
key "key-2"
14068
 
14069
\end_inset
14070
 
14071
 
14072
\begin_inset Quotes eld
14073
\end_inset
14074
 
14075
Architecture and Bus-Arbitration Schemes for MPEG-2 Video Decoder", Jui-Hua
14076
 Li and Nam Ling, IEEE Transactions on Circuits and Systems for Video Technology
14077
, Vol.
14078
 9, No.
14079
 5, August 1999, p.727-736.
14080
\end_layout
14081
 
14082
\begin_layout Bibliography
14083
\begin_inset CommandInset bibitem
14084
LatexCommand bibitem
14085
label "4"
14086
key "key-3"
14087
 
14088
\end_inset
14089
 
14090
 
14091
\begin_inset Quotes eld
14092
\end_inset
14093
 
14094
Systematic approach of Fixed Point 8x8 IDCT and DCT Design and Implementation",
14095
 Ci-Xun Zhang , Jing Wang , Lu Yu, Institute of Information and Communication
14096
 Engineering, Zhejiang University, Hangzhou, China, 310027.
14097
\end_layout
14098
 
14099
\begin_layout Bibliography
14100
\begin_inset CommandInset bibitem
14101
LatexCommand bibitem
14102
label "5"
14103
key "key-4"
14104
 
14105
\end_inset
14106
 
14107
 
14108
\begin_inset Quotes eld
14109
\end_inset
14110
 
14111
Virtex-5 FPGA User Guide
14112
\begin_inset Quotes erd
14113
\end_inset
14114
 
14115
, Xilinx UG190 (v3.2), December 11, 2007.
14116
\end_layout
14117
 
14118
\begin_layout Bibliography
14119
\begin_inset CommandInset bibitem
14120
LatexCommand bibitem
14121
label "6"
14122
key "key-7"
14123
 
14124
\end_inset
14125
 
14126
 
14127
\begin_inset Quotes eld
14128
\end_inset
14129
 
14130
ML505/506 MIG Design Creation Using ISE 9.2i SP3, MIG 2.0 and ChipScope Pro
14131
 9.2i
14132
\begin_inset Quotes erd
14133
\end_inset
14134
 
14135
, Xilinx, December 2007.
14136
\end_layout
14137
 
14138
\end_body
14139
\end_document

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.