03-10-2019 04:37 PM
I have just obtained a Xilinx Virtex-7 XC7V2000T-FLG1925ACX1209 chip. Just the chip by itself. I admidt that hand soldering to a BGA array is a circus act, but I've developed the skills over a few decades to be able to hand solder delicate, microscopic surface mount technologies of all kinds including BGAs, so lets not worry about that for the moment (especially since I only need less than two dozen connections to test the chip).
I have 30 days to make sure I'm happy with this chip before I can no longer return it for a full refund. So here's the challenge. What is the minimum amount of connections and effort that I can use to confirm the following:
1/ The chip is not dead.
2/ I can communicate with the chip.
3 I can sythesize a simple circuit sucessfully.
Who can tell me what the very simplest, least time consuming approach I can use is to test the above three points using only this:
to test/program the device and using Vivado as my IDE. You can assume I can establish reliable connections to one or two dozen balls on the chip and run the ends of the connection wires to a suitable breadboard where they'll be easier to work with. Someone has already pointed me to Xilinx publication Fig 2-12 in UG470 as a starting point. Do I need the SPI Flash if I don't want to store anything, but just need to test?
Basically, the purpose of my post is to get some help to point me in the right direction so I can get this thing tested quickly - I don't have time to flounder around doing it wrong for a month trying to figure it out all alone while the deadline expires, so I was hoping for some advice to spur me along faster. Thanks in advance!
03-10-2019 05:07 PM
Hi again George,
It is a sad fact that Xilinx's FPGAs are being copied. Large expensive devices like the XC7V2000 are exactly the type often copied. If you did not buy the FPGA from a Xilinx authorized distributer then I would return it immediately.
I've developed the skills over a few decades to be able to hand solder...
Hand soldering is an (almost lost) art. We have only one guy at our organization who can do this fine-pitch work and he is highly valued. However, the XC7V2000 is a ball-grid package with almost 2000 balls/connections! Many of these pins are power and grounds that require capacitors located very near the pins (on bottom side of the board usually). Long-story-short, it would be a minor miracle if you were to get this FPGA working by soldering wires to the grid.
Your startup with FPGAs will be so much easier if you buy an FPGA Development board from a Xilinx authorized vendor. You'll find a nice selection (some under 200 USD) from the following vendor.
The Arty-A7 board might work nicely for you.
Next you will need the Xilinx software (aka tools) to write and compile your HDL code for the FPGA. Xilinx offers both ISE and Vivado-HLx. You should definitely choose Vivado since it is newer and more people on the Xilinx Forum can help you with Vivado than ISE. A nice thing about the Arty-A7 board is that that FPGA selections (XC7A35T and XC7A100T) for this board are supported by the free WebPACK version of Vivado that you can download from the following website:
Other FPGAs (like the XC7V2000) are not supported by WebPACK Vivado (see Table 2-1 in Xilinx document UG973 for FPGAs supported by WebPACK Vivado). The not-free version of Vivado costs about 3000 USD annually (I think).
If you need the programmer module then please buy it from an authorized Xilinx distributor. However, the Arty-A7 board has a built-in programmer module, requiring only a USB connection to your computer. Your computer (together with Vivado and the programmer module) can program the FPGA directly for testing - or can place the program in SPI flash where it is automatically read by the FPGA at power-up.
Xilinx FPGAs usually need a low-jitter clock input - especially when FPGA circuits are to operate at the higher (>200MHz) clock speeds. The FPGA clock input usually comes from a crystal oscillator running at 100-200MHz. Although, the FPGA can be configured to create lots of other clocks from this one clock input. The Arty-A7 board has an onboard crystal oscillator running at 100MHz.
-best of luck,
03-11-2019 04:21 AM
@townsend For a start, the chip has over 400 power/ground pins that need to be connected ... and that's not counting power for the I/O banks (it's over 600 if you include those but you only really need one I/O bank powered for testing). Add another 20 for the configuration interface. As firstname.lastname@example.org has said, most of these require decoupling capacitors very close to the package - which will be difficult. The power consumption (even when idle) could also be substantial; this is a job for a big copper power plane, not for a bunch of 36 AWG wire-wrapping wire.
Using a fake Platform Cable USB is not going to make your life any easier; when it doesn't work you won't know whether to blame the cable or the chip.
With the Vivado WebPack license you should be able to at least connect to the chip and see if it'll talk (assuming, as above, that you get the 400+ wires soldered, decoupling capacitors, and a JTAG plug). For a basic application you can get a 30-day evaluation version of Vivado, and write a simple counter program (with appropriate external clock) - this is probably the easiest thing to do and can be checked quickly with an oscilloscope.
03-11-2019 05:00 AM
Well, although I'm pretty good at this stuff, I'm not so sure that I'm "400+wires" good! That's a pretty daunting task indeed. 200 parallel AWG 36 wires can support plenty o current in total, so that's not an issue, but soldering that many wires onto a little BGA is a little more challanging than I was banking on. The vendor of the chip had 30 day warranty if the chip didn't work, but also a 14 day "return for any reason" policy. I don't know if they will actually honor it, but I've contacted them to attempt a return. Its a pitty, because this was a pretty decent chip. I can still re-order it if/when I'm ready to tackle this a different way if you or anyone else has any suggestions about an alternate approach.
03-11-2019 05:38 AM
With regards to XC7V2000T, I fear the worst. These FPGAs typically cost upwards of $20,000 each! Before you do anything else, you should attempt to verify the authenticity of the part (although I'm not sure this will be absolute proof if you bought from an unauthorized distributor). You can do this by taking a picture of the top-markings on the FPGA and following instructions found at the following site:
As u4223374 suggests, it is very very very very unlikely you will get this FPGA (or any FPGA) working by soldering wires and caps to the part. Don't even try - just return it and hope your money is refunded.
I don't know details of what you plan to do with the XC7V2000T, but from your brief description it sounds like this FPGA is way more power than you need. If you are trying to start from basics and build FPGA boards yourself then start with an Artix-7 or Kintex-7 that is supported by WebPACK Vivado. These FPGAs are available from digikey.com (a Xilinx authorized distributor) for about $100.
03-11-2019 06:30 AM
The minimum number of balls you need for such a test is:
The four JTAG pins (TDI_0, TDO_0, TMS_0, TCK_0)
Signals DONE, INIT, PROGRAM, and the M0's.
Ground (not sure if just one or a few will be enough...) and supplies for VCCO_0, VAUX, VCCINT and VCC from a bank of your choice (for a synthesized design)
At least two i/os from that bank
No, you don't need the config flash if all you do is download your bitstream with JTAG and run it.
With a few I/O you can have a very basic design that generates some patern with an input clock. That won't test really much, it will just tell you it's alive and running.
03-11-2019 06:59 AM
Your reply is in contrast to the other responses - if its only that many wires, I can easily make those connections. Other posters have brought up other important issues, for example is this a REAL chip? I knew it averaged $40,000 and it caught my eye because I've been "inventing" some unique ways of implementing cryptocurrency mining algorithms in FPGAs and based on the substantial improvements I've been able to make using the Artix 7 100T, I thought I could do fantasiticly better with the 2000T since I've had trouble with congestion preventing what could have been a combinational circuit from working. I had an implementation that did the required 24 rounds of an algorithm with no sequential logic, but I had to artifically break it up into 24 separate "rounds" and use a latch to store intermediate results. What should have run in one clock cycle, takes 24 as a result - all because congestion makes it impossible to route. I thought the larger FPGA might get around this problem. Anyway, what's too good to be true is probably not true, so my "bargain 2000T" is hopefully going to get refunded. Obviously I didn't pay $40K for it - it was cheap enough that I thought I'd just buy it and try it.
So, back to your suggestion (in case I'm stuck with the chip) ... I don't know enough about the internals, but in my experience with GPUs, the various power pins are not always common inside the chip, so you can't just pick and chose which pins to use - you need to connect them all. Whether a limitted subset of power pins would work for this FPGA depends on two factors: i) are they all connected together internally or does each suppy a different part of the chips internal circuitry? and ii) if they ARE all internally common, will a single connection support the idle current required while the chip is used to run a quick "are you alive" test? Depending on the answers to these two questions, it might be possible to use an arbitrary subset of the power pins. Otherwise, the other posters are right, and I can't get away without connecting ALL 200 power supply pins. Does anyone have a definitive answer on this?
And, alternatively, is there an alternative approach - for example some sort of ecconomical BGA socket and breakout board - I have my doubts since BGA is designed to be soldered. But is there some other way perhaps?
Again, I'm trying to return this device to the vendor, but I might well be stuck with it, so, I'm just planning ahead.
03-11-2019 07:29 AM
I just focused on your questions. I also wondered why others came up with the authenticity issue. Not always a bargain is a fake. You didn't either mention it was well below its regular price. Sometimes someone sells things that "dropped" from a lorry or it came from a rework and was discarded...
Is it that you want to test a provider's quality with the aim of building a series? In that case, I'd suggest a proper PCB with a proper reflow soldering in the proper conditions by the proper people. Not doubting of your manual skills, but even the better PCBA houses have some 5% of failures. Multiply that figure by something (2 to 10) if you only have your hands and handtools, however skilled you are. It's my experience, also from a few decades in the industry.
You don't need the chip to check if a design synthesizes and routes on a Virtex-7, just kick Vivado off.
One easy way to check whether the ground balls are internally connected is a DMM (continuity mode), magnifier glass and patience.
If grounds were connected across the chip, with just one ball I'm guessing you can supply at least some 100 mA and that would be enough for a simple design to run.
I think there are some kind of "sockets" to not solder BGAs. Look for 'interposers' but these are custom, so not much different from a custom breakout board.
Have you considered running your thing in the cloud before spending anything in clunky hardware?
03-11-2019 08:29 AM
Thanks for the reply. Yes, I guess an obvious check is just a simple continuity check to answer that one question.
I got the part for a song - it was too good of a deal to pass up, but no matter how cheap it is, its worthless if it doesn't work. On the other hand, if it does work, then jusst based on the raw size of the chip, I can implement several copies of my existing solution in it and have my computer spawn several threads to mine from each enstantiation. (That's what I'm doing now - the I/O is so low compared with the computationally intensive work that a simple 3-wire serial port is idle 95% of the time while each thread spits a job into the Artix 7 100T and waits for the result - I have 12 threads working in parallel to 12 copies of my circuit in the FPGA with one special "job controller" circuit that sorts out which job should go to which of the 12 circuits.) At the very least, I could treat this 2000T as if it were a whole mess of 100T's in one package and have a pretty decent mining machine.
Anyway, for what I paid, it really does seem to good to be true, so I'm not very optimistic, but as you pointed out, sometimes they are getting parts from a scrapped board and there's nothing wrong with them. The company seems reputable enough (website looks legitimate) and I'd hate to pass up a $200 deal on a $40K chip, but ...
03-11-2019 08:31 AM
I forgot to answer your one question: Its a one-time thing. I just saw an oppportunity to get a chip that was far more expensive than I'd normally be able to afford. So, no, I'm not thinking of produceing more projects with it.
03-11-2019 09:40 AM
I can't get away without connecting ALL 200 power supply pins. Does anyone have a definitive answer on this?
-for the Virtex-7:
Information on voltage, current, and power ON/OFF sequencing can be found in Xilinx document DS183.
Board layout guidelines including the placement and number of decoupling capacitors can be found in Xilinx document UG483.
03-11-2019 04:06 PM
Okay folks - you've all been a great help. For now, I've asked the vendor to cancel the order and he graciously agreed, but at least for some time that chip will be out there and available. Rather than risk too many unknowns, I've decided to "sharpen" my teeth on a much cheaper, but known-to-be-working chip, the Xilinx XC6VLX240T FFG1156AGW1009 VIRTEX-6, and it will arrive tomorrow. Although it can't compare to the 2000T, its substantially larger than the 100T I'm using and will be worth experimenting with.
So I guess I'm not done on the forum here just yet ... my plan is to go ahead and "perform surgery" on the Virtex6 to determine if I can successfully complete the operation. Although it doesn't have the 1924 pins of the XCV2000T, it is a BGA with a similar pin count of 1156 with the same 1mm pitch. I guess if I can do this with an XC6VLX240T, then it wouldn't be much more of a stretch to do it on the XC7V2000T.
I'll be busy with my main job teaching Physics for most of the rest of the week, but I'll be back, either with my tail between my legs, or triumphant ... we'll see how that goes. If it works out, I'll post some pictures and buy you all free drinks!
You know, I had an intern working for me last year - an international student from China who had worked in a factory hand soldering. Under my training, I got him up to speed, and the student surpassed the teacher. That guy could solder 402 and 201 SMT packages in a heartbeat, and with a little effort could manage 1005's. He was amazing, and if I still had him around, he could do this in an afternoon, including the caps (seriously, I've seen him solder bypass caps right to the adjacent wires when connecting to a BGA!). Anyway, he's gone so I'm on my own. I'll let you know how I make out in a few days or a week or so. Thanks again for all the help and guidance.
03-12-2019 01:06 AM
Yes, some people are amazingly skilled at hand soldering. But is not the same working a chip component, however small, than a BGA, first for being passive and more temperature-time resistant, second for having only two ends. If you don't like how you begin, desolder it, clean it and start again. Not that easy after half of a large package is soldered. I've witnessed a much smaller QFN (24 lead maybe) being hand soldered carefully and not working even after five chips tried... they used a hot air blower, I have to say, that is not as well controlled as a proper reflow oven.
As others have suggested, if your focus is on what is inside the FPGA, don't mess out with chips and get an eval board. Things never work out of the box and you will have to debug both your hardware and firmware. What is worse, you will doubt whether is hw or fw and spend lots of time. I'm talking from experience. If you want your custom board, make it properly and have it assembled in proper conditions. This is probably more expensive than an off the shelf, unless you need some hardware you can't find on existing boards, it's not worth. For crypto stuff an algorithms in general you just need a plain ethernet or other standard comms port, I guess.
A car engine is not a vehicle.
03-12-2019 02:40 AM
The problem with only wiring a few connections in is that (a) it's unlikely to work, and (b) you won't know why. Is it because it needed more ground connections? Is it because the programmer is a fake? Is it because the wires going to the chip are acting as antennas? Or is it just because the chip is fake?
One option is to design the PCB (you'll have to do it eventually, right?) and stick the chip on that (assuming you've got facilities to reliably solder such a big BGA package). Of course, this involves a lot of work before you get any sort of reward.
Any of these big chips has the problem that for any significant development, you'll need a serious PCB (10+ layers) and a full Vivado license ($3000+). Or, for the Virtex 6, you'll need a full ISE license (same price, one license covers both tools) because Vivado won't support that. I would suggest that you'd be much better-off buying either a Xilinx development kit that comes with a license (eg. a lot of bitcoin miners seem to be using the VCU1525 now, and they've managed to drive the price down substantially) or a fast-ish WebPack device (eg. the XCZU7EG, which has about five times the resources of the XC7A100T).
03-12-2019 07:02 PM
Well, I guess there are shortcuts, since in my case I only need two I/O pins. So if I was to design a PCB to accomodate only the power supply pins (ALL of the V's and GND's), the pins to program it, and the two I/O pins, I might easily get away with a 2-layer board, especially since the power pins are all custered very close together. I agree that if I actually need all 2000 pins, then there's no question but that I need a 10 layer board, but that's not the case here.
Another trick I've use in the past with BGA's is to design a board with plated through-holes large enough to "swallow" the balls whole, and then gingerly and carefully heat the ball from the backside with a pinpoint soldering tip (custom made) till the ball just melts and wicks to the side of the through hole. As long as the board is ball-side up, gravity won't let the ball release from the chip, and as long as you only heat until it just wicks to the side, it won't drip and dribble down into the space between the ball pad and the through-hole - and besides, capilliary action usually prevents that from happening anyway. Althought I've nevver attempted this with a 2000 ball chip before, I really don't think I need more than a few dozen. Most of the unused pins do not require any kind of termination and can safely just float. If there were issues, I could just program them all as outputs and let them sit at ground - if they remain unconnected it simply doesn't matter.
So I think the nature of my application (i.e. computationally intensive task with basically zero I/O requirements) makes this problem a bit different than it would be if I wanted to use the chip in a general way - and much more feasible for that reason.
03-12-2019 07:08 PM
... I forgot to mention, an evaluation copy of Vivado gives me a month to hone and adjust a working model developed on my Atrix 100T, and I suppose that once I've programmed it, I can just let it run as is and mine crypto for the rest of its life without maintaining it. So again, perhaps the cost of the annual licence is not a concern. If the device really earns its keep, it will pay for a licence anyway, and if it doesn't, then its probably not worth pursuing further. But at least in terms of getting a running working model up and running, the annual licence is not a requirement. I can spend as much time as I want using the free software to prototype on a smaller device, and then a month is more than enough time to scale it up to the larger device and get the bugs out.
03-12-2019 08:13 PM
Oh no ... I can't use the Webpack for the Virtex 6? I guess I need to cancel my order and rethink this then. I was okay with a temporary licence for the big chip, but I was under the impression that If I got the Virtex 6 up and running I could use it long term for various projects. Can you confirm for me then that I can't program this with the Webpack? Can you (or anyone else reading this) point me to a list of devices that ARE supported by the free webpack? I still want to go ahead to see if I can do this (and already invested in the USB JTAG programmer and parts to build an appropraite power supply for the Virtex 6 - so I want to find SOMETHING that I can use with the webpack).
03-13-2019 04:54 AM - edited 03-13-2019 04:56 AM
See Table 2-1 in Xilinx document UG973 for FPGAs supported by WebPACK Vivado.
Some of the Kintex-7 (XC7K70T, XC7K160T) are supported by WebPACK. The Kintex-7 is low-cost and is just a step down from the Virtex-7. As, u4223374 says, some (eg. XCKU025, XCKU035) of the new UltraScale and UltraScale+ FPGAs are supported by WebPACK - but they are expensive.
You said you have a congestion problem with the FPGA you are currently using – and want a FPGA with more capability. You’ll find capabilities of the 7-Series FPGAs are summarized nicely in document DS180. Capabilities of the UltraScale FPGAs are summarized in document DS890.
03-14-2019 06:54 AM
Well the weekend is almost here and I've got no chip to work with - the only one coming in time is this:
XILINX VIRTEX 6 FPGA XC6VLX240T-2FFG1156I
As I understand form one of the posts, this isn't going to work under Vivado web-pack. Two questions:
i) is there a web pack of some other version of software form Xilinx that will work with this chip?
ii) can I program this chip using the Platform Cable USB?
iii) if the answer to question (ii) above is yes, what are the chances that it will work with a generic clone Platform Cable USB?
Thanks. I'm hoping I'll have SOMETHING to work on over the weekend.