FPGARelated.com
Forums

8080 FSGA model in an FPGA

Started by logjam November 15, 2006
I would like to eventually make an 8080 out of Field Solderable Gate
Arrays.  ;)  (trasistors)

First, I want to design the whole thing in an FPGA for logic proofing
There will be a LOT of circuit boards required for this and I want to
limit failure...  My idea was to create small macro blocks that emulate
standard TTL chips and use those TTL chips (or customized versions) to
build the processor.

Any recomendations on how to proceed?  I want to make the core I/O
compatible with the 8080, which means full status signal support and a
2 phase clock.

Thanks,
Grant

Jon Elson wrote:
> > > logjam wrote: > >> I would like to eventually make an 8080 out of Field Solderable Gate >> Arrays. ;) (trasistors) >> >> First, I want to design the whole thing in an FPGA for logic proofing >> There will be a LOT of circuit boards required for this and I want to >> limit failure... My idea was to create small macro blocks that emulate >> standard TTL chips and use those TTL chips (or customized versions) to >> build the processor. >> >> Any recomendations on how to proceed? I want to make the core I/O >> compatible with the 8080, which means full status signal support and a >> 2 phase clock. >> >> > Logjam sounds like a good name for this project. A google search turns up > it was built from 6000 transistors. Well, each transistor is going to > need a > drain (or collector) resistor at the least. What will you use for > gating, diodes? > Add at least one more resistor to pull up the diode gate's output to the > transistor's > gate or base. Well, assuming most of the transistors are for 2-input > gates, now > we have 6000 times 5 components (2 diodes, 2 res, one trans) = 30,000 > components. > Does this still sound practical? > > I don't know the specific logic design for the 8080 other than it was > some form > of NMOS. So, it may be that this can be done in a lot less than 6000 > transistors > if you use diode gates. > > Anyway, it should be fairly easy to design the CPU for FPGA implementation. > I'd forget the TTL component emulation, and use either VHDL or Verilog, > or maybe > one of the RTL synthesis tools. These are able to specify a CPU very > concisely. > > Jon >
I seem to recall from the distant past that the 8080 (some versions) used depletion load; i.e. a depletion mode device with gate tied to source instead of a resistive load. Not that it reduces the components (an in fact adds a pin per active transistor). Cheers PeteS

logjam wrote:

