I just got back some new silicon! These are the latest image sensor chips I designed specifically for robotics and embedded vision applications. The pictures above show a full wafer followed by a close-up of the wafer from an angle. There are four chips in each reticle- if you look closely you can see them packed into a rectangle (about 8.8mm by 7.0mm). Shortly after that picture was taken, we had the wafer diced up into individual chips and started playing with them!
One of the chips is named “Stonyman” and is a 112 x 112 image sensor with logarithmic-response pixels and in-pixel binning. You can short together MxN blocks (M and N independently selected from 1, 2, 4, or 8) of pixels to implement bigger pixels and quickly read out the image at a lower resolution if desired. The interface is extremely simple- there are five digital lines that you pulse in the proper sequence to configure and operate the chip, and a single analog output holding the pixel value. With two power lines (GND and VDD) only eight connections are necessary to use this chip.
Another chip is named “Hawksbill” and is a 136 x 136 image sensor, also with logarithmic response pixels (but no binning) and the same interface as Stonyman. What is different about Hawksbill is that the pixels are arranged in a hexagonal format, rather than a square format like Stonyman and 99% of other image sensors out there. Hexagonal sampling is not conventional, but it is actually mathematically superior to square sampling, and with recent advances in signal processing one can perform many image processing operations more efficiently in a hexagonal array than a square one.
(Above: 8x8 hex pixel layout from CAD tools, Stonyman chip wire bonded to test board- pardon the dust!)
We plan to release the chips in the near future, with a datasheet, sample Arduino script, and (yes!) a schematic diagram of the chip innards. (If anyone *really* wants one now, I can make an arrangement…)
We are also working on a new generation ArduEye sensor shield with these chips. The shield will be matched to an Arduino Mini for small size, and use a 120MIPS ARM for intermediary processing. The design will be “open”, of course. (Note- anyone who purchased an original ArduEye will get a credit towards the purchase of the new version when it comes out.)
(The thrill of getting new chips back is much like that for circuit boards. You designed it, so in theory you know how it works. But you are never 100% sure and there is no datasheet for you to consult other than your own notes or CAD drawings. You are always slightly afraid of getting a puff of smoke when you first power it. No smoke… the circuit breaker didn’t trigger… so all is good. Then you probe it, verify that different portions work as expected, tweak various settings, and finally get it working. The experience is just like that for a PCB except the stakes are higher.)
@Richard- Actually you have some very good points!
The complexity of a PCB can vary from something simple like an Atmel flashing an LED to a high-end computer motherboard or advanced network hub. The former requires just a few parts, and the traces on the board basically serve as wires. Following a few simple rules of thumb (e.g. put a resistor here and a bypass capacitor across VDD and GND) is adequate. The latter requires thousands of parts, some analog, some digital, and stray inductances and capacitances as well as impedance matching and circuits to reduce reflections become important. The latter is not for the casual designer. Both the LED flasher and the computer motherboard are "boards", but only in the same way that both a paper airplane and the space shuttle are "gliders"!
The complexity factors that matter are the number of parts, how many different types of signals there are, and how close you are to the theoretical physical limits in the particular design. (e.g. for a 1MHz processor, the board traces can be thought of as "wires", but for a 1GHz DSP they must be thought of as "inductors"!.)
If you measure complexity by the number of time spent on a design, the complexity can vary from a few hours to several person-years, a four order of magnitude spread.
The same applies to chips. A chip design by a hypothetical "bright high school student" would be a simple one using a lot of low-risk and well-established techniques. Much of the design would be lifted from previous designs. The designer would know that such and such a layout forms a set of transistors that would behave in a certain way. Subcircuits such as gates can be lifted from libraries. The design would be more at a system level. This is different from, say, a more advanced analog design with RF circuitry or exotic devices. This is also clearly different from a new processor from Intel.
So I should be clear that the type of chip that can be designed by a hypothetical DIYer will be very simple and low-risk- they will not be designing DSP chips any time soon! (Well, I should never say never but you get the idea.) However I do think a novice can still develop a chip that although is very simple, may still do something meaningful or maybe even revolutionary for a given community. (If you want an example of something simple and revolutionary look at the Arduino!)
@Richard: well, I'm not yet a student, and I know everything you mentioned just from school (maybe you life in the wrong country?)
i would like to know about the chip designing procedure
@Geoffrey: the moderators think it would be appropriate :)
That's actually incorrect... As an electrical engineering student, I have to disagree... They don't even teach students to even design PCB's... There are however formulas for designing traces... They don't teach that formula either... They do have software for laying PCB's out and then pushing them to a machine that then can make them with copper... You have to know how each electrical component works and their thresholds.. How they work together and the formulas to do the calcs... You have to know the type of materials use in the components (transistors) and how they perform... You have to know the Q of the transistors to make them work optimal... Not to mention there are different types of transistors than can be used and each on has its own voltage and current it needs... Also you would need to know all about digital... The binary conversions, the decimal conversions and maybe even the hex conversions... You have to know all the gates binaries which will let you get your I/O, and the fact that you can use MOSFETS as gates as well... Basically there is a ton of information you need to know in order to design chips... PCB's are easy with the latest software by NI, National Instruments...
Awesome!, Your article will resolve all questions about "how they are producing chips?" :)
I'm the first follower.
@Melih- Actually I have a lot of thoughts regarding chip design, open source hardware, and the DIY movement. Personally I think anyone who can design a decent PCB can, with some training, design a basic chip. I've actually had high-school summer students (smart ones) design chips in the past, so I know it can be done.
If the moderators think this would be appropriate, I envision a three-part series of posts. The first would summarize the chip design process itself, as I see it. The second would discuss issues reconciling open hardware concepts with the chip design process. The third would discuss batch production methods to bring costs down.
Imagine our own autopilot on a chip!
Can you share a short information about silicon chip design and order process? Maybe a new blog post will be best ;)
PS Randy- we know how much the silicon will cost, but not the whole board including wire bonding et al.