Recently I have been playing (I am a hobbyist) with replacing failed custom logic from 1980s Arcade machines. These devices operate primarily on 5V TTL logic (with some +12 and -5V thrown in for the crusty DRAMs)...
For the simple customs they are replaceable with around 5-10 74 series chips so a custom board is possible (although the physical constraints vary in the target boards)... it would seem that a FPGA is an overkill for many of these scenarios.
I am not familiar with CPLDs but thought I might have a look... I seem to have two obvious routes..
ATF1502AS which is 5V technology and looking rather dated. The development tool on the Microchip site suggests I need a Parallel Port on my PC... which I don't have anymore!
ispMACH from Lattice looks much more modern but would require voltage translation (and sufficient current drive to meet the TTL fan-out specs)... LSF0108?
Any opinions?
Four parts to this question so I'll answer each in turn.
The DevicesIn regard to native 5v CPLDs .... really the Atmel devices are now the only game left in town. The ATF1508 is still available (though it isn't cheap) but it is quite a nice device.
The other other choice is the Lattice ispMACH 4000V. These aren't native 5v parts (they're 3.3v) but they are 5v tolerant and will interface to most 5v logic without having to resort to level shifters.
The Development SoftwareFor the Atmel parts, if you want to stay with free, then you are stuck with using the Atmel version of WinCUPL. Upside it's free. Downside ... well .. yeah... it's not a big step up from PALASM.
You really want to be working with a modern HDL where possible. VHDL or Verilog, and for the Atmel parts, while the software to support Verilog does exist ... you are putting your hand in your pocket big time for that - it ain't free.
For the Lattice parts, things a *little* better. For the isp4000V devices, you will be using ispLever which is getting pretty dated now, but does at least have a Verilog compiler in it.
Don't expect the latest and greatest Verilog though - if you are, then you will be disappointed. The software, while not exactly modern is functional and works well enough. Upside ... it's free.
Programming the devicesBoth the Atmel and the Lattice parts are now ISP, so providing your design is wired correctly you can just break out the JTAG headers appropriately with the appropriate software.
I personally have a stand-alone programmer that I create the JED (aka bitstream) files for the design and then use that to write my CPLDs (because I work with a *lot* of CPLDs that predate ISP and JTAG) so not a big deal for me.
For you though, it is probably easier to spring for a $40 USB Lattice JTAG programmer on eBay that is supported by ispLever.
Other than that, that's it.
As a device, I actually *like* the Atmel part (I used them a *lot*). They're robust, they work, and in the case of the 1508, they come in a PLCC84 package which is really nice for socketing via through-hole socket, so board development isn't particularly wasteful (excluding the PLCC sockets, which if you buy one off you typically get ripped off on).
For SMD, then your choices are Lattice or the Atmel (nee Microchip now) parts.
For the DEV environment though, ispLever beats CUBEL hands down for what I do - even if it is done via the ancient ispLever software.
Level ShiftersGenerally, I prefer to *not* use level shifters unless I can use them as a type of buffer as well. There are a few reasons for this but the biggest one I've found is that the automatic ones typically do not have a lot of 'drive'. This may (or may not) be an issue depending on what you are trying to do. Most of the current generation FPGAs are now all 2.5v and lower.
You can directly interface 3.3v to a 5v bus if you use a zener to clamp the input on the pins to 3.3v. You don't have to worry about the output as 3.3v is above the bottom margin for high in a 5v system (this is greatly simplified).
My $0.02 so take it for what its worth ...
Other than that, good luck.