|My latest FPGA.|
When I first started electronic projects, I spent most of my time using the 7400 series IC chips. After hours and hours of wiring I'd have a LED flasher or some such useless device. Then when everything was said and done, I'd have to start all over when I began a new project. Things got better when I began to develop using microcontrollers and custom boards, but the hardware and software were still not re-usable.
Today, the world of electronics is changing quite rapidly. We no longer have to wire up a series of ICs for each project. Now we can define the circuits in software and program the design in a single chip. Plus, the new software drafted circuits are designed in a modular fashion so they can be reused easily in new projects.
|My newest development board.|
Most people reading (software or hardware engineers) should have some idea of how traditional integrated chips are made. Chip makers create large wafers of silicon but modify(dope) parts of the silicon to be negative, positive, or neither. This in effect allows the chip designers to control the flow of electricity. Traditionally, the chip makers would develop these silicon wafers and layer them between interconnect layers of copper, glass, and various other materials.
Today, the advent of field programmable gate arrays is changing the way we design new hardware. Instead of running conductive layers specific to the hardware, we create a sea of transistors that can be configured by software. Software defined hardware allows for easy upgrades, re-usable design, and a freedom in software/hardware interfacing.
Recently, I've been working on SoC(System on Chip) systems. The idea behind SoC systems is to integrate many components as necessary into a single chip. This decreases the total cost, simplifies design, and allows for easier maintenance and reuse.
Today most of my hardware projects are written in VHDL or Verilog (I prefer VHDL).
Software written for my hardware project are typically written in C, C++, or ASM. Though I try to stay as high level as possible when developing software.
Right now I'm developing a camera tracking system using the NIOS soft core.
I'm also actively researching PCI express accelerator boards and adaptive hardware.
Field programmable gate arrays will be an interesting technology to watch as it matures esp. if moores law continues to hold true. I see nothing but great things from the two (sometimes)seemingly separate fields (software engineering and hardware design) merging to a more perfect union. Makes you think of how true the principle of equivalence between software and hardware really is.