On 10/11/2011, at 10:33 PM, David Riley wrote:
On Nov 10, 2011, at 12:09 AM, Scott Kevill wrote:
So..
- a huge 64-pos (MC68000 and some microcontrollers) universal ZIF socket
Do they make those? The 64-pin DIPs are even wider than the 40-pin ones; I think
it's 900mil (almost an inch).
- alternatively a 48-pos universal ZIF and a
regular 64-pos socket
That might be more doable; I see 40-pin ones, at least, on most ROM burners.
I thought they did, but the pitch wasn't 0.1". Non-universal 64-pos ZIFs are
available, but just a plain socket would probably do for that. Yeah, the MC68000 I have
here looks to be about 0.9" wide. The 48-pos universal ZIF looks pretty common for
about $4.
- a way to
output 5V from all 64 I/Os
You probably don't actually need to output 5v. TTL (the logic family you're
looking to deal with) generally didn't actually *output* anywhere over 3v, so the
switching threshold is considerably lower than that (generally 2.0v for TTL). Thus 3.3v
CMOS logic (which does swing the full 3.3v) should be fine as long as your inputs can take
occasional excursions above 3.3v.
Unfortunately, I do. For example, the Z80A (and support chips) require the CLK input to be
>= +4.4V (ie. Vcc - 0.6V) even though 3.3V is plenty for all the other inputs. With the
8021, the T1, XTAL1, XTAL2, and RESET inputs are 3.8V min.
Aside from that, being able to drive +5V means that most chips can be 100% mapped by the
HDL with no manual rewiring. For example, I could tie an I/O to high to provide Vcc for
the chip.
- additional
5V tolerance for 16 of the non-5V-tolerant FPGA I/Os (48 are already 5V tolerant)
Bear in mind that for a lot of the giant DIPS (64 pins, etc) there are multiple power and
ground pins. So you may not need them all to be tolerant.
I don't need all of them to be tolerant at the same time, right, but as a generic
board that can work with any chip I insert, I cannot make assumptions on the layout of
which socket pins will need to be power or ground.
- either
additional -5V to +15V tolerance for all I/Os or a way to manually isolate per-I/O from
the manually wired supply voltages above (eg. SPDT dip switches?) The FPGA I/Os do support
tri-stating, but I'm not sure that would be safe.
Tristating a pin will not save it; all it does is turn off a pass transistor or two, and
if that transistor's breakdown voltage is exceeded, it will conduct (usually
catastrophically). You could use external switches (such as a CD4016 or similar, which
will go up to 15v), but this one will take some more thought.
Thanks, I suspected that might be the case, and somewhere deep in the datasheets would
probably have the specifics, too.
Another thought might be a two dual-rows of header pins, which would all have
jumpers/straps across them (allowing flow between FPGA I/O and chip). Then for the one or
two custom voltages, I'd remove the jumper and slide header pin sockets attached to
flying leads manually.
- highest
signal rate needed would probably be 8MHz for the MC68000, although hmm.. if I were
sampling or measuring IC timing, perhaps higher for input signals (eg. 32 MHz)
Give yourself some margin and build for about 20MHz bandwidth. It'll save you a lot
of signal integrity headaches.
Noted. The FPGA will have no problem reaching those speeds and much higher. I will just
need to make sure that any level shifting or tolerance additions don't slow things
down too much.
I would be
creating a PCB for this, but through-hole would be preferred as I have no experience (yet)
with SMT.
If you can fit it, great! Through-hole is also generally a lot more mechanically stable
(I can't count the number of times I've ripped off an SMT pin header because
I've been clumsy or not thinking straight; usually takes the pads off, too).
That's nice to know. It's just that it seems to be getting harder to find newer
parts with DIP style.
Thoughts?
Suggestions? Or is this crazy/na?ve? :)
It's not a bad idea; it sounds like what a lot of ROM burners/readers do, just
expanded. If you're looking to program ROMs, you might want to keep in mind that a lot
of older EPROMs and similar devices (even older PICs and such) use a high voltage
(typically 12v) on a pin to signify that you're ready to program. You might want a
way to switch that in.
Yeah, the idea would be that I could place almost any type of chip there, and then put any
kind of digital "host" / life-support system around it. That would make it a
great tool to help with testing chips, replicating chips, measuring their timing. Or even
verifying that an FPGA replication of a vintage computer works perfectly with each
original hardware component.. one-by-one substituting your replicated HDL component with
the real component. So many things you could do with this.
From what I remember, for EPROMs I only need to hold
12V in those cases to put it in program mode, right? The actual I/O-driven signalling is
on other pins at normal voltage levels. In which case, I'd be having to allow for that
anyway for the Western Digital FD chips that require a +12V source. The 8021 needs a +15V
source to dump its ROM.
Ideally, it'd be nice to eliminate all hand wiring. The FPGA would need to specify
what voltage to use on each pin without requiring 4 I/Os per pin, since 256 I/Os would be
a bit steep.
Hmm, that sounds a bit like a serial DAC. I wonder if something along those lines would be
the better way to do this? Or some other form of custom "I/O expander"? 64 pins,
each with a selectable level of -5V, 0V, +5V, +12V, and +15V (maybe more). Or if the
expander were smart enough, it could remember the "high" voltage setting
configuration per pin. Since it'll only need to toggle between 0 and "V".
Inputs back to the FPGA would only need to be high/low.
If it's fast enough, with that kind of design change, it could be extended to any
number of pins, and any number of sockets at once. The datasheet says the Spartan 6 can do
"Up to 1,080 Mb/s data transfer rate per differential I/O". Interesting...
Imagine the possibilities!
Scott.
SIde note: Are you the Scott Kevill responsible for GameRanger? If so, thank you, it
made my high school years a lot more fun (back when it first came out, around the time of
Quake 2 for Mac). If not, never mind.
Haha, the very same! Thanks for the kind words. I'm still doing GameRanger. It now
supports PC as well as Mac, and as a result has *way* more users, as you might imagine.
I suppose you could thank me by helping me with this crazy plan. ;)
Scott.