HierarchyFilesModulesSignalsTasksFunctionsHelp

/***************************************************************************
****************************************************************************
***
***  Program File:  @(#)master.v
***
***
****************************************************************************
****************************************************************************/
// -----------------------------------------------------------------------------
//
//    COPYRIGHT (C) 1995 BY RAVIcad, Inc.
//    ALL RIGHTS RESERVED
//    PROPRIETARY AND TRADE SECRET
//    USAGE AND DISCLOSURE AS PER LICENSE AGREEMENT.
//
// ----------------------------------------------------------------------------
// @(#)master.v	1.4 10/17/95

//=========================================================================
// @(#)master.v 2/13/96 13:39:38
//
// Description:
//   master :
//		-fifos are now primed directly, and the fifos cannot
//		ignore them.  (host most always load both, even if
//		single words.
//		ATTEMPTS TO AVOID DEADLOCKS!
//		-mas_retry_count0 must also set the host1 fatal indicator
//		so that the host will unlock the cpu if this was a read.
//		(On reads, the host waits for data or host1 fatal)
//		-got_trdy_timeout must also set the host1 fatal indicator
//		so that the host will unlock the cpu if this was a read.
//		(On reads, the host waits for data or host1 fatal)
//
// Chip name:           Falcon PCI Bridge
// Project:             Phoenix (microSPARC-IIe)
//
//=========================================================================
 

/*
		Master STate Machine

	1. The master state machine generally controls the global signals
	such as AD_BUS and CTL_Enable FRAME etc

	while the data flow control is controlled by the fetch or store
	state machines. The fetch and store state machines also control
	operation specific functions such as device boundary crossing etc.

	The particulars of the state machine are better explained in the
	state flow diagrams which are provided with the source code.

	The master state machine has been designed to interface with either
	two backend sources or applications which can request two independent
	requests to initiate bus master operations.

	First Interface

		host_req1 	request signal
		command1	Command in terms of PCI cmds (4 bits)
		address1	pci address of 32 bits
		wcount1		no of 32 bit words requested in the transaction.

	Once the Master state machine is kicked off, mas_start_dma signal
	indicates to the application that the operation has been kicked off.
	The interface signals such as command, address and word_count are
	saved and next operation can be staged.

Data READY During Store operations

	It is assumed by the master state machine that data is ready for
	store operations when a request is made to the master state machine.

	The master state machine will transfer data with zero wait state
	if the target is ready to do so.

Master State Machine
	The Master state machine can pipeline requests for master
	operations.

	1. The state machine is kicked off by the host_req1 signal.

	2. First, the state machine loads the registers in the dma_reg
	module. These registers are composed of

		dma_address (32 bits). The memory address requested by
					the application.

		dma_cmd			is the command for dma_operation.
					for Example,
						1010 	Configuration Read
						1011 	Configuration Write
						0110 	Memory Read
						0111 	Memory Write
	
		dma_word_count		No of 32 bit words minus 1.
					Minus one is used to provide an early
					indication to the master state machine
					in case of zero wait state operations.

		xfer_count0		No. of 32 bit words requested by the
					application.
					This is the actual count, decremented by one,
					as a data word is transferred across the
					PCI bus.

					If an operation is interrupted, due to bus
					latency timer or by the target and
					xfer_count has not reached zero, the master
					state machine will retry the bus operation,
					until all of the data has been transferred.
					Xfer_count will be zero.

					if a fatal error is encountered such as
					master_abort or target_abort is encountered
					the master operation will not be re-tried
					by the master state machine.

	3. Bus request is asserted and the data_xfer is kicked
	off by the master state machine.

	4. Master_state machine takes care of events such as
			bus_latency_timer etc.
			and other cases such as retry and memory_write_invalidate
			etc.

	5. When Master state machine is done, it sets host1_complete

	6. If fatal error conditions are encountered such as master_abort
	or target_abort  or retry count timer exhausted then host1_fatal 
	signal is set.

	7. Non fatal errors such as detection of parity errors etc, are reported
	by setting host1_perr
*/

