Possible PLD replacement solution for 2504 shift registers

8 posts / 0 new
Last post
Offline
Last seen: 1 day 18 hours ago
Joined: Feb 9 2022 - 08:53
Posts: 17
Possible PLD replacement solution for 2504 shift registers

PLD are beginning to enter the retrocomputing scene since they can be used as a low cost replacement for rare chips (see the PLA replacement for the C64) and shift registers where made with a quite simple circuitry, 2504 are only arrays of 1024 latches.My plan is to use the smallest PLD that can be found, the dip-20 Atmel ATF16v8 (sold for €1.61 each) to reproduce the behaviour of all the 2504 on the Apple 1 board.According to the datasheet it provides 1 clock input, 8 inputs lines and 8 bidirectional lines and this should be enough since we need input 1 pin for the recirculate (or r/w, I have to dig more into 2504 specs), 7 input and 7 I/O (used as output) lines. ATF16v8 can operate at a maximum speed of ~100MHz (7.5ns) so there's no speed problems like for small microcontrollers as the ATTiny and since the circuitry of 2504 shift registers was quite small even back in the '70s there should be room for at least two of them in a single PLD, but I think there should be no space problems to use a single chip for all 7 of them.

Of course the 2519 that can be recreated this way too.

Is someone here that is already familiar with VHDL and FPGA/CPLD that could help me to test this?I really have no experience with these devices so any help would be very useful to try this out.Thanks,Toms98

Online
Last seen: 1 hour 7 min ago
Joined: Feb 27 2021 - 18:59
Posts: 192
PALs and GALs have a

PALs and GALs have a relatively inflexible architecture and are usually programmed using equations or truth tables in languages like PALASM, ABEL, or CUPL rather than VHDL or Verilog. The "Generic EPLDs" from Atmel-Microchip (the last still in production) just emulate a range of simple PALs, they do not have additional capabilities relative to what was used in the 1970s. So in a way, these are some very ancient chip designs still in production, showing the huge investment the electronic industry still has in simple logic.

shift registers where made with a quite simple circuitry, 2504 are only arrays of 1024 latches.My plan is to use the smallest PLD that can be found, the dip-20 Atmel ATF16v8 (sold for €1.61 each) to reproduce the behaviour of all the 2504 on the Apple 1 board.

Did you count the number of latches (registers) on an ATF16V8?

It seems to me that 8 is less than 7168.

Offline
Last seen: 1 day 18 hours ago
Joined: Feb 9 2022 - 08:53
Posts: 17
Thanks for your help. I'm

Thanks for your help. I'm certain this can be done with a tiny FPGA (thought they are more expansive) I'll check better the specs but something like the ICE40LP8K should do the work. It is more expansive but still cheaper than the full set of shift registers, I saw it's around $40 per board

Macintosh_nik's picture
Offline
Last seen: 8 hours 32 min ago
Joined: Jan 8 2021 - 05:18
Posts: 198
Hi Toms98!

It would be great to have at least some replacement for 2504/1404, it seems that the times when you could buy them for 1-2$ are gone. I heard that DS0025 is now asking for "moon money" too. I bought them in Taiwan in the fall for $2, but then they ran out.

Offline
Last seen: 1 week 6 days ago
Joined: Jul 16 2022 - 17:02
Posts: 17
Hi Everyone,I think the next

Hi Everyone,

I think the next stage in the 2504 journey will be learning how to use the 2503 in place of the 2504. It is the same chip inside with a different pinout. It will take some small pcb edits or maybe a slick adapter socket. Ideally this can be proven out and parts obtained before the greedy dealers find out that 2503 will work in the Apple-1.

Jeff

 

 

Eudimorphodon's picture
Offline
Last seen: 3 weeks 1 hour ago
Joined: Dec 21 2003 - 14:14
Posts: 1207
As was already noted, a GAL

As was already noted, a GAL has a laughably insufficient number of registers to emulate one of these shift registers. The most you can get is the 10 on a 22v10.

If you're up for a multiple component solution I could picture replacing all the 2504s in an Apple I with a daughterboard that has a GAL, an SRAM, and a ripple counter. The logic for that would be pretty straightforward assuming all the "bulk" video storage shift registers in the design are always read/written/recirculated in parallel.

(The ripple counter is needed because you'll need 10 bits of address for the SRAM; implementing counters is pretty straightforward on a GAL but it consumes a register for every bit; make a 10 bit counter and you won't have anything left for the control logic...

And now that I'm looking at the datasheet for the part I'm kind of wondering you'll need an external latch like a 74LS573.)

The 2519 might be doable with just the GAL and a tiny SRAM since you only need six bits for the counter. And maybe that latch. 

Offline
Last seen: 1 day 18 hours ago
Joined: Feb 9 2022 - 08:53
Posts: 17
I was luckily able to get one

Hi Mackintosh_nik!I was luckily able to get a DS0025 for €6. Didn't know it's become so expansive. I think the best way to replace all this chips is a small smd daugtercard to be put in C11  that is connected to the motherboard like the SaRuMan ram replacement for the Commodore 128. Eudimorphodon I think that the most viable solution that is not an fpga is an smd board with ram and counters. Not great to be seen but at least something. I'll do further researches for low-cost fpgas or better pld since these are in my opinion the best solutions

 

Eudimorphodon's picture
Offline
Last seen: 3 weeks 1 hour ago
Joined: Dec 21 2003 - 14:14
Posts: 1207
I spent a little time after

I spent a little time after my post looking at the Apple I schematics to wrap my head around what's going on... which I'm only about 70% confident about. (The datasheet for the 2504 didn't make it entirely clear to me how the clock cadence works... I *think* I get how the data is either recirculated or replaced through the multiplexers on the A1's board, but if I were trying to write the control logic for a replacement I'd feel a little lost without a working model to play with.) But that said, I guess I have a few more observations:

 

A: It looks like those parts need a clock driver with a big nasty voltage swing, that's going to need some passives to massage. (Of course, if you use an FPGA you'll need voltage shifters already.)

 

B: Maybe we need either a second latch or a multiplexer, or both. Me answering this would take more coffee, at least.

 

C: That seventh 2504 that's used to track cursor position might be a PITA, I suspect trying to share the circuitry you're using for the bulk character storage would take a little forth-dimensional thinking.) 

 

Log in or register to post comments