After building ZX Spectrum clone in CPLD I ported hardware code to another project and this is a bit simpler, but it uses some mono LCD from old copy machine.
Now I used only one CPLD, but I added an additional SRAM chip. Now I don’t need any memory management (MMU)- the video part of the computer is completely “write only”. It is shadowed in the external SRAM chip and if the computer needs to read some data it does not get data from the video part of the computer. This makes design much easier to implement.
CPLD also monitors all IN/OUT operations and generates all specific video signals for LCD (it is four pixels at a time interface).
This is 320×240 pixel monochromatic screen, without any gray levels. So I can not emulate any colors using grayscale. For the border I used vertical stripes, but for the screen part is “only black and any other color is white” mode. So games are unusable. Also, moving parts are blurred.
All files to download:
Intel-Altera Quartus CPLD source code for ZX Spectrum LCD version.
Do not forget that regular Z80 need a 5Vpp clock for proper operation. I used a CMOS buffer for this.
Ant here is pinout for EDMMPU3BDF LCD:
5. pix CLK
6. Vcc, +5V
8. Vee, -25V
9. D3, pixel data
13. Vee, same as 8.