module master_sm
`ifdef VCS  // VCS Release 5.0.1A
`protected
W.DDF3+T9-K=9P>K-BE79P?)=NUY)2c>(M\@7^<]_56A#-D@Y^^dRUR_0U5FXETc_C,)?A?\_YgM:FS#BR\#J<>>HE1-++=U1=996(g,G[K/(U:C_E.H8_NV\GM,2:]AR];cDfZK.1,BJ-EPWc(BEZa4CYB3R&60
=SUQ#dfG=fUG#YD(N6J7^M=O_CVH4-4G&ZDY98-&S:,[^.ZIaOACU3G1]-g2/)#:
K.^O4V:X,/[57>XTO;Z^>b>&6R#9^)VRL[FQI+dS9eC?CLV3\09F0?XXc[^-8-S7GH.Lg5@X#b5fcag^4Z24dST9[fP=8aY^9_S4eQ&8cEQ^)DY7>:,=CB>W>EO,K[K+5TKBAG>U3(7ECBRTa291=TB=eYYg748^aT=dI+T&ZT#_YWfPRM[+UIFPS+W4?O7[eN6]NQ05[\61O\C-PfMIE5R-9VH@
AO.8Ec+W=NA0O6a_NA?8TYaC1dO/],(,7T<1];ID#aeRS:B:2,Y<)D\[4dXPBWb\
d<8Z/aRdU90@C5b)fC6=J<((5TKgHefDVa1U217XC]a3B&T56II+DH,D2Da)0beG
f.>@g9OD:dS]<53FgU?Ic3B./2F3W]7-&b8a0A1FTS\YMZRE&86N<<6R;8KY<4(f
P]QW<)BGHVF,&DA_-:d;fb#M]U[6b()K)FOA,^22APBM8;]N,(C&J@8XgWXCGI0J
E?1:,-93&&O?U8XA^2:)4BK[3_X;40PM6c@ZJK6A;?Pe>9CQYfEH[3;;AOFHCZ:#a<6^^
ZHPE8,2-FUY&3]@KB9HLDVb1[(2HYe>L1TQ]Y7bFPF#D2(e-;+X5#RE26e+]dHQF
/Q6fJVGB?55/?C.S=W3)PS>f.T;O.G1]a^&V]/Z;6de0UAg64<<>]]\QP#_VEPM?
OgQeUd,@B._QJ+gOX(6&.7-ZGF1/,Sg\SVG?fZ[\S>/B?Dd/,BN9>P-I@GdO;OFG
5SM_8?7?@:fc6JK.ARGaL4/8c:b5G5b4,^[B)RO0/]XIMSV44\bWS6gDJ<^)K?eC4c;VN-+BaRb0OPW_H;e[7N[K5c+GdD_T1
/#^D>KTBD?NA#=[QWYg^(&201A#-^<.]AC]/NDK1.Fg,D-4;1&42E4AK8@QXZIfe
V:L8VG<.P/,@IK?PL1O1#KBeN;d]#]CW_Q=&4J^=1188\@S^OI\H-CVdU5W
TA6J0,[Q9Y8^Gc73=AA[CT+LU0IJ)NdXTgL=\da[0+BRXD=NWWYG&PQ.(A)cUY#^
G2GNR38X2&I-JbSG\VYI=518#]ca-RdcXM=(8M>Rd#-@#We53c8,I5V>&KaQVHD@
U0cPBM6g;Q8X^UW==J:JDP=?NGLM_11WB&EDM[;I0e(P+NIZQHDBP2B/]B+B,Z017GKDO]gcGX-,QD)9Cb_.4,1E,bP2:;W\#
,K=73=0>5WNeCGg@B>>T+=VL\@ZFJ@cT)0::Wg+0
P5]J]]g[:(d\,:@.bC-<7O0P?Paf#5Ug0]BIC\RdbVXW^aC5T;EI/0^WIBXB0=bN
V)K[O353+ZQ>Bd_H[[FG(YYYRFAa\K;_;+(Ag())Q?KB,?-C,EWGb,H961^UMc)S
7V]>Y51-]8Z)^+&;CfZ)P+c]40D[Z02KDE75e^QC577\AEMXEcTCQI]+g/9a;AGW
/7P:6MPN?Ib?=]]acD:fSK[8=YBg/U<,W[]V.cHXK4]gZ#A)U35@O-Y4D/75X[YWc\A(4YD?b4Y;(5&3EdXcf>
eL;0eJG7L)FYDUKB\6gJFL(E:-_NY6-:QUgP^>F@/I+@X@7OA+3J9L6#5?_CB6HP
\?0;XY@fZZD;J0O0Bf[#V8G[8VYZ--J9&27UEMN[F,N4+_]F59GU(@V)=^G/)AT:
d2:PUA8Z=g545GV)YK1^4?#,=^9PaV7\Y;(6f_+fg=68;R+X(e7-T2H&SO/-Ff@>
ANb&;0PC,),@PeCV/V4aCA#8edLX_/L68aUA@b>2_9ZNTF07?B3=OfX,Y&)f56,a
gY^8E?BIYU_e5gEFMM4MX-B+J^eW5W.:=@BZISfRa9ET9=CH7gW)>SU;Y/]+V?Y+
YOMQ842SBbOKEE_XegcSGb[fd6;T#g,YVIY4,#9E:ZcV<>cYS\-fZ?3A0dJaWRR\
dBHBP^XDYVHUSABLd_3/-^?TTTf75&ZTG+g?M()JaU3[HNg1UJQJ3VGIc+^U1]/H
K>K6+0A;8)K+&#=PPXS>&9-HO@^#FFdAN6XXJRB,XGZ\>Q#-Mb7FM#G.BcYX<,J0
dMaPe?[LGYUE362>2g5d,FSf;MR4;URfFK.F8&]W[Y/:#d0QbHPe_-OP)>SZ=&5Q
K&Vg-T-fTL#-\T6d0[RRC(ZJ^T7@[De/8X[(6MY1@eT3P)0Q0J(d5=7fBbPY9E9+
70]/@aJMIO-CW+[1DJ\&N2@36H+9N>:,fNI;@17?9M;aDH]eU6DcLG/0KQW<[>@52_#KER5^:Sa6^>/I)CZ^9(?C\2
M&He]QN1IbSK;egAI8H,PW#8X_aNXWW.Cf2P4;A+gK
EV6JSg\Gb8)G:6#0?X@HfCa6R_+B,6EAJa/Jg?I]J2O8S#/A]9M=^\T-5bA=fJ<[
67g>1c?+?7-\12N.OdE[9Q2N+;S:DT.(bY884I.HT9D>+O2R,Yabg\U#D\Z-A2Ld
U/C#V&fd@,ccM?LP,E8;:G@S_D_-&>)X)7&2J7[>GOZ376-:N/]e^(-#fd#)\aR1
SE1ZdC\XPc>[.0/J8D-,6(L>@eMIc8T-bA&d@K15C&DK4agd
/M__LFWX,FN&\KICT+g=NJ.bR[CXNdKd]X9f;N[Jd]D2_UXH9)JFFJe(S/X#SR8f
ZH)2=<[gBMO,@&a-1M8N_:0NKYO[L1?E<_Z.@8)EVfBLYHEMUIP9]78Z.7H[De3(
/U()WPHQVU&=Z2NQ95OY[eM@[R>[W\+2C0N0YE_gS.FWH8)9?A0G:[Ba4e[_c60E(a-9e
O2.+eOBa5fZN21d>_A&N/2+<=(5fW(aa(&.>V8]=QH&9gR07X4@9S=0HWgeL8=^@
]0bF9RZ&\R+#O_/3K\8CE/2)[;1.\H36=6Ec=c[PS0:JfQO1,K7>?&\<1USeRbdT
RWVA\/]5J[2-(K_N3.VR=]/KT4/)\@]eaII1gQ(R6)>J^#TC].JZ?JB)bI()Oa)1
(O_U+a2QHTVW+e,bL[eg2RCXM:Vac<#[T7,[Pf&8/0;)TB4(,?Vb4>;Hf_Z8]Z:E
35@Cg&a3]LYe&T[6[[4]P19O@W:FYIL,fYPU]77PY4^
RJd.YPJNH.DZ:N54TW/0b_T;e3_6K&?#ODWG&[MT4KK=P#KKTCR1;9:__(1^RCEK
EV=T;_(WUPL.W1bO.AGg@ZN5T?ZW?T;ISTX,)MWO?CC:6=9VI#)&;M)9,Z2:BfYM
D9T3,.];,I]:[XXWcI)1@b;AI>(\&8^&AFJWN[SJ.-E@(&,T/83fFO/84_C=JeIE
R@A8(2>[[3?X)ZXD?GA0ccdE,a&J+._E?V8^D-=IRgWd_aEY\NE?g,+WVgaNBBBP
fDYTeONC^f:Z?fJH#=J\8[D
;O;;b6RbG-ZA:GPg]JYC@37J:36EW2OMbPfc[_/Wf@L\2Kd:_B22ZXD(]]:e3(Xc]T>Q5__Pd6LJZ)4DD\V@=Tg\9_gCXBON3SUM<^4CK
#Wd?D-FgS__C;F1;d4fLF/M0f:XS=ZL&d@CCf:WD[bO_W3M:8SfEY:f8OF-2HP<9
3PSJE&/,HI3QEV].bQN&E#G109-/KB03L^aHKB&)gT/fZ7(gTVNfa/fT4cQe;PR[
7fA5I@6@H?Yb(<365I3YRYbI[^,I9Qf=D##d@5dVW+13g3].F]B]JO#6]5=\OYYC
]BFO13,b3D-Je8(7707+&G-\=/B+>9A7AY9_-CW=_#^4dPD;OIV@BY7;aN&)3Jc(51..II7W:d42b0)L(L.LO/IJ6Oc?\LXI
9V-^Eb+0/2R&D?U.JRN/Q,Y[36(9gNg-@/B1DEW5.BIE(gEG7a1[<6^dbK2W[L(#
[8UR_QFZV#8^3Z@@P7G376)efbQNJY>Z+gW5D;)7+BQFC0MNU]B;(YZ&+>K.<\P9
eEe-]f-gH/=WX;8W&G_[#bB(>H0(DJ28XM^b,.e;G<\)&)JJe3UZ]bc\K.gg)a;?M/-1)S\3ST=U60]0_(]2?W5Y
Q@#E:2]?^c6_,6)6RUX=6/WaK62M#F9df9?IFC@_V3g?GPJ3,@P9Xdccgac.dG9=
Z)O4ade6&_2+RWCVB@/I_PF#\HLdf(5&<5#^OVJ\IG#68F/T-Jff,,>74RFS&+QBO=5CFc4KeT3;=DPaR3FYR95I>2\d-WTA[1EJ_,57&801CH(Q7HNBH/W
fg>@?6J6E+BaXO>XATGX1YQB6,b#:S(NJ>)&Z7?]EL(7M3D:-KI+)VB7S:Da,
F8&[BHVaL8D8FYb_3Q-1LgaDG]6PF-B;]D^VeWA-=ZHZ>-aQ<]fZ5:
ZBX.:[=WC[5K=0T8K?]X)]]_8?+0#&YQT0M.]S,A/HR=PfG5_0J)8AWf-fIC6g9G
QcUKBa@UGVf]XVaIKDMOEb/)04Mf>NWf29T_3>?(c-MeM7gXQ#SAV[GTIU2L.?FA
36Ngc4&b]2=7D#_I0C]OTY&3gC)@G,EAN&]=cAaW<@AS-#L9]PG/.[7TVF[a#P86
?ee/fKfcJ^0_@N,]#fYgZ1:@,aMZg,\40M0BRMT1&1a=c2]/fdI248M6KC#(>bMH
^UKKe?cQa:Q:,\0FL-4LeE4V.&>G+XE(54.UcbE(>J-QUP9>,cJc5E9F
)e;cLe-gU;BG5:58A@a(20:cg5>F(Ke;1(&;Sf/,TJNIHCTfNd;/@bUS>Gc
[=]I?=U@[C4
@^0BW7]XRB\g^H3FZ.KAFWfU]U<1cb8(S
_&UE7IfM71,2b=_((gS@P_.e6,:AcWE1Z?7G^;ZU[>V/;fXF1aL>=AJc(455G8__
eHGU>SAXB>^(O[#eY_8F9DgNde=TBAXRU;gJ.S3bB?/\d7VBMX7UY26&&86cP/G0
0Q_MQL2NeGDc]1F/=d0C&2N\BERAN;_4L^SE)]@_I^+QYfPc1U:cFJN(:?5fR_eL
QdfO36/bII.&]G385cR&-ddX44bS)\4:_JcP.H(cT#&4eJUAD]9#87#JT;Q.T@,Z
H?MD;RFe>e&a-I3N68+F>WW@=5d8ZED,>];WB@SO,^;A\7896.9f/F3Q[H:b/0?P
NA&W>A(\Q1+PB9<]&-WG(VG^4d)#/g7ITIWHTJV0L7
)-S^/M;3P].MS;@WbF@FK[]O)^_M2V3^K[QTAU7_dWP,40-7YTGKN(_G_:#;,Z[&W6bBVc+)H:g>-SNI8U2+gEN4G(Z_Fa[Z>Z(WB7TB159^9Q3X
Q=IQVb##?aF8/8Fd#@[GL0L:@5M3-T0[4(<1K^PD.b2,bW]MXOX8NGUPKa2<@0d#
@-D?;)1IK?L8H8BJb4FBbB=9O<,@gc^H6<7,OeG6XJZJ2]#N5Y(e(5<;HF+LCU-g
T>-f9C#;\7D,QEc&@IUOT9e;CW31_2\9\VIUDUH:61c
c0+T1GSf[?01W@Ha<.a<>N0cHCL5FVFP048;]W(B3gU21@9d&3DB21?[CZ>1><;.KgS4VXV,.;;dSFZP0FV-6O\MeHc-0b(7RRQRLB3U_8S
C(R#DR.>.U9O7>6R>6a9IAO&VJAc-gI;V-#+47NcDbL0
EFKW(8[IAGR;gUZ5_LAL(3gf4O6]S\X3@R5-ML&X#)O>RP_I26PD7g<_E9
K381L0,1dD=,:d#KaTHXH.::c>+^@^9(;P+-JZ,6E-fM5QO1DfZI-BMK2b>g839^
IKe\],9Q]>\?ED4fTI^MGH=eV.]Zf@_NaJN7JDRDUC;GJ]ef6KLDR&b(:&g2UI\\
af,&M.B1_gTOWR_9^3B[fRaF1J(T,0b48e=fg&:LI)H?7@:900^\d]B2HELMe(H?^J[a
;WM(H+4Gb,VaW/g&f)X(SS[(@)eb:<;Zb
F_Y])]f-3H-IV[D3,^\XN/;d8F.>dLc+1Y)+[EXg/TFg:&/LHL;>6+OGU1K=USCH
K32U/+U@4#&HD_JM9&BHAS@8ER9UeYR6)\[4AUMVXETEJ5ASg;4M2T?H^<;@AJL@
@Y]cg?ES(;M>9dRSTG3CY6K\OY>H^BA^+0/#9C)J55^^A/b]\-3)?(W4a@4@QMKF
OC,D?0f.4<]N:--I:8#\WVLQGT-&HGD8a13/Q8,(5:U6T.H,=+S3C3e1[R:DE?F)
89:5A,KGTYK,CEW_-\0PLZ6&X4M>>+Yc9MbQ/-PL9E3>7/ID^E\)G4d?T)01L:EE:WY=f=#P?WF7LZE8QLbJFY_BWDDgg]OT253)/Y)0Fg5c[I?(L^:d
)#84;?A=AMP[9A;I1\L1(KCUAJT8(EDSY80c=_-TPPW>R6:VGA0O:^9Sc_<+,EM-
+ALQ58J2V/AF:B@(W:KMd4QC7bMb=8?<,=4fKAL]4T[<#5U?[,_.4AI--8:4(@;a
L,WZGX+)T4BCNO7T)9bbgZTZ8,63W<>7O\TF5(([OQVY&dAJdC[@)+=OPAOdgJA[
=V\Yca/&?B8EIDJF:#U0f@1gdJg@\L]e6>=OCfTb0Xd-]\0A3EEF-#::A=1M@d\@
B-CA(D27,A)]OD/a]2R-AJLRbFH6Ud-IK/;PdeKMW>)ff5Y)YGB?M)#eOUZTK4:d
^cDF;(?MeN>.ZYd=Le?LGLI,CEKcPEUW5K0X39UUVPEVTX:YDf[0-3I8;H_]7@GO:C6+6AP0T(-\ZS]9a(aI70DO)Q\[8SLH=CUgBbAPg6d&-]M[CcVI?L\[D8?bbN2ABR>)=dD:ceWeP/-FB[Sd/:E5Nc5ED+0&)KFZ-#Q_?(#Q?KRZd&fL?QUf5-Xb;UL?23-P:^13=^EU;@]P.OE03K?I<9Wgb[IH0VG-AM;b=WJF8fdLC0SIZX8,-V[cE3JJ_P#8bFH6
bPLO\RO)7-@HZebKg9LN=C
.C]Og[:V3/\JRWb4b&ND=YHN_^S/XAN;3M&2:EQ7K1;2<&I.P=gJZLd&8D,cR0Mc
EV:\D:]0R?.=A/AE_gF@/N3R)LUSJ<[aE/eO/CLAB3=N&S3/D:][1IfcBNRD50[d
5[VeX:&2=BdYZ4O]KbZbdALW@(CIeXW)Z;9:-(S5YJV1Kc,D[89QP1JX\P7F/,Ua
JUeH:BZC+QZ>R;LSQVWfgR+9:+afG7@dQCYAW_fMMKMX&b+0C:X5SD&X^bdb&HE2OeBW>dJ
T^=7>E^FF=MVHHd
I@JHO7C7ZQf,0HJV^M0VI:CS3Fb9ZfOILF69UdZJ^dYY;V2R:01(YLKM\KfY-=fbYXUFS.LF#DO7fCT]>R:V^d?+1[85=(dcOE476(4>
.g6@FdDJb-/]M[Oc(HESOSF-d&,7ea^?+2#-;Ea]IRe66fI:1>c8cAGC2XD6a0CN
R)c1Qe+[#[\0OK&#(,MQ-\PWe=E?0;=3^)#Sg+U[\N#22;E4]BAK5=[>Z[X,VPME
DG2dISL^CO\?fU=bRX]>f.g^eZTCW+E207W^K,Q:;)J26G=_J1dVYNV:65IfO::[
22@91_Z08S3;KR6:^P4cG1Q6.L3C8KcG0DUIPMe:_QTf;P,bKb]E(2@efe9^G6<>
+e8?XR35Y=7QX4TT:-,^\24=_FI;>b_5DOP)/U.FUd10e7JS+Ff63
O/eWC^bgU\\D\+I9L&)g00Vf^aP#\-;?E8,:KJFSP0aESfPL4cQDKVgBPTHg3?&9BA.37:C6Tc3X]_UE?.3<]bVaA_XdfE=S?MUC7M_c=D,3GJ,#\
E\M1(]f>0;=VCY8LOW-aH4(g#JFA0)Z,_e:@3GQdC]c2,2a]Ab5c&U^:4>O?[e(Q
EP;B]WPFV9VNg1U9/L<3Ta,I/e>a\=()VHVgRMFe#4])@e3SZY&H]=V;;>AHS,HgR(&2)QNHU8D(EE.G]L>WNT44X&_[[8D/J016YT)84=B6,V+Qa5A/2D
>_MU9,b4]10WR7MfeX>NLJ+S2MN_c(a)5^GUbTF:G;J4.FU
N(-VSQS4MLd;aFV>9@1X[Z/2S
860I)/ER4OfQ-BH)bfM&d14EU@[eE]^g,5E4CZf3(G9E>M))cD0.(H-<=&HHWGca
P@_RG:Z7aVOG[b#(PU1__<=#@/b0>K1#g0XZ==;0-,Ug()S2RGE;DG(a_^>:ACAM
?<<,8WWg6799gE2,MX7LQY9Ia)?V1_VZNWTd3)@E?IHN[5JEF5(MN>e>J/30CH>[
c<_JHAM]=gW)I0gBJMM47D]3D_KCUIJe.[a/M&I05ZaG#8S=Gg4cG[,@g[a@@Ja@
.5F/(T#PJ[/3D58dbYVccNS@\a_52THHVQP=:.><_>e\:SZ.:](?,.dMI+
8)9N5&5-J,GFV+af+@2bZYM+13^a?RYXU0g4^YWe17@K[+fGeOE\B[c)WRe+M,HL
(LQ1(,.LQ)8X+H?EdJGO)TCHCbE\@&aA@,)
b@;.ZR8I7:X#]\J=R>]9E\(,/:Yg;f@8)c#.@26YUQYdV[ZC8^(^CGFQc;g
(D1?@\P9WT?CO#C>11_?S8F+ACf2\R)c63@O+^X@)\?I@0B#:)S6HPg1./B\-\=<
Zc-J@8W.eUDg\.#W?T16(9>@V#L-KL=E):+1a2e6]Wb-WEY_B@),Rb/@feN
?7U4(:)QYeGWSTNT>YU4A\Z>IQ[=TY5=C5=?/^D/3=X,CJ#8++YIN9?N+5PZ4:4(
Y[B/VV(#.UA//,6_O=BfbgYDI#W/8J(<TVGNMB.GQD.V+E52YUa)7Z@A?2R/<HAT
,Q>=NSUaPAJ&)IL&/5DM_(VVf]B9@aUZ64#KJ-1UR9_BH68^b9T=@EWX)cZPODUN
3CLYRERY,6K^UZJ5CG>ObcDXF,49DLBPf:;:?B\-
QUg?H,Z5()U2W?]#H,OU)bF>gg1J[NLTYeNb[I]KH=V+_(,bVa5&)
#DXRSR7a\VXOS/=#4,04QDJT=g2-8\/KEfbK5
8XY5U3:_cE&=bPXW#<\I,M@1A90DL9c:D<_]1bKd4B-=;7?4:eA2GHMJ,R_9Q5]F
Uf1BdC#&_=VU\BMQ5IM4O::X0g_1TX_TC_5\GJ>BPc)[(N:FYWE2;C0ge),TOSFA
6Mc6_>BL@#,cNR1_LEg9:PC<#8IOgM=.7M:JK.Zc(/g1L4(&IR:=O+
Z8O&TU?V<[?^#Pb-Da\U(X)_e9@Kb3GRUO#Y92EMOY^[
F2Pa^DZa[1H(VbCBe4RCU6AH6JQbN+1YIa^cL6gdOe.A[g526?F.55/A>]O[2;_ASBd1fMb(QSJF-(9>bL<6&VI(.WX:0,b7B@Z6:=X?N7K7F1-R26;
DL9,fWWaL]<=LdTIZDS?]Ad>?CN=^XX)B85.4H/]?b3HD_ARX:7XS#;9S_/L,&YY
=T;@DeX5H[&-bZC99BT>O=:RZ&).:
aE15G:T&e,9HCBFY1I,?=(I1>@O\O<57TA]WAJ6_,af+]OU5E@]a\477:e4_bW6+-._E2Kb+_FFANJMPYOVM7B^6CDPFUSF5V8(#.cHcggI?]/g-S[W>5D\Pg.-
;LK@2&8\DG\\aVII-9;7b_(b&-(YE?-eU8W<<55A&9=\;R(Q[9f>eJ,8,Pg4WIS#
9SNbeSbA@D]N&CT@7\AIH1NE,E@B8dA9:(XURIUJYJ[&ID)Ea(#MYg#SQLZd#b]R
][Z<1)DSC_I9@G_eT3T3N9>&A[^H?BcZ?TCE:4ecI;AAM^=g2&FMTM0&=BK)&?U(
[2;MU]6bT&D-_SCc77EG_9Ucb):aA7bK:@g]W_g3[UOb31RL\5Sg&A,V^P8Y1P&.
HKaQL>SHgUCE-M_[E
fYSd)5R4;K&[MTJ<-b-8M(T]f=:.QI-0YF_QR\?@SFWAJ@22C7)d.SeI=d]B@=RZJI28gf+/3B@[>GCSMPUDe>7a?_e]-ED4,XDf2.FacJ+BA_0UUSZ.8JMV
C#R;X+bb454>Af#]<_SdK;JGaS@1<<@acZ/eIM2CTd6W0:CZN(FEG@<)e\bIXS-a#BXZ8#Q>_b60;a3C5/aGQc1W;SDZ&4^bcaI33Y>>1BUEE=4LT_TH\?;-Q)SK
-AT,0_H973.ad2TP^\N9Zf(BJ;aXfO7?,.TfH]d1d?N^&_&3@S7?Q.^cF3UOL;a5
1W5>aN_6@UGNd&N.PJ^6agONK[(@JS4-WgES05Of;SS7D(;9=@ZMN4;1/,-.U==1
<#YF&19C@&a,L1IR,[LMX&^JfRVQ(]:U:TGJR2ZX]c#Xf[P1C3e(Zg;^EAPB[Gf?
Y5E66+Lg@#.F3HWOB+FaDQ@@#2N[f=-Z7f-IR+76Y5N.K.0Dc?K30W<^Q514^TM>
(1f_<#1]:NDGKI]IGAg7G5M.d1e[YJ<3Q7D[AP79HEf&D?N\fW
efMO0RD_JER40WR>6e-MHND05Z)gXJOSW8ZfE]K.YBTH9_d^81=Cbe@dPf^>87F_
V(/SDg1fZU66cG)&bTXQ+;4UW:RI?_J3J^TGA7Q02>+RU16P>R,BU/DK(TVV,KQ9#9eA=X=\@R4;A+JFgRSG(;I:K-Gc)eB@2(d.a#g[
WO3E-g@85dM-\&?DXgVT.>(7CA@
T4(,77MRbbC#<)Cd^Z92OU,P:;CcV0RL8=IEY8+fUggIbf#Teg4c-LD.P/5Q4YXX
L9>G\XSZQE9\bM4SSTOe&79VIVA/SPW(J0OR6:/\M=?66#VP6P;.#/0WII0:U\Ue
ET+I(YB2aB@HB/R.(8?VPYYOQN-3AU-\DQ;cDTAR<,b]R^AD[H]84#@YP:)FHcH9>.f=#VdN/;9Q,cdQZ:Z_RP9)Z5\\^\QQ@^b=-_/9gPV1AM8G\X?^1M)N
?Y(5>Y7RRRE^F=cA(JV].JK[2:@(O:#EM+R8c372FbX_#^b#g5B,S)@2)Q.JCNNI
5V\4IG),?B1MdD6U]TJ_YU1KXC
,S4gA4fJafF;#@--81?,d.MLLNJefGQ,^9J.VDEC:G;=@J_F.bTG4ZW85MA-KA;L
BKD#;MfB=_=GcZ&6AeIFc-gGEbc?\EG>_8..IXaM_&#f#5dTg.2(,OY_X6X+THR_GZI7-4A^^@BV6&gYg_GR.U)^UXe2Gd,I+&cCQ
FTe5V9)ebTKR&E4\QWd_+56ORX,3S\I(]8TKM\fKBCU/YHR5:X-f+=.gg)=c6g(D
DT7:OUeR-0d\Z+ZcJ_/;4=47JRX:Bb,=H5Ie;
5L-6:;3a?/O^BOHP10+G^M>8\ZLBd@?R4I3;a>U3-Y/IX,/T_gF[>8Y>#+I-YacZ
RD[?CH/[8YR1^Tc_CK5I?>^R9JE5_;cPR?[N95RYLJ;S[GBEW0.RCA_a@=]Oe&8^CVWC3]C1VQgQ.;cU7[TDDR8X=b))dT1&e\<[@bHE.0NbN+W;O??.4^gf9G
LPD60gWWKNFdIA+).VE>(3YTWO#>Cg);Q7]/49c&G]@@>)=\=Ma\:?=RCR3\PJ/+;DJ^][g9DJXU#P:He1EUO=^0^>9E/:=IB
R,N:4?8&1@7I93fd8Ca),<<>+QP(9df\N,[CZdQ=_-1PZ3?.ETf97<&FOC7LRPL2
e_TVK=53Na+BF..[c\P]T8=Ie&-=F5Z;35ZHRVX\Q8\-,g9ZLU4EKE]c/2eCfW:;
IG.dJQ2<4QQAS#89,#WH[5e.\I+RC4Bfa@-gBff)V/4&-6TXa3((^8-QN16O\7(4
C9Ie;eFd,.G)?,5RRM=X];1dYZb#OIPD?N=KEcaa11[?H-/#^D,cd
FLJ:Cf=-QdQ11e;P3_=MfMJ569K3B61>02J+f[CR).JIJFXM.5AG;(\0eXUZ(3H6HBN4AN#=KZ2E0L7#gZ1()cL?M8dP1N#&@;NB?H3<)dK;38
IH5<,fN(YG-e[19T0F3aFNE>3=b:M;9a1?+F?^3JFI5UQ]-51ZSZ79.=H?>L?BVM
5+.]X?0=3DE]AGb59\;f&&VdC6C#cO,R.3^(MUE@0;#:gL@X^P;I\XcJSTF@4gWO
?+L>-]FG&Id:GX&Pf;K3KWC4:U@7]dcE]S-dM;^<\;BWGLBUg(:7QKb8VG),_CVJ
eE_Df:b0dZ5L+Xag4:-SN]4_W\>CMJ-]++)Wg_B26HVHJCV]fLAUHR0fLb1X,5[1
7DE-A<_63:33#bcM2L:A<8f_D08cA91@ZKS>HO^J5b]Dc@UXYABfI4W(W7A?J1T9T=L(7QYV:/4^9]>:1V;]4CZ7EDXc:K)C2M.c(NcNceOe1+L7K6RDIQ-Y
DaJPU.S_:@0J&DCB.H:&;^UYRC^&d2:;&:H+M##7(:-#/T=eA&YM9I5TE8IK3ZWJ?RP\Y?G5<8/Q\/.SPAMF;gI
8V7c/AI?f69>;3C)@AW#SVAC;2SWEHLFEU5XD-eYSeG(K:VfX##ASZ^66e6V\]8b
cX=NS\S&cOEEEL8#\5)BF02K4L;;24E@?dWNZ03[^2B3_FP_JY=\g]\Q]VH6J>Ve
X8KFK&EabdN_.X-ENR(BGbM:,(f3EE>>AY+AD5e6.YaT/0X<\HMJ8bF28^0)1O_#
]F=a:JT]_RY1CPEEW-Q<51>CD6_7aNB4A8V\)beG01(.[cY-dTe/#S+&:H2gFTCB/c(]
=#cCM?g),)?+JN4[d&U6J6gc1OP0/;cZcc3B\GLVEQ@X<#&>FN-#7@181##70\N)
@W?XPMbV,^/RV\C,9T5)S?c]>DV\TS81.9D(APfWcP/,6A5.McLD101(,4\P,D:>
60EXO).BYJ7.XO+CG00^B;(0X+6J]TF-L-M(OAB@R84.FFGVT]3cE0gL(Hdb[Pe.
\A0b/1F)69/(Q775bDW])IP&dU&2EK:X/B.bS&Q6-OP=a@IBW73CO,#8If@BT&#U
5W@B8[\@L]9Y8+=#_DIEE^6-QeHXC<1(X@\2R15O;a[+)Z=NC,VP/KBBY-](O1;_
agg[W8,KKIeN6GTb;XTK@RV8O^DaP+/CX\]0^\g1EJ#:70Hd9<+SD(B;+O&Wbb:N\SR_MeOHcCgDT;8Wd/DN&e5J?RW]SgR5VH&TPQ(b=VKLVa<7B[DYPecL7A)\?
3-+QWX&XgFa)X(F@.WSHMTAGO?e/8&eaB4;.FINIB^(RH3=;@Z?W1N#(N1A=?BdU/==+;(2X^#J+_0GUS.8H2QV=+S8@4b6]4E+-/J265()KH^T?^69&-]
/7aK@/=5A_T\9?>U5@^CJODN;[HTc@0dd:^)8_aFb?g:/A;NGPg/Z;NgB)?DBAQ)=BI(fO<___Ha)2Q&MeLLE5WbeFQPLC5C+6LJQ;SVQS_P@D/QHfDHIgNZM8UZUg9OeQ>d4TP)Z,#33\HUb@MI48a+_A[;7,,F\FE2ae@C<>12[S089&6bQf;P[().I_+ZW#fPA0RgcX:X&E_?9
5AA#:UQ8#_dLM&=3TLaD[fB1aUG+MFU6WNMHE5gY;VaG9[SG]P)V(OaA?Mb(2/)6
^ZO[;=U8^gcQ9dM27T&9d#IQ:]R]9.+Y+@J?UWRB,g3KANBfb-cKUE]L[9\Re191
,d5:#f:5@,f-P(^_\74K[X;SET=OC.CD8\5VSXM.INHQ:D3B5>M=ff@_M&:Q8dcXNbfeA\#&:/J:8F<<(&YL:X[=ZAMJ[,_TYBU]F1_#3F1F>N
QA-+,cC\E-G=I^M<9fdD9F).G-Z>_JC@7?3A?@1=a=8&64Pg@WTKR<8+CMfT^4,J
#I\.)M,W@;S^@,3UHG.KN6,IS,42RQ>V7]gIA;)158]9<//@4We7dSGQB#A#]53W
TN1eMQ4
Jd(U#f/[aC2HY+.IO2KD?Y;WW88aKA37GA^R45PC)/b;W74)/AT4A
5fOU]L1@]+9Y?Q^2XMPDT2XIMb\Sf+<=0cM2)^&[(..WEU@@b3L?IAa=3S^UgOI)QEW@Aa\M,]\K>4>Y[LA(?M(^#eRH&DB^LY
a/>ZUd&2adH+@-6QUebLJ=1FM\75T7O?WP^0(\.aL/C(PF=?(2ZV]2+I/d0+^/]9?;R[FO?ZX6ST15@J+\KW[(QHY5,)cUKQ3C(H:K,4gN\#AX?d-Q+YC:
^:8L??Y0fLb1;cc:5)/F2K0+,W=6fCe_PP@BXV.?;7,<^A\gH<__RB:SAgALIYN?
5B?)RCVA+Wd-(./5e0HA:)9>OS/)fPMNP?T,?(PO1I]]Q;aBb<.)eIVLMS?2;W^6
DOKPXW8^3LHR7?[@=5JTcBYKIG6IfN,5J#=O-C-8F4B&MYdPMZYRN@1L;7bS7RPKFG1;2]X,T@9f\X;;&W.^3aN&S6b+dY.0(2A&KO&1AaQJ5-PUN:J=\)
C2;77gXF4c5R1HO-dE>OQYH[GBVIW5RYe9=[7KQgT:AaN.M\2&e^dD#PLeF6]c)>
8U<(5X>ODVZ_ETKR1ETQU(d_1)8Z^VCHd[Y_@CE6(K>EfM9H
bD(/9]2KccD>.;_b#FH-?A.2dgP\C57BH5:K/J\b[eEf4OWG^QfK\f@[-<0Y\^S^
)g>afP7VISF;F5._=6>f:cR+6(T,7gE-(CSS,)WeMcP-KgG_8,JS1YcB))3Y[S6O
\Y;=[&ELKD?7VCU0)]],L]NW_[QL\N\@1YG9,/Q]gR:>1WJ?9&a3[>fUKP-CK4#\
#F74,[.HcTKGHL=2+G]<]1@XBff\--(UU9_aREN8E,ZE_DJVeVVAe,5CL_B3WN&7
F6Ua?B7SJ>B9MSRP/Y,_X#NYV?,_V+WgNLFb:e1cH2:]3R_#bQLU=cd:0)V)&5;]
9D8gcEOVQJM\XNcEIe?514+S->A:d)+D3=IKGc2;Od//Fcd=<(ef+1.145(,f(#H+:64L4-cV]\9NYRE1-B=(G[-@
.CVFYXV(cbQPe:.aMOJca).=?FMM]OYHde3b2fI9a+d-35IJ6,cYNe>)CM.Tg;HS
VTAeV5B=[IS@I8X0EN&cZO0HIE&;7&ANH-dVL6<&8HTD5Q9aK-/PT2QP&S&HLDe0=:.?/]Gc-M2&=c9(+E)\K27J,Lf/70,c-7_K9T(dR/5@>\[0
]HEEc1>b^,YLPD<3aZJ3LZ&CU:,Z^T8T#c[QEKB^@fGC/5&3HAQV4762GCZ:.65\
OBg?=WCBYd7,fSabH&ZU4HPV8b_=2(eSK3-7DNYNgf_:\aA4M]Q=X:eMe(@>);^>
-<>1-WG5cR=+3V/OU+NKW)=-LWP/(Mb)D6OIJ<;=;(R&0=X0=JUF@IaJ[2D]ZeeV.JQdA=JMBe#1@+V8](9D897=AX2&gCI#A[)5TS/HQ&QG=BT#?./B[T^:HaD6H9B6-@
8S[dJWaU\]10_SYbB&1#L76GNaG+@TOa[aQ(7FRP^GcIUA&GAY(4bMAFL;U7Y/7dc26eVS8RZ/a/1WJ6#6C._f_:g.:8RE5(_=b]@Z;3>UL=VH#g(:
7;)9TF+TXG@e2Ob+)bZUQ^=.,VW(;Y:e6D6&PbIdUQ>]fNaGYCg4:BfG/T[S7H5E
cN8GQQ=BLT[UU6Q-?=QD>W4(,_9WG42,3eD2=E7]M(W5H8,ccbLb&J[c.F@ed,AH
[0,MEX,WPRYA0YeUBcKa]);FP6J2FM+O#aB=VBdZZ#A2=53Z4YB.?OZRB)g/_K.b
f^P\Ad#cXfLg(gLg5^VLU+B+&JLE(\>HXd^)OI4\V1g_&U4a5d.Q1dd@]:U_HbcO^MD010)J9Ge-_-+O9OF5ENS]&(V-(9F64I
J6[c+8,ag_;?7\R#-fKAXXH4Yg44D&>b0CT(A4O&:54BVU\>S\OVEFf:RI(>AU5V
GbMDZ9L9KI3Hc(+;LM=b@H8MB5O,RQ(^(4XUX^:cB4?b\_+2W0@>=e<,8_A8C?Qe7>X(1cPgZ/)]C_P5
3TG=UDR:)YH4Jda5:&KHHX?R#Z,SeHK/I/(G0HXKG;\cMVRbU.&RW6,=AgM;7bW9
;EH;)]3(#8GQN,QB0U&6.BEKaXd&-\HIQT_1McfE]B92SD04)7HJJIC1;=F(^YQ9JBRI&3c[^>YY1;J4a3Je-&f>AH(>2OZc0c8H>=_WJ.PGG,\X18#
7.3Y18V_C)Y=5Z7V^c51XMUcSdcX9aFFIU8/)4,#<(V>+?-:@?6/G#Y+>WaYb2\d
#_X8g5CbCcaX[XQP/<,/-[;I254G(=b5U#_6/AR;PPcBNSYgT2XJR,S[U]8IB@XCKYOf#dD3QS2VaQSB[g76U/1#O]#N+-[WY
O9Gc\=MOKOZM6[0-_(+)[41_DP_MU-6?C,Wc)8aMQE=JNb]5Q3d23XfM:,N/=D[ER_=)7fCBQUZFF91:CYAQ6S#c8;CGb>d[1RS
cKdQ_W8F7ab4/YM5UU80;L)X\9T?.XXQ^5GZUL^GL9Q[e.OA6FBL8ODNN@ZXL1g\=MC@aCfIB26
FE/30HSN;&CHF9L)bV:NQ2d9d3A_g(gHeN-<02YgL+/d#S5Q.#ZR&@.MZ0O6,ECC
14a-FG<3JHg7eEZA;D<]c35C[E[I3K2:4^:Sb5P_a2L-BC/3-6-_3,LKUIH(4GW;
VPda6bMXG@/12GN#G:(Ada2U\T920DQ51XI#0)S<6bO(FJU_3)b_W)J#ED(J)a)F
1NAbDUH-P>d=Sc,H^EKKCD.^Y0()fb6)E/A@SHN.3BL1P_bVTU05)GM@BW@(]:S0
WQFH^[5IZ7&+#B&K&4MURd9LIK]H3.3+?=K<[PAQd?P+91W5g@N/0\WA/J]Q_.MD
OZ:-/,M\77GVFgU3&Z&_Qc3:9M[ba5&^S=Ac?AWX.2/RXHYg3VW+fWb_U1c6;PMX
<.2UD,?E2I=8.\V0V]G;aA+9F?=C;>22AGIbK#cB2ba(3RT:a/Sa53gY.#Rd2HU/
\L[L&67ZEE\Z\:1;PK@[.X?JV_MGP?K>=-D.6[Q)1_/8]J;;S@IFHgTQZ
3P-?e@ZJe74M8f).:6bf&@&J@ZT?#)g)cVN0/M=1#J>JSI5)/B?H7+PLd]GZTg/8
D.JNYN4c9g86D0M:QaOJH8H9eHgD7K<6cdfUBXLQ/3XdZS=YFJXBg\?K9QU[+cRA;@2=Vc;]f.=5e=X_a3G],Q\T/AS8>WY
CYc8VEKDDL&-J->6Jce+4IZ+Y;)AeIObSCERf5e/d-HT[[71bO[+.6NH3>3]?bR2
UHOgfV35_R5NA)IG\,J8>0;>eOK/72].PXUgb02O/_@UBCZ&F+N,X
M3S:d=ESCJ9@P47f3_++e?T8:ZJ)FgX[&NFNW0G@R7AYD,FeRA_fB8fXTF4Vg?+4
^8#P)-5,NHOVT(F5)@\-8)QXXV>(]R,0>GK6#Wc+eVN>f+&[;B5ZAMb_7aKJ9.0Y/Q&2cD0CEZ,VGBK+CF6[Y/,58J2?>1c1)Z,I^4USLU&b^72;.DIT[IU
dITP?VBE>d.YNW?3,Ha7NLXZGHB9/@3g1^HH&YJ17TMW:^\>WePB5#^&Ob_+)<#&
ZFZE<&^))B+Mf.Y>FBK)>TbO9;.PZB/Q65aNV\;;2d.e[.>45]Z13,5f[g5?K35M=c:86]TUPCS.LM9YEB:Wfb\
9IH>QVgX-(a0?A5[.-3Kd39AW=gA,VZ45)e&8P4B;^2bCDEUV.46&99-2PKFa,FCec+Obd
Z8N3#8DEHg,):3N7;]:JV&6f9).3<4XKZJVF.]H+G1J.&X2T99VaR=+681-T0Z8U
KM4c\Kgf0BCdg_/KGEOWWO;-OH#PV#:_X6V,I26[_/#6L0Xb#@NG^YD_KUX5g
/HVG>=+?THN8Dc6JZ0d.aT1_:0(JLY2Q]BA5U+Q=MIFc689DQ[Y8\+c&.<@6MW8T[)cK/9MgBF_INGAKMG
[,Od52_U=2C+SS4K)69D+HYa^@YZdFR;GB?RJX_T:Ua:FZD_<4c07RYg8EgDC:5YY0(AJ]UZH-gM3bGQ\X5&&a7Q>=T(e/QfI9UYfZMFZDG^K6:e8>8_aJAL-?U]
\EAQUgWT.8@&e;94QPRFQ#_3[fCdWI?b#6F_]+EO9[)/E,8gX+0PR_M4T6gWZI@((-\M)KdZc5368FTFM=;,0NN340L)\Eg^.&\F:7BN0UL8Z4U28DR)O7F-@&-XF]U53f>:F8GTbbW,S[&VcQda\>/S2(/N)QI74)T\@
JA\AfN-cbN-K\J_L=c=S9PIP+eT7C)&,46L<5[fgdM-O.2W5[SXe86_58eZI[b_7
#&EEbM&bVL;a77G2UgLXE-LSPb-Y5Je]-(d5?YGZ^,ZW6OF_Y/[N;P>WCg)Ve<^(
+A+7BCN.#?^Z023+1b]^7OZE7-.(,C=eL_XYD,O;\5_)Q@?[TNI@e==V?ZW

cO eKN#I19-QcM29d,:QX;IV\^VdK;eaX_L/H05O\aT@:11cfS;1UPE(BgBf9BF,\^U,8f1:Sb)HJDJ,#9,K-CHIVP;+U]O-VM-2< /N5A8Jg4X/V\W9J&U-37)E_3dLZDZ)^g5)&1+#(g@c&gcJM&:6=@ULN25OU-/=/DUP ?F?IGb64dBLDP+XJMc5V,UMMcc21a)/9&(FQ]e9(L.PM04X433QDNGc1NE)PK4)g QNN]TVLT8fEM=R,TB/[PX7QBG)D-dUS3H)+dIb-cKJ:P]8ag?TdJH@a9TRSY1[9@ /=3GQde:(D(+(JX#CMG>MXKCF?W69&5N&1L>>8VYc7cZI@bC08WO-,I2VC[?5=?4 AdH>.B;;W2G&0=FQA;Zed1:U@?:b]S.QV;\PY6:^&P5W:)=&8:JAG.36eYK[aIT; 7+O_XeS\8b[XI]8U&5TZ5U_64c[0=e,g-010VKa\Lg1T\(+UJ1/SG;]4T(IL58Ja .H7,&fX(75F8-OAQ^L)MN+M&8/E[8ad+,4e/3JcF1a)6:ZC>A]E+L;BS873M=[\b _a5fN6KW_ZC>=ddKS]+ITAID050\;ZfT[P8JP8bXUJgW#:5]7_:0X1,5(3 EE?_EA[)BXbNC0&A7;6[<.9HT-\EF@gV>AV,V,#0P7IB^@OgT;>T g\Y+d7f?V@Z00>e=Q?HJX#L;WM\84_4_/@)3]]4W/T@:A;4D]\#@=T4\C5&WXdL5 [?3=??)>:RCP8L3P3GLBOPS)@5]N?>+&<_Fb4@)A1-N(#_1A6&A-L(2E?.U:KRQK+63LIQ1a@d+MTSYWW^CLbRL)U8TFcYfTVB;\2?HbWLSeRI_6V.99C-- &MY:IOa\FYaZ#5CdfcLT>b+?;g]=/Lb^^@L^fg<0(&(<9=fO5\T8Z#c.<-X_6Sg3 6,W>5gPS46:\IS7d(7Fd8,M02>E.0QTZJPG-MF/&6EE^Y?O=P=K9>Fc7N^,,C/() )KE=cg3AAU>VNf;RAC.#]AIWT5J_&15^A[+6J=L_F#>JZD-[CPZT&62f+YU:-c[A 3A=LK=8,J3=XT)-g-TC7AR_d_RD@OAMc[27@Z?^.):R(5WXYVY-(VTa[GV+_TXTe dIPS7:;c<(bUf5B^7f6?=0#8&&GXc@8fg[MQQ VV;a(XR+U9P2b8UJ]N;SYfGQ>VI[cL,M/g9&XSN(d6UKS31?#>E_Xd+5XEI>9P0V:4f7>.M:X#O<@,257ODS@\=E/bEKRf_cJ0@T9Sd#KR7fbI4;T ^,@[NAWSHdQ146&;UW1(=B1V2/G7J\-Ae,>+VX,>ZXZNLf79Y21[FEV1#6:.O^..QUR1[@U4KB)Pdf3T^Od(_J^XK/R50EAK@K >+R9cbOCN.&]_XV25^dJ?DE9HLNf8Z1C3=C2S/[WZSL?SK+E1->&F6N3F+bbg[Od @#NLPN.R]#];TEADecT-D7_@[;V5J4Hb>K;Y6cJ.fZ:D1#4OG?)7)E)D=cU)1Y?XBT\,9E<_U@X^6Wa4;V&X@/=fJ9UALA?\X5YB-3ba589U K00I9KOH^VH]20,QgZ8,D)-/6:#Ub@cN3cH.4GCUCFFd(?8MBH 4WCaJd6C]V7\;998Hg]0T3fE2:4I2HNQ\#QNQe@a HKe+[.>08:J\\DgBJSG4d4G8B^DM])3H)<>b;<7ec#-\]A6@]Qb6ZUH,)B79aT3C6X4dN:##M99;K0J&/K71 Jd;JG4OeZ4RVQ<\f[_J,P(6e)IU-W<4SR=W/Oa>;?;e?CA<0gI^8fS<&;K(4U=@\ aVFfY(G,d6LHSdTJE?Ld&3+:CZaI5\b3@7de4P0c+3K;?BA.LA8O/)ZQ3g/f7+e. Q)Q@gF)T.2Df^)WI^,#XA5^HCMcfM-V>)NQdPLJZ0T1HV4a@d[A4dL46SPaA=C/U ]f\g0Vf7Qe]/JF@4JYG1Db?gT[_FKZGKMTT13UF#)]g+9&=?Cc>D(dV-,\X@NQ7> ;H6LTgS>OZC-c,?DEQ(KN_=;=Y/D_ +LY6U0MfdFW0;]#FE=FUa.^7a5+STX:F-_Ob#Bg=WgZ3@c)RIGPAQcBb,(6ATT[D<8A9bYQXQ==X5Fc#HYg#IPIQA=X Ebe.NFFY;Md;L[L<=>C\/+C,&\R->b?+c_Wfb-V?<]3F;Q7c,We.IN[^ BX#A^>;#W7d7;/<+H0Q/V5TGRd3b\8?cV,V&ECD+B-e/EGUEZ29#XWBTHISE(>^-+18:Pe+[51I.4@cgBVS1T/cf3:>]DfI9PV).(.#WW^QgUJ4XL[DD,(=^Yf1XEg:T6g:VcF/?OE<9(#VPD\E&QQ9[)MYbQa?:b77&6C4WJ;#G;]&FDIDYAZ8^dN(-9?KNH^S#FOJ=8HUf.eUTH,>BZ)bQO/#(9@465RA3+O3,_]-#6F_^S458c4^1dC3V_4KOIdRXAD3GE>?NN&\P54fg]) J:W:?S7bBX6O0--b:5gJDYSZbUb[,HUe498c9?<21 WNgX^1\YFU-&CVNIOgcZBSUK?:LD+BMRg8a\B92P:,0F:RW[EL4MAQ10[UQAW-7E GJ3Fa.FN3fdAO_f-XG=+8?4aL=M;CQX/UEXR.VOFd/KE>/bd^V6[9Va=-M]C-+;L CO#G;O+c=:IKR[=M4a0ID?H&e4/\Tc2eH81_\eF8Db/=cZ?69_NbeHB_HH[5S3P^ fLO804bG^JC^PY[WE36E\S3fK,8K@H<;B\F5&A>J(84?@g3I\95IY;Y8(W7R_CSW(Y(L:]M?)T9);8B+1gA3D HQ/=f[EM[+)_eFI&X2G4dAdTLf1^/S.=YVgWH?2-+>A7:cg5][P@aBEU/NAKDcRa ;ZcY4?=P_Q=R)&/,&FWHbG.Z>gOO<1BfH0&>RI3COb2(KT.&[;=H.da5,TfK.W5+ @c\7B6V8;<7@ZWfP@7(U-W6-^02Qd]XVXI7-S^=>6[X<1RR_Ydb+2N^>01=Md6E0YOBX3.,#;3bg=dgN<>),FG?J5&5[F;HN&/H=DQF YZaC&^.JeYa:TYH+a]L4AB,<5;,JN_G#J,,K_Q(^5 OWe\:#\\58D[JF([SQJ(OG26agc95)bBR5DM0F899D3>G7JMC,8Jb/W#+Tc.&=G;f;E],Sb3XYB.Zg.:T.NV##U98#0SB3c&g=[7([1 GG@U/O>S4>ge<>VTC8YH3[ZKVY,I[_1L:dO&Z=J[2AAD\_?\1.a,@\FT.IYTEdY-Ae?1WZ0#.Na#3(H\8_R#00gf^M[Cd4TFOW1b01Ge3Ig\8cMLE>7;\7=4E??JY]0/QfeU746+HLL7.H_7A,5 ;dgRXDJQ8E@DMC8_gd/Xg]E)31IBgIeZJ7M>FJ0BIVK5f=A?@3J@FQ7LQPW1.@G; ]ZXKI1>\N5ggHW91IJB788,F).69PC..M\Q7D()A1PTVd=.6U:)#NDYa0YQN?H\M>)YQ_>4NK2f[Y#A>1P?^d=@;(?+#:.44WYR>2@4:?.1OE7e CL\NR)(3aOC9P]^KdM,4N-.YDFXfK.36caAZ\^&J:1J72c9a_4KBg\I=_\\K/X@I EI.95CM3@51X&PWTL_O?->TQc^e#A^F[A^MU4?>R+HY4?/,Vd7D(d6WF&eMVgH@. GAFaRFBN/aQ1Yb?b2S=?X+L7BOZd694>)(>/Xe,e[g=g:#U_L=T41)\A-[9EFQ.d O-(6;3I@OL3I)CKbI,a/NJKdCdI=GaU<4.Z=O7.@2]W49aOKa)Z_E:J8-18#1Z0V[K5a, fbO#f86E6.C0_Ib.a_P,JZX4CfQ4W:<;:>&VdgOWI[6+:)YA]\:RVCS,#[J()K1P FTd>8?E,00TWX5+:,-aX\QbHP^QEE+5FB2(GR:7YLJ(Ad.+gW;QI_4^\;K;6O>B1 eI;cJ+)d1[^1ABO7Gd?C]L9UUVA ZP[Ff9.d9MHYK_(D5-bBJHH^.9:9&0LS0J_c0,XH+:3.UgF.YQW@^;3fM&B776>7 2M?\[I)7Ea+Tg9K@IHLb3#.Q].C_94#7VJ;[-0EY]3IQ-B.-0;>_-],YISHXN=F/ )[dLU_FY=O#.RB2;3UW,U0Z1^@3fZ]2-9/:.@GUaB.g=.A_NNG8LBb+]U_S7-YbF ^9T#,5-B\C1\@C=eV92e-V2DO<2ME+AJN)A-:T^N/;E&KK7^g;dU4F6^A39:.:37 :L9#,UdBM8@T#.)RcN-XJ@.3KEW4C1)DV+UPaX0YB4b&@dc@DdG2YA+C?H^-]@@B C)YM<[@c4d.VM(EK#HNK.2,ZX(&LIYO(DBc?N5(U(]O_50A#G7@bSU6T7DZ#9_Ya dH-K?2+@KA=>M.F_A0fG76Aca=(/R93X;$ `endprotected `endif endmodule // end of master_sm module /* This module implements a timer for RETRY count. When the Bus Master state machine is attempting to perform a system Fetch or Store operation and the Target device forces a RETRY condition, this counter will be decremented by one. When this count reaches zero, this implies that either their is a deadlock condition on the bus or the Target Device may be mal-functioning. */ module retry_timeout `ifdef VCS // VCS Release 5.0.1A `protected =3/42e_78;dY,aI88H]\)@U48RTWI(\N<35<(O[W-Q1L-]H79P&d94f?=U_# X3O]Oa&>fccFU.ed75He?>TLNMK-FKFA:4(U>PP[1_OQ\GCLI7.ae#LIFB#3OQ2J cY#M9XE,F<2DDge/,c5T^d^9cV@ZFPIW)XYWF:D.HB7@S^B5>SIb-bcH?N4=+3DH3Wf,e^Pe>Oc+]G:DAI]JJ2g7@JeRMb/8d<(01+:SLJVM[XA::A75JWTVV Y^.TMS;?5g,;L;L+-UA2]-<8I4a8DC\+,9)&a4IT\(3MK+K7VaTWCIWa?CgeX@-/C[[IGYMJ-&,\#;D&VD9#R&_[IFaK9F84-_XHL9^^dN[ZEH4FG[O2G2KS;J>B:J3D];1bAPg&Rd?EKP-EBb?L7IA_]( K4O8@a]=FQIgHWa?HV2=+XeCHSSAaXP<;bagB;QC+L7KYbc]\C+I<<<@YdZ+\#P1]Q1bAE+]4f@1OIUbJ@N;EQc2&CLZ95?PGNZ@L2Geg ^fK#)03IKS9Qc\C?H1AT2FfB2\:M>G\X3M;e,&S)8SPceaCED3g=S\bA#]Q28c7- :&MOY.#9H#0LR^Ic6Ceb6NV72,MPd9^0Y;)F1J)W@8T363b1NaQ@B\f=3bI9:LK; Ga)H[7GL:_g6:cL&^cO=P4We8g,;+dIO0UO>0O:E^0acX46/?+cLR7S#Va&>L(;> J3a8UA8Lb@e#,A)_8CP4D<-X9VQAc?7C=:1,B86WKUF3,W&7V21:U5([UVI;4(>T 31)2MU>Y+#&PE6(+-W6BXcJHIXTgNIM3E5>KG9_&G]73H$ `endprotected `endif endmodule // end of retry_timeout module /* When the bus master is driving the bus, it is possible to get a PCI BUS Hang, if the target device does not respond with TRDY# in a timely manner. The trdy_timer is counted down between TRDY# wait cycles, if the counter expires then an error might have occurred on the SLAVE device to cause a PCI bus hang. The Timer value is defined as 3ff as a default. */ module trdy_timer `ifdef VCS // VCS Release 5.0.1A `protected ],8B#2E;8Tg2/92MbVI>Q8(W-2V^a/V)gBG+,@_3QJ@9G6@R:e3/b+PY+b6=;3]2,S0T@;EZJ7>K#/e,H gH[6-\4J+1OI2]:.dNTWG=\cLeD-RM)L6LT5f:JBGN\JJU.&E;]UM]\FCFf_Q8bUAFDD1 cY=dQP(>+f2ZS^D\)d1@]W([Q6TRVAFfJ)ZaHF2A__B6_\02,&IXSf:_\cW[3bY= 9]F?7N2W>Y:C^27VM1F.6D;K.+V->JNL&d4;/)NXI+RF.-_Bb&NWQX@@bQ+4\b&/ JUCH-2KIcdE,H ;=3U]f/5^f:S?&#^W50(M7W2f0@[.c1@UGID[3Y/TL-PLaf@S:]Y(^)(YZ&P#ZQb +\aBK)6a/V=]UO8bKb8DUPaC>e#-0W@fB[(=[1a^dA=ZUga8P+>3Y0G&D4)b/?aN I1fBeNU4ZIJMeM<=KKE^Q[&KU@C(DgOWZ0@KJ^fBUR)OKO;KF#<^&/a=KM?WJa@= SV\@.-_V#61R^B:\BZ@TUX\=/(L/4?G[Y;@>Q2&N7e)UHF(-A41)eX-)F;MAK3,g VHU2M.^+84OE-WJb.VCf@Gd]^+DMD(gAgI9K?dbCSZ+L.#.V8MS6L\B\KVe2U5[K 4@2BG5>8QR(A2/^^[A)YO;?K5D9>(T.5:KDMFO?4&H0<6ES-Z.O=^^?-0Y>34]dT/QVF6QO_&M&bKM)Ya.dVA)64RV0_B0#SJFP>H ,:;1:d63I(dBE.X0US8T]+\WM=S5#UWR=@]D1G&UF&G\]L0Ga/W02QJWO#SSOaB9 4+PQ;^X4&^;aR9G2b1^Yg1+SEa#-2GXB#Xd#:Fgf1Sb=,fW0<\.P2=F0cRe69I<_ OEG0;X#9WG+DOMO@eM]AdKL@bM8F94EB2f>CN6OP96I(/M>>.0@7=K1;_RPc>:=S_9H7L\@aM)(@SQL8ZST8@940:4T#)e^C_YK/c<;VQ?\CL,_)_c@;O>:?b=(IX[U/JbT9[aNITD?50<(/:/<57&J,NI@XH/Ec62a]\8B8bX?-9c:gg(E>P7)V=+0&@(a]6 aO0dfQ(:?OGXM9?:SWV(P=R7XISIN4gS,:@;]&T,SGS#-OOaF77>GM>;1.K2XJ=T >[HD@GUE;X\X.$ `endprotected `endif endmodule // end of trdy_timer

HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 12:03:13 1999
From: ../../../sparc_v8/ssparc/pcic/pci_core/rtl.vcs/master.vp

Verilog converted to html by v2html 5.0 (written by Costas Calamvokis).Help