>I would like to eventually make an 8080 out of Field Solderable Gate >Arrays. ;) (trasistors) > >First, I want to design the whole thing in an FPGA for logic proofing >There will be a LOT of circuit boards required for this and I want to >limit failure... My idea was to create small macro blocks that emulate >standard TTL chips and use those TTL chips (or customized versions) to >build the processor. > >Any recomendations on how to proceed? I want to make the core I/O >compatible with the 8080, which means full status signal support and a >2 phase clock. > >
Logjam sounds like a good name for this project. A google search turns up it was built from 6000 transistors. Well, each transistor is going to need a drain (or collector) resistor at the least. What will you use for gating, diodes? Add at least one more resistor to pull up the diode gate's output to the transistor's gate or base. Well, assuming most of the transistors are for 2-input gates, now we have 6000 times 5 components (2 diodes, 2 res, one trans) = 30,000 components. Does this still sound practical? I don't know the specific logic design for the 8080 other than it was some form of NMOS. So, it may be that this can be done in a lot less than 6000 transistors if you use diode gates. Anyway, it should be fairly easy to design the CPU for FPGA implementation. I'd forget the TTL component emulation, and use either VHDL or Verilog, or maybe one of the RTL synthesis tools. These are able to specify a CPU very concisely. Jon
logjam wrote:
> I would like to eventually make an 8080 out of Field Solderable Gate > Arrays. ;) (trasistors)
Why ?!
> > First, I want to design the whole thing in an FPGA for logic proofing > There will be a LOT of circuit boards required for this and I want to > limit failure... My idea was to create small macro blocks that emulate > standard TTL chips and use those TTL chips (or customized versions) to > build the processor. > > Any recomendations on how to proceed? I want to make the core I/O > compatible with the 8080, which means full status signal support and a > 2 phase clock.
Do you also want this voltage compatible ? What is the target of this project ? -jg
> we have 6000 times 5 components (2 diodes, 2 res, one trans) = 30,000 > components. > Does this still sound practical?
Not practical, but fun! I have a 88x40 inch display made out of 19,008 T 1 3/4 LEDs for example... ;)
> Anyway, it should be fairly easy to design the CPU for FPGA implementation. > I'd forget the TTL component emulation, and use either VHDL or Verilog, > or maybe > one of the RTL synthesis tools. These are able to specify a CPU very > concisely.
Would there be a simple way of generating some sort of human understandable information that would help generate a schematic? Thanks, Grant
> Do you also want this voltage compatible ? > What is the target of this project ?
I want to be able to use it in place of a real 8080. I don't care about the 12 and -5v power supply. The whole project is just for fun. The reason I thought TTL would be a good place to start is because of the AMD 2901 9080 emulator book. Also, if standard TTL devices were replicated using transistors then each "module" of the processor could possibly be tested with an IC tester. I figure it will have a few thousand LEDs too. Like an LED for every register, microcode bit, etc. Grant
logjam wrote:
> > Do you also want this voltage compatible ? > > What is the target of this project ? > > I want to be able to use it in place of a real 8080. I don't care > about the 12 and -5v power supply. The whole project is just for fun. > > The reason I thought TTL would be a good place to start is because of > the AMD 2901 9080 emulator book. Also, if standard TTL devices were > replicated using transistors then each "module" of the processor could > possibly be tested with an IC tester. > > I figure it will have a few thousand LEDs too. Like an LED for every > register, microcode bit, etc. > > Grant
Since this is for fun and not practicality you could try and google for home built computers using TTL or better still CMOS etc. There really are a few souls out there that have built TTL boxes in this day and age. I almost contemplated this 20yrs ago for a PDP8 with a real core stack and transistors but I found some sense. Also you could actually reverse engineer a real 8080 with a modest microscope, the details are pretty clear after you remove the passivation, a dead device will be okay too. It only used IIRC 1 layer of metal, poly, active area and hidden poly diff contacts. I did some reverse engineering on this part so its no so bad. As for circuit design the 8080 was an NMOS design with mostly dynamic logic and some sparing use of static logic (not sure) so the schematic could be recovered with some basic knowledge of chip design circa 1975. Adison Wesley had a couple of old 1984 VLSI books that describe all the basic NMOS tricks used in the day, you would need to follow gate clocking, bootstrapping, cheap C latches etc. The clocks would have been used to strobe latches and flops and logic might well have been merged. The 8085 might be a whole lot easier being IIRC all static (and 5V) so you wouldn't find as much mind boggling circuit tricks, just logic. IIRC it was mostly pin compatible so would be alot easier. I would atleast stick to TTL compatible CMOS parts to save yourself SI hell. John Jakson transputer guy
JJ wrote...
> > logjam wrote: >> > Do you also want this voltage compatible ? >> > What is the target of this project ? >> >> I want to be able to use it in place of a real 8080. I don't care >> about the 12 and -5v power supply. The whole project is just for fun. >> >> The reason I thought TTL would be a good place to start is because of >> the AMD 2901 9080 emulator book. Also, if standard TTL devices were >> replicated using transistors then each "module" of the processor could >> possibly be tested with an IC tester. >> >> I figure it will have a few thousand LEDs too. Like an LED for every >> register, microcode bit, etc. >> >> Grant > > Since this is for fun and not practicality you could try and google for > home built computers using TTL or better still CMOS etc. There really > are a few souls out there that have built TTL boxes in this day and > age. I almost contemplated this 20yrs ago for a PDP8 with a real core > stack and transistors but I found some sense.
Many years ago, on a visit to Amdahl I saw a complete 470 built with wire-wrapped TTL. How about doing the 8080 with a giant wire-wrap board of CMOS PALs. One PAL per "logical chunk," with lots of outputs reserved for the LEDs. It might even be possible to buy an old wire-wrap X-Y frame on eBay. Maybe cook up a standard module with a little PAL, LEDs, some drivers, I/O pins, and JTAG. You would be the defining case for JTAG's ability to program hundreds of PALs in series ;-) And good luck with the clock tree... Tim
logjam wrote:
>>Do you also want this voltage compatible ? >>What is the target of this project ? > > > I want to be able to use it in place of a real 8080. I don't care > about the 12 and -5v power supply. The whole project is just for fun.
I saw someone did a 4004, as plug-able device. So do you want to run some real 8080 SW on this ? Over what memory bus/sizes ?
> > The reason I thought TTL would be a good place to start is because of > the AMD 2901 9080 emulator book.
Why not follow that line, with a bit-slice emulation of the 8080 ? A very good starting point there, would be to take something like the open source Mico8 8 bit CPU from lattice, and tweak/tune it to allow a SW emulation layer of 8080, as you will have MHz to spare :)
> Also, if standard TTL devices were > replicated using transistors then each "module" of the processor could > possibly be tested with an IC tester.
If you have one available. Transistors I'd take as a dead-end, unless you have a soldering fetish ! Tiny logic maybe, but that's going to be more a PCB design problem, not an 8080 design problem, and you will chew $$ on the PCBs CPLDs, or FPGAs are probably the best level to do this project. Low enough that you CAN get to every logic element, but still high enough to be affordable, small and low power.
> > I figure it will have a few thousand LEDs too. Like an LED for every > register, microcode bit, etc.
Or, a TV/VGA output that emulates such LEDs ? -jg
Jon Elson wrote:

> Anyway, it should be fairly easy to design the CPU for FPGA implementation. > I'd forget the TTL component emulation, and use either VHDL or Verilog, > or maybe > one of the RTL synthesis tools. These are able to specify a CPU very > concisely. > > Jon >
Or use the one that already exists on http://www.opencores.org :-) Scott Moore