Glad you like it
In fact, I would probably try to avoid bending all the green and blue wires at right angles, and just run the buses with shortest path.
But… it’s a computer! They’re
meant to be all angular, no?
Kidding aside, there were several reasons for not using shortest paths here. 1. approaching pins with a minimum risk of shorting to neighbouring pins. In particular since many pins on the DIP sockets and the bus have two leads, above each other or opposite. 2. I want to avoid running wires over holes that I might need to thread another wire through later on. The latter issue can often be avoided by working in the right order, but that requires more premeditation.
But point taken, I wouldn’t have needed to make actual angles there.
That's a good looking prototype board. The power and ground ring are best way of dealing with the relatively fast CPLD.
The transients are terrible. You can see each edge of the clock signal on every output, even with twice as much decoupling
By the look of it, you are emulating RC2014's 512K RAM/ROM board.
You’re right. Spencer writes about his board "The circuit is largely a reproduction of the ROM/RAM part of Sergey Kiselevs Zeta 2, with some modifications inspired by Dr Scott Bakers ROM/RAM Module." Putting the MMU logic on a CPLD is not new either, I was inspired by
https://github.com/skiselev/Z80-512K/ but redid the coding in Verilog instead of VHDL. The main reason for using a CPLD (apart from having an excuse to learn about programmable logic) is to avoid the otherwise commonly used 74HCT670 register file ICs which you would need two of, at a cost about 11USD a piece
Little twist: the official pinout of the flash and the RAM are a bit different for the most significant couple of address bits. That would have led to some awkward wire crossings. I stuck to the correct pinout of the flash so I would be reading what my external programmer wrote. But the address bits of the RAM are permuted to simplify the wiring. The only wire that does not run parallel is the write enable.
I do believe it is possible to fit the design in an ATF1502, but you need to have freedom in pin assignments for the fitter to pick the right fit.
Yes, it fits exactly, using 32 of 32 macrocells. I went for the more wasteful 1504 out of pure laziness, to simplify the point to point wiring and continuity testing, and reduce the number of differently coloured wire coils flying around on the work bench simultaneously.
Martin