Well, the XuLA2 PCBs arrived last week and now they are moving through assembly. But before I could start that, I had to build up one of the boards to make sure it worked. (I wouldn't want to assemble a batch of boards at $60 a pop and then find out the PCB was wacked.)
The XuLA2 board has a 256-ball BGA on it. In the past, I've sent a single board and BGA to my assembler and had it mounted. Then I would assemble the rest of the board and test it. The problem with doing this is the delay:
Monday: I mail a PCB and BGA to the assembler. (They are forty miles away.)
Tuesday: The assembler receives the package and - if they jump right on it - mounts the BGA on the PCB.
Wednesday: The assembler mails the mounted BGA and PCB back to me.
Thursday: I receive it along with a bill for $50.
To avoid a three-day delay and $50 out-of-pocket, I wondered if I could mount the BGA myself. The total cost of the BGA and PCB was less than $35, so the potential loss was minimal if I screwed up. And I could always fall back on my assembler if I failed.
While I didn't have the temperature-controlled convection heater or the X-ray inspection machine like my assembler, I did have a $40 paint stripper that should heat the BGA enough to make it reflow. Surprisingly enough, I was able to successfully mount the BGA to the PCB using very simple tools and procedures. Here's a video that shows how I did it:
The first BGA I mounted was a failure, but every one since then has worked. I wouldn't employ this technique on a board I'd send to a customer or one with a large, expensive BGA, but I would use it for short-term prototypes with mid-size BGAs.
When I demoed a few projects at the recent Maker Faire NC, I also brought along a loose box of projects for people to paw through. (The little kids loved 'em. Nothing puts out an eye like an 0.1" header.) Most of the stuff was old XuLAs and StickIt! motherboards and modules. But the one most people asked about was just an unpopulated PCB I'd designed back in 2011 and had never gotten around to doing anything with. (That's one of the unexpected consequences brought on by companies like Itead: you can make a PCB for a project and, because it's so cheap, you don't care if you never finish it.)
Well, I finally finished testing the XuLA2 prototype a few days ago and released the PCB to manufacturing. When I layed-out the prototype, I butted the microSD socket right up against the FPGA in order to keep the board at 2" x 1". I knew that wasn't going to fly for final production, but I wanted to get it done quick so I could find the other gotchas that typically occur when I move to using a different chip (in this case, the Spartan-6 FPGA).
Well, I published chapter 6 of "FPGAs?! Now What?" back on Aug 30, 2011. And today I'm finally delivering chapter 7 with all the personal anticipation usually associated with the end to a bout of constipation.
A few years ago, my sister and I decided to plant a stand of corn in addition to the regular garden on her farm. This entailed tilling a 50' x 15' area, hoeing the dirt up into about twenty mounds, shaping the mounds for holding water, punching four holes in each mound, and, finally, placing a few kernels in each hole. Then we planted beans among the mounds to try and crowd out the weeds.
Some people have commented that the 12 MHz clock on the XuLA FPGA board is too slow for practical use. What they've missed is the Spartan-3A FPGA has on-chip digital frequency synthesizers (DFS) that can multiply the clock to over 300 Mhz. To show how easy it is to do this, I've added another chapter on using the DFS to my new book about doing FPGA design using Xilinx ISE WebPACK and the XuLA board. It just takes a few lines of VHDL and you can have almost any clock frequency you want between 5 MHz and 320 MHz.*
I'm writing a new book about doing FPGA design using Xilinx ISE WebPACK and the XuLA board. I've reproduced the preface for the book below. Here are the important points:
I'm currently writing the book. New chapters will be released as I write them. There are currently four chapters available that cover FPGA basics, ISE compiler flow basics, entering VHDL, synthesizing, simulating, implementing, downloading and running a simple LED blinker design. Additional planned topics are listed in the preface.
The book is covered under a Creative Commons Attribution-Sharealike 3.0 Unported license and stored on Github. So anyone can grab it, modify it, sell it, or whatever as long as they leave the other author names and affiliations intact and offer it freely with the same rights they got.
I'm using FOSS tools like LibreOffice/OpenOffice and Inkscape for creating the text, so nobody will have to buy any tools if they want to modify it.
I recently received an email which contained the following question:
Well, despite the great choices you have made making the XuLa, I was wondering why you did not use a Cypress (e.g. cy7c67300) chipset (but instead you used a pic) for the virtual JTAG over the USB. The Cypress would have given to the board the possibility of having a full fledged USB 2.0 comm. port after the fpga is programmed, am I wrong? with the cypress you could have used firmware available around the internet...