After doing a couple basic PCB designs using KiCad, I was thinking about taking on some more complex projects. Of course I would like to avoid assembling a huge board with a sea of TTL chips (or having to buy all those chips) as was done in the old days. So I started looking into CPLDs. It turns out that these are mostly (but not entirely) considered obsolete now because FPGAs have become less costly, are available with non-volatile config, and are so much more capable. However FPGAs are also overkill for what I want to do. I'm not going to design a whole CPU core as my first project or anything like that. They also tend to come in SMD packages with many pins which I am not prepared to work with.
CPLDs that are still around include the Atmel/Microchip ATF750, ATF1500, and ATF2500. These can run at 5V and come in PLCC and even DIP packages, perfect for retro stuff. When doing a web search I found a few mentions of the ATF750 but nobody was using them because they aren't supported by many device programmers. ATF1500 on the other hand can do JTAG. As it happens, my old Needham's Electronics EMP-11 is supposed to support both of these devices in the last version of its software (from 2002). So I ordered a handful of both '750 and '1500s. I also bought a 5-piece kit of PLCC-to-DIP adaptors from ebay. Hopefully I should have everything I need to program these chips.
The ATF750 was described as a 22V10 on steroids. It has 20 flip-flops, which is like 20 data bits. Doesn't sound like much. But, the state of each bit can depend on up to 16 signals, including any of the other "bits" (outputs of the flip-flops) or the state of any of the 12 input-only pins or 10-bidirectional pins. The flip-flops also have clock and reset inputs, and the output pins can invert or go tristate.
I didn't buy any of the '2500 because they are more expensive than the '1500 and don't appear to be supported on the EMP-11. They are a similar design to the '750 but at a larger scale, ie. 48 flip-flops and more pins. The '1500 has a somewhat different design with OR/XOR gates mixed in and something called "cascade."
Perhaps one of the downsides of using these chips is the necessity of using WinCUPL to create the logic circuit. It's not nearly as fancy as something like Quartus, and uses its own language rather than Verilog or VHDL. I haven't personally used any of these languages yet so I can't compare them, but I found WinCUPL to be somewhat frustrating at first. It's like a glorified text editor with some command-line tools behind the scenes that do the actual work of compiling the design. It gives very little feedback about what it's doing or what just happened when you clicked that button. A window pops up that says there were X warnings and Y errors, but doesn't say what the warnings and errors are (I think you have to open a separate file to find out). There is a useful simulator included, but it takes a lot of clicking to set it up. There are also a lot of example designs for things like shifters, counters, and even an 8255 parallel port.
While I'm waiting for ordered parts to arrive, I will try to design something using CUPL.
CPLDs that are still around include the Atmel/Microchip ATF750, ATF1500, and ATF2500. These can run at 5V and come in PLCC and even DIP packages, perfect for retro stuff. When doing a web search I found a few mentions of the ATF750 but nobody was using them because they aren't supported by many device programmers. ATF1500 on the other hand can do JTAG. As it happens, my old Needham's Electronics EMP-11 is supposed to support both of these devices in the last version of its software (from 2002). So I ordered a handful of both '750 and '1500s. I also bought a 5-piece kit of PLCC-to-DIP adaptors from ebay. Hopefully I should have everything I need to program these chips.
The ATF750 was described as a 22V10 on steroids. It has 20 flip-flops, which is like 20 data bits. Doesn't sound like much. But, the state of each bit can depend on up to 16 signals, including any of the other "bits" (outputs of the flip-flops) or the state of any of the 12 input-only pins or 10-bidirectional pins. The flip-flops also have clock and reset inputs, and the output pins can invert or go tristate.
I didn't buy any of the '2500 because they are more expensive than the '1500 and don't appear to be supported on the EMP-11. They are a similar design to the '750 but at a larger scale, ie. 48 flip-flops and more pins. The '1500 has a somewhat different design with OR/XOR gates mixed in and something called "cascade."
Perhaps one of the downsides of using these chips is the necessity of using WinCUPL to create the logic circuit. It's not nearly as fancy as something like Quartus, and uses its own language rather than Verilog or VHDL. I haven't personally used any of these languages yet so I can't compare them, but I found WinCUPL to be somewhat frustrating at first. It's like a glorified text editor with some command-line tools behind the scenes that do the actual work of compiling the design. It gives very little feedback about what it's doing or what just happened when you clicked that button. A window pops up that says there were X warnings and Y errors, but doesn't say what the warnings and errors are (I think you have to open a separate file to find out). There is a useful simulator included, but it takes a lot of clicking to set it up. There are also a lot of example designs for things like shifters, counters, and even an 8255 parallel port.
While I'm waiting for ordered parts to arrive, I will try to design something using CUPL.