Wednesday, March 12, 2008

Fun For Nerds

In the electrical engineering world, there are a lot of different avenues for an engineer to go down.

I have designed digital circuit cards, but I have more or less fallen into an area that many engineers hate, that I happen to love: troubleshooting and repairing "broken" circuit card assemblies (henceforth called CCAs).

I'm good at it, I like doing it, and many engineers HATE doing it.

The biggest problem with troubleshooting and repairing broken CCAs is that it is not a great career path for growth for an engineer, at least it isn't at the company I work for.

But when one project is finished and everyone goes on to new design projects, the engineers with lots of design experience get the design jobs, and since I'm good at something that many engineers despise doing, I end up back on another project, still troubleshooting and repairing broken CCAs.

What's a guy to do?

Feast your eyes on this beauty:

I have ordered this circuit card that has been made by the company Xilinx, a maker of Field Programmable Gate Arrays (FPGA), so that an engineer can learn how to design and program the Xilinx FPGA with a custom digital design.

These are usually bought by a particular program where I work so that the engineers can get a head start on the capabilities of the FPGA chip that they are going to use on that project's design.

But for me, having bought this myself, it is due to arrive via my friendly UPS driver on Thursday, it gives me a chance to create and play with designs without the company having to pay for my learning curve.

Yeah, it will be for me to use in my own free time, but hopefully I'll learn enough in the next year or so to be able to go to my boss, show him what I have been doing on my own, and start getting into more of the design part of the circuit card design projects at work.

Your cell phones, your VCRs, your DVD players, and almost all of your modern electronics have one of the following programmable devices: a Digital Signal Processor (DSP), a Complex Programmable Logic Device (CPLD), or a Field Programmable Gate Array (FPGA).

For the most part, what I have dealt with at work is the FPGA, with a lot of work with the CPLDs, and a little bit of DSP thrown in.

By far, the company I work for uses mostly FPGAs as the heart of the custom circuit cards we make.

An FPGA is a silicon device, filled with digital gates, that allows the user to create custom designs to do specifically what the customer wants.

For example, if the customer wants a circuit card that receives an analog radio frequency signal, decrypts and changes the signal into another, more generic signal type, we can custom design and configure the insides of the FPGA on the circuit card to do that.

I cannot really explain more of what we do, but hopefully you get the idea.

In electronics, most of the work is to change one signal type into another that can be used by the customer.

Your DVD player, takes the information that is encoded on a DVD, and pumps that information through the electronic circuitry, which probably includes, DSPs, FPGAs, and CPLDs like we use where I work, and after the DVDs information is filtered through these devices on the circuit card in the DVD player's box, it comes out in a form that your TV understands, and you get to watch a movie because of the work done by engineers that gets put into the DVD player itself.

In other words, one electronic signal in, and another type comes out that your TV can understand and display for you.

As a consumer, you just want your DVD player to make movies show up on your TV screen, as far as you are concerned, the DVD player is a magic box that makes it happen.

As an engineer, it's my life's work to help make magic boxes work like our customers want them to work.

This design kit that I have pictured above, will allow me to learn to use skills that are really rusty. I have taken classes at work on writing the type of language that the FPGAs understand, but since I don't get to write it often enough, I have lost most of it. (If you are interested, the language we use for this is called VHDL, for (Very High Speed Integrated Circuits) Hardware Description Language)

In other words, career-wise, I'm in a bit of a rut. I don't have to worry about work, because like I said, most engineers hate what I'm doing and there's always this type of work needing to be done, but it's not an upward moving career path.

It's as if I'm an offensive lineman in football, and have a chance to increase my pay and glory by learning to be a good running back. It's unlikely to happen in the football world, but can happen in the engineering world.

But I want to be "enlarge my skill set" to get me to where I get more design work, and then am more likely to be promoted, and get the best jobs where I work. (engineering managers LOVE saying things like "enlarge your skill set")

Anyhoo, that's my explanation for the gizmo that I ordered that will allow me to relearn and this time use, the skill of writing the digital code that programs custom silicon chips like Field Programmable Gate Arrays for the company I work for. This type of thing is this company's bread and butter.

I've always wanted to get into robotics, and this kit, used at home, I can use to control a very complex robot, which will be both fun, and a good way to hone my code writing skills.

If you have read this far, you are a true friend, but that's enough punishment for you.

As a final punishment, here are the cool features that led me to choose this particular "design development board."
*Xilinx Devices: Spartan-3A (XC3S700A-FG484) and Platform Flash (XCF04S-VOG20C)
*Clocks: 50 MHz Crystal Oscillator on-board, open slot for optional user-installed clock
*Memory: 4 Mbit Platform Flash PROM, 32Mx16 DDR2 SDRAM, 32 Mbit parallel Flash, 2-16 Mbit SPI Flash Devices
*Analog Interface Devices: 4-channel D/A converter, 2-channel A/D converter, Signal Amplifier
*Connectors and Interfaces: Ethernet 10/100 PHY, JTAG USB download port, two 9-pin RS-232 Serial Port, PS/2-style mouse/keyboard port, 15-pin VGA connector capable of 4,096 colors, one FX2 100-pin and two 6-pin expansion connectors, 20 user I/O available on standard header pins, stereo mini-jack for PWM audio. Rotary/push button function switch, eight individual LED outputs, four slider switches, four push-button switches.
*Display: 16 character, 2-Line LCD

Well, I'M excited anyway. And I'll probably check my UPS delivery tracking number a hundred times between now and when the kit actually arrives.

P.S. Now, do you understand why I don't talk about work much on this blog? If I told you what I did, I'd have to kill you, and that's assuming you didn't die of boredom while reading about it.


Hammer said...

Pretty cool! Never knew how the magic dvd box worked. I just throw em away as soon as they don't.

Back in the 80's and 90's I worked for a modem manfacturer and went from the parts room, to assembler, to board stuffer then to modifications and troubleshooting.

Up to that point I had never actually used a modem but I knew them inside and out.

terri said...

Well, I read "this far" (almost.) I might have skipped a sentence or two because my brain starts to incinerate when I try to read too much of what I don't understand. I think I should get points for effort, don't you?

Big Doofus said...

Looks like that boards needs a new flux capacitor.