Electronic – Best way to build a 64-bit output multiplexer

multiplexer

I'm looking to create something to multiplex N 64 bit signals together. The goal of the project is to provide digital switching between a library of old cartridge based video games.

Essentially I want to have a number of cartridges always 'hooked up', but only one set of lines connected to the console. I could do it with 64 single output multiplexers but its seems like I'm going about it the wrong way. Any suggestions on ways to simplify the design?

P.S. – I've been thinking about this a little more, and I have an idea for an alternative approach but I'm not quite sure how to execute it. I don't really need to quickly switch between the 64 bit inputs with any sort of speed, which is what a multiplexer would support. All I really need to do is to tie a given cartridge to the console, while electrically isolating all of the other cartridges. For that, I would essentially need 64 relays for each cartridge. I'd like to avoid that, so I wonder if there are any sort of on/off pass-through chips or circuits I could construct. All I would need is something with 64 ins/outs, +1 to open or close the 64 switches. Ever heard of anything like that?

Best Answer

Do these cartridges have any kind of "cartridge select" pin? If so, you could conceivably connect all the lines except for the select in parallel and just drive the appropriate select line.

If they don't have a select line, do the cartridges have any address(es) which cause the data lines to be released/"driven" to high impedance? If so, do the cartridges have a common address for all of the cartridges which do this? If they do, there's your cartridge select -- connect the data lines in parallel and connect as many address lines in parallel as you can; that gives you fewer lines you have to multiplex.

Failing all of that, you're stuck with a high pin count FPGA to do it, which is probably your best solution. I think that no matter what you'll want to go through the above exercises to minimize the number of uniquely driven lines. It sounds like an interesting project. Good luck!