Programming XC On XMOS Devices - X9577A
Programming XC On XMOS Devices - X9577A
Douglas Watt
The authors have taken care in the preparation of this book, but make no expressed or implied
warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed
for direct, indirect, incidential or consequential damages in connection with or arising out of the use
of the information or programs contained herein. No representation is made that the information or
programs are or will be free from any claims of infringement and again, the authors shall have no
liability in relation to any such claims.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system,
or transmitted in any form, or by any means, electronic, mechanical, photocopying, recording, or
otherwise, without the prior written permission of the publisher.
Trademarks: XMOS and the XMOS logo are registered trademarks of XMOS Limited in the United
Kingdom and other countries, and may not be used without written permission. All other trademarks
are property of their respective owners. Where those designations appear in this book, and XMOS
was aware of a trademark claim, the designations have been printed with initial capital letters or in
all capitals.
The authors typeset this book using LATEX in Lucida Bright, Lucida Sans and Computer Modern Type-
writter. Tom Hunt produced the XMOS documentation build system.
XMOS also publishes its books in electronic formats. Some content that appears in print may not be
available in electronic books.
Because of the dynamic nature of the Internet, any Web addresses or links contained in this book
may have changed since publication and may no longer be valid.
XCore 0 XCore 1
Thread 0 Thread 0
Channel Ends
Thread 1 Thread 1
Thread 2 Thread 2
Thread 3 Thread 3
Ports
Ports
Channel Ends
Thread 5 Thread 5
Pins
Thread 6 Thread 6
Thread 7 Thread 7
Memory Memory
4$ K46R$RUK$ 6L #$R$K;6=6LR6! W6R4 $4 R4K$# 2UK=R$$# L96$ ?* R4$ AK?5
$LL6=2D 4$ R4K$#L = $X$UR$ ?;AURR6?=L! 4=#9$ K$95R6;$ Q ?A$KR6?=L
=# K$LA?=# R? ;U9R6A9$ $V$=RLD 4$ Q A6=L = $ L;A9$# ?K #K6V$= UL6=2
L6=29$ 6=LRKUR6?=! =# #R KR$L = $ ?=RK?99$# UL6=2 R6;$KL ?K 9?8LD 46245
A$K*?K;=$ LW6R4 $=9$L ?;;U=6R6?= $RW$$= AK?$LL?KL =# ;8$L 6R $LY
+D :HOFRPH WR ;026
;3';00+1' 3.
K?2K;L K$ WK6RR$= UL6=2 ?;6=R6?= ?* ! =# EED AK?V6#$L $XR$=L6?=L
R? R4R L6;A96*Y R4$ ?=RK?9 ?V$K ?=UKK$=Y! Q =# R6;$D 4$L$ $XR$=L6?=L
;A #6K$R9Y ?=R? ?K$ 4K#WK$ K$L?UK$L LU4 L R4K$#L! 4==$9L =# A?KRL!
V?6#6=2 R4$ =$$# R? ;8$ $XR$=L6V$ UL$ ?* 96KKY 99LD JL ?=LRKURL K$ #(4&
?;A696=2 6=R? L4?KR 6=LRKUR6?= L$FU$=$L! =# 2&*K$$ *K?; ;=Y L?UK$L ?*
#$#9?8! K$ ?=#6R6?=L =# ;$;?KY V6?9R6?=LD 46L ;8$L AK?2K;L $LY R?
WK6R$! U=#$KLR=# =# #$U2D 4$ 9=2U2$ 6L *U99Y #$LK6$# 6= R46L ??8D
33.< ;)+@@C;
4$ R??9L K$ L$# ?= LR=#K# $;$##$# #$V$9?A;$=R 0?W =# K$ U69R
UA?= 6=#ULRKY5LR=#K# A9R*?K;L! ;86=2 R4$; 6=RU6R6V$ =# $LY R? UL$D
&203,/(5 &2//(&7,21
%,1$5<
+$5':$5(
'(%8**(5
:HOFRPH WR ;026 D
4$ ?=UKK$=R =# K$95R6;$ A696R6$L ?* R4$ 9=2U2$ =# K46R$RUK$ K$ LUA5
A?KR$# Y R4$ R??9L R4K?U24 99 LR2$L ?* #$V$9?A;$=R
4$ ?;A69$K R??946= 2$=$KR$L L6=29$ 6=KY .9$ R4R 6=9U#$L 6=LRKUR6?=
=# #R L$2;$=RL *?K 99 #$V6$LD 4$ L6;U9R?K =# ?K# UR696R6$L ?A$KR$ ?=
R46L .9$ *?K;R! 46#6=2 ?;A9$X6RY *K?; R4$ AK?2K;;$KD
4$ ?K# UR696R6$L = ?=.2UK$ LYLR$; R? ??R *K?; 4?LR #$V$9?A;$=R !
?=5?K# 0L4 ;$;?KY ?K ?=546A ;$;?KYD
4$ #$U22$K 6=R$KRL W6R4 99 AK?$LL?KL ?= R4$ RK2$R A9R*?K;! AK$L$=R5
6=2 ?99$R6?= ?* R4K$#L R? R4$ AK?2K;;$K R4R = $ V6$W$# R?2$R4$KD
46L 99?WL #$V6$L R? $ #$U22$# 6= R4$ L;$ WY L ?=V$=R6?=9
AK?$LL?KLD
$,' . $XA96=L 4?W R? 6=AUR =# ?URAUR #R ?= A?KRL! W464 6=R$K*$
#$V6$ W6R4 $XR$K=9 ?;A?=$=RLD R L4?WL 4?W R? ?=RK?9 Q #R
KR$L UL6=2 R6;$KL =# 4?W R? 6=R$K*$ ;U9R6A9$ ?;A?=$=RL UL6=2
R4$ D%2%!G LRR$;$=RD
$,' - L4?WL 4?W R? KU= ;U9R6A9$ RL8L ?=UKK$=R9Y L L$AKR$ R4K$#L R4R
UL$ 4==$9L R? ?;;U=6R$ W6R4 ?=$ =?R4$KD
$,' #$;?=LRKR$L 4?W U+$KL 6= R4$ A?KRL = 6;AK?V$ ?V$K99 A$K*?K5
;=$ Y #$?UA96=2 Q ?A$KR6?=L *K?; ?;AURR6?=LD
$,' * $XA96=L 4?W R? L$K696L$ #R ?=R? Q A6=L =# 4?W R? 6=R$KAK$R =#
2$=$KR$ LRK?$ L62=9L UL6=2 U69R56= A696R6$L ?* R4$ A?KRLD
$$ 1 #?U;$=RL R4$ @ 6;A9$;$=RR6?= ?* ! 6=9U#6=2 LUAA?KR *?K R4$
#6+$K$=R Q ?A$KR6?=L! R4$ A?KR5R?5A6= ;AA6=2! =# R4$ L6Z$ =#
962=;$=R ?* JL #R RYA$LD
-13E.'01@<
=Y ?* R4$ $X;A9$L ?* A?KR UL2$ W$K$ ?K626=99Y #$V$9?A$# Y $=8 U99$K *?K R4$
@ A?KRL RUR?K69 SD 4$ L$ LRU#6$L W464 #$V$9?A = #K6V$K =# R4$K=$R
?=RK?99$K W$K$ #$V$9?A$# 7?6=R9Y W6R4 KKY =6Z$8D 64K# L?K=$ WK?R$ R4$ @
LR=#K# 96KKY #?U;$=RR6?= =# UW $##$L A6=LR86=29Y AK?#U$# 99 ?* R4$
WV$*?K; #62K;L =# 699ULRKR6?=LD
96 6X?=! $R$K $#6=2$K! ULL$99 99?A =# ;=Y ?R4$KL 4V$ K$*U99Y K$V6$W$#
#K*RL ?* R4$ =296L4 ;=ULK6ARD 4$6K ?;;$=RL! ?KK$R6?=L =# LU22$LR6?=L 4V$
L62=6.=R9Y 6;AK?V$# R4$ FU96RY ?* R4$ .=9 R$XRD
31@1@<
# "$/,," #
@D@ $99?! ?K9#) D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D @
@DT K69$L! ?=LR=RL =# XAK$LL6?=L D D D D D D D D D D D D D D D D D D D D D T
@DTD@ ?=LR=RL D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D S
@DTDT XAK$LL6?=L D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D 1
@DTDS YA$ ?=V$KL6?=L D D D D D D D D D D D D D D D D D D D D D D D D D D D D D 1
@DS ?=RK?9 9?W D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D P
@DSD@ *59L$ D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D P
@DSDT W6R4 D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D O
@DSDS ??AL D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D O
@DSD1 K$8 =# ?=R6=U$ D D D D D D D D D D D D D D D D D D D D D D D D D D D %
@D1 U=R6?=L D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D >
@D1D@ U=R6?= K2U;$=RL D D D D D D D D D D D D D D D D D D D D D D D D D D D >
@D1DT AR6?=9 K2U;$=RL D D D D D D D D D D D D D D D D D D D D D D D D D D D @[
@D1DS U9R6A9$5$RUK= U=R6?=L D D D D D D D D D D D D D D D D D D D D D D D @@
@D/ $6=R$KAK$RR6?= D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D @T
@DP ?;AK6L?= W6R4 D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D @T
. $/, /,$/, #-
TD@ URAURR6=2 R D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D @1
TDT =AURR6=2 R D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D @/
TDS 6R6=2 *?K ?=#6R6?= ?= = =AUR 6= D D D D D D D D D D D D D D D D D D D @/
TD1 ?=RK?996=2 Q R R$L W6R4 6;$KL D D D D D D D D D D D D D D D D D D D @P
TD/ L$ RU#Y BKR @C D D D D D D D D D D D D D D D D D D D D D D D D D D D D @%
TDP $LA?=#6=2 R? U9R6A9$ =AURL D D D D D D D D D D D D D D D D D D D D D D D D D T[
TDO L$ RU#Y BKR TC D D D D D D D D D D D D D D D D D D D D D D D D D D D D T@
TD% K;$R$K6L$# $9$R6?= D D D D D D D D D D D D D D D D D D D D D D D D D D D D D TS
- " /'' 2 .)
SD@ K$R6=2 ?=UKK$=R 4K$#L D D D D D D D D D D D D D D D D D D D D D D D D D D TO
SDT 4K$# 6L7?6=R=$LL U9$L D D D D D D D D D D D D D D D D D D D D D D D D D D D D T%
SDTD@ X;A9$L D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D T>
viii Contents
5 Port Buffering 49
5.1 Using a Buffered Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2 Synchronising Clocked I/O on Multiple Ports . . . . . . . . . . . . . . . . 52
5.3 Summary of Buffered Behaviour . . . . . . . . . . . . . . . . . . . . . . . . 53
A XC Language Specification 67
A.1 Lexical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.2 Syntax Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
A.3 Meaning of Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
A.4 Objects and Lvalues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
A.5 Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
A.6 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
A.7 Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
A.8 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
A.9 External Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
A.10 Scope and Linkage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
A.11 Channel Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
A.12 Invalid Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
A.13 Preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
A.14 Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Contents ix
Bibliography 131
Index 133
305C@@+31
4$ .KLR RL8 ?*R$= A$K*?K;$# W4$= 9$K=6=2 =$W AK?2K;;6=2 9=2U2$ 6L R?
AK6=R R4$ W?K#L G$99?! W?K9#)H LU6R9$ AK?2K; 6L L4?W= $9?WD
? 7=(:V+, ; NS+7@ F5 4
<7= C X@7+ D $
BM7=S0 C J ,::@ * Y@M:+ /" = J DO
%
4$ .KLR 96=$ ?* R46L AK?2K; R$99L R4$ ?;A69$K R? 6=9U#$ 6=*?K;R6?= *K?; R4$
4$#$K .9$ DG$/7=-D 46L .9$ ?=R6=L #$9KR6?= ?* R4$ *U=R6?= 9C/5G)! W464
?URAURL LRK6=2 R? LR=#K# ?URAUR! *?K $X;A9$ R$K;6=9 W6=#?W ?= #$V$9?A;$=R
LYLR$;D
V$KY AK?2K; ;ULR ?=R6= L6=29$ 4/5 *U=R6?=! W464 6L W4$K$ R4$ AK?2K;
$26=L $X$UR6=2D = R46L $X;A9$! 4/5 6L #$.=$# L *U=R6?= R4R $XA$RL =?
K2U;$=RL! 6=#6R$# Y R4$ 8$YW?K# M7/$D
4$ ?#Y ?* *U=R6?= 6L $=9?L$# 6= K$L =# ?=R6=L LRR$;$=RL R4R
LA$6*Y ?A$KR6?=L R? $ A$K*?K;$#D = R46L $X;A9$! 4/5 ?=R6=L L6=29$ LRR$;$=R
B 305C@@+31
R4R 99L R4$ *U=R6?= 9KGD W6R4 LRK6=2 96R$K9 L 6RL K2U;$=RD 4$ $LA$ L$FU$=$
5 #$=?R$L =$W96=$ 4KR$KD
4$ LULK6ARL K$ ?K#$K$# Y R4$ 9K2$LR #6;$=L6?= .KLR L? R4R! *?K $X;A9$! R4$
V9U$ ?* 4GC/OR 8 6L TD
48B84 31<@1@<
?=LR=R 6L R$XRU9 K$AK$L$=RR6?= ?* V9U$! =# 4L #R RYA$D =RK6$L 6= R4$
R9$ $9?W K$ 99 $X;A9$L ?* ?=LR=RLD
46L $X;A9$ #$9K$L 4D+ R? $ = KKY ?* @/ 4KR$KL! 6=9U#6=2 R4$ =U99 R$K;65
=R?KD * R4$ L6Z$ ?* R4$ KKY 6L LA$6.$# 6= R4$ #$9KR6?=! 6R ;ULR $ R 9$LR L
9K2$ L R4$ LRK6=2D
& 305C@@+31
48B8B F5;<<+31<
= $XAK$LL6?= ?;6=$L VK69$L =# ?=LR=RL W6R4 ?A$KR?KL! AK?#U6=2 V9U$D
=RK6$L 6= R4$ R9$ $9?W K$ 99 $X;A9$L ?* $XAK$LL6?=LD
= $XAK$LL6?= W6R4?UR AK$=R4$L6L 6L ULU99Y $V9UR$# *K?; 9$*R R? K624R UL6=2 R4$
KU9$L ?* AK$$#$=$ ?* ?A$KR?KLD 4$L$ KU9$L LRR$ R4R R4$ ?A$KR?K 4L 4624$K
AK$$#$=$ R4= R4$ > ?A$KR?K! W464 ;$=L R4R R4$ L$?=# $XAK$LL6?= 6= R4$ R9$
K$FU6K$L AK$=R4$L6L K?U=# R4$ RW? ##6R6?=L R? *?K$ R4$ K$FU6K$# 2K?UA6=2D
9$ LU;;K6L$L R4$ $XAK$LL6?= ?A$KR?KL LUAA?KR$# 6= D A$KR?KL 4624$K
6= R4$ R9$ 4V$ 4624$K AK$$#$=$! =# ?A$KR?KL 6= R4$ L;$ L$R6?= 4V$ R4$
L;$ AK$$#$=$D 4$ ?A$KR?KL K$ #$.=$# R? 4V$ R4$ L;$ ;$=6=2 L 6= N *U99
#$R69L K$ 26V$= 6= MDPD
= $XAK$LL6?= $?;$L LRR$;$=R W4$= *?99?W$# Y L$;6?9?=D ?LR LRR$5
;$=RL K$ $6R4$K LL62=;$=RL! L 6=
Z . !O
?K *U=R6?= 99L! L 6=
BM7=S0 C J ,::@ * Y@M:+ /" = J DO
4$ V9U$ ?* = $XAK$LL6?= ;ULR $ U=;62U?ULD = ;62U6RY K6L$L 6* R4$
V9U$ ?* = $XAK$LL6?= #$A$=#L ?= R4$ ?K#$K ?* $V9UR6?= ?* 6RL ?A$K=#L! L 6=
7 . 7 GGO R 7=X:7+ R
= R46L $X;A9$! R4$ V9U$ ?* / #$A$=#L ?= R4$ ?K#$K 6= W464 R4$ LL62=;$=R =#
6=K$;$=R ?A$KR?KL K$ A$K*?K;$#D
= 2$=$K9! 6* ?=$ LU$XAK$LL6?= ?=R6=L ;?#6.R6?= ?* VK69$ ! =?=$ ?* R4$
?R4$K LU$XAK$LL6?=L K$ 99?W$# R? UL$ D 46L KU9$ AA96$L K$UKL6V$9Y R? *U=R6?=L
99$# 6= $XAK$LL6?=L R4R K$# ?K WK6R$ 29?9 VK69$LD
R4$ 6=KY ?A$KR?K > R8$L !-C =# = /5G ?A$K=#D 4$ !-C ?A$K=# 6L AK?;?R$#
R? = /5G! =# R4$ K$LU9R ?* R4$ $XAK$LL6?= 6L = /5GD
48B ;+.< 31<@1@< 1 F5;<<+31< %
4$ 2$=$K9 KU9$L ?* AK?;?R6?= =# K6R4;$R6 ?=V$KL6?= K$ LRR$# 6= MD@D@!
=# *?K @ #$V6$L = $ LU;;K6L$# L *?99?WL
?=V$KR !-C =# D-7CG R? /5G! 6* = /5G = K$AK$L$=R 99 R4$ V9U$L ?* R4$
?K626=9 RYA$! ?R4$KW6L$ ?=V$KR R? K5D/+5%$ /5GD
XA966R RYA$ ?=V$KL6?=L = $ *?K$# 6= = $XAK$LL6?= UL6=2 R4$ U=KY LR ?A$KR?K!
L 6=
C (5M DC L L G 7 DO RR (NS TU 6 !7S 7=S,3,M S@ = - 6 !7S (5M
LRL K$ ?*R$= UL$# W6R4 ?URAUR LRR$;$=RL R? LA$6*Y R4$ ;?U=R ?* #R R? $
?;;U=6R$# BL$$ MSDSCD 4$ ;$=6=2 ?* R4$ LR 6L L 6* R4$ $XAK$LL6?= W$K$
LL62=$# R? VK69$ ?* R4$ LA$6.$# RYA$D LR ;ULR =?R LA$6*Y = KKYN =$6R4$K
;ULR R4$ $XAK$LL6?=D
?=RK?950?W LRR$;$=RL $XAK$LL #$6L6?=L R4R #$R$K;6=$ R4$ ?K#$K 6= W464 LRR$5
;$=RL K$ A$K*?K;$#D 96LR ?* LRR$;$=RL 6L $X$UR$# 6= L$FU$=$ Y 2K?UA6=2 R4$;
6=R? &*% UL6=2 K$L ! L 6=
<7= C X@7+ D $
7=S Z . U * [ . TO
7=S \ . Z [ O
\ GGO
%
= 9?8! 99 #$9KR6?=L ;ULR ?;$ R R4$ R?A $*?K$ R4$ LRR$;$=RLD 9?8 6L
LY=RR699Y $FU6V9$=R R? L6=29$ LRR$;$=R =# = $ UL$# W4$K$V$K LRR$;$=R
6L K$FU6K$#D
48A84 "*.<
= /)5%2D% ?=LRKUR 4?L$L R ;?LR ?=$ LRR$;$=R R? $X$UR$! L 6=
70 C = 4 ]D
BM7=S0 C J @N7S7X, J DO
,:N, 70 C = ; ]D $
BM7=S0 C J ,3S7X, J DO
Z . ]O
%
,:N,
BM7=S0 C J ,M@ J DO
48A 31@;3. .3E =
48A8B E+@)
DN/G!- LRR$;$=R R$LRL W4$R4$K = $XAK$LL6?= ;R4$L ?=$ ?* =U;$K ?* ?=LR=R
6=R$2$K V9U$L =# K=4$L R? R4$ ?#Y ?* ?#$ *?K R4$ ?KK$LA?=#6=2 !D%! L 6=
NY7S(5 C NSS, D $
(N, )
NSS, . O
70 C Z ; ]D
NSS, . O
!M,9 O
(N, )
NSS, . O
70 C [ 4 ]D
NSS, . O
!M,9 O
(N, )
BM7=S0 C J @ /" = J DO
!M,9 O
(N, )
+,0V:S )
R ,MM@M R
%
* $%)K2G 9$9 6L AK$L$=R =# =?=$ ?* R4$ L$ ?=LR=RL $FU9 R4$ V9U$ ?* R4$
$XAK$LL6?=! R4$ ?#$ *?99?W6=2 $%)K2G 6L $X$UR$# 6=LR$#D
4$ ?#Y ?* $4 !D% ;ULR $ R$K;6=R$# Y $6R4$K C%1 ?K C%GKC5! AK$V$=R6=2
?=RK?9 *K?; 0?W6=2 *K?; ?=$ ?#Y R? R4$ =$XRD
48A8A 335<
N-/2% 9??A K$A$RL LRR$;$=R L 9?=2 L R4$ V9U$ ?* = $XAK$LL6?= K$;6=L
=?=5Z$K?! L 6=
7=S 7 . ]O
Y57:, C7 ; = D $
& 7 ' . ! & 7 ' ( & 7 'O
7 GGO
%
305C@@+31
46L $X;A9$ 6L RYA69 ?* ;=Y AK?2K;L R4R 6R$KR$ ?V$K R4$ .KLR ( $9$;$=RL ?*
= KKYD = 9R$K=R6V$ *?K; 6L R? UL$ )7C 9??A! W464 AK?V6#$L WY R? ?;6=$
R4$ 6=6R696LR6?=! ?=#6R6?=9 R$LR =# 6=K$;$=R R?2$R4$K R R4$ R?A ?* R4$ 9??AD 4$
$X;A9$ ?V$ ;Y $ 9R$K=R6V$9Y WK6RR$= L
0@M C 7=S 7 .]O 7 ; = O 7 GGD
& 7 ' . ! & 7 ' ( & 7 'O
4$ .KLR =# R46K# $XAK$LL6?=L K$ ULU99Y LL62=;$=RL! =# R4$ L$?=# K$9R6?=9
$XAK$LL6?=D 4$ .KLR LL62=;$=R ;Y *?K; AKR ?* VK69$ #$9KR6?= W4?L$
L?A$ 6L 9?9 R? R4$ ?#Y ?* R4$ 9??AD =Y ?* R4$L$ R4K$$ AKRL ;Y $ ?;6RR$#! UR
R4$ L$;6?9?=L ;ULR K$;6=D
$7.N-/2% 9??A A$K*?K;L R4$ R$LR *R$K $X$UR6=2 6RL ?#Y! 2UK=R$$6=2 R4R 6RL
?#Y 6L $X$UR$# R 9$LR ?=$D RL *?K; 6L L4?W= $9?WD
+@ $
*9
% Y57:, C 8, DO
= R46L $X;A9$! R4$ C%1 LRR$;$=R $X6RL *K?; R4$ N-/2% 9??A UA?= $=?U=R$K6=2
= $KK?KD = 2$=$K9! C%1 UL$L R4$ 6==$K;?LR $=9?L6=2 9??A ?K DN/G!- LRR$;$=R
R? $X6RD
!75G/5K% LRR$;$=R 6L L6;69K R? C%1! $X$AR R4R 6R UL$L R4$ =$XR 6R$KR6?=
?* R4$ $=9?L6=2 9??A R? $26=! L 6=
0@M C 7=S 7 .]O 7 ; = O 7 GGD $
70 C & 7 ' .. ]D
(@=S7=V, O
RRFFF BM@(,NN =@= 6 \,M@ ,:,<,=SN FFF
%
= )7C 9??A! R4$ LRR$;$=R $X$UR$# 6;;$#6R$9Y *R$K !75G/5K% 6L R4$ 9??A 6=5
K$;$=RD = N-/2% =# $7 9??AL! R4$ =$XR LRR$;$=R $X$UR$# 6L R4$ ?=#6R6?=9
R$LRD
!75G/5K% LRR$;$=R 6L ?*R$= UL$# W4$K$ R4$ ?#$ R4R *?99?WL 6R 6L ?;A96R$#!
L? R4R K$V$KL6=2 R4$ R$LR =# 6=#$=R6=2 =?R4$K 9$V$9 W?U9# =$LR R4$ AK?2K; R??
#$$A9Y R? $ $L69Y U=#$KLR??#D
48& C1@+31< 2
48& C1@+31<
*U=R6?= =;$L 9?8 ?* LRR$;$=RL! AK?V6#6=2 WY R? $=ALU9R$ =# AK;$5
R$K6L$ ?;AURR6?=D 4$ AK?2K; $9?W #$.=$L =# UL$L *U=R6?= )!G! W464
?;AUR$L *R?K69D
7=S 0(S C 7=S DO
M,SVM= ]O
%
4$ #$9KR6?=
7=S (@<BM, C 7=S Z &' * 7=S [ &' * 7=S I < &' * V=N73=,+ N7\, D
#$9K$L !749C% R? $ *U=R6?= R4R $AR R4K$$ KKYL =# D/Q% VK69$D 4$
R46K# AK;$R$K 4 6L LA$6.$# L =U999$ Y AK$.X6=2 6RL =;$ W6R4 @D
4$ ?A$KR?K /D5K22 AK?#U$L V9U$ @ 6* 6RL K2U;$=R 6L V96# K$*$K$=$ =# [
?R4$KW6L$D RR$;AR6=2 R? #$K$*$K$=$ ?K UL$ =U99 ?7$R 6L 6=V96#D
= R4$ .KLR 99 Y 4/5 R? !749C%! R4$ KKY 4G!-%D 6L ALL$# L R4$ R46K#
K2U;$=RN !749C% LL62=L R4$ $9$;$=RL ?* R46L KKYD = R4$ L$?=# 99! 5K22 6L
ALL$# L R4$ R46K# K2U;$=RN !749C% #?$L =?R RR$;AR R? LL62= R? R4$ KKYD
4$ 96LR ?* K$RUK= RYA$L! R4$ 96LR ?* V9U$L *?99?W6=2 C%GKC5! =# R4$ 96LR ?* VK69$L
LL62=$# K$ $=9?L$# 6= K$LD 4$ =U;$K ?* $9$;$=RL 6= R4$ LL62=;$=R 96LR ;ULR
;R4 R4$ =U;$K ?* V9U$L K$RUK=$# Y R4$ *U=R6?=! UR =Y ?* R4$ K$RUK=$# V9U$L
;Y $ 62=?K$# UL6=2 M7/$! L 6=
$ * X@7+ % . 0 CDO
4B 305C@@+31
48% +1@;5;@@+31
K$6=R$KAK$RR6?= UL$L VK69$ R? $ RK$R$# L 4V6=2 #6+$K$=R RYA$! UR 6R
U=#$K2?$L =? ?=V$KL6?=D 4$ *U=R6?= $9?W UL$L K$6=R$KAK$RR6?= R? RK=L;6R =
KKY ?* YR$L L ST56R 6=R$2$KLD
X@7+ SM=N<7S N3 C (5M <N3 &' * 7=S =Y@M+N D $
0@M C 7=S 7 .]O 7 ; =Y@M+N O 7 GGD
SM=N<7S =S CC <N3 * 7=S &'D& 7 'DO
%
4$ ?=LRKUR6?=
C <N3 * 7=S &'D
K$6=R$KAK$RL R4$ KKY 4D+ L = KKY ?* 6=R$2$KL! W464 6L R4$= 6=#$X$#! L 6=
C <N3 * 7=S &'D& 7 '
= R46L $X;A9$! R4$ L6Z$ ?* R4$ 6=R$2$K KKY 6L #$R$K;6=$# R KU=5R6;$D * R4$
*U=R6?= 6L 99$#! *?K $X;A9$! W6R4 = KKY ?* @[ YR$L! R4$ K$6=R$KAK$R$# 6=R$2$K
KKY 4L = UAA$K ?U=# ?* T =# R4$ R?A;?LR T 4KR$KL K$ 6=$LL69$ 6=
R4$ K$6=R$KAK$RR6?=D * L6Z$ ?* R4$ K$6=R$KAK$RR6?= 6L 26V$=! 6R ;ULR =?R $X$$# R4$
L6Z$ ?* R4$ ?K626=9 RYA$D RR$;AR6=2 R? K$6=R$KAK$R ?=$ ?7$R R? =?R4$K W4?L$
RYA$ K$FU6K$L 2K$R$K LR?K2$ 962=;$=R BL LA$6.$# 6= MD/C 6L 6=V96#D 4$ ?K626=9
#$9KR6?= L4?U9# LA$6*Y R4$ 9K2$LR LR?K2$ 962=;$=R K$FU6K$# *?K 99 A?LL69$
K$6=R$KAK$RR6?=LD
A?KR ?==$RL AK?$LL?K R? ?=$ ?K ;?K$ A4YL69 A6=L =# L LU4 #$.=$L R4$
6=R$K*$ $RW$$= AK?$LL?K =# 6RL $=V6K?=;$=RD 4$ A?KR 9?26 = #K6V$ 6RL A6=L
4624 ?K 9?W! ?K 6R = L;A9$ R4$ V9U$ ?= 6RL A6=L! ?AR6?=99Y W6R6=2 *?K AKR6U9K
?=#6R6?=D ?KRL K$ =?R ;$;?KY ;AA$#N 6=LR$# R4$Y K$ $LL$# UL6=2 #$#6R$#
6=LRKUR6?=LD AK?V6#$L 6=R$2KR$# 6=AUR =# ?URAUR LRR$;$=RL R4R ;8$ 6R $LY
R? $XAK$LL ?A$KR6?=L ?= A?KRLD 4$ #62K; $9?W 699ULRKR$L R4$L$ ?A$KR6?=LD
Sample Input
:>
Drive Output
<:
PORT PROCESSOR
R KR$L = $ ?=RK?99$# UL6=2 4K#WK$ R6;$KL R4R #$9Y R4$ $X$UR6?= ?* R4$
6=AUR =# ?URAUR 6=LRKUR6?=L *?K #$.=$# A$K6?#D 4$ AK?$LL?K = 9L? $ ;#$
R? W6R *?K = 6=AUR *K?; ;?K$ R4= ?=$ A?KR! $=96=2 ;U9R6A9$ Q #$V6$L R? $
6=R$K*$# ?=UKK$=R9YD
4& 15C@ 1 C@5C@
L6;A9$ AK?2K; R4R R?229$L A6= 4624 =# 9?W 6L L4?W= $9?WD
? 7=(:V+, ; ZNA F5 4
4$ #$9KR6?=
#$9K$L = ?URAUR A?KR =;$# 9! W464 K$*$KL R? R4$ @56R A?KR 6#$=R6.$K @D@
4$ LRR$;$=R
B ;) AO
?URAURL R4$ V9U$ @ R? R4$ A?KR 9! UL6=2 R4$ A?KR R? #K6V$ 6RL ?KK$LA?=#6=2 A6=
4624D 4$ A?KR ?=R6=U$L R? #K6V$ 6RL A6= 4624 U=R69 $X$UR6?= ?* R4$ =$XR LRR$;$=R
B ;) ]O
W464 ?URAURL R4$ V9U$ [ R? R4$ A?KR! UL6=2 R4$ A?KR R? #K6V$ 6RL A6= 9?WD 4$
#62K; $9?W L4?WL R4$ ?URAUR 2$=$KR$# Y R46L AK?2K;D
1 0
(1A)
4$ A6= 6L 6=6R699Y =?R #K6V$=N *R$K R4$ .KLR ?URAUR 6L $X$UR$# 6R 6L #K6V$= 4624N =#
*R$K R4$ L$?=# ?URAUR 6L $X$UR$# 6R 6L #K6V$= 9?WD = 2$=$K9! W4$= ?URAURR6=2 R?
= (56R A?KR! R4$ 9$LR L62=6.=R ( 6RL ?* R4$ ?URAUR V9U$ K$ #K6V$= ?= R4$ A6=L
=# R4$ K$LR K$ 62=?K$#D
99 A?KRL ;ULR $ #$9K$# L 29?9 VK69$L! =# =? RW? A?KRL ;Y $ 6=6R696L$#
W6R4 R4$ L;$ A?KR 6#$=R6.$KD *R$K 6=6R696LR6?=! A?KR ;Y =?R $ LL62=$# R?D
LL6=2 A?KR R? *U=R6?= 6L 99?W$# L 9?=2 L R4$ A?KR #?$L =?R AA$K 6= ;?K$
R4= ?=$ ?* *U=R6?=JL K2U;$=RL! W464 W?U9# K$R$ = 699$29 96LD
@ 4$ V9U$ <P P< 6L #$.=$# 6= R4$ 4$#$K .9$ 7SI<A21D ?LR #$V$9?A;$=R ?K#L K$ LUA5
A96$# W6R4 = .9$ *K?; W464 R4$ 4$#$K .9$ 7=6L,;H8A21 6L 2$=$KR$#! =# W464 #$.=$L ;?K$
6=RU6R6V$ =;$L *?K A?KRL LU4 L PP =# P PD 4$L$ =;$L K$ #?U;$=R$# 6= R4$
?KK$LA?=#6=2 4K#WK$ ;=U9D
B8B 15C@@+1' @ 4%
#! (1A)
4$ AK?2K; ?=R6=U?UL9Y 6=AURL *K?; R4$ A?KR /5 W4$= [X% 6L L;A9$# R4$ ?URAUR
6L #K6V$= 9?W! W4$= [X 6L L;A9$# R4$ ?URAUR 6L #K6V$= 4624 =# W4$= [XT 6L
L;A9$# R4$ ?URAUR 6L 26= #K6V$= 9?WD 4 6=AUR V9U$ ;Y $ L;A9$# ;=Y
R6;$LD
? 7=(:V+, ; ZNA F5 4
@=,7S ) 4 Z O
Y57:, CAD $
@=,7S Y5,= B7=N=,H C Z D ) 4 Z O
(@V=S,M ;) GG 7 O
%
%
4$ LRR$;$=R
@=,7S Y5,= B7=N=,H C Z D ) 4 Z O
6=LRKURL R4$ A?KR 75%/G R? W6R U=R69 R4$ V9U$ ?= 6RL A6=L 6L =?R $FU9 R? O $*?K$
L;A96=2 =# AK?V6#6=2 6R R? R4$ AK?$LL?K R? LR?K$ 6= OD
4$ WV$*?K; #62K; $9?W L4?WL $X;A9$ 6=AUR LR6;U96 =# $XA$R$# ?URAUR
*?K R46L AK?2K;D
! (1A)
L =?R4$K $X;A9$! R4$ ?=9Y ?A$KR6?= K$FU6K$# R? W6R *?K = R4$K=$R AK$;9$
?= 156R A?KR 6L
,S5S Y5,= B7=N,H C] Z D ) 4 X@7+ O
4$ AK?$LL?K ;ULR ?;A9$R$ = 6=AUR ?A$KR6?= *K?; R4$ A?KR ?=$ ?=#6R6?= 6L
;$R! $V$= 6* R4$ 6=AUR V9U$ 6L =?R K$FU6K$#D 46L 6L $XAK$LL$# 6= L = 6=AUR R?
M7/$D
L6=2 ?=#6R6?=9 6=AUR 6L ;?K$ A?W$K $,6$=R R4= A?996=2 R4$ A?KR 6= L?*RWK$!
$UL$ 6R 99?WL R4$ AK?$LL?K R? 6#9$! ?=LU;6=2 9$LL A?W$K! W469$ R4$ A?KR K$;6=L
R6V$ ;?=6R?K6=2 6RL A6=LD
@[[ Z =# W4?L$ V9U$ = $ 6=AUR R =Y R6;$D = 6=AUR ?= R6;$K = 9L? $
#$9Y$# U=R69 R6;$ 6= R4$ *URUK$D 4$ AK?2K; $9?W UL$L R6;$K R? ?=RK?9 R4$
KR$ R W464 @56R A?KR 6L R?229$#D
? 7=(:V+, ; ZNA F5 4
? +,07=, 1]]]]]]]
4$ #$9KR6?=
S7<,M S O
#$9K$L R6;$K =;$# G! ?R6=6=2 R6;$K K$L?UK$ *K?; R4$ ?K$JL A??9 ?*
V699$ R6;$KLD
4$ LRR$;$=R
S ) 4 S7<, O
6=AURL R4$ V9U$ ?* GJL ?U=R$K 6=R? R4$ VK69$ G/4%D 46L VK69$ 6L R4$= 6=K$5
;$=R$# Y R4$ V9U$ ! W464 LA$6.$L =U;$K ?* ?U=R$K 6=K$;$=RLD 4$
R6;$K 4L A$K6?# ?* @[=L! 26V6=2 R6;$ 6= R4$ *URUK$ ?* /[ [[[ [[[ @[& [$/&D
4$ ?=#6R6?=9 6=AUR LRR$;$=R
S Y5,= S7<,M0S,M C S7<, D ) 4 X@7+ O
W6RL U=R69 R46L R6;$ 6L K$4$#! ?;A9$R6=2 R4$ 6=AUR 7ULR *R$KWK#LD
4$ WV$*?K; #62K; $9?W L4?WL R4$ #R #K6V$= *?K R46L AK?2K;D
(1A)
0.5s 0.5s 0.5s 0.5s 0.5s 0.5s 0.5s
18 Input and Output
The function timerafter treats the timer’s counter as having two separate ranges,
as illustrated below.
0 232-1
All values in the range (time − 231 ..time − 1) are considered to come before time,
with values in the range (time + 1..time + 232−1 , 0..time − 231 ) considered to come
afterwards. If the delay between the two input values fits in 31 bits, timerafter is
guaranteed to behave correctly, otherwise it may behave incorrectly due to overlow
or underflow. This means that a timer can be used to measure up to a total of
231 /100, 000, 000 = 21s.
A programming error may be introduced by inputting the new time instead of
ignoring it with a cast to void, as in
t when timerafter ( time ) : > time ;
Because the processor completes the input shortly after the time specified is reached,
this operation actually increments the value of time by a small additional amount.
This amount may be compounded over multiple loop iterations, leading to signal
drift and ultimately a loss of synchronisation with a receiver.
8.68s 8.68s 8.68s 8.68s 8.68s 8.68s 8.68s 8.68s 8.68s 8.68s
TXD B0 B1 B2 B3 B4 B5 B6 B7
start stop
bit bit
The quiescent state of the wire is high. A byte is sent by first driving a start bit (0),
followed by the eight data bits and finally a stop bit (1). A rate of 115200 bits/s
1
means that each bit is driven for 115200 = 8.68μs.
UARTs are often implemented with microcontrollers, using interrupts to schedule
memory-mapped input and output operations. Implementing a UART with an XMOS
B8% < @CG 6;@ 47 42
#$V6$ 6L $LY #U$ R? 6RL #$#6R$# Q 6=LRKUR6?=LD 4$ AK?2K; $9?W #$.=$L
RK=L;6RR$KD
? 7=(:V+, ; ZNA F5 4
Y57:, CAD $
R 3,S =,ZS ![S, S@ SM=N<7S R
![S, . 3,S[S, CDO
S ) 4 S7<, O
6=9U#$L R4$ ;?#6.$K ,,! W464 K624R5L46*RL R4$ V9U$ ?* PG% Y R4$ A?KR W6#R4 B@ 6RC
*R$K ?URAURR6=2 R4$ 9$LR L62=6.=R A?KR5W6#R4 6RLD 46L ?A$KR6?= 6L A$K*?K;$#
6= R4$ L;$ 6=LRKUR6?= L R4$ ?URAUR! ;86=2 6R ;?K$ $,6$=R R4= A$K*?K;6=2 R4$
L46*R L L$AKR$ ?A$KR6?= *R$KWK#LD
BI 15C@ 1 C@5C@
Y57:, CAD $
R Y7S 0@M NSMS !7S R
Y5,= B7=N,H C]D ) 4 X@7+ O
S ) 4 S7<, O
S7<, G. W RUO
? 7=(:V+, ; ZNA F5 4
S ) 4 S7<, O
S7<, G. W O
Y57:, CAD
N,:,(S $
(N, S@33:, Y5,= B7=N=,H C Z D ) 4 Z )
M,+S C +S DO
!M,9 O
(N, S Y5,= S7<,M0S,M C S7<, D ) 4 X@7+ )
M,+S C +S DO
S7<, G. W O
!M,9 O
%
%
4$ D%2%!G LRR$;$=R A$K*?K;L = 6=AUR ?= $6R4$K R4$ A?KR G7++2% ?K R4$ R6;$K G!
#$A$=#6=2 ?= W464 ?* R4$L$ K$L?UK$L $?;$L K$#Y R? 6=AUR .KLRD * ?R4 6=AURL
$?;$ K$#Y R R4$ L;$ R6;$! ?=9Y ?=$ 6L L$9$R$#! R4$ ?R4$K K$;6=6=2 K$#Y ?=
R4$ =$XR 6R$KR6?= ?* R4$ 9??AD *R$K A$K*?K;6=2 = 6=AUR! R4$ ?#Y ?* ?#$ $9?W 6R
6L $X$UR$#D 4 ?#Y ;ULR $ R$K;6=R$# Y $6R4$K C%1 ?K C%GKC5 LRR$;$=RD
L$ LRR$;$=RL K$ =?R A$K;6RR$# R? ?=R6= ?URAUR ?A$KR6?=L L R4$
K46R$RUK$ K$FU6K$L = ?URAUR ?A$KR6?= R? ?;A9$R$ UR 99?WL = 6=AUR ?A$KR6?=
R? W6R U=R69 6R L$$L ;R46=2 ?URAUR $*?K$ ?;;6RR6=2 R? 6RL ?;A9$R6?=D
4 A?KR =# R6;$K ;Y AA$K 6= ?=9Y ?=$ ?* R4$ !D% LRR$;$=RLD 46L 6L
$UL$ R4$ K46R$RUK$ K$LRK6RL $4 A?KR =# R6;$K K$L?UK$ R? W6R6=2 *?K
7ULR ?=$ ?=#6R6?= R R6;$D
= R46L $X;A9$! R4$ AK?$LL?K $+$R6V$9Y ;U9R65RL8L R4$ KU==6=2 ?* RW? 6=#$A$=5
#$=R RL8L! =# 6R ;ULR $ *LR $=?U24 R? AK?$LL ?R4 LRK$;L ?* #R 6= K$95R6;$D
* R46L 6L =?R A?LL69$! RW? L$AKR$ R4K$#L ;Y $ UL$# R? AK?$LL R4$ #R 6=LR$#
BL$$ 4AR$K SCD
4$ VK69$L /D! GO ! /D =# CO #$R$K;6=$ W464 AKRL ?* R4$ K$ R6V$
=# 4?W ;=Y 6RL ?* #R 4V$ $$= RK=L;6RR$# =# K$$6V$#D
B8 ;0@;+< .@+31 BA
4$ N-/2% 9??A .KLR 4$8L W4$R4$K R4$ RK=L;6RR$K 6L 6=R6V$ W6R4 #R V699$
R? RK=L;6R! 6= W464 L$ 6R ?URAURL LRKR 6R =# L$RL R4$ R6;$?UR *?K ?URAURR6=2
R4$ .KLR #R 6RD
= R4$ D%2%!G LRR$;$=R! R4$ 2UK#
(N, / 7N . 4 Y5,= B7=N,H C]D ) 4 X@7+ )
4$8L W4$R4$K /D $FU9L Z$K?! 6=#6R6=2 R4R R4$ K$$6V$K 6L 6=R6V$! =# 6* L? 6R
$=9$L = 6=AUR ?= R4$ A?KR W4$= R4$ V9U$ ?= 6RL A6=L $FU9L [D 4$ $XAK$LL6?=
?= R4$ 9$*R ?* R4$ ?A$KR?K ', 6L L6# R? (& R4$ 6=AURD 4$ ?#Y ?* R46L L$ L$RL
R6;$?UR *?K 6=AURR6=2 R4$ .KLR #R 6RD
4$ L$?=# 2UK#
(N, 7N . 4 S<M Y5,= S7<,M0S,M C MZ7<, D ) 4 X@7+ )
4$8L W4$R4$K /D 6L =?=5Z$K?! 6=#6R6=2 R4R R4$ K$$6V$K 6L R6V$! =# 6* L?
$=9$L = 6=AUR ?= R4$ R6;$K G4CD 4$ ?#Y ?* R46L L$ 6=AURL R4$ =$XR 6R ?* #R
=#! ?=$ 99 6RL K$ 6=AUR! 6R LR?K$L R4$ #R =# L$RL /D 8 R? Z$K?D
4$ R46K# 2UK#
(N, 7N . 4 S<M Y5,= S7<,M0S,M C SZ7<, D ) 4 X@7+ )
4$8L W4$R4$K /D 6L =?=5Z$K?! 6=#6R6=2 R4R R4$ RK=L;6RR$K 6L R6V$! =# 6* L?
$=9$L = 6=AUR ?= R4$ R6;$K G4CD 4$ ?#Y ?* R46L L$ ?URAURL R4$ =$XR 6R ?*
#R =#! ?=$ 99 6RL K$ ?URAUR! 6R L$RL /D R? Z$K?D
* R46L ?=RK?99$K 6L R? $ UL$# 6= =?6LY $=V6K?=;$=RL! 6RL K$96696RY ;Y
$ 6;AK?V$# Y L;A96=2 $4 6=AUR 6R ;U9R6A9$ R6;$L =# V$K26=2 R4$ K$LU9RD
;?K$ K?ULR 6;A9$;$=RR6?= W?U9# 9L? 4$8 R4R R4$ LR?A 6R K$$6V$# 4L =
$XA$R$# V9U$ ?* @D
B8 ;0@;+< .@+31
Quiet
(0, 0) (0, 0)
(0, 1) (1, 0)
Receive 0 Receive 1
B& 15C@ 1 C@5C@
4$ AK?2K; $9?W ;8$L UL$ ?* 2&4 5(4#*( R? 6=AUR L6=29$ YR$ ?* #R
*K?; RW? A6=L UL6=2 R46L L4$;$D
? 7=(:V+, ; ZNA F5 4
7= B@MS M] . AWWA O
7= B@MS MA . AWWA O
4$ #$9KR6?=
D%2%!G /5/G:/5 97CG CR# /5 97CG C8# /5G OR# /5G O8# !-C PG%;
#$9K$L /5/G R? $ L$9$R *U=R6?= R4R R8$L .V$ K2U;$=RL =# 4L = 6;A966R
K$RUK= RYA$ ?* M7/$N 6RL ?#Y ?=R6=L RW? L$ LRR$;$=RLD
4$ WV$*?K; #62K; $9?W L4?WL $X;A9$ 6=AUR LR6;U96 *?K R46L AK?2K;D 4$
6R V9U$L K$$6V$# K$ [! @! [! [! [! [! [ =# @ BIJCD
& (1A)
(1B)
q 0 q 1 q 0 q 0 q 0 q 0 q 0 q 1 q
= ?=RKLR R? ! W464 RK=L;6RL #R R .X$# KR$! R46L L4$;$ 99?WL *?K
R4$ *LR$LR A?LL69$ RK=L;6LL6?= LUAA?KR$# Y = #$V6$ =# R4$ ?;A?=$=R
R? W464 6R 6L ?==$R$#D
B8 ;0@;+< .@+31 B%
$=$.R ?* #$.=6=2 /5/G L L$9$R *U=R6?= 6L R4R 6RL 6=#6V6#U9 L$L =
$ UL$# R? *?K; AKR ?* 9K2$K L$9$R LRR$;$=R! L 6= R4$ AK?2K; $9?W W464
#$?#$L RW?5YR$ V9U$ L;A9$# ?= *?UK A6=LD
? 7=(:V+, ; ZNA F5 4
? +,07=, U
6R$KR$L RW6$! $4 R6;$ 996=2 R4$ L$9$R *U=R6?= /5/G! W464 $=9$L R4$ A?KRL
6=#$X$# Y #6+$K$=R V9U$L ?* /D 4$ =U;$K ?* 6R$KR6?=L =$$# =?R $ ?=LR=R! UR
R4$ 6R$KR?K ;ULR =?R $ ;?#6.$# ?URL6#$ ?* R4$ K$A96R?KD
$
31C;;1G
=Y #$L62=L K$FU6K$ ?* ?99$R6?= ?* RL8L R? $ A$K*?K;$# R R4$ L;$ R6;$D ?;$
?* R4$L$ RL8L ;Y A$K*?K; 6=#$A$=#$=R R6V6R6$L! W469$ ?R4$KL $=22$ W6R4 ?=$
=?R4$K R? ?;A9$R$ L4K$# ?7$R6V$LD AK?V6#$L L6;A9$ ;$4=6L;L *?K K$R6=2
*(511(4 4!12 R4R = KU= 6=#$A$=#$=R9Y =# 6=R$KR W6R4 ?=$ =?R4$K ?=
#$;=#D R 6L ?;;U=6R$# $RW$$= R4K$#L UL6=2 !((&2! W464 AK?V6#$
A?6=R5R?5A?6=R ?==$R6?=L $RW$$= A6KL ?* R4K$#LD 4==$9L = $ UL$# R?
?;;U=6R$ #R $6R4$K LY=4K?=?UL9Y ?K LY=4K?=?UL9YD
4$ 4$#$K .9$ 92G)7C4=- AK?V6#$L #$9KR6?= ?* R4$ 29?9 VK69$ DG$!7C%!
W464 6L UL$# R? LA$6*Y R4$ 9?R6?=L ?* A?KRL =# R4K$#LD@
4$ #$9KR6?=
@= NS+(@M, &]' ) @VS B@MS B . AWWA O
#$9K$L @56R ?URAUR A?KR =;$# 9 R4R K$*$KL R? R4$ A?KR 6#$=R6.$K @ ?= LR=#K#
?K$ =U;$K [D
4$ *?UK LRR$;$=RL 6=L6#$ R4$ K$L ?* R4$ 9C K$ KU= ?=UKK$=R9Y L *?UK
L$AKR$ R4K$#L UL6=2 *1%"$*#( ,1&&' R R4$ ?A$=6=2 K$ R4$ AK$=R K$R$L
R4K$$ ;?K$ R4K$#LN $4 ?* R4$L$ R4K$#L R4$= $X$UR$L *U=R6?=N =# R R4$ 9?L6=2
K$ R4$ AK$=R W6RL *?K 99 *U=R6?=L R? K$RUK= $*?K$ ?=R6=U6=2D
9C LRR$;$=RL ;Y $ UL$# =YW4$K$ 6= AK?2K;D 4 @ #$V6$ 4L 96;6R
?* $624R R4K$#L V699$ ?= $4 ?* 6RL AK?$LL?KL! =# AK?2K; R4R RR$;ARL R?
$X$$# R46L 96;6R 6L 6=V96#D
4$ 75 LRR$;$=R 6L UL$# R? LA$6*Y R4$ A4YL69 9?R6?= ?* ?;A?=$=RL ?=5
=$R$# R? A?KRL =# R? AKR6R6?= ?99$R6?= ?* R4K$#L $RW$$= R4$ V699$ ?K$LD
?K L6=29$5?K$ AK?2K;L! =?=$ ?* R4$ A?KR #$9KR6?=L =$$# $ AK$.X$# W6R4 75!
6= W464 L$ 99 A?KRL =# R4K$#L K$ A9$# ?= ?K$ [D ?K ;U9R6?K$ AK?2K;L!
99 A?KRL =# R4K$#L ;ULR $ $XA966R9Y AK$.X$# W6R4 75D
;U9R6?K$ 4/5 *U=R6?= ;Y ?=R6= ?=9Y 4==$9 #$9KR6?=L! L6=29$ 9C
LRR$;$=R =# = ?AR6?=9 C%GKC5 LRR$;$=RD 4$ 75 LRR$;$=R ;Y $ UL$# R?
LA$6*Y R4$ 9?R6?= ?* R4K$#L ?=9Y W6R46= R46L *U=R6?=D
99 VK69$L K$ LU7$R R? UL2$ KU9$L R4R AK$V$=R R4$; *K?; $6=2 L4K$# Y
R4K$#L 6= A?R$=R699Y #=2$K?UL WYLD = 2$=$K9! $4 R4K$# 4L *U99 $LL R?
6RL ?W= AK6VR$ VK69$L! UR 96;6R$# $LL R? VK69$L R4R K$ L4K$# W6R4 ?R4$K
R4K$#LD 4$ KU9$L *?K #6L7?6=R=$LL ?= L$R ?* R4K$#L [ D D D =# L$R ?* VK69$L
[ D D D K$ L *?99?WL
* R4K$# * ?=R6=L K$*$K$=$ R? A?KR ! R4$= =?=$ ?* R4$ ?R4$K R4K$#L K$
99?W$# R? UL$ ! D
@ 4$ RK2$R A9R*?K; 6L #$LK6$# UL6=2 R4$ =$RW?K8 LA$.R6?= 9=2U2$ D ?LR ?K#
LUAA?KR A82$L AK?V6#$ ?KK$LA?=#6=2 .9$! W464 #$LK6$L R4$ V699$ #$V6$L =# R4$6K
?==$R6V6RYD 46L #R 6L UL$# #UK6=2 R4$ ;AA6=2 LR2$ ?* ?;A69R6?= R? AK?#UR ;U9R65=?#$
$X$UR9$ .9$ R4R = ??R =# ?=.2UK$ R4$ $=R6K$ LYLR$;D
A8B ); +<,3+1@1<< C.< B2
= ?R4$K W?K#L! 2K?UA ?* R4K$#L = 4V$ 2!1 K$#5?=9Y $LL R? VK69$!
UR ?=9Y L6=29$ R4K$# = 4V$ 8&52#6 K$#5WK6R$ $LL R? VK69$D 4$L$
KU9$L 2UK=R$$ R4R $4 R4K$# 4L W$995#$.=$# ;$=6=2 R4R 6L 6=#$A$=#$=R ?*
R4$ ?K#$K 6= W464 6=LRKUR6?=L 6= ?R4$K R4K$#L K$ L4$#U9$#D =R$KR6?= $RW$$=
R4K$#L R8$L A9$ $XA966R9Y UL6=2 6=AURL =# ?URAURL ?= 4==$9L BL$$ MSDSCD
A8B84 F05.<
4$ $X;A9$ AK?2K; $9?W 6L 9$29! L6=$ 1 6L L4K$# K$#5?=9Y 6= R4K$#L =# !
/ 6L ;?#6.$# 6= =# =?R UL$# 6= ! =# 0 6L ;?#6.$# 6= =# =?R UL$# 6= D
* $6R4$K / ?K 0 6L 9L? K$# 6= =?R4$K R4K$#! R4$ $X;A9$ $?;$L 699$29! L L4?W=
6= R4$ AK?2K; $9?WD
46L AK?2K; 6L ;62U?UL L6=$ R4$ V9U$ ?* / K$# 6= R4K$# #$A$=#L UA?=
W4$R4$K R4$ LL62=;$=R R? / 6= R4K$# 4L 9K$#Y 4AA$=$# ?K =?RD
4$ AK?2K; $9?W 6L 9$29! L6=$ R 6L ;?#6.$# 6= R4K$# =# =?R UL$# 6=
R4K$# ! =# 8 6L ;?#6.$# 6= =# =?R UL$# 6= D
4$ AK?2K; $9?W 6L 699$29 L6=$ 8 6L ;?#6.$# 6= R4K$# =# = U=8=?W=
$9$;$=R ?* 6L ;?#6.$# 6= R4K$# D
7=S Z O
7=S <7= C X@7+ D $
7=S &A]'O
BM $
&A' . 0 CADO RR 5M,+ ) 7::,3: N5M7=3 @0 Z &A'
& Z ' . 0 C Z DO RR 5M,+ ) 7::,3: N5M7=3 @0 Z &A'
%
%
* ) #?$L =?R ;?#6*Y R4$ KKY R4$= 6RL AK;$R$K L4?U9# $ #$9K$# W6R4 !75DG!
W464 W?U9# ;8$ R4$ ?V$ AK?2K; 9$29D
4$ #6L7?6=R=$LL KU9$L AA9Y 6=#6V6#U99Y R? AK99$9 LRR$;$=RL 6= L$FU$=$! =#
K$UKL6V$9Y R? =$LR$# AK99$9 LRR$;$=RLD 4$ $X;A9$ AK?2K; $9?W 6L 9$29D
= R46L $X;A9$! / 6L .KLR #$9K$# =# 6=6R696L$# 6= R4$ ;6= R4K$#N 6R 6L R4$= UL$#
$X9UL6V$9Y 6= R4K$# BR4K$# 6L =?R 99?W$# $LLCD =$ =# 4V$ 7?6=$#!
/ 6R 6L UL$# 26= Y R4$ ;6= R4K$#N .=99Y 6R 6L L4K$# $WR$$= R4K$#L =# D
A8A )11. 300C1+@+31 A4
? 7=(:V+, ; B:S0@M< F5 4
4$ #$9KR6?=
#$9K$L KCG R? $ *U=R6?= R4R R8$L 4==$9 $=# =# A?KR L 6RL K2U;$=RLD
4$ #$9KR6?=
#$9K$L 1 /DG%5 R? $ *U=R6?= R4R R8$L 4==$9 $=# =# A?KR L 6RL
K2U;$=RD
AB 31C;;1G
#$9K$L 4==$9D 4$ 4==$9 6L UL$# 6= RW? R4K$#L ?* 9C =# $4 UL$
6;A966R9Y K$*$KL R? ?=$ ?* 6RL RW? 4==$9 $=#LD 46L UL2$ $LR96L4$L 96=8 $RW$$=
R4K$# ?= ?K$ [ =# R4K$# ?= ?K$ @D
4K$# 99L R4$ *U=R6?= KCG! W464 K$$6V$L #R ?V$K 4==$9 =#
?URAURL 6R R? A?KRD 4K$# 99L 1 /DG%5! W464 W6RL *?K 8$Y?K# LRK?8$L *K?;
A?KR =# ?URAURL R4$ #R ?= 4==$9 R? R4$ RK=L;6RR$K ?= R4K$# D L
R4$ 4==$9 6L LY=4K?=?UL! W4$= 1 /DG%5 ?URAURL #R! 6R W6RL U=R69 KCG 6L
K$#Y R? K$$6V$ R4$ #R $*?K$ ?=R6=U6=2D
4==$9L K$ 9?LL9$LL! W464 ;$=L R4R #R ?URAUR 6= ?=$ R4K$# 6L 2UK=R$$#
R? $ #$96V$K$# *?K 6=AUR Y =?R4$K R4K$#D 4 ?URAUR 6= ?=$ R4K$# ;ULR R4$K$*?K$
$ ;R4$# Y = 6=AUR 6= =?R4$K! =# R4$ ;?U=R ?* #R ?URAUR ;ULR $FU9 R4$
;?U=R 6=AUR ?K $9L$ R4$ AK?2K; 6L 6=V96#D
* R4K$# * ?=R6=L UL$ ?* 4==$9 $=# + R4$= =?=$ ?* R4$ ?R4$K R4K$#L
B( ( *C K$ 99?W$# R? UL$ + D
= ?R4$K W?K#L! $4 4==$9 = $ UL$# 6= R ;?LR RW? R4K$#LD * 4==$9 6L
UL$# 6= ?=9Y ?=$ R4K$# R4$= RR$;AR6=2 R? 6=AUR ?K ?URAUR ?= R4$ 4==$9 W699 9?8
*?K$V$KD
4$ #6L7?6=R=$LL KU9$L *?K VK69$L =# 4==$9L R?2$R4$K 2UK=R$$ R4R =Y RW?
R4K$#L = $ KU= ?=UKK$=R9Y ?= =Y RW? AK?$LL?KL! LU7$R R? A4YL69 K?UR$
$X6LR6=2 $RW$$= R4$ AK?$LL?KLD L 2$=$K9 KU9$! R4K$#L R4R 6=R$KR W6R4 ?=$
=?R4$K *K$FU$=R9Y L4?U9# ULU99Y $ 9?R$# 9?L$ R?2$R4$KD
A8& ;1<@+31<
=AUR =# ?URAUR LRR$;$=RL ?= 4==$9L ULU99Y LY=4K?=6L$ R4$ ?;;U=6R6?= ?*
#RD 46L 6L =?R 9WYL #$L6K9$! 4?W$V$K! L 6R #6LKUARL R4$ 0?W ?* R4$ AK?2K;!
UL6=2 R4K$#L R? 9?8D 4$ R6;$ R8$= R? LY=4K?=6L$! 6=9U#6=2 R4$ R6;$ LA$=R
6#9$ W469$ 9?86=2! = K$#U$ ?V$K99 A$K*?K;=$D
= 6R 6L A?LL69$ *?K RW? R4K$#L R? $=22$ 6= 41(24#*(! 6= W464 L$FU$=$
?* ;R46=2 ?URAURL =# 6=AURL K$ ?;;U=6R$# ?V$K 4==$9 LY=4K?=?UL9Y!
W6R4 R4$ $=R6K$ RK=LR6?= $6=2 LY=4K?=6L$# R 6RL $26==6=2 =# $=#D L W6R4
A8& ;1<@+31< AA
6=#6V6#U9 4==$9 ?;;U=6R6?=L! R4$ R?R9 ;?U=R ?* #R ?URAUR ;ULR $FU9 R4$
R?R9 ;?U=R 6=AURD
4$ AK?2K; $9?W UL$L RK=LR6?= R? ?;;U=6R$ A8$R ?* #R $RW$$=
RW? R4K$#L $,6$=R9YD
? 7=(:V+, ; B:S0@M< F5 4
4$ #$9KR6?=
SM=N(S7@= 7=MM[ C (5=,=+ ( * (5M +S &' * 7=S N7\, D
#$9K$L /5CCP R? $ RK=LR6?= *U=R6?= R4R R8$L ?=$ $=# ?* 4==$9! =
KKY ?* 6=R$2$KL =# R4$ L6Z$ ?* R4$ KKYD RK=LR6?= *U=R6?= ;ULR #$9K$
AK$6L$9Y ?=$ 4==$9 $=# AK;$R$KD
= 4/5! R4$ 99 R? /5CCP 6L AK$.X$# W6R4 4DG%C! W464 LA$6.$L R4R R4$
*U=R6?= 6L 99$# L ;LR$K R4R ?;;U=6R$L W6R4 L9V$D
L9V$ LRR$;$=R ;Y $ UL$# 6= R4$ 2UK# ?* D%2%!G LRR$;$=R! L 6=
N,:,(S $
(N, N:X, $ 7=MM[ C (A * B(9,S * W DO % )
BM@(,NN C B(9,S DO
!M,9 O
(N, N:X, $ 7=MM[ C (U * B(9,S * W DO % )
BM@(,NN C B(9,S DO
!M,9 O
%
;LR$K ?A$KR6?= Y #$.=6R6?= ?;;6RL R? ?;A9$R6=2 =# 6L R4$K$*?K$ #6L99?W$#
*K?; AA$K6=2 6= 2UK#D
A8% @;0<
241'#( !((& $LR96L4$L A$K;=$=R K?UR$ $RW$$= RW? R4K$#L ?V$K W464
#R = $ $,6$=R9Y ?;;U=6R$# W6R4?UR LY=4K?=6LR6?=D 4$ AK?2K; $9?W
?=L6LRL ?* R4K$$ R4K$#L R4R R?2$R4$K 6=AUR LRK$; ?* #R *K?; A?KR! .9R$K R4$
#R =# ?URAUR 6R R? =?R4$K A?KRD
? 7=(:V+, ; B:S0@M< F5 4
RK$;6=2 4==$9L AK?V6#$ R4$ *LR$LR A?LL69$ #R KR$LD = ?URAUR LRR$;$=R
R8$L 7ULR L6=29$ 6=LRKUR6?= R? ?;A9$R$ =# 6L #6LAR4$# 6;;$#6R$9Y L 9?=2 L
R4$K$ 6L LA$ 6= R4$ 4==$9JL U+$KD = 6=AUR LRR$;$=R R8$L L6=29$ 6=LRKUR6?= R?
?;A9$R$ =# 9?8L ?=9Y 6* R4$ 4==$9 U+$KJL 6L $;ARYD = ?=RKLR R? RK=LR6?=L!
;U9R6A9$ LRK$;L = $ AK?$LL$# ?=UKK$=R9Y! UR R4$K$ 6L 96;6R R? 4?W ;=Y
LRK$;6=2 4==$9L = $ #$9K$# R?2$R4$K L LRK$;L $LR96L4$# $RW$$= ?K$L
K$FU6K$ A6RY R? $ K$L$KV$# 6= LW6R4$LD 46L 96;6R #?$L =?R AA9Y R? 4==$9L
=# RK=LR6?=LD
? 7=(:V+, ; B:S0@M< F5 4
B@MS B &2' . $
@= NS+(@M, &]' ) AWWA *
@= NS+(@M, &A' ) AWWA *
@= NS+(@M, &U' ) AWWA *
@= NS+(@M, &T' ) AWWA
%O
4$ K$A96R?K
$X$UR$L *?UK ?#6$L ?* ?#$! $4 ?=R6=6=2 = 6=LR=$ ?* R4$ *U=R6?= 57$% ?=
#6+$K$=R R4K$#D 4$ =U;$K ?* 6R$KR6?=L ;ULR $ ?=LR=R! =# R4$ 6R$KR?K ;ULR
=?R $ ;?#6.$# ?URL6#$ ?* R4$ K$A96R?KD 4$ ?;;U=6R6?= =$RW?K8 $LR96L4$#
Y R46L AK?2K; 6L 699ULRKR$# ?= R4$ =$XR A2$D
A> 31C;;1G
XCore 0 XCore 3
Channel Ends
Channel Ends
Switch
XCore 1 XCore 2
Channel Ends
Channel Ends
4$ LRKURUK$ ?* R46L AK?2K; 6L L6;69K R? R?8$= K6=2 =$RW?K8! 6= W464 $4 R4K$#
6=AURL R?8$= *K?; ?=$ ?* 6RL =$624?UKL! A$K*?K;L = R6?= =# R4$= ?URAURL R4$
R?8$= R? 6RL ?R4$K =$624?UKD
A8= ;D+<
= =$RW?K8 = 6=R$K*$ W6R4 =Y #$V6$ R4R 6;A9$;$=RL R4$ 6=8
AK?R??9D 4$ AK?2K; $9?W ?;;U=6R$L W6R4 = L$KV6$ ?==$R$# R? R4$
=$RW?K8D
? 7=(:V+, ; B:S0@M< F5 4
B@MS B . AWWA O
#$.=6R6?=D 4$ 4KR$K6LR6L ?* R4$ 96=8L UL$# R? 6;A9$;$=R R4$ 4==$9 $=#L K$
#$.=$# 6= R4$ .9$D
=?R4$K UL$ ?* L$KV6$L 6L *?K 6=R$K*6=2 W6R4 *U=R6?=L AK$5AK?2K;;$# 6=R?
R4$ =?=5V?9R69$ ;$;?KY ?* = ?K$ Y R46K#5AKRY ;=U*RUK$KD YA699Y! R4$
;=U*RUK$K AK?V6#$L = .9$ R4R ?=R6=L 99 L$KV6$ #$9KR6?=L! W464 K$
V699$ 6= R4$ .9$ 392G)7C4=-,D
A8 ); ;"3;01
4$ K46R$RUK$ 6L #$L62=$# R? A$K*?K; ;U9R6A9$ K$95R6;$ RL8L ?=UKK$=R9Y!
$4 ?* W464 6L 2UK=R$$# AK$#6R9$ R4K$# A$K*?K;=$D 4 AK?$LL?K UL$L
K?U=#5K?6= R4K$# L4$#U9$K! W464 2UK=R$$L R4R 6* UA R? *?UK R4K$#L K$ R6V$!
$4 R4K$# 6L 99?R$# FUKR$K ?* R4$ AK?$LL6=2 Y9$LD * ;?K$ R4= *?UK R4K$#L
@
K$ R6V$! $4 R4K$# 6L 99?R$# R 9$LR Y9$L B*?K R4K$#LCD 4$ ;6=6;U;
A$K*?K;=$ ?* R4K$# = R4$K$*?K$ $ 9U9R$# Y ?U=R6=2 R4$ =U;$K ?*
?=UKK$=R R4K$#L R LA$6. A?6=R 6= R4$ AK?2K;D
4$ 2KA4 $9?W L4?WL R4$ 2UK=R$$# A$K*?K;=$ ?R6=9$ *K?; $4 R4K$#
?= 1[[ Z ?K$! #$A$=#6=2 ?= R4$ R?R9 =U;$K ?* R4K$#L 6= UL$D
100
90
80
Guaranteed MIPS per thread
70
60
50
40
30
20
10
0
1 2 3 4 5 6 7 8
Number of threads in use
$UL$ 6=#6V6#U9 R4K$#L ;Y $ #$9Y$# ?= Q! R4$6K U=UL$# AK?$LL?K Y9$L
= $ R8$= Y ?R4$K R4K$#LD 4UL! *?K ;?K$ R4= *?UK R4K$#L! R4$ A$K*?K;=$ ?*
$4 R4K$# 6L ?*R$= 4624$K R4= R4$ ;6=6;U; L4?W= ?V$D
.3- 15C@ 1 C@5C@
=Y AK?R??9L K$FU6K$ #R R? $ L;A9$# =# #K6V$= ?= LA$6. $#2$L ?* 9?8D
?KRL = $ ?=.2UK$# R? UL$ $6R4$K = 6=R$K=99Y 2$=$KR$# 9?8 ?K = $XR$K=99Y
L?UK$# 9?8! =# R4$ AK?$LL?K = K$?K# =# ?=RK?9 ?= W464 $#2$L $4 6=AUR
=# ?URAUR ?A$KR6?= ?UKLD = ! R4$L$ ?A$KR6?=L = $ #6K$R9Y $XAK$LL$# 6=
R4$ 6=AUR =# ?URAUR LRR$;$=RL UL6=2 R4$ 4#'24', =# 4#' ?A$KR?KLD
4$ AK?2K; ?=.2UK$L R4$ A?KRL 7KG =# 7KG27!1 L 699ULRKR$# $9?WD
#! 3
Clock signal (1A) (1)
1 12.5 MHz
#!
Data signal (8A)
4$ #$9KR6?=
#$9K$L 9?8 =;$# !21! W464 K$*$KL R? R4$ &*% &*% 6#$=R6.$K 8L L8D
9?8L K$ #$9K$# L 29?9 VK69$L! W6R4 $4 #$9KR6?= 6=6R696L$# W6R4 U=6FU$
K$L?UK$ 6#$=R6.$KD
4$ LRR$;$=R
?=.2UK$L R4$ 9?8 !21 R? 4V$ KR$ ?* @TD/ ZD 4$ KR$ 6L LA$6.$# L *KR6?=
B@[[Q%C $UL$ ?=9Y LUAA?KRL 6=R$2$K K6R4;$R6 RYA$LD
4$ LRR$;$=R
?=.2UK$L R4$ ?URAUR A?KR 7KG R? $ 9?8$# Y R4$ 9?8 !21! W6R4 = 6=6R69 V9U$
?* [ #K6V$= ?= 6RL A6=LD
4$ LRR$;$=R
( @ = 0 7 3 V M , W B @ M S W ( : @ ( 9 W @ V S B V S C @VS:@(9 * (:9 D
UL$L R4$ 9?8 L62=9 !21 R? $ #K6V$= ?= R4$ A6= ?==$R$# R? R4$ A?KR 7KG27!1!
W464 K$$6V$K = UL$ R? L;A9$ R4$ #R #K6V$= Y R4$ A?KR 7KGD
&8B <+1' 1 F@;1. .3- &4
4$ LRR$;$=R
NSMSW(:@(9 C (:9 DO
Port counter 11 12 13 14 15 16
#! (1B)
Clock signal
#! (1A)
Data signal
0x0 0x0 0x1 0x2 0x3 0x4 0x4
= ?URAUR Y R4$ AK?$LL?K UL$L R4$ A?KR R? #K6V$ ?URAUR #R ?= R4$ =$XR *996=2
$#2$ ?* 6RL 9?8N R4$ #R 6L 4$9# Y R4$ A?KR U=R69 =?R4$K ?URAUR 6L A$K*?K;$#D
? 7=(:V+, ; ZNA F5 4
NSMSW(:@(9 C (:9 DO
0@M C 7=S 7 .]O 7 ;1O 7 GGD
7= ) 4 7=S Z O
%
&B .3- 15C@ 1 C@5C@
4$ AK?2K; ?=.2UK$L R4$ A?KRL /5 =# /527!1 L 699ULRKR$# $9?WD
1
Clock signal
(1A) (1)
Data signal (8A)
4$ LRR$;$=R
( @ = 0 7 3 V M , W ( : @ ( 9 W N M ( C (:9 * 7=:@(9 DO
?=.2UK$L R4$ @56R 6=AUR A?KR /527!1 R? AK?V6#$ $#2$L *?K R4$ 9?8 !21D = $#2$
?UKL $V$KY R6;$ R4$ V9U$ L;A9$# Y R4$ A?KR 4=2$LD
4$ LRR$;$=R
( @ = 0 7 3 V M , W 7 = W B @ M S C 7= * (:9 DO
?=.2UK$L R4$ 6=AUR A?KR /5 R? $ 9?8$# Y R4$ 9?8 !21D
4$ WV$*?K; #62K; $9?W L4?WL R4$ A?KR ?U=R$K! 9?8 L62=9! =# $X;A9$
6=AUR LR6;U96D
Port counter 11 12 13 14 15 16
(1A)
Clock signal
(8A)
Data signal
0x7 0x5 0x3 0x1 0x0
= 6=AUR Y R4$ AK?$LL?K UL$L R4$ A?KR R? L;A9$ #R ?= R4$ =$XR K6L6=2 $#2$ ?*
6RL 9?8D 4$ V9U$L 6=AUR K$ [XO! [X/! [XS! [X@ =# [X[D
Port counter 12 13 14 15 16 17 18 19 20 21
Clock
!
Data signal
4$ A?KR ?U=R$K 6L 6=K$;$=R$# ?= R4$ *996=2 $#2$ ?* R4$ 9?8D = 6=R$K;$#6R$
$#2$L *?K W464 =? V9U$ 6L AK?V6#$#! R4$ A?KR ?=R6=U$L R? #K6V$ 6RL A6=L W6R4 R4$
#R AK$V6?UL9Y ?URAURD
DCLK
DTMG
WVBP WHBP WHFP WHBP WHFP WHBP WHFP WVFP
DATA
240 pixels
column 0 column 1 column 319
320 pixels
Clock cycles
WVBP 2310
240 pixels
WVFP 1925
WHBP 30
WHFP 25
Table 1
4$ LK$$= 4L K$L?9UR6?= ?* ST[XT1[ A6X$9LD R K$FU6K$L A6X$9 #R R? $ AK?V6#$#
6= ?9U;= ?K#$K W6R4 $4 V9U$ #K6V$= ?= LA$6. $#2$ ?* 9?8D 4$ L62=9L K$
L *?99?WL
4$ LA$6.R6?= K$FU6K$L R4R A6X$9 V9U$L *?K $4 ?9U;= K$ #K6V$= ?= ?=L$UR6V$
Y9$L W6R4 // Y9$ #$9Y $RW$$= $4 ?9U;= =# 1TS/ Y9$ #$9Y $RW$$=
$4 *K;$ BL$$ 9$ @CD
LK$$=L K$ ULU99Y #K6V$= Y #$#6R$# 4K#WK$ ?;A?=$=RL #U$ R? R4$6K
9?86=2 K$FU6K$;$=RLD ;A9$;$=R6=2 = LK$$= #K6V$K 6= 6L $LY #U$ R?
R4$ 9?8 LY=4K?=6LR6?= LUAA?KR$# Y R4$ K46R$RUK$D 4$ K$FU6K$# A?KR
?=.2UKR6?= 6L 699ULRKR$# ?= R4$ =$XR A2$D
&8& < @CG ;1 ;+D; &%
Clock
DCLK 1A (1)
Strobe
DTMG 1B
Data
32A
DATA
32 32
4$ A?KRL =# K$ ?R4 9?8$# Y = 6=R$K=99Y 2$=$KR$# 9?8! W464 6L
;#$ V6L69$ ?= R4$ A?KR D 4$ AK?2K; $9?W #$.=$L *U=R6?= R4R ?=.2UK$L
R4$ A?KRL 6= R46L WYD
? 7=(:V+, ; ZNA F5 4
4$ 9?8 KR$ LA$6.$# 6L /D> 4ZD 4$ R6;$ K$FU6K$# R? RK=L;6R *K;$ 6L ST[
/$>
T1[ T1[ // 1TS/ >1TS/ 9?8 R68L! 26V6=2 *K;$ KR$ ?* >1TS/ ( PTZD 4$
*U=R6?= ?= R4$ *?99?W6=2 A2$ ?URAURL L$FU$=$ ?* A6X$9 V9U$L R? R4$ LK$$=
?= R4$ 9?8 $#2$L K$FU6K$# Y R4$ LA$6.R6?=D
&> .3- 15C@ 1 C@5C@
C@5C@ @@01@<
= *54,54 UL$L #R R? $ #K6V$= ?= R4$ =$XR *996=2 $#2$ ?* R4$ 9?8D 4$
?URAUR 9?8L U=R69 R4$ LUL$FU$=R K6L6=2 $#2$D
4#' *54,54 UL$L #R R? $ #K6V$= Y R4$ A?KR W4$= 6RL ?U=R$K $FU9L
R4$ LA$6.$# R6;$D 4$ ?URAUR 9?8L U=R69 R4$ =$XR K6L6=2 $#2$ *R$K R46L R6;$D
4$ #R #K6V$= ?= ?=$ $#2$ ?=R6=U$L R? $ #K6V$= ?= LUL$FU$=R $#2$L *?K
W464 =? =$W ?URAUR #R 6L AK?V6#$#D
15C@ @@01@<
= #(,54 UL$L #R R? $ L;A9$# Y R4$ A?KR ?= R4$ =$XR K6L6=2 $#2$ ?* 6RL
9?8D 4$ 6=AUR 9?8L U=R69 R46L R6;$D
&8% C00;G 3" .3-+1' )D+3C; &=
4#' #(,54 UL$L #R R? $ L;A9$# Y R4$ A?KR W4$= 6RL ?U=R$K $FU9L
R4$ LA$6.$# R6;$D 4$ 6=AUR 9?8L U=R69 R46L R6;$D
*(#4#*(& #(,54 UL$L #R R? $ L;A9$# Y R4$ A?KR ?= $4 K6L6=2 $#2$
U=R69 R4$ L;A9$# #R LR6L.$L R4$ ?=#6R6?=D 4$ 6=AUR 9?8L U=R69 R46L R6;$!
R86=2 R4$ ;?LR K$$=R #R L;A9$#D
.@ @@01@<
L$9$R LRR$;$=R W6RL *?K =Y ?=$ ?* R4$ A?KRL 6= 6RL L$L R? $?;$ K$#Y =#
?;A9$R$L R4$ ?KK$LA?=#6=2 6=AUR ?A$KR6?=! W4$K$
?K = #(,54! R4$ A?KR 6L K$#Y R ;?LR ?=$ A$K A$K6?# ?* 6RL 9?8D
?K 4#' #(,54! R4$ A?KR 6L K$#Y ?=9Y W4$= 6RL ?U=R$K $FU9L R4$ LA$6.$#
R6;$D
?K *(#4#*(& #(,54! R4$ A?KR 6L K$#Y ?=9Y W4$= R4$ #R L;A9$# LR6L.$L
R4$ ?=#6R6?=D
?K 4#' *(#4#*(& #(,54! R4$ A?KR 6L K$#Y ?=9Y W4$= 6RL ?U=R$K 6L $FU9 ?K
2K$R$K R4= R4$ LA$6.$# R6;$ =# R4$ V9U$ L;A9$# LR6L.$L R4$ ?=#6R6?=D
?K R6;$LR;A$# ?A$KR6?= R4R K$?K#L R4$ V9U$ (! R4$ =$XR A?LL69$ R6;$ R4R R4$
R4K$# = 6=AUR ?K ?URAUR 6L ( @D
= @ #$V6$L! 99 A?KRL K$ U+$K$# BL$$ MD@CD 4$ K$LU9R6=2 L$;=R6L! W464
$XR$=# R4?L$ 26V$= ?V$! K$ #6LULL$# 6= R4$ =$XR 4AR$KD
3;@ C#;+1'
4$ K46R$RUK$ AK?V6#$L U+$KL R4R = 6;AK?V$ R4$ A$K*?K;=$ ?* AK?5
2K;L R4R A$K*?K; Q ?= 9?8$# A?KRLD U+$K = 4?9# #R ?URAUR Y R4$
AK?$LL?K U=R69 R4$ =$XR *996=2 $#2$ ?* R4$ A?KRJL 9?8! 99?W6=2 R4$ AK?$LL?K R?
$X$UR$ ?R4$K 6=LRKUR6?=L #UK6=2 R46L R6;$D R = 9L? LR?K$ #R L;A9$# Y A?KR
U=R69 R4$ AK?$LL?K 6L K$#Y R? 6=AUR 6RD L6=2 U+$KL! L6=29$ R4K$# = A$K*?K;
Q ?= ;U9R6A9$ A?KRL 6= AK99$9D
4$ AK?2K; ?=.2UK$L R4$ A?KRL /5! 7KG =# /527!1 L 699ULRKR$# $9?WD
1
Clock signal
(1A) (1)
2
(8A)
Data signal Buffer
3
#!
(8B)
Data signal Buffer
4$ #$9KR6?=
#$9K$L U+$K$# 6=AUR A?KR =;$# /5! W464 K$*$KL R? R4$ %56R A?KR 6#$=R6.$K %D
4$ LRR$;$=R
( @ = 0 7 3 V M , W ( : @ ( 9 W N M ( C (:9 * 7=:@(9 DO
?=.2UK$L R4$ @56R 6=AUR A?KR /527!1 R? AK?V6#$ $#2$L *?K R4$ 9?8 !21D
4$ LRR$;$=R
( @ = 0 7 3 V M , W 7 = W B @ M S C 7= * (:9 DO
?=.2UK$L R4$ ?URAUR A?KR 7KG R? $ 9?8$# Y R4$ 9?8 !21! W6R4 = 6=6R69 V9U$
?* [ #K6V$= ?= 6RL A6=LD
%84 <+1' C#; 3;@ %4
4$ WV$*?K; #62K; $9?W L4?WL $X;A9$ 6=AUR LR6;U96 =# $XA$R$# ?URAUR
*?K R46L AK?2K;D R 9L? L4?WL R4$ K$9R6V$ WV$*?K; ?* R4$ LRR$;$=RL $X$UR$# 6=
R4$ N-/2% 9??A Y R4$ AK?$LL?KD
(1A)
Clock signal
(8A)
Data signal
0x1 0x2 0x4 0x7
4$ .KLR R4K$$ V9U$L 6=AUR K$ [X@! [XT =# [X1! =# 6= K$LA?=L$ R4$ V9U$L ?URAUR
K$ [XT! [XS =# [X/D
4$ #62K; $9?W 699ULRKR$L R4$ U+$K6=2 ?A$KR6?= 6= R4$ 4K#WK$D
Timing and
output 0x2 0x3 0x5
FIFO Comparator
latch
Logic
data output
to port data driven on pins
4$ #62K; L4?WL R4$ AK?$LL?K $X$UR6=2 R4$ N-/2% 9??A R4R ?URAURL #R R?
R4$ A?KRD 4$ A?KR U+$KL R46L #R L? R4R R4$ AK?$LL?K = ?=R6=U$ $X$UR6=2
LUL$FU$=R 6=LRKUR6?=L W469$ R4$ A?KR #K6V$L R4$ #R AK$V6?UL9Y ?URAUR *?K
?;A9$R$ A$K6?#D = $4 *996=2 $#2$ ?* R4$ 9?8! R4$ A?KR R8$L R4$ =$XR YR$ ?*
#R *K?; 6RL U+$K =# #K6V$L 6R ?= 6RL A6=LD L 9?=2 L R4$ 6=LRKUR6?=L 6= R4$ 9??A
$X$UR$ 6= 9$LL R6;$ R4= R4$ A?KRJL 9?8 A$K6?#! =$W V9U$ 6L #K6V$= ?= R4$ A6=L
?= $V$KY 9?8 A$K6?#D
4$ *R R4R R4$ .KLR 6=AUR LRR$;$=R 6L $X$UR$# $*?K$ K6L6=2 $#2$ ;$=L R4R
R4$ 6=AUR U+$K 6L =?R UL$#D 4$ AK?$LL?K 6L 9WYL K$#Y R? 6=AUR R4$ =$XR #R
$*?K$ 6R 6L L;A9$#! W464 UL$L R4$ AK?$LL?K R? 9?8! $+$R6V$9Y L9?W6=2 6RL$9*
#?W= R? R4$ KR$ ?* R4$ A?KRD * R4$ .KLR 6=AUR ?UKL *R$K R4$ .KLR V9U$ 6L L;A9$#!
4?W$V$K! R4$ 6=AUR U+$K 4?9#L R4$ #R U=R69 R4$ AK?$LL?K 6L K$#Y R? $AR 6R =#
$4 ?URAUR 9?8L U=R69 R4$ AK$V6?UL9Y ?URAUR V9U$ 6L #K6V$=D
%B 3;@ C#;+1'
6;$# ?A$KR6?=L K$AK$L$=R R6;$ 6= R4$ *URUK$D 4$ WV$*?K; =# ?;AK6R?K
9?26 99?WL R6;$# ?URAURL R? $ U+$K$#! UR *?K R6;$# =# ?=#6R6?=9 6=AURL R4$
U+$K 6L $;AR6$# $*?K$ R4$ 6=AUR 6L A$K*?K;$#D
Y ?=.2UK6=2 ;?K$ R4= ?=$ U+$K$# A?KR R? $ 9?8$# *K?; R4$ L;$ L?UK$!
L6=29$ R4K$# = UL$ #R R? $ L;A9$# =# #K6V$= 6= AK99$9 ?= R4$L$ A?KRLD 4$
AK?2K; $9?W .KLR LY=4K?=6L$L 6RL$9* R? R4$ LRKR ?* 9?8 A$K6?#! $=LUK6=2 R4$
;X6;U; ;?U=R ?* R6;$ $*?K$ R4$ =$XR *996=2 $#2$! =# R4$= ?URAURL L$FU$=$
?* %56R 4KR$K V9U$L R? RW? 156R A?KRL R4R K$ #K6V$= 6= AK99$9D
? 7=(:V+, ; ZNA F5 4
( @ = 0 7 3 V M , W ( : @ ( 9 W N M ( C (:9 * 7=:@(9 DO
( @ = 0 7 3 V M , W @ V S W B @ M S CB * (:9 * ]DO
( @ = 0 7 3 V M , W @ V S W B @ M S CH * (:9 * ]DO
NSMSW(:@(9 C (:9 DO
B ;) ]O RR NSMS = @VSBVS
N[=( C B DO RR N[=(5M@=7N, S@ 0::7=3 ,+3,
4$ LRR$;$=R
N[=( C B DO
UL$L R4$ AK?$LL?K R? W6R U=R69 R4$ =$XR *996=2 $#2$ ?= W464 R4$ 9LR #R 6=
R4$ U+$K 4L $$= #K6V$= *?K *U99 A$K6?#! $=LUK6=2 R4R R4$ =$XR 6=LRKUR6?= 6L
$X$UR$# 7ULR *R$K *996=2 $#2$D 46L $=LUK$L R4R R4$ LUL$FU$=R RW? ?URAUR
LRR$;$=RL 6= R4$ 9??A K$ ?R4 $X$UR$# 6= R4$ L;$ 9?8 A$K6?#D
4$ #62K; ?= R4$ =$XR A2$ L4?WL R4$ #R ?URAUR Y R4$ AK?$LL?K =# #K6V$=
Y R4$ RW? A?KRLD
%8A C00;G 3" C#; )D+3C; %A
(1A)
Clock signal
Software sync
Effective 8-bit signal 0x0 ‘A’ ‘B’
4$ K$?;;$=#$# WY R? LY=4K?=6L$ R? K6L6=2 $#2$ 6L R? 9$K R4$ U+$K UL6=2
R4$ LR=#K# 96KKY *U=R6?= !2%CK) =# R4$= A$K*?K; = 6=AURD
C@5C@ @@01@<
= ?URAUR 6=L$KRL #R 6=R? R4$ A?KRJL D 4$ AK?$LL?K W6RL ?=9Y 6* R4$
6L *U99D
R ;?LR ?=$ #R V9U$ 6L K$;?V$# *K?; R4$ =# #K6V$= Y R4$ A?KR A$K
A$K6?# ?* 6RL 9?8D
R6;$# ?URAUR 6=L$KRL #R 6=R? R4$ A?KRJL *?K #K6V6=2 W4$= R4$ A?KR
?U=R$K $FU9L R4$ LA$6.$# R6;$D 4$ AK?$LL?K W6RL ?=9Y 6* R4$ 6L *U99D
R6;$LR;A$# ?URAUR UL$L R4$ AK?$LL?K R? W6R U=R69 R4$ ?URAUR 6L #K6V$=
BK$FU6K$# R? #$R$K;6=$ R4$ R6;$LR;A V9U$CD
4$ #R #K6V$= ?= ?=$ $#2$ ?=R6=U$L R? $ #K6V$= ?= LUL$FU$=R $#2$LD
15C@ @@01@<
R ;?LR ?=$ V9U$ 6L L;A9$# Y R4$ A?KR =# 6=L$KR$# 6=R? 6RL A$K A$K6?#
?* 6RL 9?8D * R4$ 6L *U99! 6RL ?9#$LR V9U$ 6L #K?AA$# R? ;8$ K??; *?K R4$
;?LR K$$=R9Y L;A9$# V9U$D
= 6=AUR K$;?V$L #R *K?; A?KRJL D 4$ AK?$LL?K W6RL ?=9Y 6* R4$
6L $;ARYD
6;$# =# ?=#6R6?=9 6=AURL UL$ =Y #R 6= R4$ R? $ #6LK#$# =#
R4$= $4V$ L 6= R4$ U=U+$K$# L$D
"
;+.+<@+31 1 @;3+1'
Y57:, CAD $
@VS ;) Z O
Z . 0 C Z DO
%
%
%> ;+.+<@+31 1 @;3+1'
4$ #$9KR6?=
@VS !V00,M,+ B@MS )TU @VS . AWW- O
#$9K$L R4$ A?KR 7KG R? #K6V$ % A6=L *K?; ST56R 2!#4 1 #241D 4$ RYA$ 97CG"HJ
LA$6.$L R4$ =U;$K ?* 6RL R4R K$ RK=L*$KK$# 6= $4 ?URAUR ?A$KR6?= BR4$
41(21 7#4!CD 4$ 6=6R696LR6?= 8LL& LA$6.$L R4$ =U;$K ?* A4YL69 A6=L
?==$R$# R? R4$ A?KR BR4$ ,*14 7#4!CD 4$ WV$*?K; #62K; $9?W L4?WL R4$ #R
#K6V$= Y R46L AK?2K;D
Port counter 30 31 32 33 34 35 36
(1A)
Clock signal
Y ?-?#6=2 R4$ L$K696LR6?= R? R4$ A?KR! R4$ AK?$LL?K 4L ?=9Y R? ?URAUR ?=$
$V$KY 1 9?8 A$K6?#LD = $4 *996=2 $#2$ ?* R4$ 9?8! R4$ 9$LR L62=6.=R % 6RL ?*
R4$ L46*R K$26LR$K K$ #K6V$= ?= R4$ A6=LN R4$ L46*R K$26LR$K 6L R4$= K624R5L46*R$# Y %
6RLD
= @ #$V6$L! A?KRL UL$# *?K L$K696LR6?= ;ULR $ FU96.$# W6R4 R4$ 8$YW?K#
K))%C%$N L$$ MD@ *?K *UKR4$K $XA9=R6?=D
4$ AK?2K; #$9K$L /5 R? $ 156R W6#$ A?KR W6R4 = %56R RK=L*$K W6#R4!
;$=6=2 R4R RW? 156R V9U$L = $ L;A9$# Y R4$ A?KR $*?K$ R4$Y ;ULR $ 6=AUR
Y R4$ AK?$LL?KD L W6R4 ?URAUR! R4$ #$L$K696L$K K$#U$L R4$ =U;$K ?* 6=LRKUR6?=L
K$FU6K$# R? ?R6= R4$ #RD 4$ WV$*?K; #62K; $9?W L4?WL $X;A9$ 6=AUR
LR6;U96 =# R4$ A$K6?# #UK6=2 W464 R4$ #R 6L V699$ 6= R4$ A?KRJL U+$K *?K
6=AURD
Port counter 30 31 32 33 34 35 36
#! (1A)
Clock signal
(4A)
Data signal
0x8 0x2 0xA 0x7 ... ...
R 6L L;A9$# ?= R4$ K6L6=2 $#2$L ?* R4$ 9?8 =#! W4$= L46*R6=2! R4$ 9$LR
L62=6.=R =69$ 6L K$# .KLRD 4$ L;A9$# #R 6L V699$ 6= R4$ A?KRJL U+$K *?K
6=AUR *?K RW? 9?8 A$K6?#LD 4$ .KLR RW? V9U$L 6=AUR K$ [XT% =# [XOD
9?8$# A?KR = 6=R$KAK$R 19"#( LRK?$ L62=9 R4R #$R$K;6=$L R4$ V96#6RY ?*
R4$ ?;A=Y6=2 #RD 4$ AK?2K; $9?W 6=AURL #R *K?; 9?8$# A?KR ?=9Y
W4$= K$#Y56= L62=9 6L 4624D
? 7=(:V+, ; ZNA F5 4
7= ) 4 X@7+ O
%
% ;+.+<@+31 1 @;3+1'
4$ LRR$;$=R
( @ = 0 7 3 V M , W 7 = W B @ M S W N S M @ ! , + W N : X , C 7= * 7=,+[ * (:9 DO
?=.2UK$L R4$ 6=AUR A?KR /5 R? $ L;A9$# ?=9Y W4$= R4$ V9U$ L;A9$# ?= R4$
A?KR /5%$P $FU9L @D 4$ K$#Y56= A?KR ;ULR $ @56R W6#$D 4$ WV$*?K; #62K;
$9?W L4?WL $X;A9$ 6=AUR LR6;U96 =# R4$ #R 6=AUR Y R46L AK?2K;D
(1B)
Clock signal
(1A)
Ready-in signal
R 6L L;A9$# ?= R4$ K6L6=2 $#2$ ?* R4$ 9?8 W4$=$V$K R4$ K$#Y56= L62=9 6L 4624D
4$ A?KR L;A9$L RW? 156R V9U$L =# ?;6=$L R4$; R? AK?#U$ L6=29$ %56R V9U$
*?K 6=AUR Y R4$ AK?$LL?KN R4$ #R 6=AUR 6L [XT%D @ #$V6$L 4V$ L6=29$5$=RKY
U+$K! W464 ;$=L R4R #R 6L V699$ *?K 6=AUR U=R69 R4$ K$#Y56= L62=9 6L 4624
*?K R4$ =$XR RW? K6L6=2 $#2$L ?* R4$ 9?8D ?R$ R4R R4$ A?KR ?U=R$K 6L 6=K$;$=R$#
?= $V$KY 9?8 A$K6?#! K$2K#9$LL ?* W4$R4$K R4$ LRK?$ L62=9 6L 4624D
@VS ;) ] Z-1 O
%
>8% < @CG @);1@ %2
4$ LRR$;$=R
( @ = 0 7 3 V M , W @ V S W B @ M S W N S M @ ! , + W < N S , M C @VS * @VS * (:9 * ]DO
?=.2UK$L R4$ ?URAUR A?KR 7KG R? #K6V$ R4$ A?KR 7KG 4624 W4$=$V$K #R 6L ?URAURD
4$ K$#Y5?UR A?KR ;ULR $ @56R W6#$D 4$ WV$*?K; #62K; $9?W L4?WL R4$ #R
=# LRK?$ L62=9L #K6V$= Y R46L AK?2K;D
Port counter 12 13 14
(1B)
Clock signal
#! (4A)
Data signal
0x5 0x8
#! (1A)
Ready-out signal
4$ A?KR #K6V$L RW? 156R V9U$L ?V$K RW? 9?8 A$K6?#L! K6L6=2 R4$ K$#Y5?UR L62=9
#UK6=2 R46L R6;$D
R 6L 9L? A?LL69$ R? 6;A9$;$=R ?=RK?9 0?W 92?K6R4;L R4R ?URAUR #R UL6=2
K$#Y56= LRK?$ L62=9 =# R4R 6=AUR #R UL6=2 K$#Y5?UR LRK?$ L62=9N W4$= ?R4
L62=9L K$ ?=.2UK$#! R4$ A?KR 6;A9$;$=RL LY;;$RK6 LRK?$ AK?R??9 R4R UL$L
9?8 R? 4=#L48$ R4$ ?;;U=6R6?= ?* R4$ #R BL$$ MDTDT =# MDTCD
= @ #$V6$L! A?KRL UL$# *?K LRK?6=2 ;ULR $ FU96.$# W6R4 R4$ 8$YW?K#
K))%C%$N L$$ MD@ *?K *UKR4$K $XA9=R6?=D
RXCLK
RXDV
RXD
4
MII RXER
Ports
PHY
(Hardware) TXCLK
TXEN
TXD
TXER 4
>I ;+.+<@+31 1 @;3+1'
>8%84 ;1<0+@
4$ WV$*?K; #62K; $9?W L4?WL R4$ RK=L;6LL6?= ?* L6=29$ *K;$ ?* #R R?
R4$ D 4$ $KK?K L62=9 6L ?;6RR$# *?K L6;A966R9YD
TXCLK
TXEN
4$ #62K; $9?W 699ULRKR$L R4$ A?KR ?=.2UKR6?= K$FU6K$# R? L$K696L$ R4$ ?URAUR
#R =# AK?#U$ #R V96# L62=9D
Clock
TXCLK 1J
(1)
Strobe
TXEN 1K
Data
4B
TXD Serialiser <:
4 32
PINS PORTS CLOCK BLOCK PROCESSOR
>8% < @CG @);1@ >4
4$ A?KR A$K*?K;L ST5R?51 6R L$K696LR6?= ?* #R ?=R? 6RL A6=LD R 6L LY=4K?5
=6L$# R? R4$ @56R A?KR =# UL$L R4$ @56R A?KR L K$#Y5?UR LRK?$ L62=9
R4R 6L #K6V$= 4624 W4$=$V$K #R 6L #K6V$=D = R46L ?=.2UKR6?=! R4$ AK?$LL?K 4L
?=9Y R? ?URAUR #R ?=$ $V$KY $624R 9?8 A$K6?#L =# #?$L =?R =$$# R? $XA966R9Y
?URAUR R4$ #R V96# L62=9D 4$ AK?2K; $9?W #$.=$L =# ?=.2UK$L R4$ A?KRL 6=
R46L WYD
? 7=(:V+, ; ZNA F5 4
@VS !V00,M,+ B@MS )TU . AWW2 O
@VS B@MS . AWWA O
7= B@MS . AWWA O
(:@(9 (:9 . AW WA O
( @ = 0 7 3 V M , W ( : @ ( 9 W N M ( C (:9 * DO
( @ = 0 7 3 V M , W @ V S W B @ M S C * (:9 DO
( @ = 0 7 3 V M , W @ V S W B @ M S C * (:9 DO
( @ = 0 7 3 V M , W @ V S W B @ M S W N S M @ ! , + W < N S , M C * * (:9 * ]DO
NSMSW(:@(9 C (:9 DO
%
4$ *U=R6?= $9?W 6=AURL *K;$ #R *K?; =?R4$K R4K$# =# ?URAURL 6R R? R4$
A?KRLD ?K L6;A966RY! R4$ $KK?K L62=9L =# K$ 62=?K$#D
X@7+ <77M=N<7SM<, C @VS !V00,M,+ B@MS )TU *
NSM,<7=3 (5=,=+ ( D $
7=S =V<[S,N * S7:[S,N * S7:7SN * +S O
4$ AK?2K; .KLR 6=AURL *K?; R4$ 4==$9 ! R4$ L6Z$ ?* R4$ *K;$ 6= YR$LD R R4$=
?URAURL ST56R AK$;9$ R? ! W464 6L #K6V$= ?= R4$ A6=L L =69$L ?V$K $624R
9?8 A$K6?#LD = $4 6R$KR6?= ?* R4$ )7C 9??A! R4$ =$XR ST 6RL ?* #R K$ R4$=
?URAUR R? *?K L$K696L6=2 ?=R? R4$ A6=LD 46L 26V$L R4$ AK?$LL?K $=?U24 R6;$ R?
2$R K?U=# R4$ 9??A $*?K$ R4$ =$XR 9?8 ?* #R ;ULR $ #K6V$=D 4$ .=9 LRR$;$=R
A$K*?K;L ,14#& *54,54 ?* R4$ K$;6=6=2 6RL ?* $G R4R K$AK$L$=R V96# *K;$
#RD
>8%8B +D
4$ WV$*?K; #62K; $9?W L4?WL R4$ K$$AR6?= ?* L6=29$ *K;$ *K?; R4$ D
4$ $KK?K L62=9 6L ?;6RR$# *?K L6;A966R9YD
RXCLK
RXDV
SFD SFD
RXD preamble (5 ... 5)
(5) (D) DATA DATA CRC CRC CRC CRC
6L #R V96# L62=9 #K6V$= 4624 Y R4$ #UK6=2 *K;$ RK=L;6LL6?=D
KK6$L =69$ ?* #R A$K 9?8 A$K6?# *K?; R4$ R? R4$ K$$6V$KD
4$ K$$6V$K W6RL *?K AK$;9$ ?* =69$L ?* V9U$L [X/! *?99?W$# Y RW?
=69$L W6R4 V9U$L [X/ =# [XD 4$ RU9 #R 6L R4$= K$$6V$#! W464 6L 6=
R4$ K=2$ ?* P1 R? @/[[ YR$L! 9$LR L62=6.=R =69$ .KLR! *?99?W$# Y *?UK
YR$L ?=R6=6=2 D
4$ #62K; ?= R4$ =$XR A2$ 699ULRKR$L R4$ A?KR ?=.2UKR6?= K$FU6K$# R? #$L$K696L$
R4$ 6=AUR #R W4$= #R V96# L62=9 6L AK$L$=RD
>8% < @CG @);1@ >A
Clock
RXCLK 1H (1)
Valid
RXDV 1I
Data
4A
RXD Deserialiser
4 32
4$ A?KR A$K*?K;L 15R?5ST56R #$L$K696LR6?= ?* #R *K?; 6RL A6=LD R 6L
LY=4K?=6L$# R? R4$ @56R A?KR =# UL$L R4$ @56R A?KR L K$#Y56=
LRK?$ L62=9 R4R UL$L #R R? $ L;A9$# ?=9Y W4$= R4$ LRK?$ 6L 4624D = R46L
?=.2UKR6?=! R4$ A?KR = L;A9$ $624R V9U$L $*?K$ R4$ #R ;ULR $ 6=AUR Y
R4$ AK?$LL?K! =# R4$ AK?$LL?K #?$L =?R =$$# R? $XA966R9Y W6R *?K R4$ #R V96#
L62=9D 4$ AK?2K; $9?W #$.=$L =# ?=.2UK$L R4$ A?KRL 6= R46L WYD
? 7=(:V+, ; ZNA F5 4
( @ = 0 7 3 V M , W ( : @ ( 9 W N M ( C (:9 * DO
( @ = 0 7 3 V M , W 7 = W B @ M S C * (:9 DO
( @= 07 3V M, W7 =W B@ MS C * (:9 DO
( @ = 0 7 3 V M , W 7 = W B @ M S W N S M @ ! , + W N : X , C * * (:9 DO
NSMSW(:@(9 C (:9 DO
%
4$ *U=R6?= ?= R4$ *?99?W6=2 A2$ K$$6V$L L6=29$ $KK?K5*K$$ *K;$ =# ?URAURL 6R
R? =?R4$K R4K$#D ?K L6;A966RY! R4$ $KK?K L62=9 =# K$ 62=?K$#D
>& ;+.+<@+31 1 @;3+1'
? +,07=, ]
? +,07=, A
X@7+ <77 ,(,7X ,M< , C 7= !V00,M,+ B@MS )TU * 7= B@MS *
NSM,<7=3 (5=,=+ ( D $
7=S =@S@=, . AO
7=S +S * S7: O
4$ AK?$LL?K W6RL *?K R4$ 9LR =69$ ?* R4$ AK$;9$ B[XC R? $ L;A9$# Y R4$
A?KR D 4$= ?= $4 6R$KR6?= ?* R4$ 9??A! 6R W6RL *?K $6R4$K =$XR $624R =69$L ?*
#R R? $ L;A9$# *?K 6=AUR Y ?K *?K R4$ #R V96# L62=9 R? 2? 9?WD
= $+$R ?* UL6=2 A?KRJL L$K696LR6?= =# LRK?6=2 A696R6$L R?2$R4$K 6L R4R
R4$ K$#Y56= L62=9 ;Y 2? 9?W $*?K$ *U99 RK=L*$K W6#R4JL W?KR4 ?* #R 6L K$$6V$#D
4$ LRR$;$=R
UL$L R4$ A?KR R? K$LA?=# W6R4 R4$ K$;6=6=2 =U;$K ?* 6RL =?R Y$R 6=AURD R
9L? UL$L R4$ A?KR R? AK?V6#$ R46L #R ?= R4$ LUL$FU$=R 6=AURL! $V$= R4?U24 R4$
#R V96# L62=9 6L 9?W =# R4$ L46*R K$26LR$K 6L =?R Y$R *U99D
>8> C00;G >%
@ #$V6$L AK?V6#$ L6=29$5$=RKY U+$K UA R? ST56RL W6#$ =# ST56R L46*R
K$26LR$K! K$FU6K6=2 UA R? P1 6RL ?* #R $6=2 6=AUR ?V$K RW? 6=AUR LRR$;$=RL ?=$
R4$ #R V96# L62=9 2?$L 9?WD
>8> C00;G
4$ L$;=R6L *?K Q ?= L$K696L$# A?KR K$ L *?99?WL BW4$K$ , K$*$KL R? R4$ A?KR
W6#R4 =# 7 K$*$KL R? R4$ RK=L*$K W6#R4 ?* A?KRC
)
= ?URAUR ?* 756R V9U$ 6L #K6V$= ?V$K ! ?=L$UR6V$ 9?8 A$K6?#L! 9$LR
L62=6.=R 6RL .KLRD 4$ K$#Y5?UR L62=9 6L #K6V$= 4624 ?= $4 ?* R4$L$
A$K6?#LD
?K R6;$# ?URAUR! R4$ A?KR W6RL U=R69 6RL ?U=R$K $FU9L R4$ LA$6.$# R6;$
$*?K$ 2414#( R? L$K696L$ R4$ #RD 4$ K$#Y5?UR L62=9 6L =?R #K6V$= W469$
W6R6=2 R? L$K696L$D
= 6=AUR ?* 756R V9U$ 6L L;A9$# ?V$K ) ! 9?8 A$K6?#L! W6R4 $K96$K 6RL
K$$6V$# $=#6=2 UA 6= R4$ 9$LR L62=6.=R 6RL ?* 7D B * K$#Y56= L62=9 6L UL$#!
R4$ 9?8 A$K6?#L ;Y =?R $ ?=L$UR6V$DC
?K R6;$# 6=AUR! R4$ A?KR AK?V6#$L R4$ &24 , 6RL ?* #R L;A9$# W4$= 6RL
?U=R$K $FU9L R4$ LA$6.$# R6;$D
R 6L L;A9$# ?=9Y ?= K6L6=2 $#2$L ?* R4$ A?KRJL 9?8 W4$= R4$ K$#Y56=
L62=9 6L 4624D
4$ K$#Y5?UR L62=9 6L #K6V$= 4624 9?=2 W6R4 R4$ #R =# 6L 4$9# *?K L6=29$
A$K6?# ?* R4$ 9?8D
*U99 #$LK6AR6?= ?* R4$ L$;=R6L *?K LRK?6=2 =# L$K696LR6?= 6L 26V$= 6= A5
A$=#6X D
1'C' 5+$@+31
4$ LA$6.R6?= 26V$= 6= R46L AA$=#6X #$LK6$L V$KL6?= >D> ?* N R4$ $4V6?UK ?* Q
?A$KR6?=L ?= A?KRL 6L 26V$= L$AKR$9Y 6= AA$=#6X D
4$ 9Y?UR ?* R46L ;=U9 =# A?KR6?=L ?* 6RL R$XR K$ L$# UA?= R4$ #$.=6R6?= ?*
PD ?;;$=RKY ;R$K69 46249624R6=2 #6+$K$=$L $RW$$= =# 6L 6=#$=R$# =#
WK6RR$= 6= L;99$K RYA$D
8484 3-1<
4$K$ K$ L6X 9LL$L ?* R?8$=L 6#$=R6.$KL! 8$YW?K#L! ?=LR=RL! LRK6=2 96R$K9L! ?A$KR?KL!
=# ?R4$K L$AKR?KLD 9=8 LA$L! 4?K6Z?=R9 RL! =$W96=$L! *?K;*$$#L! =# ?;;$=RL L
#$LK6$# $9?W! ?99$R6V$9Y K$*$KK$# R? L 7!#4 2,! K$ 62=?K$# $X$AR L R4$Y L$AKR$
R?8$=LD ?;$ W46R$ LA$ 6L K$FU6K$# R? L$AKR$ ?R4$KW6L$ #7$=R 6#$=R6.$KL! 8$YW?K#L
=# ?=LR=RLD
848B 3001@<
W? LRY9$L ?* ?;;$=R6=2 K$ LUAA?KR$# R4$ 4KR$KL R 6=RK?#U$ ?;;$=R! W464
R$K;6=R$L W6R4 R4$ 4KR$KL R! =# R4$ 4KR$KL RR 6=RK?#U$ ?;;$=R! W464 R$K;65
=R$L W6R4 =$W96=$D ?;;$=RL ;Y =?R $ =$LR$#! =# R4$Y ;Y =?R ?UK W6R46= LRK6=2 ?K
4KR$K 96R$K9LD
> 1'C' 5+$@+31
848A 1@+$;<
= 6#$=R6.$K 6L L$FU$=$ ?* 9$RR$KL! #626RL =# U=#$KL?K$ BWC 4KR$KL ?* =Y 9$=2R4N R4$
.KLR 4KR$K ;ULR =?R $ #626RD AA$K =# 9?W$K L$ 9$RR$KL K$ #6+$K$=RD
848& GE3;<
4$ *?99?W6=2 6#$=R6.$KL K$ K$L$KV$# *?K UL$ L 8$YW?K#L =# ;Y =?R $ UL$# ?R4$KW6L$
VS@ ,:N, M,SVM= V=7@=
!M,9 ,=V< N5@MS V=N73=,+
(N, ,ZS,M= N73=,+ X@7+
(5M 0@M N7\,@0 X@:S7:,
(@=NS 70 NSS7( Y57:,
(@=S7=V, 7=S NSMV(S
+,0V:S :@=3 NY7S(5
+@ M,37NS,M S[B,+,0
4$ *?99?W6=2 6#$=R6.$KL K$ 9L? K$L$KV$# *?K UL$ L 8$YW?K#L =# ;Y =?R $ UL$# ?R4$KW6L$
!V00,M,+ 7=:7=, @VS N:X,
(5= 7N=V:: BM NSM,<7=3
(5=,=+ <NS,M B@MS S7<,M
(@M, =V:: N,:,(S SM=N(S7@=
7= @= N,MX7(, Y5,=
4$ ?=LRKUR6?= B@MS) W4$K$ ( 6L L$FU$=$ ?* #626RL 6L 9L? V96# 6#$=R6.$KD 4$
L$FU$=$ ?* #626RL 6L R8$= R? $ #$6;9 =# 6L 6=R$KAK$R$# L = 6=R$2$K ?=LR=RD 4$
*?99?W6=2 6#$=R6.$KL K$ K$L$KV$# *?K ?;AR6696RY 6LLU$L =# *?K *URUK$ UL$
((,BS (:7< 0:@S M,NSM7(S
N< +@V!:, <@+V:,
848% 31<@1@<
4$K$ K$ L$V$K9 86=#L ?* ?=LR=RLD 4 4L #R RYA$N MDSDT #6LULL$L R4$ L6 RYA$LD
*(24(4 )). #(4 1"*(24(4
# !141"*(24(4
# (5'14#*("*(24(4
# =V::
9?R6=25A?6=R ?=LR=RL K$ U=LUAA?KR$#D
4KR$K ?=LR=R 6L L$FU$=$ ?* ?=$ ?K ;?K$ 4KR$KL B$X9U#6=2 R4$ L6=29$5FU?R$ =#
=$W96=$ 4KR$KLC $=9?L$# 6= L6=29$ FU?R$LD 4$ V9U$ ?* 4KR$K ?=LR=R W6R4 L6=29$
4KR$K 6L R4$ =U;$K6 V9U$ ?* R4$ 4KR$K 6= R4$ ;46=$JL 4KR$K L$R R $X$UR6?=
R6;$D 4$ V9U$ ?* ;U9R654KR$K ?=LR=R 6L 6;A9$;$=RR6?=5#$.=$#D
6#$ 4KR$K ?=LR=RL K$ U=LUAA?KR$#D
4$ *?99?W6=2 $LA$ L$FU$=$L K$ LUAA?KR$#D
=$W96=$ "= 8L9L4 " ""
4?K6Z?=R9 R "S FU$LR6?= ;K8 I "I
V$KR69 R "X L6=29$ FU?R$ K "K
8LA$ "! #?U9$ FU?R$ J "J
KK62$ K$RUK= "M ?R9 =U;$K *** "
*?K;*$$# "0 4$X =U;$K !! "Z
U#69$ 9$KR "
4$ $LA$ L$FU$=$ " K$FU6K$L ?=$! RW? ?K R4K$$ ?R9 #626RLD 4$ L$FU$=$ "Z K$FU6K$L
?=$ ?K ;?K$ 4$X#$6;9 #626RLN 6RL $4V6?UK 6L U=#$.=$# 6* R4$ K$LU9R6=2 4KR$K V9U$
$X$$#L R4R ?* R4$ 9K2$LR 4KR$KD ?K $6R4$K ?R9 ?K 4$X#$6;9 $LA$ 4KR$KL! 6*
R4$ 6;A9$;$=RR6?= RK$RL R4$ (5M RYA$ L L62=$#! R4$ V9U$ 6L L62=5$XR$=#$# L 6* LR R?
(5M RYA$D * =Y ?R4$K 4KR$K *?99?WL R4$ " R4$= R4$ $4V6?UK 6L U=#$.=$#D
6;A9$;$=RR6?= ;Y ;8$ A96= 6=R$2$KL $FU6V9$=R R? $6R4$K L4?KR ?K 9?=2 6=R$2$KLD 4$ 7=S
RYA$L 99 K$AK$L$=R L62=$# V9U$L U=9$LL LA$6.$# ?R4$KW6L$D
=L62=$# 6=R$2$KL ?$Y R4$ 9WL ?* K6R4;$R6 ;?#U9? T W4$K$ 6L R4$ =U;$K ?* 6RL
6= R4$ K$AK$L$=RR6?=D 4$ L$R ?* =?=5=$2R6V$ V9U$L R4R = $ LR?K$# 6= L62=$# ?7$R
6L LUL$R ?* R4$ V9U$L R4R = $ LR?K$# 6= R4$ ?KK$LA?=#6=2 U=L62=$# ?7$R! =# R4$
K$AK$L$=RR6?= *?K R4$ ?V$K9AA6=2 V9U$L 6L R4$ L;$D
99 ?* R4$ ?V$ RYA$L K$ ?99$R6V$9Y K$*$KK$# R? L 1#4!'4# RYA$L! $UL$ R4$Y = $
6=R$KAK$R$# L =U;$KL! =# L #(4 1& RYA$L! $UL$ R4$Y K$AK$L$=R 6=R$2$K V9U$LD
4$ X@7+ RYA$ LA$6.$L = $;ARY L$R ?* V9U$LN 6R 6L UL$# L R4$ RYA$ K$RUK=$# Y *U=R6?=L
R4R 2$=$KR$ =? V9U$D
4$ RYA$L 6;9/ 6;9/ 49L! ,6;L =# ';O6( K$ U=LUAA?KR$#D
4$ (5= RYA$ LA$6.$L 9?269 ?;;U=6R6?= 4==$9 ?V$K W464 V9U$L = $
?;;U=6R$# $RW$$= AK99$9 LRR$;$=RL BMD%D%CD 4$ (5=,=+ RYA$ LA$6.$L ?=$ $=# ?*
?;;U=6R6?= 4==$9D
4$ 9?R6?=L ?* R ;?LR RW? 6;A96$# $=#L ?* (5= BR4$;L$9V$L (5=,=+LC K$ #$.=$#
R4K?U24 R4$ UL$ ?* R4$ 4==$9 6= R ;?LR RW? AK99$9 LRR$;$=RL BMD%D%CD
4==$9 $=#L K$ UL$# L ?A$K=#L ?* 6=AUR =# ?URAUR LRR$;$=RL BMD%DSCD 4==$9L
K$ 6#6K$R6?=9 =# LY=4K?=6L$# = ?URAURR$K W6RL *?K ;R46=2 6=AURR$K R? $?;$
K$#Y $*?K$ #R 6L ?;;U=6R$#D 4$R4$K LRK$;6=2 4==$9 6L LY=4K?=6L$# ?K U=LY=5
4K?=6L$# 6L 6;A9$;$=RR6?=5#$.=$#D
4$ B@MS RYA$ LA$6.$L ,56R K$26LR$K! W464 6=R$K*$L R? ?99$R6?= ?* , A6=L UL$# *?K
?;;U=6R6=2 W6R4 R4$ $=V6K?=;$=R W4$K$ , 6L 6;A9$;$=RR6?=5#$.=$#D 4$ B@MS) RYA$
LA$6.$L = (56R K$26LR$K! W464 6=R$K*$L R? ?99$R6?= ?* , A6=L UL$# *?K ?;;U=6R6=2
W6R4 R4$ $=V6K?=;$=R BW4$K$ , =$$# =?R $FU9 (CD X@7+ B@MS 6L LA$69 RYA$ ?* A?KR R4R
;Y =?R $ UL$# *?K 6=AUR ?K ?URAURD A?KR 9L? 4L =?R6?=9 41(21 RYA$ =# *5(41
RYA$ BL$$ MD%DSCN R4$L$ RYA$L K$ 6;A9$;$=RR6?=5#$.=$#D
?KRL K$ UL$# L ?A$K=#L ?* 6=AUR =# ?URAUR LRR$;$=RL BMD%DS! AA$=#6X CD
4$ S7<,M RYA$ 6L LA$69 RYA$ ?* 6=AUR A?KR R4R K$RUK=L R4$ UKK$=R R6;$ W4$= 6=AUR
*K?;D X@7+ S7<,M 6L R6;$K R4R ;Y =?R UL$# *?K 6=AURD R6;$K 9L? 4L =?R6?=9
*5(41 RYA$ BL$$ MD%DSCN R46L RYA$ 6L 6;A9$;$=RR6?=5#$.=$#D
4$ (@M, RYA$ LA$6.$L AK?$LL?K ?K$ ?= W464 A?KRL =# AK99$9 LRR$;$=RL ;Y $
A9$#D 7$RL ?* ?K$ RYA$ #? =?R K$L$KV$ LR?K2$D
4==$9 $=#L! A?KRL! R6;$KL =# ?K$L K$ ?99$R6V$9Y K$*$KK$# R? L 4V6=2 12*51 RYA$LD
X$AR *?K ?K$L! W464 #? =?R K$L$KV$ LR?K2$! = ?7$R ?* K$L?UK$ RYA$ K$*$KL R? 9?R6?=
6= LR?K2$ 6= W464 = 6#$=R6.$K *?K R4$ K$L?UK$ 6L K$?K#$#D
$29! $29(9'! =;HL! L48(H! $;H( =# O,,(H(' =# ILH(849/ K$ =$WD
8% 31D;<+31<
?;$ ?A$KR?KL! #$A$=#6=2 ?= R4$6K ?A$K=#L! UL$ ?=V$KL6?= ?* R4$ V9U$ ?* = ?A$K=#
*K?; ?=$ RYA$ R? =?R4$KD 46L L$R6?= $XA96=L R4$ K$LU9RL R? $ $XA$R$# *K?; LU4
?=V$KL6?=LD MD/ #$R69L R4$ ?=V$KL6?=L #$;=#$# Y ;?LR ?A$KR?KLD
8%8& 3+
4$ B=?=$X6LR$=RC V9U$ ?* X@7+ ?7$R ;Y =?R $ UL$# 6= =Y WY! =# =$6R4$K $XA966R
=?K 6;A966R ?=V$KL6?= R? =Y =?=5V?6# RYA$ ;Y $ AA96$#D = ?7$R ?* RYA$ X@7+ B@MS ?K
X@7+ S7<,M ;Y =?R $ UL$# *?K 6=AUR ?K ?URAURD
8> F5;<<+31<
4$ AK$$#$=$ ?* $XAK$LL6?= ?A$KR?KL 6L R4$ L;$ L R4$ ?K#$K ?* R4$ ;7?K LUL$R6?=L
?* R46L L$R6?=! 4624$LR AK$$#$=$ .KLRD 6R46= $4 L$R6?=! R4$ ?A$KR?KL 4V$ R4$ L;$
AK$$#$=$D $*R5 ?K K624R5LL?6R6V6RY 6L LA$6.$# 6= $4 LUL$R6?= *?K R4$ ?A$KR?KL
#6LULL$# R4$K$6=D
4$ AK$$#$=$ =# LL?6R6V6RY ?* ?A$KR?KL 6L *U99Y LA$6.$#D 4$ ?K#$K ?* $V9UR6?=
?* $XAK$LL6?=L #?$L =?R! W6R4 $KR6= $X$AR6?=L! +$R R4$ $4V6?UK ?* R4$ AK?2K;! $V$= 6*
R4$ LU$XAK$LL6?=L 6=V?9V$ L6#$ $+$RLD = AKR6U9K! VK69$ W464 6L 4=2$# 6= ?=$ AKR
?* = $XAK$LL6?= ;Y =?R U=9$LL ?R4$KW6L$ LRR$# AA$K 6= =Y ?R4$K AKR ?* R4$ $XAK$LL6?=D
46L KU9$ AA96$L K$UKL6V$9Y R? 99 VK69$L W464 K$ 4=2$# 6= *U=R6?=L 99$# 6= R4$
$XAK$LL6?=D
4$ 4=#96=2 ?* ?V$K0?W! #6V6#$ 4$8! =# ?R4$K $X$AR6?=L 6= $XAK$LL6?= $V9UR6?= 6L
6;A9$;$=RR6?=5#$.=$#D
= ?7$R ?K = KKY ?* ?7$RL #$9K$# W6R4 R4$ FU96.$K (@=NS ;Y ?=9Y $ UL$# L
= K2U;$=R R? *U=R6?= W6R4 AK;$R$K FU96.$# (@=NSD
= ?7$R #$9K$# W6R4 R4$ FU96.$K 7= ;Y ?=9Y $ UL$# L = K2U;$=R R? *U=R6?=
W6R4 AK;$R$K FU96.$# 7= ?K X@7+D
= ?7$R #$9K$# W6R4 R4$ FU96.$K @VS ;Y ?=9Y $ UL$# L = K2U;$=R R? *U=R6?=
W6R4 AK;$R$K FU96.$# @VS ?K X@7+D
= ?7$R #$9K$# W6R4 R4$ LA$6.$K X@7+ ;Y ?=9Y $ UL$# L = K2U;$=R R?
*U=R6?= W6R4 AK;$R$K LA$6.$# X@7+D = ?7$R =?R FU96.$# 7=! @VS ?K X@7+ ;Y $
UL$# L = K2U;$=R R? *U=R6?= W6R4 AK;$R$K FU96.$# $6R4$K 7=! @VS ?K X@7+D
= ?7$R #$9K$# W6R4 R4$ FU96.$K !V00,M,+ ;Y ?=9Y $ UL$# L = K2U;$=R R?
*U=R6?= AK;$R$K FU96.$# !V00,M,+D = ?7$R =?R #$9K$# W6R4 R4$ FU96.$K
!V00,M,+ ;Y ?=9Y $ UL$# L = K2U;$=R R? *U=R6?= AK;$R$K =?R FU96.$#
!V00,M,+D
= ?7$R #$9K$# W6R4 R4$ FU96.$K NSM,<7=3 ;Y ?=9Y $ UL$# L = K2U;$=R R?
*U=R6?= AK;$R$K FU96.$# NSM,<7=3D = ?7$R =?R #$9K$# W6R4 R4$ FU96.$K
NSM,<7=3 ;Y ?=9Y $ UL$# L = K2U;$=R R? *U=R6?= AK;$R$K =?R FU96.$#
NSM,<7=3D
=> 1'C' 5+$@+31
VK69$ W464 6L 4=2$# 6= ?=$ K2U;$=R ;Y =?R AA$K 6= =Y ?R4$K K2U;$=RD 46L
KU9$ AA96$L K$UKL6V$9Y R? 99 VK69$L AA$K6=2 6= *U=R6?=L 99$# Y R4$ K2U;$=RLD
4$ K2U;$=RL ALL$# Y V9U$ K$ ?=V$KR$#! L 6* Y LL62=;$=R! R? R4$ RYA$L ?*
R4$ ?KK$LA?=#6=2 AK;$R$KL ?* R4$ *U=R6?=JL #$9KR6?= B?K AK?R?RYA$CD 4$ =U;$K ?*
K2U;$=RL ;ULR $ R4$ L;$ L R4$ =U;$K ?* AK;$R$KL! U=9$LL R4$ #$9KR6?=JL AK;$R$K
96LR $=#L W6R4 R4$ $996AL6L =?RR6?= B* FFFCD = R4R L$! R4$ =U;$K ?* K2U;$=RL ;ULR $FU9
?K $X$$# R4$ =U;$K ?* AK;$R$KLN RK696=2 6=R$2K9 K2U;$=RL $Y?=# R4$ $XA966R9Y RYA$#
AK;$R$KL U=#$K2? 6=R$2K9 AK?;?R6?= BMD/D@CD
4$ ?K#$K ?* $V9UR6?= ?* K2U;$=RL 6L U=LA$6.$#! UR R4$ K2U;$=RL K$ ?;A9$R$9Y
$V9UR$#! 6=9U#6=2 99 L6#$ $+$RL! $*?K$ R4$ *U=R6?= 6L $=R$K$#D $UKL6V$ 99L R? =Y
*U=R6?= K$ A$K;6RR$#D
4$ K$R6?= ?* ;?K$ R4= ?=$ K$*$K$=$ R? R4$ L;$ ?7$R ?* L6 RYA$! LRKURUK$!
U=6?= ?K = KKY 6L 6=V96#D 4$ K$R6?= ?* K$*$K$=$ R? LRKURUK$! U=6?= ?K KKY! =# R?
;$;$K ?K $9$;$=R K$UKL6V$9Y ?=R6=$# W6R46= 6L 6=V96#D 4$ K$R6?= ?* ;?K$ R4= ?=$
K$*$K$=$ R? ?7$RL ?=R6=$# W6R46= #6LR6=R ;$;$KL ?* U=6?= 6L 6=V96#D
8>8A8& +1@;5;@@+31
#6;$=L6?= 6L ?;A9$R$# R ?;A69$5R6;$ LU4 R4R R4$ L6Z$ ?* R4$ K$LU9R6=2 RYA$ 6L =?R
9K2$K R4= ! UR W6R4 V9U$ ?* /+ 6R W?U9# $D
? K6R4;$R6 ?=V$KL6?=L K$ A$K*?K;$# R4$ $+$R ?* R4$ K$6=R$KAK$RR6?= 6L R? RK$R R4$
VK69$ L 6* 6R 4# R4$ LA$6.$# RYA$D = KKY ?* L6Z$ Z$K? 6L V96# K$6=R$KAK$RR6?=N =Y
RR$;AR$# 6=#$X 6=R? R4$ KKY 6L 6=V96#D
4$ UL$ ?* K$6=R$KAK$R$# ?7$R ;Y $ 6=V96# 6* 6R 6L =?R LU6R9Y 962=$# 6= LR?K2$D R
6L 2UK=R$$# ?=9Y R4R = ?7$R ;Y $ K$6=R$KAK$R$# R? = ?7$R W4?L$ RYA$ K$FU6K$L 9$LL
?K $FU99Y LRK6R LR?K2$ 962=;$=RN R4$ =?R6?= ?* G962=;$=RH 6L 6;A9$;$=RR6?=5#$.=$#! UR
?7$RL ?* R4$ (5M RYA$L 4V$ 9$LR LRK6R 962=;$=R K$FU6K$;$=RLD
4$ ?A$K=# ?* R4$ U=KY G ?A$KR?K ;ULR 4V$ K6R4;$R6 RYA$! =# R4$ K$LU9R 6L R4$ V9U$ ?*
6RL ?A$K=#D = 6=R$2K9 ?A$K=# U=#$K2?$L 6=R$2K9 AK?;?R6?=N R4$ RYA$ ?* R4$ K$LU9R 6L R4$
RYA$ ?* R4$ AK?;?R$# ?A$K=#D
4$ ?A$K=# ?* R4$ U=KY 6 ?A$KR?K ;ULR 4V$ K6R4;$R6 RYA$! =# R4$ K$LU9R 6L R4$ =$2R6V$
?* 6RL ?A$K=#D = 6=R$2K9 ?A$K=# U=#$K2?$L 6=R$2K9 AK?;?R6?=D 4$ =$2R6V$ ?* =
U=L62=$# FU=R6RY 6L ?;AUR$# Y LURKR6=2 R4$ AK?;?R$# V9U$ *K?; R4$ 9K2$LR V9U$ ?*
R4$ AK?;?R$# RYA$ =# ##6=2 ?=$N UR =$2R6V$ Z$K? 6L Z$K?D 4$ RYA$ ?* R4$ K$LU9R 6L R4$
RYA$ ?* R4$ AK?;?R$# ?A$K=#D
= 1'C' 5+$@+31
4$ ?A$K=# ?* R4$ U=KY ?A$KR?K ;ULR 4V$ 6=R$2K9 RYA$! =# R4$ K$LU9R 6L R4$ ?=$JL
?;A9$;$=R ?* 6RL ?A$K=#D 4$ 6=R$2K9 AK?;?R6?=L K$ A$K*?K;$#D * R4$ ?A$K=# 6L
U=L62=$#! R4$ K$LU9R 6L ?;AUR$# Y LURKR6=2 R4$ V9U$ *K?; R4$ 9K2$LR V9U$ ?* R4$
AK?;?R$# RYA$D * R4$ ?A$K=# 6L L62=$#! R4$ K$LU9R 6L ?;AUR$# Y ?=V$KR6=2 R4$ AK?;?R$#
?A$K=# R? R4$ ?KK$LA?=#6=2 U=L62=$# RYA$! AA9Y6=2 ! =# ?=V$KR6=2 8 R? R4$ L62=$#
RYA$D 4$ RYA$ ?* R4$ K$LU9R 6L R4$ RYA$ ?* R4$ AK?;?R$# ?A$K=#D
4$ ?A$K=# ?* R4$ / ?A$KR?K ;ULR 4V$ K6R4;$R6 RYA$! =# R4$ K$LU9R 6L @ 6* R4$ V9U$ ?*
6RL ?A$K=# ?;AK$L $FU9 R? [! =# [ ?R4$KW6L$D 4$ RYA$ ?* R4$ K$LU9R 6L 7=SD
4$ N7\,@0 ?A$KR?K Y6$9#L R4$ =U;$K ?* YR$L K$FU6K$# R? LR?K$ = ?7$R ?* R4$ RYA$ ?* 6RL
?A$K=#D 4$ ?A$K=# 6L $6R4$K = $XAK$LL6?=! W464 6L =?R $V9UR$#! ?K AK$=R4$L6L$# RYA$
=;$D 4$= N7\,@0 6L AA96$# R? (5M! R4$ K$LU9R 6L @N W4$= AA96$# R? = KKY! R4$ K$LU9R
6L R4$ R?R9 =U;$K ?* YR$L 6= R4$ KKYD 4$= AA96$# R? LRKURUK$ ?K U=6?=! R4$ K$LU9R 6L
R4$ =U;$K ?* YR$L 6= R4$ ?7$R! 6=9U#6=2 =Y A##6=2 K$FU6K$# R? ;8$ R4$ ?7$R R69$ =
KKY R4$ L6Z$ ?* = KKY ?* ( $9$;$=RL 6L ( R6;$L R4$ L6Z$ ?* ?=$ $9$;$=RD 4$= AA96$# R?
K$*$K$=$! R4$ K$LU9R 6L R4$ =U;$K ?* YR$L 6= R4$ ?7$R K$*$KK$# R?D 4$ ?A$KR?K ;Y =?R
$ AA96$# R? = ?A$K=# ?* *U=R6?= RYA$! ?* K$L?UK$ RYA$ ?K ?* = 6=?;A9$R$ RYA$D 4$
?A$KR?K ;Y =?R $ AA96$# R? = ?A$K=# ?* K$*$K$=$ RYA$ W4$K$ R4$ K$*$K$=$ 6L R? =
KKY ?* U=8=?W= L6Z$D 4$ V9U$ ?* R4$ K$LU9R 6L 6;A9$;$=RR6?=5#$.=$#D 4$ K$LU9R 6L =
U=L62=$# 6=R$2K9 ?=LR=RN R4$ AKR6U9K RYA$ 6L 6;A9$;$=RR6?=5#$.=$#D
4$ ?A$K=# ?* R4$ 7N=V:: ?A$KR?K ;ULR $ = 9V9U$D 4$ K$LU9R 6L @ 6* 6RL ?A$K=# 4L V9U$
=V::! =# [ ?R4$KW6L$D 4$ RYA$ ?* R4$ K$LU9R 6L 7=SD
8>8% <@<
U=KY $XAK$LL6?= AK$$#$# Y R4$ AK$=R4$L6L$# =;$ ?* RYA$ UL$L ?=V$KL6?= ?* R4$
V9U$ ?* R4$ $XAK$LL6?= R? R4$ =;$# RYA$D
24"8,122#*( )). 5(19"8,122#*(
# C 49,"(' D 24"8,122#*(
46L ?=LRKUR6?= 6L 99$# 24D 4$ LR ;ULR =?R LA$6*Y LRKURUK$! U=6?=! = KKY! ?K
K$L?UK$ RYA$N =$6R4$K ;ULR R4$ $XAK$LL6?=D YA$ =;$L K$ #$LK6$# 6= MDOD>D 4$ $+$RL
?* K6R4;$R6 ?=V$KL6?=L K$ #$LK6$# 6= MD/DSD = $XAK$LL6?= W6R4 LR 6L =?R = 9V9U$D
8> F5;<<+31< =2
4$ ?A$K=#L ?* =# R ;ULR 4V$ K6R4;$R6 RYA$N R4$ ?A$K=#L ?* E ;ULR 4V$ 6=R$2K9
RYA$D 4$ ULU9 K6R4;$R6 ?=V$KL6?=L K$ A$K*?K;$# ?= R4$ ?A$K=#L! =# #$R$K;6=$ R4$
RYA$ ?* R4$ K$LU9RD
4$ 6=KY ?A$KR?K #$=?R$L ;U9R6A96R6?=D
4$ 6=KY R ?A$KR?K AK?#U$L R4$ FU?R6$=R! =# R4$ E ?A$KR?K R4$ K$;6=#$K! ?* R4$
#6V6L6?= ?* R4$ .KLR ?A$K=# Y R4$ L$?=#N 6* R4$ L$?=# ?A$K=# 6L [ R4$= R4$ K$LU9R 6L
6;A9$;$=RR6?=5#$.=$#D R4$KW6L$! 6R 6L 9WYL RKU$ R4R CR!D! G E! 6L $FU9 R? D *
?R4 ?A$K=#L K$ =?=5=$2R6V$! R4$= R4$ K$;6=#$K 6L =?=5=$2R6V$ =# L;99$K R4= R4$
#6V6L?KN 6* =?R! 6R 6L 2UK=R$$# ?=9Y R4R R4$ L?9UR$ V9U$ ?* R4$ K$;6=#$K 6L L;99$K R4=
R4$ L?9UR$ V9U$ ?* R4$ #6V6L?KD
* R4$ L$?=# =# R46K# ?A$K=#L 4V$ K6R4;$R6 RYA$ UR K$ =?R $FU6V9$=R! R4$ ULU9
K6R4;$R6 ?=V$KL6?=L K$ A$K*?K;$#! =# #$R$K;6=$ R4$ RYA$ ?* R4$ K$LU9RD
4$ $XAK$LL6?= 6L 9V9U$ 6* =? K6R4;$R6 ?=V$KL6?=L K$ A$K*?K;$# =# R4$ L$?=# =#
R46K# ?A$K=#L ?R4 4V$ RYA$ =V:: ?K K$ 9V9U$LD
B 1'C' 5+$@+31
8= .;@+31<
$9KR6?=L LA$6*Y R4$ 6=R$KAK$RR6?= 26V$= R? $4 6#$=R6.$KD $9KR6?=L R4R K$L$KV$
LR?K2$ K$ 99$# (#4#*(2D 4$ LY=RX ?* #$9KR6?=L 6L
&14#*( )). *("244'(4 !( 45&"&14#*(
4$ ,ZS,M= LA$6.$K! UL$# 6=L6#$ *U=R6?=! LA$6.$L R4R R4$ LR?K2$ *?K R4$ #$9K$#
?7$RL 6L #$.=$# $9L$W4$K$N *?K 6RL 6RL $+$RL ?URL6#$ *U=R6?= L$$ MD@[DTD
4$ S[B,+,0 LA$6.$K #?$L =?R K$L$KV$ LR?K2$ =# 6L 99$# LR?K2$ 9LL LA$6.$K *?K
LY=RR6 ?=V$=6$=$N 6R 6L #6LULL$# 6= MDOD@[D
R ;?LR ?=$ ?* $4 ?* R4$ LR?K2$ 9LL LA$6.$KL ;Y $ 26V$= 6= #$9KR6?=D * =?=$
6L 26V$=! R4$L$ KU9$L K$ UL$# ?7$RL #$9K$# 6=L6#$ *U=R6?= K$ R8$= R? $ VS@N ?7$RL
=# *U=R6?=L #$9K$# ?URL6#$ *U=R6?=! R .9$5L?A$! K$ R8$= R? $ LRR6! W6R4 $XR$K=9
96=82$D 4$ LA$6.$K N,MX7(, ;Y ?=9Y $ 26V$= W6R4 $XR$K=9 *U=R6?= #$9KR6?=LD
4$ UL$ ?* (SL(H9 6=L6#$ *U=R6?= 6L U=LUAA?KR$#D
7= =# @VS ;Y AA$K W6R4 R4$ B@MS =# B@MS) RYA$ LA$6.$KL UR =?R W6R4 X@7+D =
?7$R FU96.$# 7= ;Y AA$K 6= 6=AUR ?A$KR6?=L ?=9Y! =# = ?7$R FU96.$# @VS ;Y
AA$K 6= ?URAUR ?A$KR6?=L ?=9Y BMD%DSCD !V00,M,+ ;Y AA$K W6R4 R4$ B@MS =# B@MS)
RYA$ LA$6.$KLD NSM,<7=3 ;Y AA$K W6R4 R4$ (5= =# (5=,=+ RYA$ LA$6.$KLD
UR?;R6 VK69$L ;Y =?R $ #$9K$# W6R4 RYA$ B@MS! B@MS) ! (5=,=+ ?K (@M,D RR6
VK69$L ;Y =?R $ #$9K$# W6R4 RYA$L (5= ?K (5=,=+D ?KRL LA$6.$# W6R4 X@7+ ;Y =?R
$ UL$# 6= 6=AUR ?K ?URAUR ?A$KR6?=LD
LRKURUK$ ?K U=6?= ;Y =?R ?=R6= ;$;$K ?* 6=?;A9$R$ ?K K$L?UK$ RYA$! $X$AR
R4R LRKURUK$ ;Y ?=R6= ;$;$K ?* RYA$ A?KR ?K R6;$KD * LRKURUK$ 6L #$9K$# R?
4V$ ;$;$K W6R4 ?=$ ?* R4$L$ RYA$L R4$= VK69$L ?* R4$ LRKURUK$ ;Y $ #$9K$# ?=9Y
L $XR$K=9 #$9KR6?=L BL$$ MD>CD
LRKURUK$ ?K U=6?= LA$6.$K W6R4 96LR UR =? R2 K$R$L U=6FU$ RYA$N 6R = $
K$*$KK$# R? #6K$R9Y ?=9Y 6= R4$ #$9KR6?= ?* W464 6R 6L AKRD
4$ =;$L ?* ;$;$KL =# R2L #? =?R ?=06R W6R4 $4 ?R4$K ?K W6R4 ?K#6=KY VK69$LD
;$;$K =;$ ;Y =?R AA$K RW6$ 6= R4$ L;$ LRKURUK$ ?K U=6?=! UR R4$ L;$ ;$;$K
=;$ ;Y $ UL$# 6= #6+$K$=R LRKURUK$L ?K U=6?=LD
4$ ;$;$KL ?* LRKURUK$ 4V$ ##K$LL$L 6=K$L6=2 6= R4$ ?K#$K ?* R4$6K #$9KR6?=LD
;$;$K ?* LRKURUK$ 6L 962=$# R = ##K$LL6=2 ?U=#KY #$A$=#6=2 ?= 6RL RYA$D
U=6?= ;Y $ R4?U24R ?* L LRKURUK$ 99 ?* W4?L$ ;$;$KL $26= R ?+L$R [ =#
W4?L$ L6Z$ 6L LU,6$=R R? ?=R6= =Y ?* 6RL ;$;$KLD R ;?LR ?=$ ?* R4$ ;$;$KL = $
LR?K$# 6= U=6?= R =Y R6;$D
* U=6?= ?=R6=L L$V$K9 LRKURUK$L R4R L4K$ ?;;?= 6=6R69 L$FU$=$! =# 6* R4$
U=6?= UKK$=R9Y ?=R6=L ?=$ ?* R4$L$ LRKURUK$L! 6R 6L A$K;6RR$# R? K$*$K R? R4$ ?;;?=
6=6R69 AKR ?* =Y ?* R4$ ?=R6=$# LRKURUK$LD
8=8% 1C0;@+31<
=U;$KR6?=L K$ U=6FU$ RYA$L W6R4 V9U$L K=26=2 ?V$K L$R ?* =;$# ?=LR=RL 99$#
$=U;$KR?KLD 4$ *?K; ?* = $=U;$KR6?= LA$6.$K ?KK?WL *K?; R4R ?* LRKURUK$L =#
U=6?=LD
(5'"2,#1 )). ,=V< #(4#1 !( $ (5'14*1" %
# ,=V< #(4#1 !( $ (5'14*1" * %
# ,=V< #(4#1
4$ $=U;$KR?K RYA$ 6L ?;AR69$ W6R4 7=SN 6#$=R6.$KL 6= = $=U;$KR?K 96LR K$ #$9K$# L
?=LR=RL ?* RYA$ 7=S! =# ;Y AA$K W4$K$V$K ?=LR=RL K$ K$FU6K$#D * =? $=U;$KR?KL
W6R4 . AA$K! R4$= R4$ V9U$L ?* R4$ ?KK$LA?=#6=2 ?=LR=RL $26= R [ =# 6=K$L$ Y @ L
R4$ #$9KR6?= 6L K$# *K?; 9$*R R? K624RD = $=U;$KR?K W6R4 . 26V$L R4$ LL?6R$# 6#$=R6.$K
R4$ V9U$ LA$6.$#N LUL$FU$=R 6#$=R6.$KL ?=R6=U$ R4$ AK?2K$LL6?= *K?; R4$ LL62=$# V9U$D
=U;$KR?K =;$L 6= R4$ L;$ L?A$ ;ULR 99 $ #6LR6=R *K?; $4 ?R4$K =# *K?;
?K#6=KY VK69$ =;$L! UR R4$ V9U$L =$$# =?R $ #6LR6=RD
4$ 6#$=R6.$K 6= R4$ (5'"2,#1 =;$L AKR6U9K $=U;$KR6?=D 4$ KU9$L *?K
$=U; LA$6.$KL W6R4 =# W6R4?UR R2L =# 96LRL K$ R4$ L;$ L R4?L$ *?K LRKURUK$ ?K U=6?=
LA$6.$KL! $X$AR R4R 6=?;A9$R$ $=U;$KR6?= RYA$L #? =?R $X6LRN R4$ R2 ?* = (5'"2,#1
W6R4?UR = (5'14*1" ;ULR K$*$K R? = 6=5L?A$ LA$6.$K W6R4 96LRD
8= .;@+31< =
8=8> .;@3;<
$9KR?KL 4V$ R4$ LY=RX
61"&14*1 )). #(4#1 #'(2#*("2#:
# #(4#1
# I #((4#1 #'(2#*("2#:
# I #(4#1
8=8 1+@+.+<@+31
4$= = ?7$R 6L #$9K$#! 6RL #(#4"61"&14*1 ;Y LA$6*Y = 6=6R69 V9U$ *?K R4$ 6#$=R6.$K
$6=2 #$9K$#D 4$ 6=6R696L$K 6L AK$$#$# Y .! =# 6L $6R4$K = $XAK$LL6?=! ?K 96LR ?*
6=6R696L$KL =$LR$# 6= K$LD
#(#4# )). *("244'(4 !( 8,122#*(
# $ #(#4#" %
# $ #(#4#" * %
99 R4$ $XAK$LL6?=L 6= R4$ 6=6R696L$K *?K LRR6 ?7$R ?K KKY ;ULR $ ?=LR=R $XAK$L5
L6?=L L #$LK6$# 6= MDPD@>D 4$ $XAK$LL6?=L 6= R4$ 6=6R696L$K *?K = VS@ ?K M,37NS,M ?7$R
;ULR 968$W6L$ $ ?=LR=R $XAK$LL6?=L 6* R4$ 6=6R696L$K 6L K$5$=9?L$# 96LRD ?W$V$K!
6* R4$ 6=6R696L$K *?K = UR?;R6 ?7$R 6L L6=29$ $XAK$LL6?=! 6R =$$# =?R $ ?=LR=R
$XAK$LL6?=! UR ;ULR 4V$ AAK?AK6R$ RYA$ *?K LL62=;$=R R? R4$ ?7$RD
6;$KL! 4==$9L =# ?K$L ;ULR =?R $ $XA966R9Y 6=6R696L$#D 6;$KL =?R #$9K$# ,ZS,M=
K$ 6=6R696L$#! R KU=5R6;$! R? K$*$K R? = U=96L$# 4K#WK$ R6;$KD 4==$9L =?R #$9K$#
,ZS,M= K$ 6=6R696L$#! R KU=5R6;$! R? K$*$K R? RW? U=96L$# 4K#WK$ 4==$9 $=#L R4R K$
?==$R$# R?2$R4$K R? K$R$ A?6=R5R?5A?6=R ?;;U=6R6?= 96=8D ?KRL =?R #$9K$# ,ZS,M=!
=# =?R $XA966R9Y 6=6R696L$#! K$ 6=6R696L$# W6R4 = 6;A9$;$=RR6?=5#$.=$# V9U$D
LRR6 ?7$R R4R 6L =?R R6;$K! 4==$9 ?K A?KR! =# 6L =?R $XA966R9Y 6=6R696L$#! 6L
6=6R696L$# L 6* 6RL $XAK$LL6?= B?K 6RL ;$;$KLC W$K$ LL62=$# R4$ ?=LR=R [D 4$ 6=6R69 V9U$
?* = UR?;R6 ?7$R W6R4 K6R4;$R6 RYA$ =?R $XA966R9Y 6=6R696L$# 6L U=#$.=$#D
4$ 6=6R696L$K *?K = ?7$R ?* K6R4;$R6 RYA$ 6L L6=29$ $XAK$LL6?=! A?LL69Y 6= K$LD
4$ $XAK$LL6?= 6L LL62=$# R? R4$ ?7$RD 4$ 6=6R696L$K *?K A?KR 6L L6=29$ ?=LR=R
$XAK$LL6?=! A?LL69Y 6= K$LD 4$ $XAK$LL6?= 6L LL62=$# R? R4$ ?7$RN 6RL 6=R$KAK$RR6?=
=# V96#6RY 6L 6;A9$;$=RR6?=5#$.=$#D
4$ 6=6R696L$K *?K LRKURUK$ 6L $6R4$K = $XAK$LL6?= ?* R4$ L;$ RYA$! ?K K$5$=9?L$#
96LR ?* 6=6R696L$KL *?K 6RL ;$;$KL 6= ?K#$KD * R4$K$ K$ *$W$K 6=6R696L$KL 6= R4$ 96LR R4=
;$;$KL ?* R4$ LRKURUK$! R4$ RK696=2 ;$;$KL K$ 6=6R696L$# W6R4 [D 4$K$ ;Y =?R $ ;?K$
6=6R696L$KL R4= ;$;$KLD
4$ 6=6R696L$K *?K = KKY 6L K$5$=9?L$# 96LR ?* 6=6R696L$KL *?K 6RL ;$;$KLD * R4$
KKY 4L U=8=?W= L6Z$! R4$ =U;$K ?* 6=6R696L$KL #$R$K;6=$L R4$ L6Z$ ?* R4$ KKY! =# 6RL
RYA$ $?;$L ?;A9$R$D * R4$ KKY 4L .X$# L6Z$! R4$ =U;$K ?* 6=6R696L$KL ;Y =?R $X$$#
R4$ =U;$K ?* ;$;$KL ?* R4$ KKYN 6* R4$K$ K$ *$W$K! R4$ RK696=2 ;$;$KL K$ 6=6R696L$#
W6R4 [D
L LA$69 L$! 4KR$K KKY ;Y $ 6=6R696L$# Y LRK6=2 96R$K9 BK$L K$
?AR6?=9CN LU$LL6V$ 4KR$KL ?* R4$ LRK6=2 6=6R696L$ LU$LL6V$ ;$;$KL ?* R4$ KKYD * R4$
KKY 4L U=8=?W= L6Z$! R4$ =U;$K ?* 4KR$KL 6= R4$ LRK6=2! 6=9U#6=2 R4$ R$K;6=R6=2
=U99 4KR$K! #$R$K;6=$L 6RL L6Z$N 6* 6RL L6Z$ 6L .X$#! R4$ =U;$K ?* 4KR$KL 6= R4$ LRK6=2!
=?R ?U=R6=2 R4$ R$K;6=R6=2 =U99 4KR$K! ;ULR =?R $X$$# R4$ L6Z$ ?* R4$ KKYD
4$ 6=6R696L$K *?K U=6?= 6L $6R4$K L6=29$ $XAK$LL6?= ?* R4$ L;$ RYA$! ?K K$5
$=9?L$# 6=6R696L$K *?K R4$ .KLR ;$;$K ?* R4$ U=6?=D
= 1 4 6L LRKURUK$ ?K KKYD * = 22K$2R$ ?=R6=L ;$;$KL ?* 22K$2R$
RYA$! R4$ 6=6R696LR6?= KU9$L AA9Y K$UKL6V$9YD K$L ;Y $ $96#$# 6= R4$ 6=6R696LR6?= L
*?99?WL 6* R4$ 6=6R696L$K *?K = 22K$2R$JL ;$;$K R4R 6L 6RL$9* = 22K$2R$ $26=L W6R4
9$*R K$! R4$= R4$ LU$$#6=2 ?;;5L$AKR$# 96LR ?* 6=6R696L$KL 6=6R696L$L R4$ ;$;$KL ?*
R4$ LU22K$2R$N 6R 6L $KK?=$?UL *?K R4$K$ R? $ ;?K$ 6=6R696L$KL R4= ;$;$KLD *! 4?W$V$K!
R4$ 6=6R696L$K *?K LU22K$2R$ #?$L =?R $26= W6R4 9$*R K$! R4$= ?=9Y $=?U24 $9$;$=RL
*K?; R4$ 96LR K$ R8$= R? ?U=R *?K R4$ ;$;$KL ?* R4$ LU22K$2R$N =Y K$;6=6=2
;$;$KL K$ 9$*R R? 6=6R696L$ R4$ =$XR ;$;$K ?* R4$ 22K$2R$ ?* W464 R4$ LU22K$2R$ 6L
AKRD
#R RYA$D 46L 6L ?;A96L4$# UL6=2 49, ('! W464 6L LY=RR699Y #$9KR6?= *?K
= ?7$R ?* R4R RYA$ ?;6RR6=2 R4$ =;$ ?* R4$ ?7$RD
49,"(' )). 2,#1"*1"05/ 2414"61"&14*1
8=84I G5"
$9KR6?=L W4?L$ LR?K2$ 9LL LA$6.$K 6L S[B,+,0 #? =?R #$9K$ ?7$RLN 6=LR$# R4$Y
#$.=$ 6#$=R6.$KL R4R =;$ RYA$L B99$# RYA$#$* =;$LCD
49,"(' )). #(4#1
S[B,+,0 #$9KR6?= RRK6UR$L RYA$ R? $4 =;$ ;?=2 6RL #$9KR?KL 6= R4$ ULU9 WY
BL$$ MDODOCD 4$K$*R$K! $4 LU4 RYA$#$* =;$ 6L LY=RR699Y $FU6V9$=R R? RYA$ LA$6.$K
8$YW?K# *?K R4$ LL?6R$# RYA$D S[B,+,0 #?$L =?R 6=RK?#U$ =$W RYA$L! ?=9Y LY=?=Y;L *?K
RYA$L R4R ?U9# $ LA$6.$# 6= =?R4$K WYD YA$#$* =;$L ;Y $ K$#$9K$# 6= = 6==$K
L?A$! UR =?=5$;ARY L$R ?* RYA$ LA$6.$KL ;ULR $ 26V$=D
8 @@01@<
X$AR L #$LK6$#! LRR$;$=RL K$ $X$UR$# 6= L$FU$=$D RR$;$=RL K$ $X$UR$# *?K R4$6K
$+$R! =# #? =?R 4V$ V9U$LD 4$Y *99 6=R? L$V$K9 2K?UALD
244'(4 )). 2#',&"244'(4 !( O
# *',*5("244'(4
# 2&4#*("244'(4
# #414#*("244'(4
# $5',"244'(4
# ,1&&&"244'(4
# 41(24#*("244'(4
8 84 F5;<<+31 @@01@
4$ LY=RX ?* = $XAK$LL6?= LRR$;$=R 6L
8,122#*("244'(4 )). 8,122#*(
?LR $XAK$LL6?= LRR$;$=RL K$ LL62=;$=RL ?K *U=R6?= 99LD = $XAK$LL6?= LRR$;$=R ;ULR
=?R 4V$ K$L?UK$ RYA$D 99 L6#$ $+$RL *K?; R4$ $XAK$LL6?= K$ ?;A9$R$# $*?K$ R4$ =$XR
LRR$;$=R 6L $X$UR$#D
4$ K$L?UK$ ;ULR =;$ 4==$9 $=# ?K A?KRD * R4$ K$L?UK$ =;$L 4==$9 $=# R4$=
=$6R4$K 4#' =?K *54,54"4#'24', 6L 99?W$#D * R4$ K$L?UK$ =;$L A?KR R4$= R4$ A?KR
;ULR =?R $ FU96.$# 7= =# R4$ ?URAUR $XAK$LL6?= ;ULR 4V$ K6R4;$R6 RYA$N ?R4$KW6L$ R4$
?URAUR $XAK$LL6?= ;ULR $6R4$K 4V$ K6R4;$R6 RYA$! ?K ;ULR $ LRKURUK$ ?K U=6?=D
* R4$ K$L?UK$ =;$L 4==$9 $=# R4$= R4$ ;) 44 ?A$KR?K 6L =?R 99?W$#D * R4$ ;) 44 6L
LA$6.$# R4$= R4$ ?URAUR $XAK$LL6?= ;ULR $ ;?#6.9$ 9V9U$D
* 4#' 6L AK?V6#$# R4$= = *54,54"4#'24', 6L =?R 99?W$#D 4$ R6;$ $XAK$LL6?= ;ULR
4V$ K6R4;$R6 RYA$D 4$ ?URAUR 6L L6# R? $ 4#'D
* = *54,54"4#'24', 6L AK?V6#$# R4$= R4$ VK69$ K$*$K$=$ ;ULR $ ;?#6.9$ 9V9U$
W6R4 K6R4;$R6 RYA$D 4$ ?URAUR 6L L6# R? $ 4#'24',D
VK69$ W464 6L 4=2$# Y =Y AKR ?* R4$ ?URAUR ;Y =?R! $X$AR L #$LK6$# $9?W!
AA$K 6= =Y ?R4$K AKR ?* R4$ ?URAURD 4$ 6#$=R6.$K =;$# Y R4$ *54,54"4#'24', ;Y
AA$K 6= =Y ?R4$K AKRL ?* R4$ ?URAUR L 9?=2 L R4$ VK69$L =;$# Y R4$ 6#$=R6.$KL 6=
R4$L$ AKRL K$ =?R 4=2$#D 4$L$ KU9$L AA9Y K$UKL6V$9Y R? 99 VK69$L W464 K$ 4=2$#
6= *U=R6?=L 99$# Y R4$ ?URAURD
=AUR =# ?URAUR LRR$;$=RL K$ =$WN Q ?A$KR6?=L K$ ?=V$=R699Y A$K*?K;$# UL6=2
6=R$KKUARL =# LYLR$; 99L BV6 96KKY K?UR6=$L 6= CD
= 6=AUR ?= 4==$9 $=# UL$L R4$ AK?$LL?K R? W6R U=R69 ;R46=2 ?URAURR$K 6L K$#Y
6= AK99$9 LRR$;$=R BL$$ MD%D%C $*?K$ K$$6V6=2 V9U$D * R4$ RYA$ ?* = 6=AUR VK69$ 6L
LA$6.$# UR R4$ 6#$=R6.$K 6L ;6LL6=2 R4$= R4$ K$$6V$# V9U$ 6L 62=?K$#D $$ MD@@ *?K R4$
;$=6=2 ?* = 6=AUR 6= 4==$9 ?;;U=6R6?=D
= ?URAUR ?= 4==$9 UL$L R4$ AK?$LL?K R? W6R U=R69 ;R46=2 6=AURR$K 6L K$#Y 6=
AK99$9 LRR$;$=R $*?K$ L$=#6=2 R4$ V9U$D $$ MD@@ *?K R4$ ;$=6=2 ?* = ?URAUR 6=
4==$9 ?;;U=6R6?=D
= 6=AUR *K?; A?KR UL$L R4$ LA$6.$# A?KR R? AK?V6#$ R4$ AK?$LL?K V9U$D * R4$ A?KR
RK=L*$K W6#R4 6L 7 6RL! R4$L$ 7 6RL K$ LL62=$# R? R4$ 9$LR L62=6.=R 6RL ?* VK69$
W6R4 R4$ A?KRJL =?R6?=9 RK=L*$K RYA$ BL$$ MDSDTC W6R4 =Y K$;6=6=2 6RL $6=2 L$R R? Z$K?D
* R4$ RYA$ ?* = 6=AUR VK69$ 6L LA$6.$# UR = 6#$=R6.$K 6L ;6LL6=2! ?K 6* X@7+ RYA$ 6L
LA$6.$#! R4$= R46L 6=AUR VK69$ 6L 62=?K$#D * R4$ 6=AUR 6L UL$# W6R4 R4$ )4 44 ?A$KR?K! R4$
#$LR6=R6?= VK69$ 6L K624R5L46*R$# Y 7 6RL =# R4$ 6RW6L$ 6=9UL6V$5?K ?* R46L V9U$ =#
R4$ 6=AUR VK69$ 6L R4$= LL62=$# R? R4$ #$LR6=R6?= VK69$N ?R4$KW6L$ R4$ 6=AUR VK69$ 6L
LL62=$# R? R4$ #$LR6=R6?= VK69$D
* Y5,= ?=#6R6?= 6L AK?V6#$#! R4$ *U=R6?= =# 6RL K2U;$=RL K$ AK?V6#$# R? R4$ A?KR
$*?K$ A$K*?K;6=2 R4$ 6=AURD
= ?URAUR R? A?KR UL$L R4$ ?URAUR $XAK$LL6?= R? $ .KLR LR R? R4$ A?KRJL =?R6?=9
RK=L*$K RYA$ =# R4$= AK?V6#$# R? R4$ A?KRD * R4$ ?URAUR 6L UL$# W6R4 R4$ ;) 44 ?A$KR?K! R4$
?URAUR VK69$ 6L R4$= K624R L46*R$# Y 7 6RLD
* R4$ 6=AUR ?K ?URAUR 6L R6;$#! R4$ V9U$ LA$6.$# Y 4#' 6L LR R? R4$ A?KRJL =?R6?=9
?U=R$K RYA$ AK6?K =# AK?V6#$# R? R4$ A?KR $*?K$ A$K*?K;6=2 R4$ 6=AUR ?K ?URAURD
* R4$ 6=AUR ?K ?URAUR 6L R6;$LR;A$#! 4 6RL K$ LL62=$# R? R4$ 9$LR L62=6.=R 6RL ?*
VK69$ W6R4 R4$ A?KRJL =?R6?=9 ?U=R$K RYA$ BL$$ MDSDTC W6R4 =Y K$;6=6=2 6RL $6=2 L$R
R? Z$K?N R46L VK69$ 6L R4$= LL62=$# R? R4$ R6;$LR;A VK69$D
8 @@01@< 2%
$$ AA$=#6X *?K R4$ ;$=6=2 ?* 6=AURL =# ?URAURL ?= A?KRL W6R4 K$LA$R R4$ ?;5
;U=6R6?= A$K*?K;$# $RW$$= R4$ A?KR =# AK?$LL?K! =# R4$ ?KK$LA?=#6=2 ?A$KR6?=
A$K*?K;$# Y R4$ A?KR ?= 6RL A6=LD
= 6=AUR *K?; R6;$K UL$L R4$ R6;$K R? AK?V6#$ R4$ UKK$=R V9U$ ?* 6RL ?U=R$KD 46L
V9U$ 6L LL62=$# R? R4$ 9$LR L62=6.=R 6RL ?* VK69$ W6R4 R4$ R6;$KJL =?R6?=9 ?U=R$K
RYA$ BL$$ MDSDTC W6R4 =Y K$;6=6=2 6RL $6=2 L$R R? Z$K?D * R4$ RYA$ ?* = 6=AUR VK69$ 6L
LA$6.$# UR = 6#$=R6.$K 6L ;6LL6=2! ?K 6* X@7+ RYA$ 6L LA$6.$#! R4$= R46L 6=AUR VK69$ 6L
62=?K$#N ?R4$KW6L$ R4$ 6=AUR VK69$ 6L LL62=$# R? R4$ #$LR6=R6?= VK69$D
8 8% .@+31 @@01@<
$9$R6?= LRR$;$=RL 4??L$ ?=$ ?* L$V$K9 0?WL ?* ?=RK?9D
2&4#*("244'(4 )). 70 C 8,122#*( D 244'(4
# 70 C 8,122#*( D 244'(4 ,:N, 244'(4
# NY7S(5 C 8,122#*( D $ &&&"244'(4/ %
# N,:,(S $ 51"244'(4/ %
= ?R4 *?K;L ?* R4$ 70 LRR$;$=R! R4$ $XAK$LL6?=! W464 ;ULR 4V$ K6R4;$R6 RYA$! 6L
$V9UR$#! 6=9U#6=2 99 L6#$ $+$RL! =# 6* 6R ?;AK$L U=$FU9 R? [! R4$ .KLR LULRR$;$=R 6L
$X$UR$#D = R4$ L$?=# *?K;! R4$ L$?=# LULRR$;$=R 6L $X$UR$# 6* R4$ $XAK$LL6?= 6L [D
4$ ,:N, ;62U6RY 6L K$L?9V$# Y ?==$R6=2 = ,:N, W6R4 R4$ 9LR $=?U=R$K$# ,:N,59$LL 70
R R4$ L;$ 9?8 =$LR6=2 9$V$9D
4$ NY7S(5 LRR$;$=R UL$L ?=RK?9 R? $ RK=L*$KK$# R? ?=$ ?* L$V$K9 L$ LRR$;$=RL
#$A$=#6=2 ?= R4$ V9U$ ?* R4$ $XAK$LL6?=! W464 ;ULR 4V$ 6=R$2K9 RYA$D 4$ ?=RK?996=2
$XAK$LL6?= U=#$K2?$L 6=R$2K9 AK?;?R6?= BMD/D@C! =# R4$ L$ ?=LR=RL K$ ?=V$KR$# R?
R4$ AK?;?R$# RYA$D ? RW? ?* R4$ L$ ?=LR=RL 6= R4$ L;$ LW6R4 ;Y 4V$ R4$ L;$ V9U$
*R$K ?=V$KL6?=D 4$K$ ;Y 9L? $ R ;?LR ?=$ +,0V:S 9$9 LL?6R$# W6R4 LW6R4D
4$= R4$ NY7S(5 LRR$;$=R 6L $X$UR$#! 6RL $XAK$LL6?= 6L $V9UR$#! 6=9U#6=2 99 L6#$
$+$RL! =# ?;AK$# W6R4 $4 L$ ?=LR=RD * ?=$ ?* R4$L$ L$ ?=LR=RL 6L $FU9 R?
R4$ V9U$ ?* R4$ $XAK$LL6?=! ?=RK?9 ALL$L R? R4$ LRR$;$=R ?* R4$ ;R4$# (N, 9$9D * =?
L$ ?=LR=R ;R4$L R4$ $XAK$LL6?=! =# 6* R4$K$ 6L +,0V:S 9$9! ?=RK?9 ALL$L R? R4$
#$*U9R59$99$# LRR$;$=RD * =? L$ ;R4$L! =# 6* R4$K$ 6L =? +,0V:S! R4$= =?=$ ?* R4$
LULRR$;$=RL ?* R4$ LW6R4 6L $X$UR$#D
4$ N,:,(S LRR$;$=R UL$L ?=RK?9 R? $ RK=L*$KK$# R? ?=$ ?* L$V$K9 2UK#$# L$
LRR$;$=RLD 2UK#$# LRR$;$=R ;Y ?=L6LR ?* = ?AR6?=9 K$A96R?K =# = ?AR6?=9
$XAK$LL6?= *?99?W$# Y = 6=AUR BMD%DSC! L9V$ RK=LR6?= LRR$;$=R BMD%D>C ?K *U=R6?=
99! *?99?W$# Y ?9?= =# 96LR ?* Z$K? ?K ;?K$ LRR$;$=RLD
= K$A96R?K! R4$ R46K# $XAK$LL6?= ;ULR $6R4$K ## ?K LURKR ?=LR=R $XAK$LL6?= R?
R4$ VK69$ #$9K$# Y R4$ K$A96R?KD K$A96R?K 6L L4?KR54=# *?K ;U9R6A9$ L$L! =# 4L
R4$ L;$ ;$=6=2 L 6* R4$ ?#$ WL $XA=#$# L W6R4 0@M 9??AD = ##6R6?=! 6* R4$ 6=6R696L$K
6L ?=LR=R $XAK$LL6?= =# R4$ L$?=# $XAK$LL6?= 6L K$9R6?=9 $XAK$LL6?= R4R ?;AK$L
R4$ VK69$ #$9K$# Y R4$ K$A96R?K R? ?=LR=R $XAK$LL6?=! R4$ VK69$ #$9K$# Y R4$
K$A96R?K 6L RK$R$# L ?=LR=R $XAK$LL6?= 6= R4$ K$A96R?K ?#YD 4$ #$9K$# VK69$
;Y =?R $ ;?#6.$# ?URL6#$ ?* R4$ K$A96R?KD
* R4$ LRR$;$=R $*?K$ R4$ ?9?= 6L 99 R? RK=LR6?= *U=R6?= BMD>D@D@C R4$= R46L 6L
?=L6#$K$# L4?KR4=# *?K L9V$ RK=LR6?= LRR$;$=R R4R A$K*?K;L R4$ 99D 4$ $=9$
$XAK$LL6?= ;ULR 4V$ K6R4;$R6 RYA$! =# 6R ;ULR =?R ;?#6*Y 9?9 VK69$! LRR6 VK69$
?K K$*$K$=$ AK;$R$KN =Y *U=R6?=L 99$# W6R46= R4$ $XAK$LL6?=! K$UKL6V$9Y! ;ULR =?R
;?#6*Y LRR6 VK69$! K$*$K$=$ AK;$R$K! ?K A$K*?K; = 6=AUR ?K ?URAURD 4$ ;?#6.R6?=
KU9$L R4R AA9Y R? R4$ $=9$ $XAK$LL6?= 9L? AA9Y R? R4$ K2U;$=RL ?* 99 R? L$9$R
*U=R6?=N R4$ KU9$L 9L? AA9Y R? = 6=AUR LRR$;$=R R4R AA$KL $*?K$ R4$ ?9?=! $X$AR
R4R R4$ 6=AUR 9V9U$ 6L BY #$.=6R6?=C ;?#6.$#D = 6=AUR 2UK# R4R UL$L =Y ?L$KV9$
$4V6?UK ?= A?KR AK6?K R? $6=2 L$9$R$# 6L 6=V96#D 4$K$ ;Y $ R ;?LR ?=$ +,0V:S
9$9 LL?6R$# W6R4 L$9$RD
2UK#$# LRR$;$=R ;Y 9L? ?=L6LR ?* 99 R? L$9$R *U=R6?= BL$$ MD>D@DTC *?99?W$#
Y L$;6?9?=D 4$ KU9$L R4R AA9Y R? R4$ $=9$ $XAK$LL6?= 9L? AA9Y R? R4$ K2U;$=RL ?*
99 R? L$9$R *U=R6?=D 4$ A?KRL! R6;$KL =# 4==$9 $=#L =;$# $*?K$ $4 ?9?=! =#
L K2U;$=RL R? L$9$R *U=R6?=! ;ULR $ #6LR6=RD
4$= R4$ N,:,(S LRR$;$=R 6L $X$UR$#! $4 2UK# R4R ?=R6=L =? $=9$ $XAK$LL6?= 6L
$=9$#D ?K $4 2UK# ?=R6=6=2 = $=9$ $XAK$LL6?=! R4$ $XAK$LL6?= 6L $V9UR$# =#! 6*
6R ?;AK$L U=$FU9 R? [! R4$ L$ 6L $=9$#D 4$ $4V6?UK ?* 99 R? L$9$R *U=R6?= 6L
R4$ L;$ L 6* R4$ L$L ?* R4$ L$9$R *U=R6?= W$K$ 6=9U#$# 6=96=$ 6= R4$ L$9$RD
?99?W6=2 R4$ $=96=2 L$FU$=$! 6* =? L$L K$ $=9$# R4$= $6R4$K R4$ +,0V:S L$ 6L
$X$UR$#! 6* AK?V6#$#! ?K =?=$ ?* R4$ LULRR$;$=RL ?* R4$ L$9$R 6L $X$UR$# =# R4$ L$9$R
8 @@01@< 2=
=$V$K ?;A9$R$L B6R #$#9?8LCD R4$KW6L$! R4$ L$9$R W6RL U=R69 = 6=AUR ?K RK=LR6?= 6=
?=$ ?* R4$ $=9$# L$L 6L K$#Y =# A$K*?K;L R4$ ?KK$LA?=#6=2 6=AUR ?K RK=LR6?=D *
;?K$ R4= ?=$ ?* R4$L$ 6=AURL ?K RK=LR6?=L 6L K$#Y R4$= R4$ 4?6$ ?* W464 6L $X$UR$#
6L ;#$ =?=#$R$K;6=6LR699YD
*R$K A$K*?K;6=2 = 6=AUR ?K RK=LR6?=! R4$ LRR$;$=RL *?99?W6=2 R4$ ?9?= ?* R4$
L$9$R$# L$ K$ $X$UR$#D
4$ LRR$;$=RL *R$K R4$ ?9?= 6= $4 N,:,(S L$ LRR$;$=R ;ULR R$K;6=R$ W6R4
!M,9 ?K M,SVM=! L? R4R ?=RK?9 =$V$K 0?WL *K?; ?=$ L$ LRR$;$=R R? R4$ =$XRD
8 8= C05 @@01@<
U;A LRR$;$=RL RK=L*$K ?=RK?9 U=?=#6R6?=99YD
$5',"244'(4 )). (@=S7=V, O
# !M,9 O
# M,SVM= 8,122#*( !( O
# M,SVM= $ 8,122#*(" % O
(@=S7=V, LRR$;$=R ;Y AA$K ?=9Y W6R46= = 6R$KR6?= LRR$;$=R! =# ;Y =?R AA$K 6=
AK99$9! ;LR$K ?K L9V$ LRR$;$=R! U=9$LL R4R LRR$;$=R ?=R6=L = 6R$KR6?= LRR$;$=R 6=
W464 6R 6L $=9?L$#D R UL$L ?=RK?9 R? ALL R? R4$ 9??A5?=R6=UR6?= A?KR6?= ?* R4$ L;99$LR
$=9?L6=2 LU4 LRR$;$=RD
2 1'C' 5+$@+31
8 8 31C;;1G @@01@
? R4R L$V$K9 LRR$;$=RL = $ $X$UR$# ?=UKK$=R9Y! R4$ AK99$9 LRR$;$=R 6L AK?V6#$#D
,1&&&"244'(4 )). BM 1,*1 !( $ 4!1 %
4==$9 ;Y =?R $ UL$# 6= ;?K$ R4= RW? LRR$;$=RL ?* BMD 4==$9 $=#L! A?KRL
=# R6;$KL ;Y =?R $ UL$# 6= ;?K$ R4= ?=$ LRR$;$=R ?* BMD
* LRR$;$=R ?=R6=L ?* =U;$K ?* LU5LRR$;$=RL! LU4 L ?;A?U=#5LRR$;$=R
BMD%D1C! R4$= 99 ?* R4$ LU5LRR$;$=RL K$ ?=L6#$K$# R?2$R4$K L L6=29$ LRR$;$=R *?K R4$
AUKA?L$ ?* R46L KU9$D
8 82 ;1<@+31 @@01@
? R4R L$V$K9 ?;;U=6R6?=L ?V$K 4==$9 = $ 9?2699Y 2K?UA$# R?2$R4$K! R4$
RK=LR6?= LRR$;$=R 6L AK?V6#$#D
41(24#*("244'(4 )). 2&6"244'(4
# '241"244'(4
4$ ?=9Y LR?K2$59LL LA$6.$KL 99?W$# ;?=2 R4$ #$9KR6?= LA$6.$KL K$ ,ZS,M=! NSS7(
?K 7=:7=,N L$$ MD@[DT *?K R4$ $+$RD 4$ $996AL$L G* FFFH ?A$KR?K 6L =?R 99?W$# 6= *U=R6?=
#$.=6R6?=LD
*U=R6?= ;Y K$RUK= = K6R4;$R6 RYA$! LRKURUK$! U=6?= ?K X@7+! UR =?R K$L?UK$
RYA$! *U=R6?= ?K = KKYD 9R$K=R6V$9Y 6R ;Y K$RUK= 96LR ?* =Y ?;6=R6?= ?* K6R4;$R6
RYA$L! LRKURUK$L =# U=6?=LD *U=R6?= ;Y =?R K$RUK= LRKURUK$ ?=R6=6=2 ;$;$K ?K!
K$UKL6V$9Y! =Y LU;$;$K ?* K$L?UK$ RYA$D
=9$LL R4$ AK;$R$KL ?=L6LR L?9$9Y ?* X@7+! 6=#6R6=2 R4R R4$ *U=R6?= R8$L =? AK;5
$R$KL! $4 #$9KR?K 6= R4$ AK;$R$K 96LR ;ULR ?=R6= = 6#$=R6.$KD 4$ AK;$R$KL K$
U=#$KLR??# R? $ #$9K$# 7ULR *R$K R4$ $26==6=2 ?* R4$ ?;A?U=# LRR$;$=R ?=LR6RUR6=2
R4$ *U=R6?=JL ?#Y! =# R4UL R4$ L;$ 6#$=R6.$KL ;ULR =?R $ K$#$9K$# R4$K$ B9R4?U24
R4$Y ;Y $ K$#$9K$# 6= 6==$K 9?8LCD UK6=2 R4$ 99 R? *U=R6?=! R4$ K2U;$=RL K$
?=V$KR$# L =$$LLKY =# LL62=$# R? R4$ AK;$R$KLN L$$ MDPDSDTD
*U=R6?= #$9KR6?= ;?#6.$# Y R4$ 8$YW?K# N,:,(S 6L L$9$R *U=R6?= BL$$ MDODOD1CD
4$ *U=R6?= ?#Y ?=L6LRL ?* 96LR ?* 2UK#$# LRR$;$=RL! W464 6L Y #$.=6R6?= L$9$R
LRR$;$=R BL$$ M D%D/CD 4$ 2UK#L ?* L$9$R *U=R6?= ;Y =?R ?=R6= K$A96R?KL ?K
RK=LR?KLD
#$.=6R6?=L K$ RK$R$# L K$#U=#=R #$9KR6?=LD * =? #$.=6R6?= *?K R4$ ?7$R AA$KL 6=
R4$ RK=L9R6?= U=6R! 99 6RL R$=RR6V$ #$.=6R6?=L $?;$ L6=29$ #$.=6R6?= W6R4 6=6R696L$K [D
4 ?7$R ;ULR 4V$ $XR9Y ?=$ #$.=6R6?=D ?K ?7$RL W6R4 6=R$K=9 96=82$! R4$ KU9$L
AA9Y L$AKR$9Y R? $4 RK=L9R6?= U=6RD ?K ?7$RL W6R4 $XR$K=9 96=82$! 6R AA96$L R? R4$
$=R6K$ AK?2K;D
84I8B +1-'
6R46= RK=L9R6?= U=6R! 99 #$9KR6?=L ?* R4$ L;$ ?7$R ?K *U=R6?= 6#$=R6.$K W6R4 6=R$K=9
96=82$ K$*$K R? R4$ L;$ R46=2! =# R4$ ?7$R ?K *U=R6?= 6L U=6FU$ R? R4R RK=L9R6?= U=6RD
99 #$9KR6?=L *?K R4$ L;$ ?7$R ?K *U=R6?= 6#$=R6.$K W6R4 $XR$K=9 96=82$ K$*$K R? R4$
L;$ R46=2! =# R4$ ?7$R ?K *U=R6?= 6L L4K$# Y R4$ $=R6K$ AK?2K;D
4$ .KLR $XR$K=9 #$9KR6?= *?K = 6#$=R6.$K 26V$L R4$ 6#$=R6.$K 6=R$K=9 96=82$ 6* R4$
NSS7( LA$6.$K 6L UL$#! $XR$K=9 96=82$ ?R4$KW6L$D
= 6=96=$ #$.=6R6?= BMDODSC #?$L =?R AK?V6#$ = $XR$K=9 #$.=6R6?= *?K R4$ *U=R6?= =#
#?$L =?R *?K6# = $XR$K=9 #$.=6R6?=D = 6=96=$ #$.=6R6?= AK?V6#$L = 9R$K=R6V$ R? =
$XR$K=9 #$.=6R6?= W464 ;Y $ UL$# 6R 6;A9$;$=R =Y 99 R? R4$ *U=R6?= 6= R4$ L;$
RK=L9R6?= U=6RD R 6L U=LA$6.$# W4$R4$K 99 R? R4$ *U=R6?= UL$L R4$ 6=96=$ #$.=6R6?= ?K
R4$ $XR$K=9 #$.=6R6?=D
4IB 1'C' 5+$@+31
84A ;5;3<<+1'
4$ AK$AK?$LL?K LA$6.R6?= 6L #$.=$# R? $ R4$ L;$ L W6R4 >> O! MPD@[! W6R4 R4$
*?99?W6=2 $X$AR6?=L
84& ;00;
$9?W 6L LU;;KY ?* R4$ 2K;;K 26V$= R4K?U24?UR R46L AA$=#6XD 4$ 2K;;K 4L U=#$5
.=$# R$K;6=9 LY;?9L #(4 1"*(24(4! !141"*(24(4! #(4#1! 241#( =# (5'14#*("
*(24(4N W?K#L =# LY;?9L WKRR$= 6= S[B,YM7S,M K$ R$K;6=9L 26V$= 96R$K99YD
#(,54"*,14*1 )). )4
# )4 44
*54,54"*,14*1 )). ;)
# ;) 44
4$ LA$6.R6?= 26V$= 6= R46L AA$=#6X #$LK6$L R4$ *U=R6?=9 $4V6?UK ?* Q ?A$KR6?=L
?= A?KRLD
?K R4$ AUKA?L$ ?* #$LK66=2 L$;=R6L! A?KR = $ #$.=$# L ?99$R6?= ?* ?=UK5
K$=R R4K$#L R4R A$K*?K; =U;$K ?* *U=R6?=L ?= #R L 6R 0?WL $RW$$= R4$ AK?$LL?K
=# R4$ A6=LD 4$ ?;A?L6R6?=9 ;?#$9 ?* = A?KR 6L L4?W= 6= R4$ #62K; $9?WD
#!
$
Clocking,
Timing and Serialisation Buffering
Strobing Component Component
Component "
&
?2699Y! A?KR ?;AK6L$L R4K$$ ?;A?=$=RL R4R $XR$=# GKW A?KRH W6R4 *U=R6?=96RY
LU4 L 9?86=2! R6;6=2! LRK?6=2! L$K696LR6?= =# U+$K6=2D 4$ AK?2K; $9?W #$.=$L
;?#$9 *?K R4$L$ ?;A?=$=RL =# R4$6K ?==$R6V6RYD
=;HL =49I & $65 & H49 & H;OL J
49L R & = J
49L '4H($L4;9 J
Y #$.=6=2 R4$ *U=R6?=96RY ?* A?KRL 6= R46L WY! R4$ RL8 ?* AK?2K;;6=2 A?KRL = $
?=L6#$K$# =9?2?UL R? 6=R$K*6=2 W6R4 ?R4$K ?;A?=$=RL 6= ?=UKK$=R LYLR$;D
R246( ><?
I(6($L
$I( $65 R2(9 =49I9(C > $656 ? % 1 $656 %
4, >+ $656 ILL( ** ?
=49I 7% 'L J
ILL( * J
!
(6I( 4, > $656 ILL( ** ?
=49I % 1 'L J
4I 7% 'L J
ILL( * J
!
(6I( 4, > $656 ILL( ** ?
4I 7% VJ
ILL( * J
!
H(5 J
$I( > ILL( ** ? * 1 4I % 1 ILL( %
IR4L$2 > ILL( ?
$I( %
4I % 1 'L J
H(5 J
$I( %
H(5 J
!
H(5 J
! ! !
B.1 The Functional Model of Clocked I/O 113
The declaration
declares clkTimeStrobe to be a function that takes a raw data port on which to sample and
drive data, a raw port on which to sample clock edges and a channel end for interfacing with
a processor. The type pwidth_t is the same size as the port width.
The function performs the following I/O operations on raw ports:
The clocking component waits for both clock edges and for requests from the processor.
After receiving an output request, on the next falling edge of the clock, the data is driven and
an acknowledgement is communicated to the processor. After receiving an input request, on
the next sampling edge of the clock, data is sampled and communicated to the processor.
The program below shows the use of the clocked port by a thread, assumed to be executed
on a processor, that performs the same sequence of outputs as the example given in §4.1.
(Note that on XCore devices, the ports are interfaced directly by the ISA, rather than using a
channel interface, so this program is not in practice generated.)
port p , c ;
The for loop outputs data to the function clkTimeStrobe, which then drives this data on the
next falling edge of its clock. On XS1 devices, all ports used for data are buffered (see §C.1),
which means that the acknowledgement happens almost immediately.
Note that XC’s I/O semantics do not require a clock to provide edges at regular intervals,
or even to provide edges at all. Neither do the semantics specify the state in which a port
is initialised. The I/O semantics are therefore captured entirely within the for loop, with
implementation-defined initialisation appearing outside of the loop (see §C.2). I/O timing
characteristics are implementation-defined.
44& ? 5+$@+31
R6;$# ?URAUR UL$L R4$ A?KR R? W6R U=R69 6RL ?U=R$K $FU9L R4$ LA$6.$# R6;$ =#
R4$= $4V$L L 9?8$# ?URAURD
R6;$LR;A$# ?URAUR UL$L R4$ AK?$LL?K R? W6R U=R69 R4$ ?URAUR 6L #K6V$= =# R?
R4$= K$?K# R4$ V9U$ ?* R4$ A?KR ?U=R$K R R46L R6;$D
R6;$# 6=AUR UL$L R4$ AK?$LL?K R? W6R U=R69 R4$ A?KR ?U=R$K $FU9L R4$ LA$6.$#
R6;$ 6= R4$ *URUK$ =# R4$= $4V$L L 9?8$# 6=AURD
4$ K$#Y56= L62=9 6L L;A9$# ?= R4$ K6L6=2 $#2$ ?* R4$ A?KRJL 9?8D
=AUR $#2$L ?UK ?= K6L6=2 $#2$L ?* R4$ A?KRJL 9?8 W4$= R4$ K$#Y56= L62=9 6L 4624D
URAUR $#2$L ?UK ?= *996=2 $#2$L ?* R4$ A?KRJL 9?8 W4$= R4$ K$#Y56= L62=9 WL
L;A9$# 4624 ?= R4$ AK$V6?UL K6L6=2 $#2$D
4$ *U=R6?=L $9?W #$.=$ R4$ 9?86=2QR6;6=2QLRK?6=2 ?;A?=$=R! W464 = $ ?=.2UK$#
R? UL$ K$#Y56= =# K$#Y5?UR L62=9 =# 6L A9$ ?* A$K*?K;6=2 R6;$# =# R6;$LR;A$#
?A$KR6?=LD
Q;4' /(L9(C > $29(9' $ & 49L 4I48(' & $;O9L(HPL L48( & 49L 4I ?
K =H;L;$;6 ,;H 49=OLL49/ 9 0 49=OL H(CO(IL G ,H;8 $299(6 K
$ % 1 4I48(' J KK /(L L48( > $;9LH;6 ?
4, > 4I48(' ?
$ % 1 L48( J KK /(L L48( > 'L ?
$ % 1 4I J KK /(L L48(IL8= > $;9LH;6 ?
!
Q;4' /(L OL(C > $29(9' $ & =R4'L2PL 'L & 49L 4I48(' &
$;O9L(HPL L48( & 49L 4I ?
K =H;L;$;6 ,;H 49=OLL49/ 9 0 ;OL=OL H(CO(IL G ,H;8 $299(6 K
$ % 1 'L J KK /(L ;OL=OL > 'L ?
$ % 1 4I48(' J KK /(L L48( > $;9LH;6 ?
4, > 4I48(' ?
$ % 1 L48( J KK /(L L48( > 'L ?
$ % 1 4I J KK /(L L48(IL8= > $;9LH;6 ?
!
8B .3-+1' +0+1' 1 @;3+1' 305311@ 44%
Q;4' $6548(LH;( > =;HL =49I & 49L 4I('T9 & =;HL H49 & 49L 4I('T OL &
=;HL H;OL & =;HL $65 &
$29(9' I(H & $29(9' $6H9 & $29(9' $6H OL ?
=R4'L2PL 'L * VJ
49L ILL( * J
49L $656 * VJ
49L H496 * VJ
49L 4I48(' * VJ
$;O9L(HPL $;O9L(H * VJ
$;O9L(HPL L48( * VJ
49L 4I * VJ
R246( ><?
I(6($L
$I( > ILL( ** ? * 1 I(H % 1 ILL( %
IR4L$2 > ILL( ?
$I( %
/(L OL(C > I(H & 'L & 4I48(' & L48( & 4I ?J
H(5 J
$I( %
/(L9(C > I(H & 4I48(' & L48( & 4I ?J
H(5 J
!
H(5 J
$I( $65 R2(9 =49I9(C > $656 ? % 1 $656 %
4, >+ $656 ? K ,6649/ ('/( K
$;O9L(H BBJ
4, > ILL( ** >+ 4I48(' $;O9L(H ** L48( ??
ILL( * P J
(6I( 4, > ILL( ** >+ 4I48(' $;O9L(H ** L48( ??
ILL( * P J
4, > ILL( ** P >+ 4I('T9 H496 ??
=49I 7% 'L J
4, > 4I('T OL ? H;OL 7% <J
ILL( * J
!
(6I( 4, > ILL( ** P 4I('T OL ?
H;OL 7% <J
(6I( 4, > 4I('T OL ?
H;OL 7% VJ
!
(6I( K H4I49/ ('/( K
4, > 4I('T9 ?
H49 % 1 H496 J
4, > ILL( ** ?
I(H 7% VJ 4, > 4I ? I(H 7% $;O9L(H J
ILL( * J
!
(6I( 4, > ILL( ** P >+ 4I('T9 H496 ??
=49I % 1 'L J
I(H 7% 'L J 4, > 4I ? I(H 7% $;O9L(H J
ILL( * J
!
!
H(5 J
$I( $6H9 % 1 49L S % $6H OL 7% S J ILL( * J H(5 J
! ! !
44> ? 5+$@+31
= ?URAUR ?* 756R V9U$ ?= , A6=L 6L #K6V$= ?V$K 7Q, ?URAUR $#2$L! 9$LR L62=6.=R
6RL .KLRD
4$ R6;$ LA$6.$# Y R6;$# ?K R6;$LR;A$# ?URAUR K$AK$L$=RL R4$ R6;$ *K?; W464
R4$ .KLR , 6RL ?* #R K$ #K6V$=N R4$ AK?$LL?K 9?8L U=R69 R4$ 9LR , 6RL K$ #K6V$=D
= 6=AUR ?* 756R V9U$ ?= , A6=L 6L L;A9$# ?V$K 7Q, 6=AUR $#2$L! W6R4 $K96$K 6RL
K$$6V$# 6=L$KR$# 6= R4$ 9$LR L62=6.=R 6RL ?* 7D
4$ R6;$ LA$6.$# Y R6;$# ?K R6;$LR;A$# 6=AUR K$AK$L$=RL R4$ R6;$ *K?; W464
R4$ .KLR@ , #R 6RL K$ K$# *K?; R4$ A6=LD
Q;4' =OL9(C > $29(9' $LI & 49L 4I48(' & $;O9L(HPL L48( & 49L 4I ?
K =H;L;$;6 ,;H 49=OLL49/ 9 0 ;OL=OL H(CO(IL G ,H;8 $299(6 K
$LI 7% J
4, > 4I48(' ?
$LI 7% <J
$LI 7% L48( J
!
(6I(
$LI 7% VJ
$LI 7% 4I J
!
@ = @ #$V6$L! R4$ R6;$ LA$6.$# Y R6;$# ?K R6;$LR;A$# 6=AUR 6L R4$ R6;$ *K?; W464
R4$ &24 6RL K$ L;A9$# BL$$ M D@D@CD 46L K$FU6K$L R4$ L$K696L$K R? $ ?=R6=U99Y R6V$ BAUL4
;?#$9C! KR4$K R4= $6=2 R6VR$# Y R4$ U+$K6=2 ?;A?=$=R BAU99 ;?#$9CD R 6L =R66AR$#&UR =?R
2UK=R$$#&R4R *URUK$ 2$=$KR6?=L ?* R4$ K46R$RUK$ W699 LUAA?KR R4$ ?V$ L$;=R6LD
8A ;+.+<@+31 305311@ 44=
Q;4' I(H464I(H > 49L R & 49L = & $29(9' $LI & $29(9' O,9 & $29(9' O, OL &
$29(9' $6H9 & $29(9' $6H OL ?
LR4'L2PL 'L * VJ
$;O9L(HPL L48( * VJ
$;O9L(HPL LI * VJ
49L $6H * VJ
49L 4I48(' * VJ
49L 4I * VJ
R246( ><?
I(6($L
$I( O,9 % 1 49L ;= %
IR4L$2 > ;= ?
$I( %
/(L OL(C > O,9 & 'L & 4I48(' & L48( & 4I ?J
,;H > 49L 4 *VJ 4 7 R K = J 4 BB?
=R4'L2PL $2O95 * >>< 77 = ? 3 <? 'L J
'L 1 1* = J
=OL OL(C > $LI & $2O95 & > 4I48(' 4 ** V? & L48( & <?J
$LI % 1 49L J KK IT9$2H;94I(
$LI % 1 LI J KK /(L LI > 'L ?
!
O,9 7% VJ KK IT9$2H;94I(
4, > 4I ? O,9 7% LI J KK =OL LI > $;9LH;6 B 'L ?
H(5 J
$I( %
/(L9(C > O,9 & 4I48(' & L48( & 4I ?J
$6H * VJ
,;H > 49L 4 *VJ 4 7 R K = + $6H J 4 BB?
4, > 4 ** V?
=OL9(C > $LI & 4I48(' & L48( & 4I ?J
(6I(
=OL9(C > $LI & V & L48( & V?J
I(6($L
$I( $LI % 1 =R4'L2PL $2O95 % KK /(L 49=OL > 'L ?
'L * > 'L 11 = ? > $2O95 77 >R 3 = ??J
4, > 4 ** V 4I ?
$LI % 1 LI J KK /(L LI > 'L ?
H(5 J
$I( $6H9 % 1 49L S % KK $6(H > $;9LH;6 ?
$6H * <J
$6H OL 7% S J
H(5 J
! !
4, >+ $6H ?
O, OL 7% 'L >>< 7 7 R ? 3<?J KK =OL ;OL=OL > 'L ?
4, > 4I ? O, OL 7% LI J KK =OL LI > 'L ?
!
H(5 J
!
H(5 J
$I( $6H9 % 1 49L S %
$6H OL 7% S J
H(5 J
! ! !
44 ? 5+$@+31
4, > I4U( ** V?
R246( ><?
4I % 1 49L ;= J
IR4L$2 > ;= ?
$I( %
/(L OL(C > 4I & 'L & 4I48(' & L48( & 4I ?J
=OL OL(C > I(H & 'L & 4I48(' & L48( & 4I ?J
I(H % 1 49L J
4, > 4I ? I(H % 1 LI J
4I 7% VJ
4, > 4I ? 4I 7% LI J
H(5 J
$I( %
/(L9(C > 4I & 4I48(' & L48( & 4I ?J
=OL9(C > I(H & 4I48(' & L48( & 4I ?J
I(H % 1 'L J
4I 7% 'L J
4, > 4I ?
I(H % 1 LI J
4I 7% LI J
! !
! !
(6I( 4, > '4H($L4;9 ** ?
=;HLO,,(H OL > I4U( & ' & 4I ?J
(6I(
=;HLO,,(H9 > I4U( & ' & ( & 4I & 4I;OL & $6H9 & $6H OL ?J
!
8&84 C1@+31<
4$ U+$K6=2 ?;A?=$=RL #$.=$# 6= R4$ *?99?W6=2 L$R6?=L ;8$ UL$ ?* LR=#K# .KLR56=5
.KLR5?UR B C #R LRKURUK$! W464 6L 6=R$K*$# UL6=2 R4$ *?99?W6=2 *U=R6?=L
7=S 7N<BS[C 0D
$RUK=L =?=5Z$K? 6* R4$ 6L $;ARY! =# Z$K? ?R4$KW6L$D
7=S 7NV::C 0D
$RUK=L =?=5Z$K? 6* R4$ 6L *U99! =# Z$K? ?R4$KW6L$D
R246( ><?
4, >+ 4I8=LT > ? + R4L ?
'L & L48( ! * /(L(' > ?J
=OL OL(C > I(H & 'L & > L48( +* ? & L48( & 4I ?J
R4L * <J
!
I(6($L
$I( + 4IO66 > ? * 1 4I % 1 49L ;= %
IR4L$2 > ;= ?
$I( %
/(L OL(C > 4I & 'L & 4I48(' & L48( & 4I ?J
4I 7% VJ
4, > 4I48(' ?
''46 > & 'L & L48( ?J
(6I(
''46 > & 'L & ?J
H(5 J
$I( %
K 48=6(8(9LL4;9 3 '(,49(' (2Q4;OH K
H(5 J
!
H(5 J
$I( I(H % 1 LI %
4, > 4I8=LT > ? 4I ?
4I 7% LI J
R4L * VJ
H(5 J
! ! !
120 XC I/O Specification
?=#6R6?=9 6=AUR W6R4 R4$ *U=R6?= B7=N,H UL$L #R R? $ L;A9$# Y R4$ A?KR ?=
6=AUR $#2$L U=R69 R4$ V9U$ ?* R4$ L;A9$# BA?KR5W6#R4C 6RL 6L $FU9 R? R4$ LA$6.$#
AK;R$K V9U$N R4$ AK?$LL?K W6RL U=R69 R46L R6;$! R86=2 R4$ ;?LR K$$=R #R
L;A9$#D
?=#6R6?=9 6=AUR W6R4 R4$ *U=R6?= B7=N=N,H UL$L #R R? $ L;A9$# Y R4$
A?KR ?= 6=AUR $#2$L U=R69 R4$ V9U$ ?* R4$ L;A9$# BA?KR5W6#R4C 6RL 6L U=$FU9 R? R4$
LA$6.$# AK;R$K V9U$N R4$ AK?$LL?K W6RL U=R69 R46L R6;$! R86=2 R4$ ;?LR K$$=R
#R L;A9$#D
R6;$# ?=#6R6?=9 6=AUR UL$L R4$ AK?$LL?K R? W6R U=R69 R4$ A?KR ?U=R$K $FU9L
R4$ LA$6.$# R6;$ =# R4$= $4V$L L ?=#6R6?=9 6=AURD
Pins Conditional
Component
#!
$
Clocking,
Timing and Serialisation Buffering
Strobing Component Component
Component "
&
46L ?;A?=$=R K$FU6K$L R4$ AK?R??9 UL$# R? ?;;U=6R$ 6=AUR K$FU$LRL R4K?U24 R4$
U+$K6=2 =# L$K696LR6?= ?;A?=$=RL R? $ $XR$=#$# R? ALL ?=#6R6?=! W464 ;Y $
$6R4$K (*(! ,#(2 05& 4* ?K ,#(2 5(05& 4*D 4$ *U=R6?= ?= R4$ =$XR A2$ #$.=$L R4$
A6=L5?=#6R6?=9 ?;A?=$=RD ?K R46L ?;A?=$=R R? $ 6=R$2KR$#
R246( ><?
O, % 1 49L J KK /(L 49=OL H(C > $;9LH;6 ?
/(L9(C > O, & 4I48(' & L48( & 4I ?J
O, % 1 $;9' J
O, % 1 $;9'L J KK /(L $;9' > 'L ?
9 * VJ
8L$2(' * VJ
R246( >+ 8L$2(' ?
=OL9(C > $LI & > 4I48(' 9 ** V? & L48( & 4I ?J
$LI % 1 'L J KK /(L 49=OL > 'L ?
4, > 4I ?
$LI % 1 LI J KK /(L LI > 'L ?
IR4L$2 > $;9' ?
$I( %
8L$2(' * <J
H(5 J
$I( %
8L$2(' * > 'L ** $;9'L ?J
H(5 J
$I( %
8L$2(' * > 'L +* $;9'L ?J
H(5 J
! !
O, 7% 'L J KK I9' 'L > 'L ?
4, > 4I ?
O, 7% LI J KK I9' LI > 'L ?
H(5 J
!
!
A P P E N D I X C
XS1 Implementation of XC
The following sections describe the XS1 implementation of XC, including the extent to which
the I/O specification is implemented, the standard port library, port-to-pin mappings, and
the size and alignment of types.
Operation
Mode Serialisation Strobing @ when
Unqualified
buffered
8484 ;+.+<@+31
* L$K696LR6?= 6L UL$# BL$$ MDSC! R4$ R6;$ LA$6.$# Y R6;$# 6=AUR LRR$;$=R K$?K#L R4$
R6;$ R W464 R4$ &24 6RL 6* #R K$ L;A9$#D 46L = K$LU9R 6= U=$XA$R$# $4V6?UK W4$=
L$K696LR6?= 6L UL$#! L6=$ R4$ ?=LRKUR6?=
=H
= L 7% S J
C L %1 TJ
!
UL$L R4$ ?URAUR ?= B R? LRKR R R4$ L;$ R6;$ L R4$ 6=AUR ?= H ?;A9$R$LD ? 6=AUR =#
?URAUR R46L #R 6= AK99$9! R4$ 6=AUR R6;$ L4?U9# $ ?+L$R 6= R4$ L?*RWK$ Y = ;?U=R
$FU9 R? R4$ R4$ RK=L*$K W6#R4 #6V6#$# Y R4$ A?KR W6#R4D
848B +0<@05+1'
4$ R6;$LR;A K$?K#$# Y = 6=AUR LRR$;$=R ;Y ?;$ *R$K R4$ R6;$ W4$= R4$ #R WL
L;A9$#D 46L 6L $UL$ R4$ @ AK?V6#$L L$AKR$ 6=LRKUR6?=L *?K 6=AURR6=2 #R =#
6=AURR6=2 R4$ R6;$LR;A! L? R4$ R6;$LR;A = $ 6=AUR *R$K R4$ =$XR #R 6L L;A9$#D 46L
6LLU$ 9L? +$RL ?URAUR LRR$;$=RL! UR #?$L =?R +$R 6=AURL A$K*?K;$# 6= R4$ 2UK#L ?*
N,:,(S LRR$;$=RD ?;A69$K L4?U9# 6=AUR R4$ R6;$LR;A 6;;$#6R$9Y *R$K $X$UR6=2 =
6=AUR ?K ?URAUR 6=LRKUR6?=! L? 6= AKR6$ R46L $4V6?UK 6L KK$9Y L$$=D
4$ =U;$K ?* 9?8 9?8L V699$ 6L 26V$= 6= R4$ #$V6$ #RL4$$RD 4$6K =;$L K$ L R4$
?V$ #$9KR6?=! =U;$K$# L$FU$=R699Y *K?; @D
4$ *U=R6?=L $9?W K$ UL$# R? ?=.2UK$ 9?8 9?8D
8B 4 3;@ +;;G /F<48)( 4B%
X@7+ (@=073VM,W7=WB@MSW5=+N59,
CX@7+ B@MS B* 7= B@MS M,+[7=* @VS B@MS M,+[@VS* (:@(9 (:9D
4$L$ *U=R6?=L ?=.2UK$ A?KR W6R4 LA$6.$# 9?8! K$#Y56= =# K$#Y5?UR
L62=9L 6= 6=AUR ;?#$D * $6R4$K R4$ K$#Y56= ?K K$#Y5?UR A?KRL K$ =?R @56R W6#$!
= $X$AR6?= 6L K6L$#D B$$ MDT =# MD@DC
= ?URAUR ?* @ UL$L =? V9U$ R? $ #K6V$=N W4$= R4$ A6= 6L =?R #K6V6=2 #R! R4$
AU995UA K$L6LR?K $=LUK$L R4R R4$ V9U$ L;A9$# Y R4$ A?KR 6L 4624D 4$ AU995UA
6L =?R LRK?=2 $=?U24 R? 2UK=R$$ #$.=$# $XR$K=9 V9U$D
XnD36 1M 8D 0 16B 8
XnD37 1N 8D 1 16B 9
XnD38 1O 8D 2 16B 10
XnD39 1P 8D 3 16B 11
XnD40 8D 4 16B 12
XnD41 8D 5 16B 13
XnD42 8D 6 16B 14
XnD43 8D 7 16B 15
@
T ?U29L RR =# UW $##$LD ! **&2 21 5#D 6;6R$#! T[[>D
S $R$K $#6=2$K =# 96 6X?= =# ?LL W$= =# $69 64K#L =# V6#
Y =# $=8 U99$KD @ ?KRL UL$ =# LA$6.R6?=D $L6R$! T[[%D -GG9"
FFNNN=O47D=!74F9K2/D-%$FOD8.97CGD9%!D
1 6R46 @1 $K6$L D $L6R$! T[[%D -GG9"FFNNN=)CC%22=!74F$GD-%%GDF
E8*HH=9$)D
/ %[TDS $R6?= TD $L6R$! T[[%D -GG9"FFDG5$C$D=/%%%=7C+F+%G/%%%&RJF
$7N527$F&RJ=H.JRR*LD%!G/75J=9$)D
P K6= D $K=624= =# $==6L D 6R46$D ! ,1* 1''#( &( 5 D K$=R6$
99 K$LL! AA$K ##9$ 6V$K! ! ! @>%%D
% ?U29L RR =# 64K# L?K=$ =# KR6= ?U=2D @ ST56R AA965
R6?= 6=KY =R$K*$D $L6R$! T[[>D -GG9"FFNNN=O47D=!74F9K2/D-%$F/6ED
Index
struct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85 T
type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 \t tab character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 table of escape sequences . . . . . . . . . . . . . . . . . . . 69
standard output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 table of operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
start_clock library function . . . . . . . . . . . 41, 125 tag
statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91–99 enumeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
statements, sequencing of . . . . . . . . . . . . . . . . 6, 91 structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
static storage class . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
static storage class specifier . . . . . . . . . . . . . . . 83 tentative definition . . . . . . . . . . . . . . . . . . . . . . . . . 100
static variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 thread, deterministic performance. . . . . . .iii, 37
statics, initialisation of . . . . . . . . . . . . . . . . . . . . . . . 90 threading . . . . . . . . . . . . . . . . . . . . see par statement
stdcore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 time operator, @ . . . . . . . . . . . . . . . . . . . . . . 43, 92–94
stop_clock library function . . . . . . . . . . . . . . . . 125 timed input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
storage class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 timed output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
automatic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
declaration of . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 timer declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
definition of . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 timer input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 timer type. . . . . . . . . . . . . . . . . . .16, 17, 71, 84, 130
storage class specifier . . . . . . . . . . . . . . . . . . . . . . . . 83 timer, notional counter type . . . . . . . . . . . . . . . 130
auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 timerafter library function . . . . . . . . . . . . 17, 127
extern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 timestamp operator, @ . . . . . . . . . . . . . . . 43, 92, 94
missing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 timestamped input . . . . . . . . . . . . . . . . . . . . . . . . . 114
register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 timestamped output . . . . . . . . . . . . . . . . . . . . . . . . . 43
service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70, 84 timing semantics . . . . . . . . . . . . . . . . . . . . . . 114, 124
static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83 token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
storage order of array . . . . . . . . . . . . . . . . . . . . . 2, 88 transaction function . . . . . . . . . . . . . . . . . . . . . . . . 100
storage, definition of . . . . . . . . . . . . . . . . . . . . . . . . . 82 transaction keyword. . . . . . . . . . . . . . .34, 83, 100
storage, reservation of . . . . . . . . . . . . . . . . . . . . . . . 82 transaction statement . . . . . . . . . . . . . . . . 32–34, 99
stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34–35, 46 transactor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
streaming qualifier . . . . . . . . . . . . . . . . . . . . . . . 34, 84 transfer width, of port . . . . . . . . . . . . . . . . . . . 56, 71
string concatenation . . . . . . . . . . . . . . . . . . . . . . . . . 69 translation unit . . . . . . . . . . . . . . . . . . . . . 67, 99, 101
string literal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 69 type conversion by return . . . . . . . . . . . . . . . . . . . 98
string literal, initialisation by . . . . . . . . . . . . . 3, 90 type conversion operator . . . . . . . . . . . . . . see cast
string, type of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 74 type conversion rules . . . . . . . . . . . . . . . . . . . . . . . . 73
strobed port . . . . . . . . . . . . . . . . . . . . . . . . . 57–59, 114 type declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
strobed port semantics . . . . . . . . . . . . . . . . . . . . . 114 type equivalence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
struct specifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 type names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
structure declaration . . . . . . . . . . . . . . . . . . . . . . . . . 85 type of constant . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 68
structure initialisation . . . . . . . . . . . . . . . . . . . . . . . 90 type of string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 74
structure member name . . . . . . . . . . . . . . . . . . . . . 86 type qualifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
structure member operator, . . . . . . . . . . . . . . . . 74 type specifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
structure reference semantics . . . . . . . . . . . . . . . 76 type specifier, missing . . . . . . . . . . . . . . . . . . . . . . . 84
structure reference syntax . . . . . . . . . . . . . . . . . . . 76 type, incomplete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
structure tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 typedef declaration . . . . . . . . . . . . . . . . . . . . . . 84, 91
structure, size of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 types
subscripting, array . . . . . . . . . . . . . . . . . . . . . . . . 2, 88 arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
subtraction operator, - . . . . . . . . . . . . . . . . . . . . . . 79 basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
suffix, constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 68 derived . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
switch statement . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 96 integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
sync library function . . . . . . . . . . . . . . . . . . . 52, 127 resource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
synchronising ports . . . . . . . . . . . . . . . . . . . . . . . . . . 52
syntax notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 U
syntax of variable names . . . . . . . . . . . . . . . . . . . . 68 UART case study . . . . . . . . . . . . . . . . . . . . . . . . . 18–23
unary minus operator, - . . . . . . . . . . . . . . . . . . . . . 77
unary plus operator, + . . . . . . . . . . . . . . . . . . . . . . . 77
Index 139
underscore character _ . . . . . . . . . . . . . . . . . . . . . . 68
union declaration. . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
union specifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
union tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
union unitialisation . . . . . . . . . . . . . . . . . . . . . . . . . . 90
unsigned char type. . . . . . . . . . . . . . . . . . . . . . . . . . . .2
unsigned character . . . . . . . . . . . . . . . . . . . . . . . . 2, 70
unsigned constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
unsigned type . . . . . . . . . . . . . . . . . . . . . . . . . . 2, 70, 84
usual arithmetic conversions . . . . . . . . . . . . . . . . 73
V
\v vertical tab character . . . . . . . . . . . . . . . . . . . . . 69
variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2, 70
automatic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
external . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
variable disjointness4, 28–32, 75, 82, 92–94, 98
variable names, syntax of . . . . . . . . . . . . . . . . . . . . 68
void argument list . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
void port type . . . . . . . . . . . . . . . . . . . . . . . 71, 73, 85
void type . . . . . . . . . . . . . . . . . . . . 1, 9, 11, 71, 73, 84
volatile qualifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
W
when condition . . . . . . . . . . . . . . . . . . . . . . . . 16, 93–94
while statement . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 97
white space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
X
\x hexadecimal escape sequence . . . . . . . . . . . . 69
<xs1.h> header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
XS1_PORT_nX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14, 128