Site Home Archive Home FAQ Home How to search the Archive How to Navigate the Archive
Compare FPGA features and resources
Threads starting:
Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
"Austin Franklin" quoted from someone else: > > I don't use Schem for Logic Entry, ( as lack of conditional compile > > is a 'killer', as well as poor handling of Table, Condition and State > > designs ), but do use it a lot for PCB design. > I am designing an array of FF1517 Virtex2 parts and using mostly VHDL for the PCB design, lightly tied together with schematics. The sheer pain, and consequent error rate, when doing these big parts in schematic... A picture had better be worth a thousand words, because that's how long it takes to draw.Article: 34576
hello all, I need a /rdy flag (bit) such that it stays high only until the last data_word[7..0] bit is written and after that /rdy flag should go low and should enable the new_clk and the DATA_OUT and as soon as all 22 bits are clocked out on DATA_OUT... /rdy should go back high and new_clk and DATA_OUT should stop as well... Does ne one has ne clue how to establish this /rdy bit or flag??? Here is the part of the code where its used... (code is in AHDL) --Hi Band I/O pins band_out[2..0], new_clk, DATA_OUT :OUTPUT; data_word[21..0] :DFFE; band[2..0] :DFFE; pll_sel :DFFE; new_clk :DFFE; count[4..0] :DFFE; /rdy :DFFE; new_word[21..0] :DFFE; DATA_OUT :DFFE; /rdy.clk = in_clk; --/rdy.ena = p186_sel[UP_HCTRL] & p186_read; /rdy = !count4.q; (pll_sel,band[], data_word[], new_word[]).clk = in_clk; new_clk.ena = !/rdy; new_clk.clk = in_clk; new_clk = !new_clk; DATA_OUT.clk = new_clk; count[].clk = in_clk; (new_word[21..16], data_word[21..16]).ena = p186_write & p186_sel[UP_HDATA2]; (new_word[15..8], data_word[15..8]).ena = p186_write & p186_sel[UP_HDATA1]; (new_word[7..0], data_word[7..0]).ena = p186_write & p186_sel[UP_HDATA0]; pll_sel.ena = p186_sel[UP_HCTRL] & p186_write; band[].ena = p186_sel[UP_HCTRL] & upad[3] & p186_write; band[2..0].d = upad[2..0]; band_out[2..0] = band[2..0]; pll_sel = upad[4]; (new_word[21..16], data_word[21..16]).d = upad[5..0]; (new_word[15..8], data_word[15..8]).d = upad[7..0]; (new_word[7..0], data_word[7..0]).d = upad[7..0]; --serial output of data_word[] to the synth IF count[] == 22 THEN count[] = GND; ELSE count[] = count[] + 1; new_word[21..0] = (new_word[20..0], new_word[21]); DATA_OUT = new_word[0]; END IF; Thanks Abhimanyu RastogiArticle: 34577
Ron Huizen wrote: > > Great beer cooler, but I think he should make some use of all that > wasted heat - maybe a combo beer cooler, hot dog roaster ... Na! fryed chicken and de-feather-or attachment. Ben. -- Standard Disclaimer : 97% speculation 2% bad grammar 1% facts. "Pre-historic Cpu's" http://www.jetnet.ab.ca/users/bfranchuk Now with schematics.Article: 34578
Hi, I am running testbench under Modelsim SE 5.5c. Somehow, the modelsim program is been closed when I run the simulation to a fix place. The only message before the program close is the text message in the Transcription file. run 400 # # Problem with simulator... vsim U/I closing. (1) # # # Problem with simulator... vsim U/I closing. (2) # Can anyone tell me ? Is any way or command that will force Modelsim to tell me more message or reason about the crash ? Or, anyone know why crash ? I have try same simulation under different version of modelsims and different computers. Thank youArticle: 34579
Neil Franklin wrote: > Alan Nishioka <alann@accom.com> writes: > > > However, the format is pretty simple. It uses keys and lengths to > > divide the file. > > > > 1 byte key 0x65 > > 2 bytes length 0x000c9090 > > 8233440 bytes raw bit stream starting with 0xffffffff aa995566 sync > > word documented below. > > There is at least one error in that. The config data comes in 3 > chunks: CLBs+IOBs+BRAMctrl, and then 2 columns of BRAMdata (for > standard Virtex that is, more BRAMdata chunks for V-E and V-EM). I don't see the error. What I am describing is the format of the .bit file that bitgen produces. What XAPP151 describes is the format of the bit stream that is part of that file. Alan Nishioka alann@accom.comArticle: 34580
In article <3b8b9869.9160001@news.compuserve.com>, 101551.3434@compuserve.com (Mark Taylor) wrote: >On Mon, 27 Aug 2001 20:09:17 GMT, arast@inficom.com (Alex Rast) wrote: > >>In article <3b86ed56.46990212@news.compuserve.com>, 101551.3434@compuserve.com > (Mark Taylor) wrote: >>>On Fri, 24 Aug 2001 00:19:48 GMT, arast@inficom.com (Alex Rast) wrote: >>> >>>>This is one I think I've done before, so I probably just need my memory >>>>jogged. I'm sure it's something that happens, and that you need, all the > time. >>>> >>>>I've defined a hard macro, call it custommacro.nmc. .... Now, at least one > of the nets connects to an >>>>external pin and an internal route. One common example, for instance, is > CLK. >>>>You want the signal to be common to the internal CLB's of the macro and to >>>>connect to external routes (in the case of CLK, to the global clock net). >>> >>>As far as I know, nets could never be included in hard macros. >>>(despite documentation suggesting otherwise, right back to before EPIC) >> >>No, I have no problem including a net in a macro. What I have difficulty doing >>is routing an external net *to* the macro's internal net. >> >>>Just use the hard macro to configure slices/CLBs or whatever, >>>then embed the macro within a soft macro .. >>I don't think this would work, for 2 reasons. First, I *have* to have a >>specific routing within the hard macro (indeed, the routing itself is a key >>part of the design), so I can't afford to let the software take care of any >>routing at the hardware level. Second, a lot of the things we're doing are >>functions you simply can't enter properly in Schematic Editor... >Get rid of any general purpose routing within your hard macro. >Keep all interconnections within a CLB. (These doesn't really count as nets at >a low level) I don't think I can do that because some of the nets are both general-purpose to the design and special-purpose to the macro. In other words, we have logic-to-logic connections within the macro that also connect to nets going between macros. And the connections within the macro are routing-sensitive. >Ensure the number of macro pins is enough to complete all needed routing. I *hope* I've done that, except if you mean that the number of macro pins must include a separate pin for *each* separate input of a high-fanout net in which case it's a pretty hopeless task. >Now you will have a hard macro, with perhaps somewhat more pins than you had >before. >When you instantiate this macro you will be able to complete ALL routing. >(there won't be any strange nets for the software to complain about.) >This approach has worked for me in the past. >Bear in mind that the router is usually pretty good. IME it actually sucks rather than being pretty good, because it fails to consider routing strategies like multi-drop nets or symmetric "bank-shot" nets among other things. Again, it seems to work via a "one resource, one connection" strategy. Again, for giggles, I experimented with a program-routed net against my hand-routed net for the same design. I tested it with a design occupying 6 CLB's. My manually routed version created a symmetrical route using only the routing resources adjacent to the CLB's in use, while the program's version implemented the routing in an asymmetric net over resources adjacent to CLB's in a 12-row 7-column (84-CLB) block centered on the 6. >It's just the mapping & placement that sometimes needs working on. >The mapping & placement is totally defined by the given approach, so >theres nothing much to foul up on afterwards. (unlike the M1 software) >If you don't like the routing around an instance of the macro you can still >change it. >The routing will generally be optimal, unless you have RAMs >within your macro. Given the results of my little test, it was clearly not optimal - and the design I tested it on didn't have RAMs. > You can pretend (with very great care) that the RAMS are >LUTs , which will allow excellent routing. You will then have to patch the RAMS >back in later (perhaps using fpga_editor , or XDL if you have a large number >of instances.) >Note that XST (VHDL) sometimes doesn't keep RLOCS. >This is a bug that I have recently complained about. >If you are not using XST , you should have no problems. I should make it very clear that the design I have has to be very carefully fitted together like a jigsaw puzzle. I have to design the *shape* and exact configuration of the routing resources for each macro I have, so that I won't be stymied by either lack of an available specific resource or inability to abut a macro against another because of space versus shape restrictions in the CLB, in the overall design. Does any of this make any sense or am I bringing up needless issues? Alex Rast arast@inficom.com arast@qwest.netArticle: 34581
I am curious to know from any Virtex II users what they have typically found to be their %LUTs used and %Flip-Flops used. I have a design and I am trying to pick the correct part. I am pretty sure how many FFs I will be using..but a little weary on my estimates on combinational logic. I would feel better knowing ratios others have foundArticle: 34582
Some general comments to start off with: Notice that new_word is set in two places. I believe AHDL logically ORs multiple equations together. Notice that your new_clk will be at half the rate of your in_clk yet your counter is running at the in_clk rate and your DATA_OUT at the new_clk. The suggestion I gave you the other day had the counter load hooked in with the transfer of (in the case of your code below) data_word to new_word. Since you appear to want to shift out the data only once with your /rdy signal as a gate, you can use the start condition to preload the counter and the counter completion to end the whole process. You had the right initial idea with the /rdy value - using the counter's MSbit but you need to 1) increase the counter size by a bit [5..0] and 2) treat the load and/or count a little differently; alternatively you can leave the counter simple and add the /rdy in with the start and edn conditions. You want the start event to 1) load the new_word, 2) clear the /rdy, and 3) initialize the counter. You want the end condition to 4) set the /rdy and 5) stop the counter from counting. If you choose to extend the counter, read on. Given where you are in digital design basics it might get a bit confusing. The start and end conditions might be a better way for you to code at this point. One trick that most designers learn along the way is to preload a counter with a set value and count from there until overflow. Since Altera parts work nicely with down counters, consider what the result would be if you load the new_word and set a 6 bit DOWN counter to 21 on the same clock. Bit 21 shows up at new_word[21] and the count is 21 at the start condition. As you clock through, bit n shows up at new_word[21] when the count is n. After bit 0 is shifted out and the data is invalid (bit -1 ?) the count will underflow to -1 setting the most significant bit of the count (you probably also want to stop counting once you've gone past zero). As long as the initial counter value is -1 (on power up or at reset), the MSbit of the counter can be your /rdy flag.Article: 34583
hi, I am looking at a design where I want to use the excess ROM area in a spartan II prom to store some FPGA specific data. For this I need to share the IOs of the PROM with the dedicated configuration IOs. The configuration mode will be master serial. The main problem is to take over the CCLK after configuration is done. I can't seem to find what happens to CCLK at that point. Has anyone done this ? Any suggestions? thanks, MuzafferArticle: 34584
I'm trying to generate the CRC in hardware. The problem that I've got is that every combination that I've tried to generate the CRC, and place it in a frame, comes back as invalid. I've attached my vhdl testbench, in which I doing all this. This is all part of a custom hardware project, that will transmit and receive frames to and from Ethernet. "Douglas Grant" <douglas.grant@xilinx.com> wrote in message news:3B8D49A8.60A5A49E@xilinx.com... > What do you want to do? Create some hardware? Software? Test your SW/HW? > > DG > begin 666 crc32test2.vhd M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T-"BTM#0HM+0T*+2T@(%1H92!C M<F,@<&]R=&EO;B!O9B!T:&ES(&-O9&4@:7,@8V]P>7)I9VAT(&%S('!E<B!T M:&4@9F]L;&]W:6YG#0HM+2 @8V]M;65N= T*+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2T-"BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0HM+2!&:6QE M.B @4$-+7T-20S,R7T0T+G9H9" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @( T*+2T@1&%T93H@(%1H=2!!=6<@,S @,#(Z-#,Z,S8@,C P,2 @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @( T*+2T@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" -"BTM($-O<'ER:6=H M=" H0RD@,3DY.2!%87-I8W,@3E8N(" @(" @(" @(" @(" @(" -"BTM(%1H M:7,@<V]U<F-E(&9I;&4@;6%Y(&)E('5S960@86YD(&1I<W1R:6)U=&5D('=I M=&AO=70@<F5S=')I8W1I;VX@(" @#0HM+2!P<F]V:61E9"!T:&%T('1H:7,@ M8V]P>7)I9VAT('-T871E;65N="!I<R!N;W0@<F5M;W9E9"!F<F]M('1H92!F M:6QE( T*+2T@86YD('1H870@86YY(&1E<FEV871I=F4@=V]R:R!C;VYT86EN M<R!T:&4@;W)I9VEN86P@8V]P>7)I9VAT(&YO=&EC90T*+2T@86YD('1H92!A M<W-O8VEA=&5D(&1I<V-L86EM97(N#0HM+0T*+2T@5$A)4R!33U520T4@1DE, M12!)4R!04D]6241%1" B05,@25,B($%.1"!7251(3U54($%.62!%6%!215-3 M#0HM+2!/4B!)35!,245$(%=!4E)!3E1)15,L($E.0TQ51$E.1RP@5TE42$]5 M5"!,24U)5$%424].+"!42$4@24U03$E%1 T*+2T@5T%24D%.5$E%4R!/1B!- M15)#2$%.5$E"24Q)5%D@04Y$($9)5$Y%4U,@1D]2($$@4$%25$E#54Q!4B!0 M55)03U-%+@T*+2T-"BTM(%!U<G!O<V4Z(%9(1$P@<&%C:V%G92!C;VYT86EN M:6YG(&$@<WEN=&AE<VEZ86)L92!#4D,@9G5N8W1I;VX-"BTM(" @*B!P;VQY M;F]M:6%L.B H," Q(#(@-" U(#<@." Q," Q,2 Q,B Q-B R,B R,R R-B S M,BD-"BTM(" @*B!D871A('=I9'1H.B T#0HM+2 @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @( T*+2T@26YF;SH@:F%N9$!E87-I8W,N8F4@*$IA;B!$96-A;'5W M92D@(" @(" @(" @(" @(" @(" @(" @(" @(" -"BTM(" @(" @(&AT=' Z M+R]W=W<N96%S:6-S+F-O;2 @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" -"BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0H-"@T*=7-E('-T M9"YT97AT:6\N86QL.PT*;&EB<F%R>2!)145%.PT*=7-E($E%144N;G5M97)I M8U]S=&0N86QL.PT*=7-E($E%144N4W1D7TQO9VEC7S$Q-C0N86QL.PT*=7-E M($E%144N<W1D7VQO9VEC7W-I9VYE9"YA;&P[#0IU<V4@245%12YS=&1?;&]G M:6-?87)I=&@N86QL.PT*#0H-"F5N=&ET>2!497-T0F5N8V@@:7,-"@T*96YD M(%1E<W1"96YC:#L-"@T*87)C:&ET96-T=7)E(%1E<W1"96YC:"!O9B!497-T M0F5N8V@@:7,-"@T*("!T>7!E('-E;G1E;F-E(&ES(&%R<F%Y("AN871U<F%L M(')A;F=E(#P^*2!O9B!S=&1?;&]G:6-?=F5C=&]R*#,@9&]W;G1O(# I.PT* M#0H-"B @+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0T*(" M+2!& M=6YC=&EO;G,-"B @+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0H- M"B @+2T@1VEV96X@=&AE('!R979I;W5S(&-R8R!C86QC=6QA=&4@=&AE(&YE M=R!O;F4@8F%S960@=&AE(&YI8F)L92!G:79E;@T*("!F=6YC=&EO;B!N97AT M0U)#,S)?1#0-"B @(" H($1A=&$@.B!S=&1?;&]G:6-?=F5C=&]R*#,@9&]W M;G1O(# I.PT*(" @(" @0U)#(" Z('-T9%]L;V=I8U]V96-T;W(H,S$@9&]W M;G1O(# I("D-"B @("!R971U<FX@<W1D7VQO9VEC7W9E8W1O<B!I<PT*#0H@ M(" @=F%R:6%B;&4@1" @(" @(#H@<W1D7VQO9VEC7W9E8W1O<B@S(&1O=VYT M;R P*3L-"B @("!V87)I86)L92!#(" @(" @.B!S=&1?;&]G:6-?=F5C=&]R M*#,Q(&1O=VYT;R P*3L-"B @("!V87)I86)L92!.97=#4D,@.B!S=&1?;&]G M:6-?=F5C=&]R*#,Q(&1O=VYT;R P*3L-"@T*("!B96=I;@T*#0H@(" @1" Z M/2!$871A.PT*(" @($,@.CT@0U)#.PT*#0H@(" @3F5W0U)#*# I(" Z/2!$ M*# I('AO<B!#*#(X*3L-"B @("!.97=#4D,H,2D@(#H]($0H,2D@>&]R($0H M,"D@>&]R($,H,C@I('AO<B!#*#(Y*3L-"B @("!.97=#4D,H,BD@(#H]($0H M,BD@>&]R($0H,2D@>&]R($0H,"D@>&]R($,H,C@I('AO<B!#*#(Y*2!X;W(@ M0R@S,"D[#0H@(" @3F5W0U)#*#,I(" Z/2!$*#,I('AO<B!$*#(I('AO<B!$ M*#$I('AO<B!#*#(Y*2!X;W(@0R@S,"D@>&]R($,H,S$I.PT*(" @($YE=T-2 M0R@T*2 @.CT@1"@S*2!X;W(@1"@R*2!X;W(@1"@P*2!X;W(@0R@P*2!X;W(@ M0R@R."D@>&]R($,H,S I('AO<@T*(" @(" @(" @(" @(" @(" @0R@S,2D[ M#0H@(" @3F5W0U)#*#4I(" Z/2!$*#,I('AO<B!$*#$I('AO<B!$*# I('AO M<B!#*#$I('AO<B!#*#(X*2!X;W(@0R@R.2D@>&]R#0H@(" @(" @(" @(" @ M(" @("!#*#,Q*3L-"B @("!.97=#4D,H-BD@(#H]($0H,BD@>&]R($0H,2D@ M>&]R($,H,BD@>&]R($,H,CDI('AO<B!#*#,P*3L-"B @("!.97=#4D,H-RD@ M(#H]($0H,RD@>&]R($0H,BD@>&]R($0H,"D@>&]R($,H,RD@>&]R($,H,C@I M('AO<B!#*#,P*2!X;W(-"B @(" @(" @(" @(" @(" @($,H,S$I.PT*(" @ M($YE=T-20R@X*2 @.CT@1"@S*2!X;W(@1"@Q*2!X;W(@1"@P*2!X;W(@0R@T M*2!X;W(@0R@R."D@>&]R($,H,CDI('AO<@T*(" @(" @(" @(" @(" @(" @ M0R@S,2D[#0H@(" @3F5W0U)#*#DI(" Z/2!$*#(I('AO<B!$*#$I('AO<B!# M*#4I('AO<B!#*#(Y*2!X;W(@0R@S,"D[#0H@(" @3F5W0U)#*#$P*2 Z/2!$ M*#,I('AO<B!$*#(I('AO<B!$*# I('AO<B!#*#8I('AO<B!#*#(X*2!X;W(@ M0R@S,"D@>&]R#0H@(" @(" @(" @(" @(" @("!#*#,Q*3L-"B @("!.97=# M4D,H,3$I(#H]($0H,RD@>&]R($0H,2D@>&]R($0H,"D@>&]R($,H-RD@>&]R M($,H,C@I('AO<B!#*#(Y*2!X;W(-"B @(" @(" @(" @(" @(" @($,H,S$I M.PT*(" @($YE=T-20R@Q,BD@.CT@1"@R*2!X;W(@1"@Q*2!X;W(@1"@P*2!X M;W(@0R@X*2!X;W(@0R@R."D@>&]R($,H,CDI('AO<@T*(" @(" @(" @(" @ M(" @(" @0R@S,"D[#0H@(" @3F5W0U)#*#$S*2 Z/2!$*#,I('AO<B!$*#(I M('AO<B!$*#$I('AO<B!#*#DI('AO<B!#*#(Y*2!X;W(@0R@S,"D@>&]R#0H@ M(" @(" @(" @(" @(" @("!#*#,Q*3L-"B @("!.97=#4D,H,30I(#H]($0H M,RD@>&]R($0H,BD@>&]R($,H,3 I('AO<B!#*#,P*2!X;W(@0R@S,2D[#0H@ M(" @3F5W0U)#*#$U*2 Z/2!$*#,I('AO<B!#*#$Q*2!X;W(@0R@S,2D[#0H@ M(" @3F5W0U)#*#$V*2 Z/2!$*# I('AO<B!#*#$R*2!X;W(@0R@R."D[#0H@ M(" @3F5W0U)#*#$W*2 Z/2!$*#$I('AO<B!#*#$S*2!X;W(@0R@R.2D[#0H@ M(" @3F5W0U)#*#$X*2 Z/2!$*#(I('AO<B!#*#$T*2!X;W(@0R@S,"D[#0H@ M(" @3F5W0U)#*#$Y*2 Z/2!$*#,I('AO<B!#*#$U*2!X;W(@0R@S,2D[#0H@ M(" @3F5W0U)#*#(P*2 Z/2!#*#$V*3L-"B @("!.97=#4D,H,C$I(#H]($,H M,3<I.PT*(" @($YE=T-20R@R,BD@.CT@1"@P*2!X;W(@0R@Q."D@>&]R($,H M,C@I.PT*(" @($YE=T-20R@R,RD@.CT@1"@Q*2!X;W(@1"@P*2!X;W(@0R@Q M.2D@>&]R($,H,C@I('AO<B!#*#(Y*3L-"B @("!.97=#4D,H,C0I(#H]($0H M,BD@>&]R($0H,2D@>&]R($,H,C I('AO<B!#*#(Y*2!X;W(@0R@S,"D[#0H@ M(" @3F5W0U)#*#(U*2 Z/2!$*#,I('AO<B!$*#(I('AO<B!#*#(Q*2!X;W(@ M0R@S,"D@>&]R($,H,S$I.PT*(" @($YE=T-20R@R-BD@.CT@1"@S*2!X;W(@ M1"@P*2!X;W(@0R@R,BD@>&]R($,H,C@I('AO<B!#*#,Q*3L-"B @("!.97=# M4D,H,C<I(#H]($0H,2D@>&]R($,H,C,I('AO<B!#*#(Y*3L-"B @("!.97=# M4D,H,C@I(#H]($0H,BD@>&]R($,H,C0I('AO<B!#*#,P*3L-"B @("!.97=# M4D,H,CDI(#H]($0H,RD@>&]R($,H,C4I('AO<B!#*#,Q*3L-"B @("!.97=# M4D,H,S I(#H]($,H,C8I.PT*(" @($YE=T-20R@S,2D@.CT@0R@R-RD[#0H- M"B @("!R971U<FX@3F5W0U)#.PT*#0H@(&5N9"!N97AT0U)#,S)?1#0[#0H- M"B @+2T@271T<FET:79L>2!C86QL(&YE>'1#4D,S,E\T('1O(&9I;F0@=&AE M(&-R8R!F;W(@=&AE('-E;G1E;F-E#0H@("TM('-T87)T(&ES('=H870@=&AE M(&-R8R!A8V-U;6QA=&]R(&ES(&EN:71I86QL>2!S970@=&\-"B @9G5N8W1I M;VX@1FEN9$-20R H#0H@(" @87,@(" @(" @(" @(" @(" @(" @(" Z('-E M;G1E;F-E.PT*(" @('-T87)T(" @(" @(" @(" @(" @(" @.B!S=&1?;&]G M:6-?=F5C=&]R*#,Q(&1O=VYT;R P*3L-"B @("!R979E<G-E(" @(" @(" @ M(" @(" @(#H@8F]O;&5A;BD-"B @("!R971U<FX@<W1D7VQO9VEC7W9E8W1O M<B!I<PT*(" @('9A<FEA8FQE($-20R @(" @(" @(" @.B!S=&1?;&]G:6-? M=F5C=&]R*#,Q(&1O=VYT;R P*3L-"B @("!V87)I86)L92!D;BP@<F5V;FEB M8FQE(#H@<W1D7VQO9VEC7W9E8W1O<B@S(&1O=VYT;R P*3L-"B @8F5G:6X- M"B @("!#4D,@(" @(" @(" @(" @(#H]('-T87)T.PT*(" @(&9O<B!I(&EN M(&%S)VQE9G0H,2D@=&\@87,G<FEG:'0H,2D@;&]O< T*(" @(" @9&X@(" @ M(" @(" @(" @.CT@87,H:2D[#0H@(" @("!I9B!R979E<G-E('1H96X-"B @ M(" @(" @<F5V;FEB8FQE*# I(#H](&1N*#,I.PT*(" @(" @("!R979N:6)B M;&4H,2D@.CT@9&XH,BD[#0H@(" @(" @(')E=FYI8F)L92@R*2 Z/2!D;B@Q M*3L-"B @(" @(" @<F5V;FEB8FQE*#,I(#H](&1N*# I.PT*(" @(" @("!# M4D,@(" @(" @(" @.CT@;F5X=$-20S,R7T0T*')E=FYI8F)L92P@0U)#*3L- M"B @(" @(&5L<V4-"B @(" @(" @0U)#(" @(" @(" @(#H](&YE>'1#4D,S M,E]$-"AD;BP@0U)#*3L-"B @(" @(&5N9"!I9CL-"B @("!E;F0@;&]O<#L@ M("TM(&D-"B @("!R971U<FX@0U)#.PT*("!E;F0@1FEN9$-20SL-"@T*(" M M+2!4:&ES(&9U;F-T:6]N('-H:69T<R!T:&4@;65S<V%G92!L969T(&)Y(#,R M(&)I=',-"B @9G5N8W1I;VX@0U)#<S,R("@-"B @("!S0U)#(" @(" @(" @ M.B!S=&1?;&]G:6-?=F5C=&]R*#,Q(&1O=VYT;R P*2D-"B @("!R971U<FX@ M<W1D7VQO9VEC7W9E8W1O<B!I<PT*(" @('9A<FEA8FQE($-20R Z('-T9%]L M;V=I8U]V96-T;W(H,S$@9&]W;G1O(# I.PT*(" @('9A<FEA8FQE(&1N(" Z M('-T9%]L;V=I8U]V96-T;W(H,R!D;W=N=&\@,"D[#0H@(&)E9VEN#0H@(" @ M0U)#(" @.CT@<T-20SL-"B @("!D;B @(" Z/2 B,# P,"([#0H@(" @9F]R M(&D@:6X@-R!D;W=N=&\@,"!L;V]P#0H@(" @("!#4D,@.CT@;F5X=$-20S,R M7T0T*&1N+"!#4D,I.PT*(" @(&5N9"!L;V]P.R @+2T@:0T*(" @(')E='5R M;B!#4D,[#0H@(&5N9"!#4D-S,S([#0H-"B @+2T@5&AI<R!F=6YC=&EO;B!T M86-K<R!T:&4@8W)C(&]N(&%T('1H92!E;F0@;V8@=&AE('-E;G1E;F-E#0H@ M(&9U;F-T:6]N(&%D9$-20R H#0H@(" @87,@(" @(" @(" Z('-E;G1E;F-E M.PT*(" @($-20R @(" @(" @.B!S=&1?;&]G:6-?=F5C=&]R*#,Q(&1O=VYT M;R P*2D-"B @("!R971U<FX@<V5N=&5N8V4@:7,-"B @("!V87)I86)L92!S M(#H@<V5N=&5N8V4H87,G;&5F="@Q*2!T;R!A<R=R:6=H="@Q*2 K(#@I.PT* M("!B96=I;@T*(" @(',H87,G;&5F="@Q*2!T;R!A<R=R:6=H="@Q*2D@.CT@ M87,[#0H@(" @<RAA<R=R:6=H="@Q*2 K(#$I(" @(" @(" @(" Z/2!#4D,H M,S$@9&]W;G1O(#(X*3L-"B @("!S*&%S)W)I9VAT*#$I("L@,BD@(" @(" @ M(" @(#H]($-20R@R-R!D;W=N=&\@,C0I.PT*(" @(',H87,G<FEG:'0H,2D@ M*R S*2 @(" @(" @(" @.CT@0U)#*#(S(&1O=VYT;R R,"D[#0H@(" @<RAA M<R=R:6=H="@Q*2 K(#0I(" @(" @(" @(" Z/2!#4D,H,3D@9&]W;G1O(#$V M*3L-"B @("!S*&%S)W)I9VAT*#$I("L@-2D@(" @(" @(" @(#H]($-20R@Q M-2!D;W=N=&\@,3(I.PT*(" @(',H87,G<FEG:'0H,2D@*R V*2 @(" @(" @ M(" @.CT@0U)#*#$Q(&1O=VYT;R P."D[#0H@(" @<RAA<R=R:6=H="@Q*2 K M(#<I(" @(" @(" @(" Z/2!#4D,H,#<@9&]W;G1O(# T*3L-"B @("!S*&%S M)W)I9VAT*#$I("L@."D@(" @(" @(" @(#H]($-20R@P,R!D;W=N=&\@,# I M.PT*#0H@(" @<F5T=7)N(',[#0H@(&5N9"!A9&1#4D,[#0H-"B @+2T@5&AI M<R!I<R!S=7!P;W-T('1O(&-H96-K('1O('-E92!I9B!T:&4@8W)C(&ES(&-O M<G)E8W0-"B @9G5N8W1I;VX@8VAE8VM#4D,@* T*(" @(&%S(" @(" @(" @ M(" Z('-E;G1E;F-E#0H@(" @*0T*(" @(')E='5R;B!B;V]L96%N(&ES#0H@ M(" @=F%R:6%B;&4@0U)#(#H@<W1D7VQO9VEC7W9E8W1O<B@S,2!D;W=N=&\@ M,"D[#0H@(&)E9VEN#0H@(" @0U)#(#H]("AO=&AE<G,@/3X@)S$G*3L-"B @ M("!#4D,@.CT@1FEN9$-20RAA<RP@0U)#+"!T<G5E*3L-"B @("!I9B!#4D,@ M/2!8(F,W,#1D9#=B(B!T:&5N#0H@(" @("!R971U<FX@=')U93L-"B @("!E M;'-E#0H@(" @("!R971U<FX@9F%L<V4[#0H@(" @96YD(&EF.PT*("!E;F0[ M#0H-"B @+2T@5&AI<R!C:&5C:R!F=6YC=&EO;B!I<R!B87-E9"!O;B!A;B!I M9&5A('1H870@22!G;W0@9G)O;2!A;F]T:&5R($-20R!I;7!L96UE;G1A=&EO M;@T*("!F=6YC=&EO;B!C:&5C:T-20W8R* T*(" @(&%S(" @(" @(" @(" Z M('-E;G1E;F-E#0H@(" @*0T*(" @(')E='5R;B!B;V]L96%N(&ES#0H@(" @ M=F%R:6%B;&4@0U)#(#H@<W1D7VQO9VEC7W9E8W1O<B@S,2!D;W=N=&\@,"D[ M#0H@(&)E9VEN#0H@(" @0U)#(#H]("AO=&AE<G,@/3X@)S G*3L-"B @("!# M4D,@.CT@1FEN9$-20RAA<RP@0U)#+"!F86QS92D[#0H@(" @:68@0U)#(#T@ M6"(P,# P,# P,"(@=&AE;@T*(" @(" @<F5T=7)N('1R=64[#0H@(" @96QS M90T*(" @(" @<F5T=7)N(&9A;'-E.PT*(" @(&5N9"!I9CL-"B @96YD.PT* M#0H@("TM5&AI<R!F=6YC=&EO;B!R979E<G-E<R!T:&4@;W)D97(@;V8@=&AE M('9E8W1O<B!V+"!S;R!T:&%T#0H@("TM('(H,S$I(#P]('8H,"DL('(H,S I M/#T@=B@Q*2P@971C( T*("!F=6YC=&EO;B!R979E<G-E("@-"B @("!V(" @ M(" @(" @(#H@<W1D7VQO9VEC7W9E8W1O<@T*(" @("D-"B @("!R971U<FX@ M<W1D7VQO9VEC7W9E8W1O<B!I<PT*(" @('9A<FEA8FQE('(@.B!S=&1?;&]G M:6-?=F5C=&]R*'8G;&5F="@Q*2!D;W=N=&\@=B=R:6=H="@Q*2D[#0H@(&)E M9VEN#0H@(" @9F]R(&D@:6X@=B=L969T*#$I(&1O=VYT;R!V)W)I9VAT*#$I M(&QO;W -"B @(" @('(H:2D@.CT@=BAV)VQE9G0H,2D@+2!I("L@=B=R:6=H M="@Q*2D[#0H@(" @96YD(&QO;W [(" M+2!I#0H@(" @<F5T=7)N('([#0H@ M(&5N9"!R979E<G-E.PT*#0H@("TM(%1H:7,@9G5N8W1I;VX@9FQI<',@=&AE M(&]R9&5R(&]F('1H92!B>71E<R!I;B!T:&4@=V]R9 T*("!F=6YC=&EO;B!R M979E<G-E8GET97,@* T*(" @('8@(" @(" @(" @.B!S=&1?;&]G:6-?=F5C M=&]R*0T*(" @(')E='5R;B!S=&1?;&]G:6-?=F5C=&]R(&ES#0H@(" @=F%R M:6%B;&4@<B Z('-T9%]L;V=I8U]V96-T;W(H=B=L969T*#$I(&1O=VYT;R!V M)W)I9VAT*#$I*3L-"B @8F5G:6X@("TM(')E=F5R<V5B>71E<PT*(" @('(H M-R!D;W=N=&\@,"D@(" Z/2!V*#,Q(&1O=VYT;R R-"D[#0H@(" @<B@Q-2!D M;W=N=&\@."D@(#H]('8H,C,@9&]W;G1O(#$V*3L-"B @("!R*#(S(&1O=VYT M;R Q-BD@.CT@=B@Q-2!D;W=N=&\@."D[#0H@(" @<B@S,2!D;W=N=&\@,C0I M(#H]('8H-R!D;W=N=&\@,"D[#0H-"B @("!R971U<FX@<CL-"B @96YD(')E M=F5R<V5B>71E<SL-"@T*(" M+2!4:&ES(&9U;F-T:6]N(')E=F5R<V5D('1H M92!O<F1E<B!O9B!T:&4@8FET<R!I;B!E86-H(&)Y=&4-"B @9G5N8W1I;VX@ M<F5V97)S96EN8GET97,@* T*(" @('8@(" @(" @(" @.B!S=&1?;&]G:6-? M=F5C=&]R*0T*(" @(')E='5R;B!S=&1?;&]G:6-?=F5C=&]R(&ES#0H@(" @ M=F%R:6%B;&4@<B Z('-T9%]L;V=I8U]V96-T;W(H=B=L969T*#$I(&1O=VYT M;R!V)W)I9VAT*#$I*3L-"B @8F5G:6X@("TM(')E=F5R<V5I;F)Y=&5S#0H@ M(" @<B@P-RD@.CT@=B@P*3L-"B @("!R*# V*2 Z/2!V*#$I.PT*(" @('(H M,#4I(#H]('8H,BD[#0H@(" @<B@P-"D@.CT@=B@S*3L-"B @("!R*# S*2 Z M/2!V*#0I.PT*(" @('(H,#(I(#H]('8H-2D[#0H@(" @<B@P,2D@.CT@=B@V M*3L-"B @("!R*# P*2 Z/2!V*#<I.PT*#0H@(" @<B@Q-2D@.CT@=B@X*3L- M"B @("!R*#$T*2 Z/2!V*#DI.PT*(" @('(H,3,I(#H]('8H,3 I.PT*(" @ M('(H,3(I(#H]('8H,3$I.PT*(" @('(H,3$I(#H]('8H,3(I.PT*(" @('(H M,3 I(#H]('8H,3,I.PT*(" @('(H,#DI(#H]('8H,30I.PT*(" @('(H,#@I M(#H]('8H,34I.PT*#0H@(" @<B@R,RD@.CT@=B@Q-BD[#0H@(" @<B@R,BD@ M.CT@=B@Q-RD[#0H@(" @<B@R,2D@.CT@=B@Q."D[#0H@(" @<B@R,"D@.CT@ M=B@Q.2D[#0H@(" @<B@Q.2D@.CT@=B@R,"D[#0H@(" @<B@Q."D@.CT@=B@R M,2D[#0H@(" @<B@Q-RD@.CT@=B@R,BD[#0H@(" @<B@Q-BD@.CT@=B@R,RD[ M#0H-"B @("!R*#,Q*2 Z/2!V*#(T*3L-"B @("!R*#,P*2 Z/2!V*#(U*3L- M"B @("!R*#(Y*2 Z/2!V*#(V*3L-"B @("!R*#(X*2 Z/2!V*#(W*3L-"B @ M("!R*#(W*2 Z/2!V*#(X*3L-"B @("!R*#(V*2 Z/2!V*#(Y*3L-"B @("!R M*#(U*2 Z/2!V*#,P*3L-"B @("!R*#(T*2 Z/2!V*#,Q*3L-"@T*(" @(')E M='5R;B!R.PT*("!E;F0@<F5V97)S96EN8GET97,[#0H-"B @+2T@5&AI<R!F M=6YC=&EO;B!T86ME<R!T:&4@8V]M<&QE;65N="!O9B!T:&4@9FER<W0@,S(@ M8FET<R!O9B!T:&4@<V5N=&5N8V4-"B @9G5N8W1I;VX@8V]M<#,R("@-"B @ M("!A<R @(" @(" @(#H@<V5N=&5N8V4-"B @(" I#0H@(" @<F5T=7)N('-E M;G1E;F-E(&ES#0H@(" @=F%R:6%B;&4@<R Z('-E;G1E;F-E*&%S)VQE9G0H M,2D@=&\@87,G<FEG:'0H,2DI.PT*("!B96=I;@T*(" @(',@.CT@87,[#0H- M"B @("!S*&%S)VQE9G0H,2DI(" @(" Z/2!N;W0@87,H87,G;&5F="@Q*2D[ M#0H@(" @<RAA<R=L969T*#$I("L@,2D@.CT@;F]T(&%S*&%S)VQE9G0H,2D@ M*R Q*3L-"@T*(" @(&EF(&%S)VQE9G0H,2D@*R R(#P](&%S)W)I9VAT*#$I M('1H96X-"B @(" @(',H87,G;&5F="@Q*2 K(#(I(#H](&YO="!A<RAA<R=L M969T*#$I("L@,BD[#0H@(" @("!S*&%S)VQE9G0H,2D@*R S*2 Z/2!N;W0@ M87,H87,G;&5F="@Q*2 K(#,I.PT*(" @(&5N9"!I9CL-"@T*(" @(&EF(&%S M)VQE9G0H,2D@*R T(#P](&%S)W)I9VAT*#$I('1H96X-"B @(" @(',H87,G M;&5F="@Q*2 K(#0I(#H](&YO="!A<RAA<R=L969T*#$I("L@-"D[#0H@(" @ M("!S*&%S)VQE9G0H,2D@*R U*2 Z/2!N;W0@87,H87,G;&5F="@Q*2 K(#4I M.PT*(" @(&5N9"!I9CL-"@T*(" @(&EF(&%S)VQE9G0H,2D@*R V(#P](&%S M)W)I9VAT*#$I('1H96X-"B @(" @(',H87,G;&5F="@Q*2 K(#8I(#H](&YO M="!A<RAA<R=L969T*#$I("L@-BD[#0H@(" @("!S*&%S)VQE9G0H,2D@*R W M*2 Z/2!N;W0@87,H87,G;&5F="@Q*2 K(#<I.PT*(" @(&5N9"!I9CL-"@T* M(" @(')E='5R;B!S.PT*("!E;F0@8V]M<#,R.PT*#0H@("TM(%=R:71E<V5N M="!W<FET97,@82!S96YT96YC92!T;R!A(&9I;&4-"B @<')O8V5D=7)E('=R M:71E<V5N=" H#0H@(" @:2 Z(&YA='5R86P[#0H@(" @<R Z('-E;G1E;F-E M.PT*(" @(&9I;&4@9B Z("!T97AT*0T*("!I<PT*(" @('9A<FEA8FQE(&1N M.B!S=&1?;&]G:6-?=F5C=&]R*#,@9&]W;G1O(# I.PT*(" @('9A<FEA8FQE M($9R86UE(#H@;&EN93L-"B @("!V87)I86)L92!S='(Q(#H@<W1R:6YG*#$@ M=&\@,3 I(#H](")C;VYS=&%N="!N(CL-"B @("!V87)I86)L92!S='(R(#H@ M<W1R:6YG*#$@=&\@,3,I(#H]("(@.B!&<F%M92 Z/2 H(CL-"B @("!V87)I M86)L92!S='(S(#H@<W1R:6YG*#$@=&\@,BD@.CT@(BD[(CL-"B @(" -"B @ M8F5G:6X@("TM('=R:71E<V5N= T*(" @('=R:71E*$9R86UE+'-T<C$I.PT* M(" @('=R:71E*$9R86UE+&DI.PT*(" @('=R:71E*$9R86UE+'-T<C(I.PT* M(" @+2T@=W)I=&5L:6YE*&8L1G)A;64I.PT*(" @(&9O<B!I(&EN(',G;&5F M="@Q*2!T;R!S)W)I9VAT*#$I(&QO;W -"B @(" @(&1N(#H](',H:2D[#0H@ M(" @("!W<FET92A&<F%M92PG(B<I.PT*(" @(" @=W)I=&4H1G)A;64L=&]? M8FET=F5C=&]R*&1N*2D[#0H@(" @("!W<FET92A&<F%M92PG(B<I.PT*(" @ M(" @=W)I=&4H1G)A;64L)RPG*3L-"B @(" @+2T@=W)I=&5L:6YE*&8L1G)A M;64I.PT*(" @(&5N9"!L;V]P.R @+2T@:0T*(" @('=R:71E*$9R86UE+'-T M<C,I.PT*(" @('=R:71E;&EN92AF+$9R86UE*3L-"B @96YD('=R:71E<V5N M=#L-"@T*(" M+2!.871U<F%L('1O('-T9%]L;V=I8U]V96-T;W(-"B @9G5N M8W1I;VX@;C)V("@-"B @("!N870@.B!N871U<F%L*0T*("!R971U<FX@<W1D M7VQO9VEC7W9E8W1O<B!I<PT*(" @('9A<FEA8FQE('(@.B!S=&1?;&]G:6-? M=F5C=&]R*#$U(&1O=VYT;R P*3L-"B @("!V87)I86)L92!N(#H@;F%T=7)A M;#L-"B @8F5G:6X-"B @("!N(#H](&YA=#L-"B @("!F;W(@:2!I;B P('1O M(#$U(&QO;W -"B @(" @(&EF(&X@;6]D(#(@/2 Q('1H96X-"B @(" @(" @ M<BAI*2 Z/2 G,2<[#0H@(" @("!E;'-E#0H@(" @(" @('(H:2D@.CT@)S G M.PT*(" @(" @96YD(&EF.PT*(" @(" @;B Z/2!N("\@,CL-"B @("!E;F0@ M;&]O<#L@("TM(&D-"B @("!R971U<FX@<CL-"B @96YD(&XR=CL-"B @#0IB M96=I;B @+2T@5&5S=$)E;F-H#0H-"@T*("!T97-T8B @(" @(" @(" @(" Z M('!R;V-E<W,-"B @("!V87)I86)L92!D<S$@(" @.B!S96YT96YC92@Q('1O M(#$R,"D[#0H@(" @=F%R:6%B;&4@9',Q8B @(#H@<V5N=&5N8V4H,2!T;R Q M,C I.PT*(" @('9A<FEA8FQE(&1S,B @(" Z('-E;G1E;F-E*#$@=&\@,3(X M*3L-"B @("!V87)I86)L92!C<F,@(" @.B!S=&1?;&]G:6-?=F5C=&]R*#,Q M(&1O=VYT;R P*3L-"B @("!V87)I86)L92!R97-U;'0@.B!B;V]L96%N.PT* M#0H@(" @9FEL92!&<F%M95]&:6QE(#H@=&5X="!I<R!O=70@(F5X86UP;&5& M<F%M97,N='AT(CL-"@T*(" @(&9I;&4@<V-?1FEL92 Z('1E>'0@:7,@;W5T M(")S8RYT>'0B.PT*(" @('9A<FEA8FQE('=N(#H@;&EN93L-"B @("!V87)I M86)L92!W<S$@.B!S=')I;F<H,2!T;R U*2 Z/2 B5VAE;B B.PT*(" @('9A M<FEA8FQE('=S,B Z('-T<FEN9R@Q('1O(#$R*2 Z/2 B(#T^(&-F;2 \/2!N M(CL-"B @("!V87)I86)L92!W<S,@.B!S=')I;F<H,2!T;R Q*2 Z/2 B.R([ M#0H@(" @#0H@(" @9FEL92!C<F-?1FEL92 Z('1E>'0@:7,@;W5T(")C<F-S M+G1X="([#0H@(" @=F%R:6%B;&4@8W)C;&X@.B!L:6YE.PT*(" @( T*("!B M96=I;B @+2T@<')O8V5S<R!T97-T8@T*#0H@(" @+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM#0H@(" @+2T@36%I;B!#;V1E#0H@(" @+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0H@(" @#0H@(" @#0H@(" @9F]R M(&D@:6X@-3$R(&1O=VYT;R P(&QO;W -"@T*(" @(" @+2T@1V5N97)A=&4@ M=&AE('1E<W0@9G)A;64-"B @(" @("TM($%D9')E<W,-"B @(" @(&1S,2@Q M*2 Z/2 B,3$P,2([#0H@(" @("!D<S$H,BD@.CT@(C$Q,3$B.PT*(" @(" @ M9',Q*#,I(#H]("(Q,3 Q(CL-"B @(" @(&1S,2@T*2 Z/2 B,3$Q,2([#0H@ M(" @("!D<S$H-2D@.CT@(C$Q,#$B.PT*(" @(" @9',Q*#8I(#H]("(Q,3$Q M(CL-"B @(" @(&1S,2@W*2 Z/2 B,3$P,2([#0H@(" @("!D<S$H."D@.CT@ M(C$Q,3$B.PT*(" @(" @9',Q*#DI(#H]("(Q,3 Q(CL-"B @(" @(&1S,2@Q M,"D@.CT@(C$Q,3$B.PT*(" @(" @9',Q*#$Q*2 Z/2 B,3$P,2([#0H@(" @ M("!D<S$H,3(I(#H]("(Q,3$Q(CL-"@T*(" @(" @+2T@061D<F5S<PT*(" @ M(" @9',Q*#$S*2 Z/2 B,3$P,2([#0H@(" @("!D<S$H,30I(#H]("(Q,3$Q M(CL-"B @(" @(&1S,2@Q-2D@.CT@(C$Q,#$B.PT*(" @(" @9',Q*#$V*2 Z M/2 B,3$Q,2([#0H@(" @("!D<S$H,3<I(#H]("(Q,3 Q(CL-"B @(" @(&1S M,2@Q."D@.CT@(C$Q,3$B.PT*(" @(" @9',Q*#$Y*2 Z/2 B,3$P,2([#0H@ M(" @("!D<S$H,C I(#H]("(Q,3$Q(CL-"B @(" @(&1S,2@R,2D@.CT@(C$Q M,#$B.PT*(" @(" @9',Q*#(R*2 Z/2 B,3$Q,2([#0H@(" @("!D<S$H,C,I M(#H]("(Q,3 Q(CL-"B @(" @(&1S,2@R-"D@.CT@(C$Q,3$B.PT*(" @(" @ M#0H@(" @(" M+2!&<F%M92!T>7!E#0H@(" @("!D<S$H,C4I(#H]("(P,3 P M(CL-"B @(" @(&1S,2@R-BD@.CT@(C Q,# B.PT*(" @(" @9',Q*#(W*2 Z M/2 B,#$P,"([#0H@(" @("!D<S$H,C@I(#H]("(P,3 P(CL-"@T*(" @(" @ M+2T@)T1A=&$G#0H@(" @("!D<S$H,CDI(#H](&XR=BAI*2@Q-2!D;W=N=&\@ M,3(I.PT*(" @(" @9',Q*#,P*2 Z/2!N,G8H:2DH,3$@9&]W;G1O(#@I.PT* M(" @(" @9',Q*#,Q*2 Z/2!N,G8H:2DH-R!D;W=N=&\@-"D[#0H@(" @("!D M<S$H,S(I(#H](&XR=BAI*2@S(&1O=VYT;R P*3L-"@T*(" @(" @+2T@4&%D M9&EN9R!T;R!M86ME('1H92!M:6YI;75M(&5T:&5R;F5T(&9R86UE('-I>F4- M"B @(" @(&9O<B!N(&EN(#,S('1O(#$R,"!L;V]P#0H@(" @(" @(&1S,2AN M*2 Z/2 B,# P,"([#0H@(" @("!E;F0@;&]O<#L@("TM(&X-"@T*(" @(" @ M+2TM($YO=R!T<GD@86YD(&=E;F5R871E(&$@8W)C('1H870@=V]R:W,A#0H@ M(" @(" -"B @(" @(&EF("AI(&UO9" R*2 ](# @=&AE;@T*(" @(" @("!C M<F,@.CT@*&]T:&5R<R ]/B G,"<I.PT*(" @(" @96QS90T*(" @(" @("!C M<F,@.CT@*&]T:&5R<R ]/B G,2<I.PT*(" @(" @96YD(&EF.PT*#0H@(" @ M("!I9B H:2\Q,C@@;6]D(#(I(#T@,"!T:&5N#0H@(" @(" @(&1S,6(@.CT@ M8V]M<#,R*&1S,2D[#0H@(" @("!E;'-E#0H@(" @(" @(&1S,6(@.CT@9',Q M.PT*(" @(" @96YD(&EF.PT*#0H@(" @("!I9B H:2\T(&UO9" R*2 ](# @ M=&AE;@T*(" @(" @("!C<F,@.CT@1FEN9$-20RAD<S%B+"!C<F,L(&9A;'-E M*3L-"B @(" @(&5L<V4-"B @(" @(" @8W)C(#H]($9I;F1#4D,H9',Q8BP@ M8W)C+"!T<G5E("D[#0H@(" @("!E;F0@:68[#0H-"B @(" @(&EF("AI+S@@ M;6]D(#(I(#T@,"!T:&5N#0H@(" @(" @("TM4VAI9G0@;65S<V%G92!B>2 S M,B!B>71E<PT*(" @(" @("!C<F,@.CT@0U)#<S,R*&-R8RD[#0H@(" @("!E M;F0@:68[#0H@(" @(" -"B @(" @(&EF("AI+S$V(&UO9" R*2 ](# @=&AE M;@T*(" @(" @("!C<F,@.CT@<F5V97)S92AC<F,I.PT*(" @(" @96YD(&EF M.PT*#0H@(" @("!I9B H:2\S,B!M;V0@,BD@/2 P('1H96X-"B @(" @(" @ M8W)C(#H](')E=F5R<V5I;F)Y=&5S*&-R8RD[#0H@(" @("!E;F0@:68[#0H- M"B @(" @(&EF("AI+S8T(&UO9" R*2 ](# @=&AE;@T*(" @(" @("!C<F,@ M.CT@<F5V97)S96)Y=&5S*&-R8RD[#0H@(" @("!E;F0@:68[#0H@(" @(" - M"B @(" @(&EF("AI+S(@;6]D(#(I(#T@,"!T:&5N#0H@(" @(" @(&-R8R Z M/2!N;W0@8W)C.PT*(" @(" @96YD(&EF.PT*#0H@(" @("!D<S(@.CT@861D M0U)#*&1S,2P@8W)C*3L-"@T*(" @(" @<F5S=6QT(#H](&-H96-K0U)#*&1S M,BD[#0H-"B @(" @(&%S<V5R="!R97-U;'0@<F5P;W)T(")$:61N)W0@9FEN M9"!#4D,B('-E=F5R:71Y(&YO=&4[#0H@(" @("!A<W-E<G0@;F]T(')E<W5L M="!R97!O<G0@(D9I;F0@0U)#(2$A(2$A(2$A(2$B('-E=F5R:71Y(&9A:6QU M<F4[#0H-"B @(" @(')E<W5L=" Z/2!C:&5C:T-20W8R*&1S,BD[#0H@(" @ M("!A<W-E<G0@;F]T(')E<W5L="!R97!O<G0@(B @(%!O<W-I8FQE(&9I;F0@ M0U)#("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHB M('-E=F5R:71Y(&5R<F]R.PT*(" @(" @+2UI9B!R97-U;'0@=&AE;@T*(" @ M(" @("!W<FET97-E;G0H:2QD<S(L1G)A;65?1FEL92D[#0H@(" @(" M+65N M9"!I9CL-"B -"B @(" @('=R:71E*'=N+'=S,2D[#0H@(" @("!W<FET92AW M;BQI*3L-"B @(" @('=R:71E*'=N+'=S,BD[#0H@(" @("!W<FET92AW;BQI M*3L-"B @(" @('=R:71E*'=N+'=S,RD[#0H@(" @("!W<FET96QI;F4H<V-? M9FEL92QW;BD[#0H-"B @(" @('=R:71E*&-R8VQN+&DI.PT*(" @(" @=W)I M=&4H8W)C;&XL)R G*3L-"B @(" @('=R:71E*&-R8VQN+'1O7V)I='9E8W1O M<BAC<F,I*3L-"B @(" @('=R:71E;&EN92AC<F-?9FEL92QC<F-L;BD[#0H- M"B @("!E;F0@;&]O<#L@("TM(&D-"@T*(" @('=A:70[#0H@(&5N9"!P<F]C L97-S('1E<W1B.PT*#0H-"@T*#0IE;F0@5&5S=$)E;F-H.PT*#0H-"@T*#0H` ` endArticle: 34585
Philip Freidin <philip@fliptronics.com> wrote: > On 29 Aug 2001 03:07:42 GMT, <khtsoi@pc90026.cse.cuhk.edu.hk> wrote: >>Thanks for the info. I am still looking for a way to download the bit file. > This is documented in Xilinx data sheets, in Xilinx App Notes, and in > the Xilinx on-line documentation. You couldn't ask for more. (well maybe > you could, but I dont know why) >>I just wondering if the file format is not open. > While the exact details of what each bit in the bitstream represents is > proprietory, you do not need this information to download a design into > your FPGA. The bitstream is created by the P&R tools, and the resulting > file can be copied into a serial or parallel EPROM/EEPROM, or saved > on disk, or stored any other way. The documentation clearly describes > the format of the data, and how it should be presented to the FPGA. >>And nobody can do this except Xilinx and the licenced parties. > Hardly ! All of Xilinx's tens of thousands of customers do this every day. >>So sad. It's not possible to require the client to have a copy of >>download program and the bit file can be changed s.t. cannot >>stored in ROM. > Well, this is just plain wrong. ( ? s.t. ?) >>---- Brittle > Philip > Philip Freidin > Fliptronics Thank you all very much for the useful info. I have one more question. Actually I know how to download using the JTAG pins. But once I check the raw bit file, I found that there is some text string in the header (e.g. Xilinx, xcv300, etc.). I just not sure if this should be downloaded to the FPGA and for what? If I download the wrong data/header, will the FPGA be demaged? For these questions, I just want to make sure it works before actually perform the download. I cannot affort to demage the proto board I am using :) anyway, thanks again ---- BrittleArticle: 34586
>>So sad. It's not possible to require the client to have a copy of >>download program and the bit file can be changed s.t. cannot >>stored in ROM. > Well, this is just plain wrong. ( ? s.t. ?) s.t. = such that forgive my poor English ---- BrittleArticle: 34587
Hello, We are working on schematic entry for the Virtex II device XC2V3000-4BF957, but finding it difficult to enter manually. It is time consuming to create this symbol as there are over 900 pins. If someone has this symbol, we would appreciate very much if they can pass on the symbol.We are using an older version of Orcad which doesn't have the CIS feature, hence this request. Thanking in advance. JaideepArticle: 34588
>I am designing an array of FF1517 Virtex2 parts and using mostly VHDL for >the PCB design, lightly tied together with schematics. The sheer pain, >and consequent error rate, when doing these big parts in schematic... Write a program to "draw" the schematics for you. This is a good example of why well documentated file formats is high on my list of requirements for a good tool collection. -- These are my opinions, not necessarily my employeers. I hate spam.Article: 34589
On 30 Aug 2001 04:16:04 GMT, <khtsoi@pc90026.cse.cuhk.edu.hk> wrote: >Thank you all very much for the useful info. I have one more question. >Actually I know how to download using the JTAG pins. But once I check >the raw bit file, I found that there is some text string in the header >(e.g. Xilinx, xcv300, etc.). I just not sure if this should be downloaded >to the FPGA and for what? You are right to question this. You should not download the header information. If you go look at Alan Nishioka's article, he gives a good description of the stuff in the file. The stuff that is the raw bit stream (from his article) >1 byte key 0x65 >2 bytes length 0x000c9090 >8233440 bytes raw bit stream starting with 0xffffffff aa995566 sync >word documented below. is the stuff for actual download. i.e. the first 32 bits are all '1' , then the AA995566 sync word, then all the rest of the raw bit stream. You may also find the following brilliant article of use, although it is addressing a different issue. http://www.fpga-faq.com/archives/33100.html#33108 By the way, all this sync word stuff assumes you are working with Spartan-II or one of the Virtex families. If it is any XC3K or XC4K or Spartan device, the .BIT file format as described is still correct, but the content of the raw bit stream section looks different, as it does not have a sync word. > If I download the wrong data/header, will the >FPGA be demaged? Yes, it could. But the reality is that (assuming S-II or V family device) unless you have something that looks like the Sync Word in the data that shouldn't be loaded, you will be ok, because it will never get into the configuration state. Most of the header you are skipping is text, and the sync word includes AA and 99, neither of wich occur in normal 7 bit ASCII stored in 8 bit bytes. On the older XC3K and XC4K products, there is protection, but not as good. >For these questions, I just want to make sure it works >before actually perform the download. I cannot affort to demage the >proto board I am using :) anyway, thanks again > >---- Brittle Philip Freidin FliptronicsArticle: 34590
Hal Murray wrote: > >I am designing an array of FF1517 Virtex2 parts and using mostly VHDL for > >the PCB design, lightly tied together with schematics. The sheer pain, > >and consequent error rate, when doing these big parts in schematic... > > Write a program to "draw" the schematics for you. > > This is a good example of why well documentated file formats is high on my > list of requirements for a good tool collection. ... and IMO all the files should either be text or have a text equivalent e.g. Xilinx's .ncd/.xdl. A good counter example is FPGA Express where the report files are in binary ??! [Although the .xdl doesn't really pass the "well documented" test its not that hard to decrypt and is pretty amenable to simple-minded Perl hacking].Article: 34591
I want to implement several big shift-registers with parallel load (parallel to serial converter) in a Virtex-E. Beside these SRs I also want to implement SRs with serial input and (big) parallel output. The number of CLB FFs in the FPGA are limited (Rows x Columns x 4). Is there a way to implement one of these SRs (parallel load or output!) without using the CLBs FF's. Can one of the synthesis tools manage this for me automatically(FPGA Express, Synplify, ..)? MichaelArticle: 34592
Hi, I will test it asap. Thank you all. I will report the results. ---- BrittleArticle: 34593
"Hal Murray" <hmurray-nospam@megapathdsl.net> wrote > > >I am designing an array of FF1517 Virtex2 parts and using mostly VHDL for > >the PCB design, lightly tied together with schematics. The sheer pain, > >and consequent error rate, when doing these big parts in schematic... > > Write a program to "draw" the schematics for you. > I would rather write the netlist. Looking at repetive schematics of this size doesn't illuminate much. The story is different for stuff like power supplies. We need an EE version of Don Knuth's 'literate programming'Article: 34594
"Michael Boehnel" <boehnel@iti.tu-graz.ac.at> wrote > I want to implement several big shift-registers with parallel load > (parallel to serial converter) in a Virtex-E. Beside these SRs I also > want to implement SRs with serial input and (big) parallel output. > > The number of CLB FFs in the FPGA are limited (Rows x Columns x 4). > > Is there a way to implement one of these SRs (parallel load or output!) > without using the CLBs FF's. The Xilinx SRLs give you a x16 density gain. They are serial-in/serial-out so you need to play with the algorithm. BRAMs can give you parallel load (x32) and serial out (x1) by using the dual-port feature. > Can one of the synthesis tools manage this for me automatically(FPGA > Express, Synplify, ..)? Synplify can. And probably FGPA Express - check with Synopsys. For funky stuff, instantiation is probably less trouble to you.Article: 34595
The "free" Xilinix Webpack should be classified as a Demo and not a real system to do even realistic small designs. By the time you install the design and even a small test vector, you easily exceed the 500-line ModelSim Starter Design Limit. There are even limitations on Test Bench and probably other portions of the package. Xilinx needs to stop misleading its customers and tell them what they really need to know: What package is adequate to the design and what does it cost and will actually work? We also need something that is supported and does not time-out before we are done with the design. To justify any design, the Engineer needs to know how much the tool will cost beforehand and not in the "oh, by the way, if you need a real system..." Stop the deception - XilinixArticle: 34596
> >I am designing an array of FF1517 Virtex2 parts and using mostly VHDL for > >the PCB design, lightly tied together with schematics. The sheer pain, > >and consequent error rate, when doing these big parts in schematic... > > Write a program to "draw" the schematics for you. > > This is a good example of why well documentated file formats is high on my > list of requirements for a good tool collection. ViewDraw has always been text based as far as I know. Also, there are some utilities that automate the symbol process at least. One takes a PDF spec sheet and creates a symbol for you. One draws the symbol for a particular function as well as the underlying schematics, placed and mapped...Article: 34597
I am working with virtexE speed grade 8, xilinx alliance series with service pack 8. When I generate the sdf file for timing simulation, the setup times for flops placed in the IOB is given as 271 ps which happens to be the setup for CLB flops too. But the latest datasheets on VietexE device gives the IOB setup of 1.3 ns. That means that my timing simulation is faulty. Can anyone out there help me. Regards, Nisreen.Article: 34598
Has anyone tried the Xilinx download cable "Parallel III" on a Win ME machine? I have installed the entire tool chain on my Win ME laptop and I can get all parts working except this cable. The Xilinx hotline said that it was probably "noise" on the cable since this is a 900MHz machine but that ME would not actually be supported until release 4.1 of the Alliance tools. The cable works fine in the lab on a slower PC running Win 98 SE. Could MS have actually messed up a parallel port going from 98 to ME? On Tue, 14 Aug 2001 13:50:01 GMT, "Paul Teagle" <pteagle@bigpond.net.au> wrote: >I had a ME related problem a while ago (look back for some archive >material - Xilinx solution 9253 was most appropriate). > >Basically, it was a problem with the path. Be careful how you attempt to >modify the autoexec.bat file. You have to use the system utilities to >modifiy, not just a text editor on the autoexec.bat files. There's registry >issues involved. > >I've now got a problem with the ModelSim package not finding the design. Oh >well...Article: 34599
From 1) - I don't know what you mean about the return key. Are you referring to the lack of use of returns in the body of my message? The box they gave me has "autowrap". I'll be happy to comply. From 2) - Since I am using previously tested firmware to configure the XC4003E (in asynchronous peripheral mode) I assumed that a successful configuration process was a given. Maybe not. I thought that the cclk signal was generated by the part automatically. The difference in the hardware of this design and the design which works is the address decoding. In the successful design I had a free port pin from a microcontroller attached to CS1. That input was simply held high throughout the configuration process. The /CS0 input was controlled by an address line qualified by a RAM space select line. In the unsuccessful design the address line and the RAM CS line control CS1 and /CS0, respectively. The only difference in the firmware controlling the configuration is that in the successful design there is the delay involved in changing the state of the port pin (CS1) to low. Then the code loops until DONE goes active. Both these designs use the XC4003E. I did not mean to imply that the two designs were different my original note. The reference in parentheses was abbreviated. Further notes: Some of the signals which do not function are "pass through" signals. In three places there are address lines used in the XC4003E for some decoding, but they also pass through the chip to output buffers and pads. One output is the simple logic "OR" of an address line (inverted) and an I/O select line (low true). The output appears, but is only the inversion of the address line. A number of outputs are FDC blocks. These outputs are all stuck high after configuration, which certainly supports your premise about the missing cclk transitions at the end of the process. I greatly appreciate your input on this. You may be right about the missing clocks at the end of the process. I'm just not yet aware of how to force a few extras, since in asynchronous peripheral mode the master generates the clocks.
Site Home Archive Home FAQ Home How to search the Archive How to Navigate the Archive
Compare FPGA features and resources
Threads starting:
Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z