|So what, exactly, do you *do*?
||[Oct. 25th, 2003|10:30 am]
So, I'm at home this weekend with a cold. Yea. Nothing really bad it's just sapping away my energy. At least it's the weekend before Halloween so I'll hopefully be healthy for the holiday.
Anyway, several people have asked me what I actually do at this new job of mine. It's rather a complex question if you want something more than "program software tools".
Altera develops programmable logic chips (FPGAs and DSPs, primarily) for a wide variety of customers. These sorts of chips are called "programmable" because they don't have specific functions. Our customers are engineers who create circuit designs that can be loaded into these chips; our chips are just a tableau of wires that can be electronically clipped to leave behind a circuit.
No, I don't actually build these chips or design them. That's too straightforward. You see, in order to use these chips, you need to have tools that will translate your engineer's design into the binary data the actual chip understands. These tools are built on Simulink (a Matlab visual tool) which is a fairly standard software package in the hardware industry. So Altera sells, in addition to the chips, the software that will translate these algorithm designs into the pattern loaded onto the chip, thereby creating your hardware.
No, I don't actually build these tools. That's too straightforward. You see, engineers using these tools will want to test their designs before loading them on a real chip. The main reason for this is that there's a lot of special equipment and extra steps required to do so. So clients want to run their designs in software to check that they are running correctly.
So, I build the simulator to run these designs in software. It takes a design that has been run through our compiler, thus converting it to the hardware level, and simulates the execution of this design inside the Simulink environment. The advantage of this tool over just using Simulink is that it (1) runs faster and (2) matches the final hardware's performance characteristics, allowing engineers to fine tune their design. (Just to give you an idea, the software I'm designing needs to be able to simulate around a hundred thousand operators linked together in different ways.)
Hopefully that makes some sense and explains what I do. You see why it's a complex question? I don't actually make chips or software that is really very visible... I make this simulation of the hardware underlying the tools. But I think this sort of stuff is loads of fun, oddly enough, so it's a great job for me. :)
BTW, for other people with colds, I recommend the Wolfgang Puck canned soups. A bit more expensive but surprisingly good. That, vitamin C, and mint tea will probably be my diet this weekend. Dang colds.