Linked by Thom Holwerda on Tue 29th Jan 2013 02:17 UTC
Hardware, Embedded Systems "The arithmetic-logic unit is a fundamental part of any computer, performing addition, subtraction, and logic operations, but how it works is a mystery to many people. I've reverse-engineered the ALU circuit from the 8085 microprocessor and explain how it works. The 8085's ALU is a surprisingly complex circuit that at first looks like a mysterious jumble of gates, but it can be understood if you don't mind diving into some Boolean logic."
Thread beginning with comment 550753
To read all comments associated with this story, please click here.
reverse engineering
by transputer_guy on Tue 29th Jan 2013 18:10 UTC
Member since:

The visual6502 site is particularly interesting, I'm touched that some people still want to learn this stuff.

In my first chip design job back in 1979, I had the privilege and time to reverse engineer about a dozen microprocessors and other device types. Not the entire chip, just all the interesting blocks like the data-paths which included the ALU, control memory or PLA blocks, clock drivers, IO pads and the like. I wanted to learn from the masters so I could produce similar quality work later on for a another parallel processor. The company had the good sense to own some good microscopes and camera toys.

Almost all of these chips were 5V NMOS which at the time still included dynamic logic based on flying bootstrapped switches or pass gates, all precharged discharge logic, plus back bias substrate generators to pump the substrate down to about -3V. Much of this circuit material is still covered in one of the classic Addison Wesley VLSI design text books esp the Dobberpuhl book which is very transistor oriented. The other classic VLSI text book based on N Weste was simple CMOS logic oriented.

The most fascinating devices I ripped though were in my opinion the TI9900, the Z8000, and the 68000, because we needed to know more about 16 and 32 bit design.

The 8 bit chips were not that interesting to me because they were on such a tight transistor budget they were architecturally puny. Also their circuit design technique wasn't very advanced either.

I was already a big fan of the 9900 architecture since I spent quality student time at TI. All of these 16 bit chips also included Mul and Div codes.

The TMS9900 chip was interesting because it got 16 bits of work done with just a 1 bit serial ALU and was fast enough to be comparable to the static 8 bit chips and could be made dirt cheap. It also had 12V, 5V, and -3V power so the design used mostly pure dynamic circuit switching. The 12V clocks allowed for gated clocks to drive logic faster than 5V static logic could at the time. Depletion mosfets were still scare at the that time so a lot of clocked enhancement mode loads.

The Z8000 was a fully static 5V chip designed by the infamous Faggin who had designed the 8080, and 8085? and was a master piece of complex logic design. The ALU carry path was one large logic block to get as much use of carry look ahead as possible, no use of bit slices here so no 16*2 gate delays. IIRC, the Z8000 got the 16 bit carry addition down to about 10 gate delays. All of the control logic for instruction decode was full random logic too, no structured microcode ROM or PLA logic used.

The 68000 was the last project to reverse, it was after all a real workstation chip. The design was the antithesis of the Z8000, full use of microprogramming and nano code opdecode, full use of gated clocks, full replicated 16+16 bit data path with repeated cells. Very easy to figure out the main blocks.

The 8086 was done too, it also featured carry pass transistor logic, very regular data path cells, big PLAs, but the segmented architecture left me cold, who would want to program such a crippled architecture.

I'm certain I still have all the schematics I did in the basement.

While reverse engineering might seem to be a useless skill, it later turned out to be very useful for 2 projects decades later where we had to move a customers chip from 1970s NMOS to 1990s CMOS std cell. There aren't that many people that know how to read old chips even for money.

Reply Score: 8

RE: reverse engineering
by Kochise on Fri 1st Feb 2013 16:28 in reply to "reverse engineering"
Kochise Member since:

I honestly show full interest into the 68000 stuff you done ! That would complete the only two pictures of the chip virtual6502 made about the 68k cpu. If we could simulate it, at an electrical level, that would be awesome ;)


Reply Parent Score: 2