]> jspc29.x-matter.uni-frankfurt.de Git - trbnet.git/commitdiff
The FIFO sbuf implementation for the Virtex4
authorhadeshyp <hadeshyp>
Thu, 28 Apr 2011 16:42:33 +0000 (16:42 +0000)
committerhadeshyp <hadeshyp>
Thu, 28 Apr 2011 16:42:33 +0000 (16:42 +0000)
Boris

xilinx/virtex4/fifo_sbuf.vhd [new file with mode: 0644]
xilinx/virtex4/xilinx_fifo_sbuf.ngc [new file with mode: 0644]
xilinx/virtex4/xilinx_fifo_sbuf.vhd [new file with mode: 0644]
xilinx/virtex4/xilinx_fifo_sbuf.xco [new file with mode: 0644]

diff --git a/xilinx/virtex4/fifo_sbuf.vhd b/xilinx/virtex4/fifo_sbuf.vhd
new file mode 100644 (file)
index 0000000..26d31e5
--- /dev/null
@@ -0,0 +1,59 @@
+LIBRARY IEEE;
+USE IEEE.STD_LOGIC_1164.ALL;
+
+
+entity fifo_sbuf is
+port(
+       Data: in  std_logic_vector(18 downto 0); 
+       Clock: in  std_logic; 
+       WrEn: in  std_logic; 
+       RdEn: in  std_logic; 
+       Reset: in  std_logic; 
+       Q: out  std_logic_vector(18 downto 0); 
+       Empty: out  std_logic; 
+       Full: out  std_logic; 
+       AlmostFull: out  std_logic
+);
+end entity;
+
+
+
+
+
+architecture fifo_sbuf_arch of fifo_sbuf is
+
+
+
+component xilinx_fifo_sbuf IS
+port (
+       din: IN std_logic_VECTOR(18 downto 0);
+       clk: IN std_logic;
+       wr_en: IN std_logic;
+       rd_en: IN std_logic;
+       rst: IN std_logic;
+       dout: OUT std_logic_VECTOR(18 downto 0);
+       empty: OUT std_logic;
+       full: OUT std_logic;
+       almost_full: OUT std_logic
+);
+end component;
+
+
+
+begin
+
+
+the_xilinx_fifo_sbuf: xilinx_fifo_sbuf
+port map(
+       din              => Data,
+       clk              => Clock,
+       wr_en            => WrEn,
+       rd_en            => RdEn,
+       rst              => Reset,
+       dout             => Q,
+       empty            => Empty,
+       full             => Full,
+       almost_full          => AlmostFull
+);
+
+end architecture;
diff --git a/xilinx/virtex4/xilinx_fifo_sbuf.ngc b/xilinx/virtex4/xilinx_fifo_sbuf.ngc
new file mode 100644 (file)
index 0000000..4097e59
--- /dev/null
@@ -0,0 +1,3 @@
+XILINX-XDB 0.1 STUB 0.1 ASCII
+XILINX-XDM V1.4e
+$3fe\7f41<,[o}e~g`n;"2*447&;:%>-*>;1;8456789:;<9>40123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?1:30?4(79=1:97GAPTV9EABUI5;?6=0>4:36>LHW]]0JHI\M<0694;753831EC^ZT;fjj97?294:86?6:NWWTPR=lf\7f\7f0<650?31?64=AGZ^X7JFA=12>586:2996D@_UU8GMG:493:5=>5<2;MVPUSS2MEJ0>?50?30?64=G\^[YY4KOC>05?6992>?79>?00380?OIX\^1HD^N<283:47<<3CE\XZ5DHRA86<768:087GAPTV9S@G;;3:5==5;:HLSQQ<PMK686=0>e:69MKVR\3zycjQjmqvz[qnumzb7?7>12497>LHW]]0{~biPelrw}ZrozlycSl}|esv?7?69:<1?6D@_UU8svjaXmdz\7fuRzgrdqk[kc`i}o7?7>11e97>LHW]]0{~biPftno[qnumzb7?7>12597>LHW]]0{~biPftno[qnumzbTm~}jru>0>585<2>1EC^ZT;rqkbYa}efTxe|jsi]mabgsm591<3?=;58LQQVR\3ND\L2<:1<26>2=G\^[YY4KOQ@?7?69911?6B[[PTV9`drfWje~by2<:1<2f>2=G\^[YY4}d^fbpdYdg|d\7f0>4?>0`80?IR\Y__6z|Pd`vb[firf}686=0i;5to|16an8;?4 ??1:41?3G33?KJM959FG41?=6331:34?57209:0>?789>05=>64:;:4<4<I;20MIJ]A=2==>GCL[K7==06;@FGVD:69730MIJ]A=31:<=FLMXJ0<=1b:CG@WG;9=0;245NDEPB842902KOH_O31?:8EABUI58546OKDSC?7;><IMNYM1:18:CG@WG;=720MIJ]A=4=<>GCL[K7;364AEFQE9>902KOH_O39?:8EABUJ5:556OKDS@?558>3HNO^O2>1?;8EABUJ5;9245NDEPA8459j2KOH_L31583:<=FLMXI0<:18:CG@WD;9720MIJ]B=0=<>GCL[H7?364AEFQF92902KOH_L35?:8EABUJ5<546OKDS@?3;><IMNYN1618:CG@WD;1780MH:4AG00=>GTQGIT^HI<;CW1<>DR[VCEJB?4C`9@EVEFLLCEMl5LARAB@@OIJk1HM^MNDDMVPDd<KHYHMIK@UU@1?FC33JF@M95LLJ@0?FJU12IDA@G[TDF4?FTBI]OO=6J9;EKB85803MCJ0<>17:FJE9766>1OEL2>2?58@LG;9:4<7IGN<06=3>BNI5;>2:5KI@>22;1<L@K7=:08;EKB84>9?2NBM1?6>79GMD:66>1OEL2=0?58@LG;:84<7IGN<30=3>BNI5882:5KI@>10;1<L@K7>808;EKB8709?2NBM1<8>69GMD:507=0HDO328<5?AOF4;4<7IGN<22==>BNI59:6=08;EKB8679>2NBM1=16:FJE929>2NBM1;16:FJE909>2NBM1916:FJE9>9>2NBM1716:FJF969?2NBN1??>69GMG:697=0HDL313<4?AOE4895;6JFB=37:2=CAK6:9394DH@?53803MCI0<917:FJF97?6>1OEO2>9?48@LD;97=0HDL321<4?AOE4;;5;6JFB=01:2=CAK69?394DH@?61803MCI0?;17:FJF9416>1OEO2=7?58@LD;:14<7IGM<3;=2>BNJ585;6JFB=13:<=CAK68=7>17:FJF9566?1OEO2<>79GMG:36?1OEO2:>79GMG:16?1OEO28>79GMG:?6?1OEO26>69GMUG;87=0HD^N<0<4?AOWI58556JFP@>0>5803MC[M1=17:FJTG:76>1OE]L31?58@LVE4;427IG_B=194;1<L@ZI0>09;EMB85803MEJ0<>17:FLE9766>1OCL2>2?58@JG;9:4<7IAN<06=3>BHI5;>2:5KO@>22;1<LFK7=:08;EMB84>9?2NDM1?6>79GKD:66>1OCL2=0?58@JG;:84<7IAN<30=3>BHI5882:5KO@>10;1<LFK7>808;EMB8709?2NDM1<8>69GKD:507=0HBO328<5?AIF4;4<7IAN<22==>BHI59:6=08;EMB8679>2NDM1=16:FLE929>2NDM1;16:FLE909>2NDM1916:FLE9>9>2NDM1717:FLEZTBO?1OCO2?>69GKG:687=0HBL310<4?AIE4885;6J@B=30:2=CGK6:8394DN@?50803MEI0<817:FLF9706>1OCO2>8?58@JD;904=7IAM<0<4?AIE4;:5;6J@B=02:2=CGK69>394DN@?66803MEI0?:17:FLF9426>1OCO2=6?58@JD;:>4<7IAM<3:=3>BHJ5822;5KOC>1:2=CGK68<374DN@?74<76>1OCO2<1?48@JD;;7<0HBL34?48@JD;=7<0HBL36?48@JD;?7<0HBL38?48@JD;17=0HBLPRDE4?AIWI5:5;6J@P@>2:2=CGYK7>374DNRB86<76>1OC]O33?58@JVE494<7IA_B=3=3>BHXK69245KOQ@?7?69?2ND\O2<>29FJD5<MGH?7KOI249EEIUB:2LO86HKCD18BAV33ON[I95IF677?C@A><1Mma}j1:E0?BHC92C97D>=;H31?L453@937D@FTQ]34==NF@^[S=?7;HLJPUY7:11BBDZ__11;?LHN\YU;855FNHVS[53?3@DBX]Q?699JJLRWW9=27D@FTRVBP@1<AGC_S=>8;HLJPZ66?2CEEYQ?269JJLRX8:=0ECG[_164?LHN\V:>;6GAIU]322=NF@^T<:94IOKW[5>03@DBXR>67:KMMQY7I>1BBDZP0C58MKOSW9I<7D@FT^2G3>OIA]U;I:5FNHV\4C1<AGC_S<>8;HLJPZ76?2CEEYQ>269JJLRX9:=0ECG[_064?LHN\V;>;6GAIU]222=NF@^T=:94IOKW[4>03@DBXR?67:KMMQY6I>1BBDZP1C58MKOSW8I<7D@FT^3G3>OIA]U:I:5FNHV\5C1<AGC_S?>8;HLJPZ46?2CEEYQ=269JJLRX::=0ECG[_364?LHN\V8>;6GAIU]122=NF@^T>:94IOKW[7>03@DBXR<67:KMMQY5I>1BBDZP2C58MKOSW;I<7D@FT^0G3>OIA]U9I:5FNHV\6C1<AGC_S>>8;HLJPZ56?2CEEYQ<269JJLRX;:=0ECG[_264?LHN\V9>;6GAIU]022=NF@^T?:94IOKW[6>03@DBXR=67:KMMQY4I>1BBDZP3C58MKOSW:I<7D@FT^1G3>OIA]U8I:5FNHV\7C0<AGC_SL84IOKW[G?<AGC_SKGCE29JJS753@D]I_ZPCMI\@JGXZLM:>6GAVDPW[FJLWMEIS_KH3:KLF7=KG?1GCLJJD69OKBODIE>0@XZ=4:NVP60<D\^8SA:4LTV72>JR\=UG96CZXG7`?Hgmg{\n~~g`nb9Nmkiu^lxxeb`=;O30?K77;2D:=>5A1318J4543G;??6@>529M535<F8=87C?73:L2=7=I::1E>==4N330?K45;2D9?>5A2568J700<2D9:4:4N3520>H5?:>0B?9:4:L1322<F;=3?6@:029M175<F<?87C;72:L57>H1;:1E:9=4N770?K01;2D=;>5A6918J3?53G=87C9?3:L456=I?;90B:=<;O577>H0=:1E;;=4N650?K1?;2D<5?5A829M<55<F1;87C6=3:L;77=I1o1ENRLZSQKM[UTHXZ=0BHZXOSI7?KIIM81D>6AD1:R7?UGU\h1[ECQMURKG\g=WAGUIY^@NMD18TWC63X<0^LCM17d8VDKXMQ^NB^G@N^Ce?WGJWLR_IC]FOO]Ag>TBIMU\EIZG_@a8V@GCW^COXEQM6:PFCFCF>2XNKNKM1:Q;?VGQMMK_M<=4SHO\GJJKAZCDBRMGEBI5?VIRZJO<7^\YAM]B3>UU^HFTN95\SSC7?VUUJ=1_U]K=9:W3+bta&{l$ka>!re-dvvu)zz~x#\7fob_dosp|YajVc8=6[?/fpe*w`(oe:%~i!hrrq-vvrt'{kfShc\7ftx]efZoXe|r;<=><4:W3+bta&{l$ka>!re-dvvu)zz~x#\7fob_dosp|YajVcTc\7f>?01122=5?3\:$k\7fh!rg-dh5(ul&my\7f~ }suq,vdkXmdz\7fuRhm_h]lv5678:;=4R]X02:8Q5)`zo$yj"ic0/pg+btt{'xxx~!}al]fiur~WohTeRa}0123740?WZ]:??5Z0.eqb+ta'nf;"\7fj gsqp*wus{&xjaRkbpu{\bgYnWfx;<=><5208Q5)`zo$yj"ic0/pg+btt{'xxx~!}al]fiur~WohTeRa}012327553\:$k\7fh!rg-dh5(ul&my\7f~ }suq,vdkXmdz\7fuRhm_h]lv5678>38:6[?/fpe*w`(oe:%~i!hrrq-vvrt'{kfShc\7ftx]efZoXg{:;<=96_RU377=R8&myj#|i/fn3*wb(o{yx"\7f}{s.pbiZcjx}sTjoQf_np3456>::<0Y=!hrg,qb*ak8'xo#j||s/pppv)uidUna}zv_g`\mZiu89:;S`o\7f1415?P6(o{l%~k!hl1,q`*au{z$y\7fy} r`o\ahvsqVliSdQ`r1234Zkfx;<8:6[?/fpe*w`(oe:%~i!hrrq-vvrt'{kfShc\7ftx]efZoXg{:;<=Qbaq0;63=R8&myj#|i/fn3*wb(o{yx"\7f}{s.pbiZcjx}sTe<j4U1-dvc(un&mg<#|k/scn[wbXmgUb=?=4U1-dvc(un&mg<#|k/srmpw)Jkf\7fexRm`uov10>S7'nxm"\7fh gm2-va)uxg~y#@m`uov\gjsi|:8?7X> gsd-vc)`d9$yh"|\7fnup,Ifirf}Uhcx`{6368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr>;;1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>3:47XAG\T<?m4U1-dvc(un&mg<#|k/srmpw)Jkf\7fexRm`uov\|jt;97;:>n5Z0.eqb+ta'nf;"\7fj rqlwv*Kdg|d\7fSnaznu]{kw:568;9o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^zlv95998;m7X> gsd-vc)`d9$yh"|\7fnup,gjsi|5:5=k5Z0.eqb+ta'nf;"\7fj rqlwv*eh}g~7=3?i;T2,cw`)zo%l`= }d.psjqt(kf\7fex1<11g9V4*aun'xm#jb?.sf,vuhsz&idycz33?3f?P6(o{l%~k!hl1,q`*twf}x$ob{at^22a>S7'nxm"\7fh gm2-va)uxg~y#naznu]25`=R8&myj#|i/fn3*wb(zyd\7f~"m`uov\64c<]9%l~k }f.eo4+tc'{zex\7f!lotlw[6453\:$k\7fh!rg-dh5(ul&x{by| cnwmpZb64949>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=1?1239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>1:74<]9%l~k }f.eo4+tc'{zex\7f!lotlw[a7;;78:7X> gsd-vc)`d9$yh"|\7fnup,gjsi|Vn:S=<>;T2,cw`)zo%l`= }d.psjqt(kf\7fexRj>_002?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[7463\:$k\7fh!rg-dh5(ul&x{by| cnwmpZb6W:8?7X> gsd-vc)`d9$yh"|\7fnup,gjsi|Vddx=>?1348Q5)`zo$yj"ic0/uq+bqt{'}xx~!l1.flqqYn9>8=7X> gsd-vc)`d9$|~"ixsr,twqu(k8%ocxzPi4112>S7'nxm"\7fh gm2-sw)`\7fzy%{~z|/b3,`jssW`?>>l5Z0.eqb+ta'nf;"z| gvqp*rus{&i:#iazt^k\idv59;30Y=!hrg,qb*ak8'}y#jy|s/uppv)d9&ndyyQf_lcs=76<]9%l~k }f.eo4+qu'n}x\7f#y|tr-`khv6:?1^<"i}f/pe+bj7&~x$kz}|.vqww*tfeVkmyabPi3f8Q5)`zo$yj"ic0/uq+bqt{'}xx~!}al]bbpjkW`Ud~=>?0228Q5)`zo$yj"ic0/uq+bqt{'}xx~!}al]bbpjkW`Ud~=>?00266c=R8&myj#|i/fn3*rt(o~yx"z}{s.pbiZga}efTeRa}012356543\:$k\7fh!rg-dh5(pz&m|\7f~ xsuq,vdkXio\7fg`RgPos23457?WZ];>k5Z0.eqb+ta'nf;"z| gvqp*rus{&xjaRoiumn\mZiu89:;;5<i;T2,cw`)zo%l`= xr.etwv(p{}y$~lcPagwohZoXg{:;<=7<329V4*aun'xm#jb?.vp,crut&~y\7f\7f"|nm^ceqijXaVey<=>?92]PS5543\:$k\7fh!rg-dh5(pz&m|\7f~ xsuq,vdkXio\7fg`RgPos2345Yjiy9:?>5Z0.eqb+ta'nf;"z| gvqp*rus{&xjaRoiumn\mZiu89:;S`o\7f3211?P6(o{l%~k!hl1,tv*ap{z$|\7fy} r`o\ecskdVcTc\7f>?01]neu0502_;#j|i.sd,ci6)\7f{%l{~}!wrvp+wgjWo\7fg`Rm`mc0b?P6(o{l%~k!hl1,tv*ap{z$|\7fy} r`o\bpjkWjefnRH=a:W3+bta&{l$ka>!ws-dsvu)\7fz~x#\7fob_gwohZehekUL>55Z0.eqb+ta'nf;"z| gvqp*rus{&xjaRhzlm]efZo5=2_;#j|i.sd,ci6)\7f{%l{~}!wrvp+wgjWo\7fg`Rg=4:W3+bta&{l$ka>!ws-dsvu)\7fz~x#z|Prrv\`47c3\:$k\7fh!rg-dh5(pz&xjaRy}_dl\m4443\:$k\7fh!rg-dh5(pz&}{by| MbmvjqYdg|d\7f>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|d\7fSnaznu110>S7'nxm"\7fh gm2-sw)pxg~y#@m`uov\gjsi|?8?7X> gsd-vc)`d9$|~"y\7fnup,Ifirf}Uhcx`{9208Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7<3?>_HLU[54d3\:$k\7fh!rg-dh5(pz&}{by| MbmvjqYdg|d\7fSua}<0<257e<]9%l~k }f.eo4+qu'~zex\7f!BcnwmpZeh}g~Ttb|32?326f=R8&myj#|i/fn3*rt(\7fyd\7f~"Clotlw[firf}Usc\7f2<>032b>S7'nxm"\7fh gm2-sw)pxg~y#naznu>3:4`<]9%l~k }f.eo4+qu'~zex\7f!lotlw8486n2_;#j|i.sd,ci6)\7f{%||cz}/bmvjq:568l0Y=!hrg,qb*ak8'}y#z~ats-`kphs4:4:i6[?/fpe*w`(oe:%{\7f!xpovq+firf}U;=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T=<k4U1-dvc(un&mg<#y}/vrmpw)dg|d\7fS??j;T2,cw`)zo%l`= xr.usjqt(kf\7fexR==2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=2=67=R8&myj#|i/fn3*rt(\7fyd\7f~"m`uov\`4:66;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7>3<=;T2,cw`)zo%l`= xr.usjqt(kf\7fexRj><2<15>S7'nxm"\7fh gm2-sw)pxg~y#naznu]g5Z6592_;#j|i.sd,ci6)\7f{%||cz}/bmvjqYc9V;9=6[?/fpe*w`(oe:%{\7f!xpovq+firf}Uo=R<=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^116>S7'nxm"\7fh gm2-sw)pxg~y#naznu]g6969:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6:2?<4U1-dvc(un&mg<#y}/vrmpw)dg|d\7fSi<32?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1868592_;#j|i.sd,ci6)\7f{%||cz}/bmvjqYc:V:9=6[?/fpe*w`(oe:%{\7f!xpovq+firf}Uo>R?=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^015>S7'nxm"\7fh gm2-sw)pxg~y#naznu]g6Z55<2_;#j|i.sd,ci6)\7f{%||cz}/bmvjqYig}:;<<8i;T2,cw`)zo%fi`!hbl,dfha)okglm#`heba-fha(jeaTahcPgdlfvdrhz&|j`dj!crvq+wgjdfe{W=S!r`o-v*p3&{kf#^J_.RKMCICXX[CF"^J_1c9V4*aun'xm#`kb/uos[wgjW{nTic?l;T2,cw`)zo%fi`!{mq]qehYulVoe=<j4U1-dvc(un&xxxobd/sf\vvrXizxnk?>4U1-dvc(un&xxxobd/sf\vvrXizxnkRj>219V4*aun'xm#\7f}{bmi,vaYu{}Uj\7f\7fkh_e02g>S7'nxm"\7fh rrvahn)ulVxxxRm`mc3g?P6(o{l%~k!}su`oo*tcW{y\7fSnabb03f?P6(o{l%~k!}su`oo*tcW{y\7fS\7fkh<1<2a>S7'nxm"\7fh rrvahn)ulVxxxR|jg=0=5a=R8&myj#|i/sqwfim(zmUy\7fyQ}ef]35a=R8&myj#|i/sqwfim(zmUy\7fyQ}ef]15a=R8&myj#|i/sqwfim(\7f{Uy\7fyQnssgd65=R8&myj#|i/sqwfim(\7f{Uy\7fyQnssgd[a7582_;#j|i.sd,vvredb%|~R||t^cpv`aXl;;h7X> gsd-vc)u{}hgg"y}_sqw[fijj8n0Y=!hrg,qb*tt|kf`#z|Prrv\gjke98o0Y=!hrg,qb*tt|kf`#z|Prrv\v`a;97;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W8k0Y^K]_@NJEVe<]ZOYS[G\ICNF7>PDK01]EHYPTXRF2>QBI5:5:6YJA=3=2>QBI58546YJA=194;0<_LK7?384WD@?4;0<_LH7=384WD@?6;><_LH7?7>16:UFF959j2]YEYKPFHPPPf=PZ@^NS@AKE^C`?RTN\LUFCIKPBe9TVLRBW^COXEQNd:UQMQCX_@N_DRL>d:ZJHLH_%QNI,= > RVVF%6)9)KXODG9;YQWHLD03QY_SJ@K7:ZPPZPDKk1SSNA]E^KMBJ773QUHC_KPIODL[IOT\?1ShoQFdg9[`mYWz`g]i\7f}foo33?]bjWDkac\7fXjrrklj46<PmgTAd``rWgqwliik2kgab}{_dosp|d<iegd\7fyQiumn5?ggdc|zo7oolktr\idtlm{90oaek;ecweZeh}g~#<$j4d`vb[firf}":%i5kauc\gjsi|!8"h6jnt`]`kphs :#m7io{a^alqkr;;3:5;6jmiugqv3=cag";%;5kio*2-2=cag":<$94dhl+54/03mce$<<&7:fjj-74!>1oec&>4(58`lh/9<#<7iga(04*3>bnf!;<%:5kio*2<,0<l`d#>$84dhl+7,0<l`d#8$84dhl+1,0<l`d#:$84dhl+3,0<l`d#4$84dhl+=,0<l`d7<394dhl?55803mce0<?17:fjj9756>1oec2>3?58`lh;9=4<7iga<07=3>bnf5;=2:5kio>23;?<l`d7=54?>69gmk:607<0hd`31?48`lh;:7<0hd`33?48`lh;<7<0hd`35?48`lh;>7<0hd`37?48`lh;07<0hd`39?58`jss 9#<7iazt)3*<>bh}}":<$64dnww,47.02ndyy&>2(:8`jss 89"46j`uu*20,><lf\7f\7f$<;&8:flqq.6> 20hb{{(05*<>bh}}":4$94dnww,7/03me~x%=&7:flqq.3!>1ocxz'5(58`jss ?#<7iazt)5*3>bh}}"3%:5kotv+=,1<lf\7f\7f0=07;emvp977611ocxz310<;?air|5;9255kotv?568?3me~x1?;>99gkpr;9<437iazt=35:==cg|~7=:0n;emvp97?29437iazt=3;:2=cg|~7=394dnww87803me~x1=17:flqq:36>1ocxz35?58`jss4?4<7iazt=5=3>bh}}632:5kotv?=;><mmcm>cik5:gntq\7f502lbjbQheogqeqiuW\7f>T>!.Losgdak&>&;$;8dQfp368bpjk?2cexRmck99mcfdraen37bxjrgnlsd=wzfmTi`~{y068twi`Wlg{xtQ{hsgpl-6.9=1{~biPelrw}Zrozlyc$<'>4:rqkbYbey~rSyf}erj+6,733yxdkRkbpu{\pmtb{a"8%<84psmd[`kw|pU\7fd\7fk|h=194;7e3yxdkRkbpu{\pmtb{aUj\7f~k}t)2*5g=wzfmTi`~{y^vkv`uoWhyxi\7fz'1(3a?uthoVof|ywPtipfwmYf{zoyx%<&1c9svjaXmdz\7fuRzgrdqk[dutm{~#?$?k;qplcZcjx}sTxe|jsi]bwvcu|591<3?m;qplcZcjx}sTxe|jsi]mabgsm!:"=o5\7frne\ahvsqV~c~h}g_ogdeqc/9 ;i7}|`g^gntq\7fX|axn\7feQaefcwa-4.9k1{~biPelrw}ZrozlycSckhaug+7,7c3yxdkRkbpu{\pmtb{aUeijo{e=194;?<x{elSk{cl018twi`Wo\7fg`Rzgrdqk,5/6;2zycjQiumn\pmtb{a":%<=4psmd[cskdV~c~h}g(3+27>vugnUmyabPtipfwm.4!8?0|\7fah_gwohZrozlyc0>4?>0c8twi`Wo\7fg`Rzgrdqk[dutm{~#<$?n;qplcZ`rdeU\7fd\7fk|h^cpw`ts 8#:m6~}of]eqijX|axn\7feQnsrgqp-4.9h1{~biPftno[qnumzbTm~}jru*0-4e<x{elSk{cl^vkv`uoWhyxi\7fz33;2=5d=wzfmTjxbc_ujqavnXflmjxh&?)0c8twi`Wo\7fg`Rzgrdqk[kc`i}o#=$?n;qplcZ`rdeU\7fd\7fk|h^lfcdrb ;#:m6~}of]eqijX|axn\7feQaefcwa-5.9j1{~biPftno[qnumzbTbhintd>0>5813{nToae>0:pg[agsiVidycz'0(33?wbXlh~jSnaznu*2-46<zmUomyoPcnwmp-4.991yhRjnt`]`kphs :#:<6|k_ecweZeh}g~7<3?=;sf\`drfWje~by2<:1<6?wbXmg<0~iQ}su18vvr03zhbxh|}4:qqwq7d3}g{#Rmh/ykomk~Xn`ldS~lzf/ldk<=rfmoyjaax5:tbhlb13~xTmne9;vp\gim682}ySio{a^alqkr/8 ;;7z|Pd`vb[firf}":%<>4ws]geqgXkf\7fex%<&119tvZbf|hUhcx`{(2+26>quWmk\7fmRm`uov?7?69=2}ySh`9;vp\vvr682rb`d`w_gkekZue}o8j7ugcioz\bl`hWzh~jRhffn]dakcui}eyS{:P2^zppZ7zHIz8hi5O@y0g5?@=<3;p_8l528g91?74:mh<o7<768dxj724281e>9:54:&104<5;k1v_8o528g91?74:mh<o7<768d8W43f2;k86=4>33fa3f<50?k:7^;n:3c0>5<6;;ni;n4=87c1?a4cl3:1=7?tS4`96<c==3;8>il8c;0;2<`<,;9m6?o?;wV2e`<7280:6:>tS4`96<c==3;8>il8c;0;2<`<,;8i6<;m;W076?4|}8<96<5z17194>{#90l1=k5m2ef94?4c2:09hvF=289Y15<5s0036p*>b281`a=#::l1>l>4Z363>7}5i909m=4ri3a`>5<<a;ni6=44o3c2>5<<g;3m6=44i36:>5<<a;in6=44o3:2>5<#9h;1>4=4n0c3>5=<g;2;6=4+1`396<5<f8k;6<54o35e>5<#9h;1>4=4n0c3>7=<g;=n6=4+1`396<5<f8k;6>54o35g>5<#9h;1>4=4n0c3>1=<g;=h6=4+1`396<5<f8k;6854o35a>5<#9h;1>4=4n0c3>3=<g;=j6=4+1`396<5<f8k;6:54o35:>5<#9h;1>4=4n0c3>==<g;226=4+1`396<5<f8k;6454o3:;>5<#9h;1>4=4n0c3>d=<g;2<6=4+1`396<5<f8k;6o54o3:5>5<#9h;1>4=4n0c3>f=<g;2>6=4+1`396<5<f8k;6i54o3:7>5<#9h;1>4=4n0c3>`=<g;286=4+1`396<5<f8k;6k54o3:1>5<#9h;1>4=4n0c3>46<3f8<47>5$0c2>7?43g;j<7?>;:m132<72-;j=7<63:l2e5<6:21b>8o50;&2e4<5>j1e=l>50:9j60?=83.:m<4=6b9m5d6=921b>8650;&2e4<5>j1e=l>52:9j601=83.:m<4=6b9m5d6=;21b>8850;&2e4<5>j1e=l>54:9j603=83.:m<4=6b9m5d6==21b>8:50;&2e4<5>j1e=l>56:9j605=83.:m<4=6b9m5d6=?21b>8<50;&2e4<5>j1e=l>58:9j634=83.:m<4=6b9m5d6=121b>;?50;&2e4<5>j1e=l>5a:9j636=83.:m<4=6b9m5d6=j21b>8h50;&2e4<5>j1e=l>5c:9j60c=83.:m<4=6b9m5d6=l21b>8j50;&2e4<5>j1e=l>5e:9j60e=83.:m<4=6b9m5d6=n21b>8l50;&2e4<5>j1e=l>51198m736290/=l?527a8j4g728;07d<:0;29 4g62;<h7c?n0;31?>i5<?0;66l=2`83>4<729qC>?74$0`0>74f3f;2i7>5;|`246<7280;6=uG23;8 4d428:87b??2;29?xd3n3:1:?4;7;53\7fM4512P><7?9{0695=<6l3;>6<k5168:>=<613;h6<851b82a??=9m0:97651882<?7028<1=94r$0`0>7bb3-;>47??1:&17c<5i91/=47518f8k7222900e?mk:188m7g>290/=l?52`c8j4g72910e?o7:18'5d7=:hk0b<o?:098m7g0290/=l?52`c8j4g72;10e?o9:18'5d7=:hk0b<o?:298k7d22900e?j?:188k7b42900e?lj:18'5d7=:kl0b<o?:198m7dc290/=l?52cd8j4g72810e?ll:18'5d7=:kl0b<o?:398m7de290/=l?52cd8j4g72:10e?ml:188k7g22900c?o;:188m72?2900c?m6:18'5d7=:jh0b<o?:198k7e?290/=l?52b`8j4g72810c?m8:18'5d7=:jh0b<o?:398k7e1290/=l?52b`8j4g72:10e?oj:18'5d7=:hl0b<o?:198m7gc290/=l?52`d8j4g72810e?ol:18'5d7=:hl0b<o?:398m7ge290/=l?52`d8j4g72:10e?jm:188k7b>290/=l?52ec8j4g72910c?j7:18'5d7=:mk0b<o?:098k7b0290/=l?52ec8j4g72;10c?j9:18'5d7=:mk0b<o?:298k7g62900c?7i:188m7b22900e?l6:18'5d7=:kk0b<o?:198m7d?290/=l?52cc8j4g72810e?l8:18'5d7=:kk0b<o?:398m7d1290/=l?52cc8j4g72:10e?o=:188m72>2900e?jl:188k7ea2900c?j;:188k7b52900e?mj:188k7>6290/=l?52818j4g72910c?6?:18'5d7=:090b<o?:098k71a290/=l?52818j4g72;10c?9j:18'5d7=:090b<o?:298k71c290/=l?52818j4g72=10c?9l:18'5d7=:090b<o?:498k71e290/=l?52818j4g72?10c?9n:18'5d7=:090b<o?:698k71>290/=l?52818j4g72110c?66:18'5d7=:090b<o?:898k7>?290/=l?52818j4g72h10c?68:18'5d7=:090b<o?:c98k7>1290/=l?52818j4g72j10c?6::18'5d7=:090b<o?:e98k7>3290/=l?52818j4g72l10c?6<:18'5d7=:090b<o?:g98k7>5290/=l?52818j4g728:07b<88;29 4g62;387c?n0;32?>i5?>0;6)?n1;0:7>h6i90:>65f24c94?"6i809:n5a1`294>=n:<31<7*>a0812f=i9h:1=65f24:94?"6i809:n5a1`296>=n:<=1<7*>a0812f=i9h:1?65f24494?"6i809:n5a1`290>=n:<?1<7*>a0812f=i9h:1965f24694?"6i809:n5a1`292>=n:<91<7*>a0812f=i9h:1;65f24094?"6i809:n5a1`29<>=n:?81<7*>a0812f=i9h:1565f27394?"6i809:n5a1`29e>=n:?:1<7*>a0812f=i9h:1n65f24d94?"6i809:n5a1`29g>=n:<o1<7*>a0812f=i9h:1h65f24f94?"6i809:n5a1`29a>=n:<i1<7*>a0812f=i9h:1j65f24`94?"6i809:n5a1`2955=<a;?:6=4+1`3963e<f8k;6<?4;h064?6=,8k:6?8l;o3b4?7532e98;4?::k102<722c9o>4?:%3b5?4d<2d:m=4?;:k1g7<72-;j=7<l4:l2e5<632c9o<4?:%3b5?4d<2d:m=4=;:k1g5<72-;j=7<l4:l2e5<432e98i4?:%3b5?43m2d:m=4?;:m10f<72-;j=7<;e:l2e5<632e98o4?:%3b5?43m2d:m=4=;:m10d<72-;j=7<;e:l2e5<432e98k4?::k1f6<72-;j=7<m4:l2e5<732c9n?4?:%3b5?4e<2d:m=4>;:k1f4<72-;j=7<m4:l2e5<532c9n=4?:%3b5?4e<2d:m=4<;:k1g0<722h9?i4?:083>5}#9k91===4H31`?M4512e:<?4?::\7fa66c=83;1<7>t$0`0>74f3A88o6F=289l5<c=831vn??n:180>5<7s-;i?7hm;I00g>N5:01C8h5+10395>o293:17d;l:188k4g42900qo<=3;297?6=8r.:n>4ib:J17f=O:;30D9k4$032>4=n=80;66g:c;29?j7f;3:17pl=1883>6<729q/=o=5fc9K66e<@;827E:j;%325?7<a<;1<75f5b83>>i6i:0;66sm23394?3=83:p(<l<:gg8L75d3A8956F;e:&254<63`?:6=44i4494?=n=j0;66g>a383>>i6i:0;66sm23094?5=83:p(<l<:g`8L75d3A8956F;e:&254<63`?:6=44i4a94?=h9h91<75rb33;>5<2290;w)?m3;df?M44k2B9>45G4d9'547=92c>=7>5;h75>5<<a<i1<75f1`094?=h9h91<75rb303>5<3290;w)?m3;dg?M44k2B9>45+10395>o293:17d;l:188m4g52900c<o<:188yg46n3:187>50z&2f6<al2B9?n5G23;8 476281b9<4?::k6g?6=3`;j>7>5;n3b7?6=3th9>:4?:583>5}#9k91ji5G22a8L74>3-;:=7?4i4394?=n=j0;66g>a383>>i6i:0;66sm1c694?2=83:p(<l<:gf8L75d3A8956*>1087?l362900e8m50;9j5d4=831d=l=50;9~f4e6290?6=4?{%3a7?`c3A88o6F=289'547=<2c>=7>5;h7`>5<<a8k96=44o0c0>5<<uk;o;7>55;294~"6j:0mo6F=3b9K67?<,8;:6<5f5083>>o2>3:17d;6:188m0e=831d=l=50;9~f4b?290>6=4?{%3a7?`d3A88o6F=289'547=92c>=7>5;h75>5<<a<31<75f5b83>>i6i:0;66sm1e;94?3=83:p(<l<:ga8L75d3A8956*>1082?l362900e8850;9j1<<722c>o7>5;n3b7?6=3th:hl4?:483>5}#9k91jn5G22a8L74>3-;:=7?4i4394?=n=?0;66g:9;29?l3d2900c<o<:188yg4683:197>50z&2f6<ak2B9?n5G23;8 476281b9<4?::k62?6=3`?26=44i4a94?=h9h91<75rb332>5<2290;w)?m3;d`?M44k2B9>45+10395>o293:17d;9:188m0?=831b9n4?::m2e6<722wi><<50;794?6|,8h86km4H31`?M4512.:=<4>;h72>5<<a<<1<75f5883>>o2k3:17b?n3;29?xd59:0;684?:1y'5g5=nj1C>>m4H30:?!7693;0e8?50;9j13<722c>57>5;h7`>5<<g8k86=44}c03f?6==3:1<v*>b28eg>N5;j1C>?74$032>4=n=80;66g:6;29?l3>2900e8m50;9l5d5=831vn?>n:186>5<7s-;i?7hl;I00g>N5:01/=<?51:k65?6=3`?=6=44i4;94?=n=j0;66a>a283>>{e:931<7;50;2x 4d42oi0D?=l;I01=>"6980:7d;>:188m00=831b944?::k6g?6=3f;j?7>5;|`14=<72<0;6=u+1c19b`=O::i0D?<6;%325?2<a<;1<75f5783>>o2k3:17d?n2;29?j7f;3:17pl>cg83>0<729q/=o=5fd9K66e<@;827)?>1;68m07=831b9;4?::k6g?6=3`;j>7>5;n3b7?6=3th:h=4?:483>5}#9k91jn5G22a8L74>3-;:=7?4i4394?=n=?0;66g:9;29?l3d2900c<o<:188yg7c93:197>50z&2f6<ak2B9?n5G23;8 476281b9<4?::k62?6=3`?26=44i4a94?=h9h91<75rb322>5<2290;w)?m3;df?M44k2B9>45+10390>o293:17d;9:188m0e=831b=l<50;9l5d5=831vn<j=:186>5<7s-;i?7hl;I00g>N5:01/=<?51:k65?6=3`?=6=44i4;94?=n=j0;66a>a283>>{e:9:1<7;50;2x 4d42oi0D?=l;I01=>"6980:7d;>:188m00=831b944?::k6g?6=3f;j?7>5;|`147<72<0;6=u+1c19bf=O::i0D?<6;%325?7<a<;1<75f5783>>o213:17d;l:188k4g42900qo<?3;291?6=8r.:n>4ic:J17f=O:;30(<?>:09j14<722c>:7>5;h7:>5<<a<i1<75`1`194?=zj8l;6=4;:183\7f!7e;3lo7E<<c:J16<=#98;1=6g:1;29?l3d2900e<o=:188k4g42900qo?i2;290?6=8r.:n>4id:J17f=O:;30(<?>:59j14<722c>o7>5;h3b6?6=3f;j?7>5;|`2a7<72=0;6=u+1c19ba=O::i0D?<6;%325?7<a<;1<75f5b83>>o6i;0;66a>a283>>{e9o;1<7:50;2x 4d42on0D?=l;I01=>"6980:7d;>:188m0e=831b=l<50;9l5d5=831vn?<::180>5<7s-;i?7?:c:J17f=O:;30(<?>:d9j553=831b==850;9l5<e=831vn??l:180>5<7s-;i?7?:c:J17f=O:;30(<?>:d9j553=831b==850;9l5<e=831vn<h6:180>5<7s-;i?7?:c:J17f=O:;30(<?>:328m4622900e<>9:188k4?d2900qo?l8;297?6=8r.:n>4>5b9K66e<@;827)?>1;03?l77=3:17d??6;29?j7>k3:17pl>f`83>1<729q/=o=514f8L75d3A8956*>10815>o68<0;66g>0783>>o68>0;66a>9b83>>{e9j31<7:50;2x 4d428?o7E<<c:J16<=#98;1><5f11794?=n99<1<75f11594?=h90i1<75rb0da>5<2290;w)?m3;36b>N5;j1C>?74$032>74<a8:>6=44i025>5<<a8:<6=44i02;>5<<g83h6=44}c3`e?6==3:1<v*>b2821c=O::i0D?<6;%325?453`;;97>5;h332?6=3`;;;7>5;h33<?6=3f;2o7>5;|`2b6<72:0;6=u+1c1950e<@;9h7E<=9:&254<b3`;;97>5;h332?6=3f;2o7>5;|`2g7<72:0;6=u+1c1950e<@;9h7E<=9:&254<b3`;;97>5;h332?6=3f;2o7>5;|`2f<<72=0;6=u+1c1950b<@;9h7E<=9:&254<5>2c:<84?::k243<722c:<:4?::m2=f<722wi=oo50;794?6|,8h86<;i;I00g>N5:01/=<?5289j553=831b==850;9j551=831b==650;9l5<e=831vn<lk:186>5<7s-;i?7?:f:J17f=O:;30(<?>:g;8m4622900e<>9:188m4602900e<>7:188k4?d2900qo?j5;290?6=8r.:n>4>5e9K66e<@;827)?>1;0a?l77=3:17d??6;29?l77?3:17b?6c;29?xd6m>0;684?:1y'5g5=9<l0D?=l;I01=>"6980956g>0483>>o68?0;66g>0683>>o6810;66a>9b83>>{e9mi1<7=50;2x 4d428?h7E<<c:J16<=#98;1>:5f11794?=n99<1<75`18a94?=zj8o26=4::183\7f!7e;3;>j6F=3b9K67?<,8;:6?74i026>5<<a8:=6=44i024>5<<a8:36=44o0;`>5<<uk;oi7>55;294~"6j:0:9k5G22a8L74>3-;:=7<7;h331?6=3`;;:7>5;h333?6=3`;;47>5;n3:g?6=3th:i94?:483>5}#9k91=8h4H31`?M4512.:=<4i9:k240<722c:<;4?::k242<722c:<54?::m2=f<722wi=o650;194?6|,8h86<;l;I00g>N5:01/=<?5219j553=831b==850;9l5<e=831vn<l9:186>5<7s-;i?7?:f:J17f=O:;30(<?>:023?l77=3:17d??6;29?l77?3:17d??8;29?j7>k3:17pl=1683>1<729q/=o=514f8L75d3A8956*>1087g>o68<0;66g>0783>>o68>0;66a>9b83>>{e9l<1<7;50;2x 4d428?m7E<<c:J16<=#98;1jk5f11794?=n99<1<75f11594?=n9921<75`18a94?=zj8hh6=4::183\7f!7e;3;>j6F=3b9K67?<,8;:6?o4i026>5<<a8:=6=44i024>5<<a8:36=44o0;`>5<<uk;nh7>54;294~"6j:0::<5G22a8L74>3`;;97>5;h332?6=3`;jn7>5;n3:g?6=3th:ih4?:483>5}#9k91=8h4H31`?M4512.:=<4=5:k240<722c:<;4?::k242<722c:<54?::m2=f<722wi=hh50;794?6|,8h86<;i;I00g>N5:01/=<?54e9j553=831b==850;9j551=831b==650;9l5<e=831vn<h7:181>5<7s-;i?7?:5:J17f=O:;30e<>;:188k4?d2900qo?l7;296?6=8r.:n>4>549K66e<@;827d??4;29?j7>k3:17pl=1483>f4=83:p(<l<:0c7?M44k2B9>45U518`\7f3<02h0i6<>510826?742j0o6<o51c8~ 45b2:1/=>h53:&205<43-;?=7=4$061>6=#9=91?6*>4580?!73=390(<:9:29'511=;2.:854<;%37=?5<,8>j6>5+15`97>"6<j087)?;d;18 42b2:1/=9h53:&215<43-;>=7=4$077>4?e3-;>>7<4$070>7=#9931?6*>0`80?!77j390(<>l:29'55b=;2.:<h4<;%362?`f3-;>;7hn;%3b1?7>j2.:m;4>9c9m5d1=:=1e=l65259'5db=90h0(<>i:29'546=;2.9?:4=379'66>=::<0b?=6:368j75f2;>0bno50:lfg?6<,8kh6ko4$0ce>7=#9881?6*>1280?!76<390(<?::29'540=;2.:=:4<;%32<?5<,8;26>5+10c97>"69k087)?>c;18 47c2:1/=<k53:&25c<43-;9<7=4$002>6=#9;81?6*>2280?!75<390(<<::29'570=;2.:>:4<;%31<?5<,8826>5+13c97>"6:k087)?=c;18 44c2:1/=?k53:&26c<43-;8<7=4$012>6=#9:81?6*>3280?!74<390(<=::29'560=;2.:?:4<;%30<?5<,8926>5+12c97>"6;k087)?<c;18 45c2:1/=o>52:k66?6=3`?86=44i4594?=n=10;66gi7;29?l7f13:17d?na;29?l`?2900e<l>:188m4d52900c8:50;9l10<722c8>7>5$0c2>67<f8k;6=54i2294?"6i808=6`>a182?>o5n3:1(<o>:238j4g72;10e?k50;&2e4<492d:m=4<;:k1`?6=,8k:6>?4n0c3>1=<a:h1<7*>a0805>h6i90>76g<a;29 4g62:;0b<o?:798m6?=83.:m<4<1:l2e5<032c847>5$0c2>67<f8k;6554i2594?"6i808=6`>a18:?>o4>3:1(<o>:238j4g72h10e>;50;&2e4<492d:m=4m;:k00?6=,8k:6>?4n0c3>f=<a:91<7*>a0805>h6i90o76g=c;29 4g62:;0b<o?:d98m14=83.:m<4;1:l2e5<732c?<7>5$0c2>17<f8k;6<54i2d94?"6i80?=6`>a181?>o4m3:1(<o>:538j4g72:10e>j50;&2e4<392d:m=4;;:k7f?6=,8k:69?4n0c3>0=<a=k1<7*>a0875>h6i90=76g;9;29 4g62=;0b<o?:698m1>=83.:m<4;1:l2e5<?32c?;7>5$0c2>17<f8k;6454i5494?"6i80?=6`>a18b?>o3=3:1(<o>:538j4g72k10e9:50;&2e4<392d:m=4l;:k77?6=,8k:69?4n0c3>a=<a:i1<7*>a0875>h6i90n76g86;29 4g62>?0b<o?:198m22=83.:m<485:l2e5<632c<>7>5$0c2>23<f8k;6?54i6394?"6i80<96`>a180?>o083:1(<o>:678j4g72=10e;h50;&2e4<0=2d:m=4:;:k5a?6=,8k:6:;4n0c3>3=<a?n1<7*>a0841>h6i90<76g9c;29 4g62>?0b<o?:998m3d=83.:m<485:l2e5<>32c=m7>5$0c2>23<f8k;6l54i7;94?"6i80<96`>a18a?>o1?3:1(<o>:678j4g72j10e;850;&2e4<0=2d:m=4k;:k51?6=,8k:6:;4n0c3>`=<a?>1<7*>a0841>h6i90m76g93;29 4g62>?0b<o?:028?l05290/=l?5749m5d6=9810e;?50;&2e4<0=2d:m=4>2:9j25<72-;j=79:;o3b4?7432c>j7>5$0c2>23<f8k;6<:4;h7f>5<#9h;1;85a1`2950=<a>n1<7*>a0841>h6i90::65f7b83>!7f93=>7c?n0;34?>o0j3:1(<o>:678j4g728207d9n:18'5d7=?<1e=l>51898m2?=83.:m<485:l2e5<6i21b;54?:%3b5?123g;j<7?m;:k43?6=,8k:6:;4n0c3>4e<3`=86=4+1`3930=i9h:1=i54i7:94?"6i80<96`>a182a>=n=m0;6)?n1;56?k7f83;m76g67;29 4g620<0b<o?:198m<3=83.:m<466:l2e5<632c2?7>5$0c2><0<f8k;6?54i8094?"6i802:6`>a180?>o>93:1(<o>:848j4g72=10e4>50;&2e4<>>2d:m=4:;:k;b?6=,8k:6484n0c3>3=<a1o1<7*>a08:2>h6i90<76g7d;29 4g620<0b<o?:998m=e=83.:m<466:l2e5<>32c3n7>5$0c2><0<f8k;6l54i9c94?"6i802:6`>a18a?>o?03:1(<o>:848j4g72j10e5950;&2e4<>>2d:m=4k;:k;2?6=,8k:6484n0c3>`=<a1?1<7*>a08:2>h6i90m76g74;29 4g620<0b<o?:028?l>4290/=l?5979m5d6=9810e5<50;&2e4<>>2d:m=4>2:9j<4<72-;j=779;o3b4?7432c3<7>5$0c2><0<f8k;6<:4;h5e>5<#9h;15;5a1`2950=<a0o1<7*>a08:2>h6i90::65f9e83>!7f933=7c?n0;34?>o>k3:1(<o>:848j4g728207d7m:18'5d7=1?1e=l>51898m<g=83.:m<466:l2e5<6i21b544?:%3b5??13g;j<7?m;:k:<?6=,8k:6484n0c3>4e<3`3?6=4+1`39=3=i9h:1=i54i9;94?"6i802:6`>a182a>=n?l0;6)?n1;;5?k7f83;m76gn3;29 4g62h80b<o?:198md7=83.:m<4n2:l2e5<632cj<7>5$0c2>d4<f8k;6?54i8d94?"6i80j>6`>a180?>of03:1(<o>:`58j4g72910el850;&2e4<f?2d:m=4>;:kb1?6=,8k:6l94n0c3>7=<ah>1<7*>a08b3>h6i90876g=3183>!7f9389j6`>a183?>o5:l0;6)?n1;01b>h6i90:76g=2e83>!7f9389j6`>a181?>o5:j0;6)?n1;01b>h6i90876g=3483>!7f938886`>a183?>o5;:0;6)?n1;000>h6i90:76g=3383>!7f938886`>a181?>o5;80;6)?n1;000>h6i90876al2;29 4g62j;0b<o?:198kf6=83.:m<4l1:l2e5<632eii7>5$0c2>f7<f8k;6?54ocf94?"6i80h=6`>a180?>iek3:1(<o>:b38j4g72=10col50;&2e4<d92d:m=4:;:mae?6=,8k:6n?4n0c3>3=<gk31<7*>a08`5>h6i90<76am8;29 4g62j;0b<o?:998kg1=83.:m<4l1:l2e5<>32ei:7>5$0c2>f7<f8k;6l54oc794?"6i80h=6`>a18a?>ie;3:1(<o>:b38j4g72j10co<50;&2e4<d92d:m=4k;:ma5?6=,8k:6n?4n0c3>`=<gk:1<7*>a08`5>h6i90m76anf;29 4g62j;0b<o?:028?jgb290/=l?5c09m5d6=9810clj50;&2e4<d92d:m=4>2:9lef<72-;j=7m>;o3b4?7432ejn7>5$0c2>f7<f8k;6<:4;ncb>5<#9h;1o<5a1`2950=<gj31<7*>a08`5>h6i90::65`c983>!7f93i:7c?n0;34?>id?3:1(<o>:b38j4g728207bm9:18'5d7=k81e=l>51898kf3=83.:m<4l1:l2e5<6i21do94?:%3b5?e63g;j<7?m;:m`7?6=,8k:6n?4n0c3>4e<3fhm6=4+1`39g4=i9h:1=i54oc694?"6i80h=6`>a182a>=hi00;6)?n1;a2?k7f83;m76aj4;29 4g62l90b<o?:198k`4=83.:m<4j3:l2e5<632en<7>5$0c2>`5<f8k;6?54oed94?"6i80n?6`>a180?>icm3:1(<o>:d18j4g72=10cij50;&2e4<b;2d:m=4:;:mgg?6=,8k:6h=4n0c3>3=<gmh1<7*>a08f7>h6i90<76aka;29 4g62l90b<o?:998ka?=83.:m<4j3:l2e5<>32eo47>5$0c2>`5<f8k;6l54oe594?"6i80n?6`>a18a?>ic=3:1(<o>:d18j4g72j10ci:50;&2e4<b;2d:m=4k;:mg7?6=,8k:6h=4n0c3>`=<gm81<7*>a08f7>h6i90m76ak1;29 4g62l90b<o?:028?jb7290/=l?5e29m5d6=9810cnh50;&2e4<b;2d:m=4>2:9lg`<72-;j=7k<;o3b4?7432ehh7>5$0c2>`5<f8k;6<:4;na`>5<#9h;1i>5a1`2950=<glh1<7*>a08f7>h6i90::65`e`83>!7f93o87c?n0;34?>ib13:1(<o>:d18j4g728207bk7:18'5d7=m:1e=l>51898k`1=83.:m<4j3:l2e5<6i21di;4?:%3b5?c43g;j<7?m;:mf1?6=,8k:6h=4n0c3>4e<3fo:6=4+1`39a6=i9h:1=i54oe494?"6i80n?6`>a182a>=hkk0;6)?n1;g0?k7f83;m76ai1;29 4g62o:0b<o?:198k``=83.:m<4i0:l2e5<632eni7>5$0c2>c6<f8k;6?54odf94?"6i80m<6`>a180?>ia>3:1(<o>:g78j4g72910ck:50;&2e4<a=2d:m=4>;:me7?6=,8k:6k;4n0c3>7=<go81<7*>a08e1>h6i90876sm1ef94?3=83:p(<l<:043?M44k2B9>45+10396<=n99?1<75f11494?=n99=1<75f11:94?=h9<31<75rb0g;>5<2290;w)?m3;354>N5;j1C>?74$032>c=n99?1<75f11494?=n99=1<75f11:94?=h9<31<75rb0`4>5<2290;w)?m3;354>N5;j1C>?74$032>75<a8:>6=44i025>5<<a8:<6=44i02;>5<<g8?26=44}c3af?6=<3:1<v*>b2821`=O::i0D?<6;%325?433`;;97>5;h332?6=3`;;;7>5;n36=?6=3ty9844?:34xZ72>348:m7;>;<017?36348:57;>;<015?363489>7;>;<02<?363489<7;>;<02b?363489;7;>;<3a0?3634;h=7;>;<3g3?3634;o47;>;<3g=?3634;om7;>;<024?36348:=7;>;<026?36348:?7;>;<03f?36348;m7;>;<03=?36348;47;>;<3`b?3634;o<7;>;<3g5?36348;=7;>;<3g6?36348;<7;>;<036?36348;?7;>;<3e4?3634;m>7;>;<3f6?3634;m=7;>;<021?30348:97;7;|q1gf<72?qU>nm4=0a1>46134;i57??5:?152<68?16=h85117894cb28:37p}=c`83>26|V;>m7S<k4:\1`7=Y:=?0R?mi;_0b0>X5l:1U>l;4^3`6?[43l2T98n5Q25`8Z72f3W8o56P=d99]6a1<V;n=7S<l9:\1g==Y:j=0R?m9;<00`?77:279><4:c:?15=<2k279>=4:c:?15c<2k279>:4:c:?2b7<2k279=84:2:?150<2;279=84>a89>643=9hk01??::0`2?846=39970<>5;13?846=38m70<>5;0f?846=38o70<>5;1a?846=39=70<>5;16?846=39?70<>5;10?846=38h70<>5;61?846=3>;70<>5;1e?846=39n70<>5;1g?846=3>i70<>5;65?846=3>>70<>5;67?846=3>870<>5;1`?846=3==70<>5;57?846=3=970<>5;52?846=3<h70<>5;4a?846=3<j70<>5;40?846=3<970<>5;42?846=3=i70<>5;5b?846=3=270<>5;;4?846=33>70<>5;;0?846=33970<>5;;2?846=33;70<>5;:e?846=32n70<>5;:g?846=32h70<>5;:a?846=32j70<>5;:;?846=32<70<>5;:5?846=32>70<>5;:7?846=32870<>5;:1?846=32:70<>5;:3?846=3=m70<>5;;f?846=33o70<>5;;`?846=33i70<>5;;b?846=33270<>5;;;?846=33?70<>5;::?846=3=n70<>5;c0?846=3k:70<>5;c3?846=33m70<>5;c;?846=3k=70<>5;c6?846=3k?70<>5;001>;59<09?>522079664<5;;>6?=>;|q103<72:qU>984=0g1>4g434;n97??5:\7fp6fc=839pR?mj;<015?7f:279=54>a39~w7?a2909wS<6f:?2g4<6i:1v\7f?jm:186\7f[4cj27:j>4>079>5`0=99=01<ll:024?87bm3;;:6s|2`394?4|V;k:70?i1;3b7>{t:0>1<7<t^3:2?846=3nn7p}=9383>7}Y:1:01??::ef8yv4>93:1>vP=7g9>643=lj1v\7f?7?:181\7f[40m279=84kb:\7fp6=`=838pR?9k;<021?b03ty94h4?:3y]62e<5;;>6i;4}r0;`?6=:rT9;o522079`1=z{;2h6=4={_04e>;59<0o?6s|29`94?4|V;=270<>5;f1?xu51m0;6?uQ29;897722jo0q~<6c;296~X50116><;5ce9~w7?e2909wS<77:?150<dk2wx>4o50;0xZ7>1348:97km;|q1=<<72;qU>5;4=336>`g<uz8247>52z\1<1=::8?1i;5rs3;4>5<5sW83?63=148f1>{t:0<1<7<t^3:1?846=3o:7p}=9483>7}Y:>201??::e48yv4?i3:1>vP=769>643=kk1v\7f?8k:181\7f[42i279=8480:\7fp63d=838pR?;6;<021?0a3ty9:l4?:3y]60><5;;>6;k4}r05=?6=:rT99:5220792a=z{;<36=4={_062>;59<0=56s|27594?4|V;?>70<>5;44?xu5>?0;6?uQ246897722?<0q~<95;296~X5=:16><;5649~w7032909wS<:2:?150<1<2wx>:850;0xZ705348:978?;|q130<72;qU>;?4=336>0`<uz8<87>52z\125=::8?19h5rs350>5<5sW8>j63=1484`>{t:>81<7<t^37f?846=3=h7p}=7083>7}Y:<n01??::6:8yv4083:1>vP=5b9>643=?>1v\7f?8i:181\7f[42j279=8483:\7fp63c=838pR?;>;<021?0?3ty9:>4?:3y]606<5;;>68j4}r350?6=:r79?h4>9d9>643=n>1v\7f??6:180\7f846i3?h70<>9;3b7>;5910>:6s|20c94?4|5;;j6<o<;<02g?77=2wx>?<50;1x97442<i01?<>:448974528k87p}=2283>7}::;91=l=4=306>4623ty9=54?:2y>64?==j16><651`18977d28:=7p}=2083>6}::;;1=l=4=301>0e<5;8>6<>9;|q15g<72:q6>?>51`08977a28k970<>c;3:g>{t:8o1<7lt=303>4g434;i87?n2:?2g4<6i;16=i95589>5a>==016=i75589>5ag==016=nh51`0894b72<301<j>:4;894b52<30q~<>d;297~;59o0:m>522059553<5;;>6<l=;|q161<72;q6>?951`089742283h7p}=2783>45|5;8<6<o<;<024?3>348:=7;6;<026?3>348:?7;6;<03f?3>348;m7;6;<03=?3>348;47?n2:?144<6i;16>=>5589>654==016>==5589>5c6=9h801<h=:0c1?87b:3;j>63>f082e7=:9l?1==94=0ge>46?3ty:n84?:2y>5g2==j16=n?55b9>5gb=90i0q~?m4;292~;6j=0:m>521b09553<58ho6<>:;<023?77?27:i;4>099>5`c=99=0q~?kb;29f~;6l>0>:63>d9862>;6l00>:63>d`862>;6ko0>:63>d1862>;6l80>:63>d3862>;6k;0:5n521dd9551<58o36<>:;|q2gg<72>q6=i955b9>5f`=9h901<m7:025?87d13;;;63>c`8243=:9ki1==84=0a4>4633ty:h>4?:4y>5a1=9h901<jl:025?87b13;;;63=14873>;6j>0:<85rs0a`>5<1s4;o47;l;<3g4?7f;27:o54>049>5f?=99<01<mn:024?87ei3;;96s|1e694?3|58n36<o<;<3f3?77027:hh4>079>643=<116=o951158yv7dl3:19v3>d886g>;6l80:m>521b;9553<58ij6<>7;<3a=?77>2wx=i;50;7x94b>28k870?j7;332>;6j10:<;5220790<=:9mn1==64}r3`a?6=<r7:hl4:c:?2`7<6i:16=no5117894df28:<7p}>d783>0}:9mk1=l=4=0g:>46234;i:7??6:?150<3i27:hi4>079~w773290:?v3=11862>;5980>:63=13862>;59:0>:63=0c862>;58h0>:63=08862>;5810>:63=00862>;5890>:63=03862>;58:0>:63>f282=f=:9kn1==84=336>757348:97<=e:?150<5:m16><;523a894c?28:37p}=0583>6}::8:19n5221:95d5<58nh6<>:;|q14f<72=q6><>51`1894dd28:>70<>5;14?87e?3;;:6s|21794?5|5;;:68m4=32:>4g434;oi7??5:\7fp65b=83>p1??>:0c0?87ei3;;:63=1480<>;6j>0:<55rs325>5<4s48:>7;l;<03e?7f;27:hi4>069~w76b290?w0<>2;3b7>;6j00:<:521c:9553<5;;>6>74}r033?6=;r79=>4:c:?14g<6i:16=ij51178yv47n3:18v3=1282e6=:9kk1==64=0`5>462348:97=n;|q2bc<72=q6>=l55b9>655=9h901<hm:026?87b13;;:6s|1gg94?3|5;:j68m4=321>4g434;mm7??5:?2bg<68>16=h951178yv7al3:1:v3=0886g>;5880:m>521g;9553<58lj6<>9;<3ef?77027:i:4>069~w4`d290<w0<?8;7`?84783;j?63>f88243=:9ok1==94=0da>46134;n57??8:?2b=<68=1v\7f<m<:181\7f87dn3?h70?l7;3:g>{t9j>1<7<t=0f3>0e<58i36<7l;|q2g0<72;q6=i?55b9>5f?=90i0q~?i5;296~;5880>o63>f882=f=z{8i=6=4={<3g6?3d34;hm7?6c:\7fp5c2=838p1?>?:4a894`?283h7p}>f783>7}::9819n521gc95<e<uz;m;7>52z?146<2k27:jo4>9b9~w4cc2908w0?i0;7`?87a93?h70?jd;3:g>{t9o:1<7;t=0d3>4g434;m?7??5:?2a3<68?16=om511:894cc28ki7p}>f383>6}:9o81=l=4=0g6>46134;nj7??6:\7fp5`5=838p1<k=:4a894c3283h7p}>bd83>7}:9k31=4m4=0`a>4613ty:nk4?:3y>5gg=90i01<lm:026?xu6k90;6?u21cf9551<58hi6<;6;|q222<72:q6=oj511:894d1283h70?jf;331>{t9li1<7<t=0g6>4?d34;n87??5:\7fp5`g=838p1<k8:0;`?87b03;;;6s|1d294?4|58nh6<7l;<3ga?77?2wx=:;50;0x94c>283h70?j8;332>{t9ml1<7<t=0ff>46?34;oh7?:9:\7fp5`7=839p1<jj:0;`?87b<3;;:63>ed8240=z{8oi6=4={<3f0?77?27:i54>589~w4102909w0?j4;33<>;6m?0:5n5rs05;>5<5s4;i47?6c:?2f3<6811v\7f<99:181\7f87e>3;;;63>b6821<=z{;;=6=4={<023?7>k279=84i8:\7fp52?=838p1<ll:0;`?87ej3;;;6s|16c94?4|58oo6<>:;<3fa?7>k2wx=:l50;0x94cc28:=70?jf;3:g>{z{;>26=4={_07=>;3n38?56*=29822c=z{;<o6=4={_06e>;3n38>m6*=2982<5=z{;<i6=4={_06=>;3n38>56*=2982<==z{;<j6=4={_06<>;3n38>46*=2982=6=z{;<26=4={_063>;3n38>;6*=2982===z{;<36=4={_062>;3n38>:6*=298220=z{;<<6=4={_061>;3n38>96*=298223=z{;<=6=4={_060>;3n38>86*=298222=z{;<>6=4={_067>;3n38>?6*=29822==z{;<?6=4={_066>;3n38>>6*=29822<=z{;==6=4={_056>;3n38=>6*=29822d=z{;=>6=4={_055>;3n38==6*=29822g=z{;=?6=4={_054>;3n38=<6*=29822f=z{;=86=4={_06b>;3n38>j6*=29822a=z{;=96=4={_06a>;3n38>i6*=29822`=z{;=:6=4={_06`>;3n38>h6*=298235=z{;=;6=4={_06g>;3n38>o6*=298234=z{;<m6=4={_06f>;3n38>n6*=298237=z{;<n6=4={_065>;3n38>=6*=298236=z{;<86=4={_064>;3n38><6*=298231=z{;ih6=4={_0`g>;3n38ho6*=29823f=z{;in6=4={_0`a>;3n38hi6*=29823a=z{;ni6=4={_0gf>;3n38on6*=29823`=z{;>=6=4={_072>;3n38?:6*=29823c=z{;3?6=4={_0;5>;3n383=6*=2982<4=z{;396=4={_0;4>;3n383<6*=2982<7=z{;3:6=4={_04b>;3n38<j6*=2982<6=z{;3;6=4={_04a>;3n38<i6*=2982<1=z{;2m6=4={_04`>;3n38<h6*=2982<0=z{;2n6=4={_04g>;3n38<o6*=2982<3=z{;2o6=4={_04f>;3n38<n6*=2982<2=z{;2h6=4={_04e>;3n38<m6*=2982<<=z{;2i6=4={_04=>;3n38<56*=2982<d=z{;3o6=4={_0;=>;3n38356*=2982<g=z{;3h6=4={_0;<>;3n38346*=2982<f=z{;3i6=4={_0;3>;3n383;6*=2982<a=z{;3j6=4={_0;2>;3n383:6*=2982<`=z{;326=4={_0;1>;3n38396*=2982<c=z{;336=4={_0;0>;3n38386*=2982=5=z{;3<6=4={_0;7>;3n383?6*=2982=4=z{;3=6=4={_0;6>;3n383>6*=2982=7=z{;3>6=4={_04<>;3n38<46*=2982=1=z{;2j6=4={_043>;3n38<;6*=2982=0=z{;3m6=4={_0:b>;3n382j6*=2982=3=z{;k:6=4={_0b5>;3n38j=6*=2982=2=zug9?<7>52zJ16<=zf:>:6=4={I01=>{i;=81<7<tH30:?xh4<:0;6?uG23;8yk53<3:1>vF=289~j6222909wE<=9:\7fm710=838pD?<6;|l002<72;qC>?74}o17<?6=:rB9>45rn26:>5<5sA8956sa35c94?4|@;827p`<4c83>7}O:;30qc=;c;296~N5:01vb>:k:181\7fM4512we?9k50;0xL74>3td88k4?:3yK67?<ug9><7>52zJ16<=zf:?:6=4={I01=>{i;<81<7<tH30:?xh4=:0;6?uG23;8yk52<3:1>vF=289~j6322909wE<=9:\7fm700=838pD?<6;|l012<72;qC>?74}o16<?6=:rB9>45rn27:>5<5sA8956sa34c94?4|@;827p`<5c83>7}O:;30qc=:c;296~N5:01vb>;k:181\7fM4512we?8k50;0xL74>3td89k4?:3yK67?<ug9=<7>52zJ16<=zf:<:6=4={I01=>{i;?81<7<tH30:?xh4>:0;6?uG23;8yk51<3:1>vF=289~j6022909wE<=9:\7fm730=838pD?<6;|l022<72;qC>?74}o15<?6=:rB9>45rn24:>5<5sA8956sa37c94?4|@;827p`<6c83>7}O:;30qc=9c;296~N5:01vb?j=:182\7fM4512we>kk50;3xL74>3td9jk4?:0yK67?<ug9;<7>51zJ16<=zf:::6=4>{I01=>{i;981<7?tH30:?xh48:0;6<uG23;8yk57<3:1=vF=289~j662290:wE<=9:\7fm750=83;pD?<6;|l042<728qC>?74}o13<?6=9rB9>45rn22:>5<6sA8956sa31c94?7|@;827p`<0c83>4}O:;30qc=?c;295~N5:01vb>>k:182\7fM4512we?=k50;3xL74>3td8<k4?:0yK67?<ug9:<7>51zJ16<=zf:;:6=4>{I01=>{i;881<7?tH30:?xh49:0;6<uG23;8yk56<3:1=vF=289~j672290:wE<=9:\7fm740=83;pD?<6;|l052<728qC>?74}o12<?6=9rB9>45rn23:>5<6sA8956sa30c94?7|@;827p`<1c83>4}O:;30qc=>c;295~N5:01vb>?k:182\7fM4512we?<k50;3xL74>3td8=k4?:0yK67?<ug99<7>51zJ16<=zf:8:6=4>{I01=>{i;;81<7?tH30:?xh4::0;6<uG23;8yk55<3:1=vF=289~j642290:wE<=9:\7fm770=83;pD?<6;|l062<728qC>?74}o11<?6=9rB9>45rn20:>5<6sA8956sa33c94?7|@;827p`<2c83>4}O:;30qc==c;295~N5:01vb><k:182\7fM4512we??k50;3xL74>3td8>k4?:0yK67?<ug98<7>51zJ16<=zf:9:6=4>{I01=>{i;:81<7?tH30:?xh4;:0;6<uG23;8yk54<3:1=vF=289~j652290:wE<=9:\7fm760=83;pD?<6;|l072<728qC>?74}o10<?6=9rB9>45rn21:>5<6sA8956sa32c94?7|@;827p`<3c83>4}O:;30qc=<c;295~N5:01vb>=k:182\7fM4512we?>k50;3xL74>3td8?k4?:0yK67?<utwvLMMt3ef9=20>0;k>qMNM{1\7fCDU}zHI
\ No newline at end of file
diff --git a/xilinx/virtex4/xilinx_fifo_sbuf.vhd b/xilinx/virtex4/xilinx_fifo_sbuf.vhd
new file mode 100644 (file)
index 0000000..6e961f9
--- /dev/null
@@ -0,0 +1,149 @@
+--------------------------------------------------------------------------------
+--     This file is owned and controlled by Xilinx and must be used           --
+--     solely for design, simulation, implementation and creation of          --
+--     design files limited to Xilinx devices or technologies. Use            --
+--     with non-Xilinx devices or technologies is expressly prohibited        --
+--     and immediately terminates your license.                               --
+--                                                                            --
+--     XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"          --
+--     SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR                --
+--     XILINX DEVICES.  BY PROVIDING THIS DESIGN, CODE, OR INFORMATION        --
+--     AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION            --
+--     OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS              --
+--     IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,                --
+--     AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE       --
+--     FOR YOUR IMPLEMENTATION.  XILINX EXPRESSLY DISCLAIMS ANY               --
+--     WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE                --
+--     IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR         --
+--     REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF        --
+--     INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS        --
+--     FOR A PARTICULAR PURPOSE.                                              --
+--                                                                            --
+--     Xilinx products are not intended for use in life support               --
+--     appliances, devices, or systems. Use in such applications are          --
+--     expressly prohibited.                                                  --
+--                                                                            --
+--     (c) Copyright 1995-2007 Xilinx, Inc.                                   --
+--     All rights reserved.                                                   --
+--------------------------------------------------------------------------------
+-- You must compile the wrapper file xilinx_fifo_sbuf.vhd when simulating
+-- the core, xilinx_fifo_sbuf. When compiling the wrapper file, be sure to
+-- reference the XilinxCoreLib VHDL simulation library. For detailed
+-- instructions, please refer to the "CORE Generator Help".
+
+-- The synthesis directives "translate_off/translate_on" specified
+-- below are supported by Xilinx, Mentor Graphics and Synplicity
+-- synthesis tools. Ensure they are correct for your synthesis tool(s).
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.ALL;
+-- synthesis translate_off
+Library XilinxCoreLib;
+-- synthesis translate_on
+ENTITY xilinx_fifo_sbuf IS
+       port (
+       clk: IN std_logic;
+       din: IN std_logic_VECTOR(18 downto 0);
+       rd_en: IN std_logic;
+       rst: IN std_logic;
+       wr_en: IN std_logic;
+       almost_full: OUT std_logic;
+       dout: OUT std_logic_VECTOR(18 downto 0);
+       empty: OUT std_logic;
+       full: OUT std_logic);
+END xilinx_fifo_sbuf;
+
+ARCHITECTURE xilinx_fifo_sbuf_a OF xilinx_fifo_sbuf IS
+-- synthesis translate_off
+component wrapped_xilinx_fifo_sbuf
+       port (
+       clk: IN std_logic;
+       din: IN std_logic_VECTOR(18 downto 0);
+       rd_en: IN std_logic;
+       rst: IN std_logic;
+       wr_en: IN std_logic;
+       almost_full: OUT std_logic;
+       dout: OUT std_logic_VECTOR(18 downto 0);
+       empty: OUT std_logic;
+       full: OUT std_logic);
+end component;
+
+-- Configuration specification 
+       for all : wrapped_xilinx_fifo_sbuf use entity XilinxCoreLib.fifo_generator_v4_2(behavioral)
+               generic map(
+                       c_has_int_clk => 0,
+                       c_rd_freq => 1,
+                       c_wr_response_latency => 1,
+                       c_has_srst => 0,
+                       c_has_rd_data_count => 0,
+                       c_din_width => 19,
+                       c_has_wr_data_count => 0,
+                       c_full_flags_rst_val => 1,
+                       c_implementation_type => 0,
+                       c_family => "virtex4",
+                       c_use_embedded_reg => 0,
+                       c_has_wr_rst => 0,
+                       c_wr_freq => 1,
+                       c_use_dout_rst => 1,
+                       c_underflow_low => 0,
+                       c_has_meminit_file => 0,
+                       c_has_overflow => 0,
+                       c_preload_latency => 1,
+                       c_dout_width => 19,
+                       c_rd_depth => 16,
+                       c_default_value => "BlankString",
+                       c_mif_file_name => "BlankString",
+                       c_has_underflow => 0,
+                       c_has_rd_rst => 0,
+                       c_has_almost_full => 1,
+                       c_has_rst => 1,
+                       c_data_count_width => 4,
+                       c_has_wr_ack => 0,
+                       c_use_ecc => 0,
+                       c_wr_ack_low => 0,
+                       c_common_clock => 1,
+                       c_rd_pntr_width => 4,
+                       c_use_fwft_data_count => 0,
+                       c_has_almost_empty => 0,
+                       c_rd_data_count_width => 4,
+                       c_enable_rlocs => 0,
+                       c_wr_pntr_width => 4,
+                       c_overflow_low => 0,
+                       c_prog_empty_type => 0,
+                       c_optimization_mode => 0,
+                       c_wr_data_count_width => 4,
+                       c_preload_regs => 0,
+                       c_dout_rst_val => "0",
+                       c_has_data_count => 0,
+                       c_prog_full_thresh_negate_val => 13,
+                       c_wr_depth => 16,
+                       c_prog_empty_thresh_negate_val => 3,
+                       c_prog_empty_thresh_assert_val => 2,
+                       c_has_valid => 0,
+                       c_init_wr_pntr_val => 0,
+                       c_prog_full_thresh_assert_val => 14,
+                       c_use_fifo16_flags => 0,
+                       c_has_backup => 0,
+                       c_valid_low => 0,
+                       c_prim_fifo_type => "512x36",
+                       c_count_type => 0,
+                       c_prog_full_type => 0,
+                       c_memory_type => 1);
+-- synthesis translate_on
+BEGIN
+-- synthesis translate_off
+U0 : wrapped_xilinx_fifo_sbuf
+               port map (
+                       clk => clk,
+                       din => din,
+                       rd_en => rd_en,
+                       rst => rst,
+                       wr_en => wr_en,
+                       almost_full => almost_full,
+                       dout => dout,
+                       empty => empty,
+                       full => full);
+-- synthesis translate_on
+
+END xilinx_fifo_sbuf_a;
+
diff --git a/xilinx/virtex4/xilinx_fifo_sbuf.xco b/xilinx/virtex4/xilinx_fifo_sbuf.xco
new file mode 100644 (file)
index 0000000..22b6062
--- /dev/null
@@ -0,0 +1,81 @@
+##############################################################
+#
+# Xilinx Core Generator version J.40
+# Date: Fri Feb  4 16:55:38 2011
+#
+##############################################################
+#
+#  This file contains the customisation parameters for a
+#  Xilinx CORE Generator IP GUI. It is strongly recommended
+#  that you do not manually alter this file as it may cause
+#  unexpected and unsupported behavior.
+#
+##############################################################
+#
+# BEGIN Project Options
+SET addpads = False
+SET asysymbol = True
+SET busformat = BusFormatAngleBracketNotRipped
+SET createndf = False
+SET designentry = VHDL
+SET device = xc4vlx40
+SET devicefamily = virtex4
+SET flowvendor = Foundation_iSE
+SET formalverification = False
+SET foundationsym = False
+SET implementationfiletype = Ngc
+SET package = ff1148
+SET removerpms = False
+SET simulationfiles = Behavioral
+SET speedgrade = -10
+SET verilogsim = True
+SET vhdlsim = True
+# END Project Options
+# BEGIN Select
+SELECT Fifo_Generator family Xilinx,_Inc. 4.2
+# END Select
+# BEGIN Parameters
+CSET almost_empty_flag=false
+CSET almost_full_flag=true
+CSET component_name=xilinx_fifo_sbuf
+CSET data_count=false
+CSET data_count_width=4
+CSET dout_reset_value=0
+CSET empty_threshold_assert_value=2
+CSET empty_threshold_negate_value=3
+CSET enable_ecc=false
+CSET enable_int_clk=false
+CSET fifo_implementation=Common_Clock_Block_RAM
+CSET full_flags_reset_value=1
+CSET full_threshold_assert_value=14
+CSET full_threshold_negate_value=13
+CSET input_data_width=19
+CSET input_depth=16
+CSET output_data_width=19
+CSET output_depth=16
+CSET overflow_flag=false
+CSET overflow_sense=Active_High
+CSET performance_options=Standard_FIFO
+CSET programmable_empty_type=No_Programmable_Empty_Threshold
+CSET programmable_full_type=No_Programmable_Full_Threshold
+CSET read_clock_frequency=1
+CSET read_data_count=false
+CSET read_data_count_width=4
+CSET reset_pin=true
+CSET reset_type=Asynchronous_Reset
+CSET underflow_flag=false
+CSET underflow_sense=Active_High
+CSET use_dout_reset=true
+CSET use_embedded_registers=false
+CSET use_extra_logic=false
+CSET valid_flag=false
+CSET valid_sense=Active_High
+CSET write_acknowledge_flag=false
+CSET write_acknowledge_sense=Active_High
+CSET write_clock_frequency=1
+CSET write_data_count=false
+CSET write_data_count_width=4
+# END Parameters
+GENERATE
+# CRC: 26c7e249
+