Sunday, April 29, 2007

Engineers are happy when...

Engineers are happy when their designs work in the real world. It makes us happy to know that all the hard work that went into the design actually resulted in something useful. It make us happier if we know that it brings happiness to other people's lives. This is what makes engineers tick.

Today, I am happy. After returning from the play and downloading the photos, I checked my mailbox to find that I had an email from the US company that was interested in using my processor design, the aeMB. They had written to inform me that my design has been implemented and tested in hardware. And, it works without at hitch. It's communicating with the outside world via SPI and flashes a bunch of LEDs in programmed order. Every programmer knows that this is what's called a 'Hello World' design. Hallelujah! Break out the bubbly! As I had mentioned in a previous blog, I hadn't thoroughly tested the design as I do not have the resources to test it completely. My testing was limited to software simulation, which as every engineer knows, isn't quite the real thing. So, it makes me really happy to know that my design actually works in the wild. [Alright, I'm a geek. Worse, a PhD geek. I need to take my little pleasures whenever opportunity presents itself! - Me].

Now, for a little background about how they implemented it in hardware. For practically all digital chip design work, prototyping is accomplished using a device called a Field Programmable Gate Array (FPGA). Basically, this device has a lot of components in it that can be wired up into a complex design, like a microprocessor. It's the allocation of these resources and the custom wiring that allows it to function as a custom chip. Everyone uses it, including all the major chip design companies like Intel and others.

The reason that these devices are used is because it is too expensive to prototype a chip on a real fab. The cost for fabrication can literally run into tens of thousands of pounds for a few (about 20) prototype chips. [These figures are real, as I have to deal with these things as part of my PhD. - Me]. Once a chip is proven on an FPGA, it is functionally proven to work. So, the chip can be taken to the next stage, which is the ASIC design process.

For large companies like Intel, they can then do a fab run and tape out a bunch of test chips that they will then test to work out any kinks in the manufacturing process. Once a chip passes this stage of testing, it can practically be sold to the customer. However, this process costs a lot of money, and is really only an option for companies with wads of cash. I was once told by a director at Silterra (world's 9th largest fab situated in Kulim) that they wouldn't even bother talking to someone who doesn't have several million in the bank.

The alternative for smaller companies, is to use the FPGA as an end product instead of just a prototyping tool. For most intents and purposes, these FPGA function just like the real thing. They even look like real chips (they are real chips). So, smaller companies often use FPGA to ship out custom designed hardware to their end customers. In addition to cost savings, it also allows them to fix any bugs easily as these devices are programmable in the field. So, it's fairly safe to say that once a design works in an FPGA, the design works. If the company plans to manufacture an ASIC, they would need additional steps. If not, it is already market ready.

*** Picture is of a random device from Altera (one of the world's largest FPGA suppliers) ***


Gabriel Wu said...

hey, congrats shawn!

Onwards and Upwards!

Shawn Tan said...