Computer on Z80 with VGA by piotr_go

It was already 8051, now it's time for the Z80.
The computer consists of several modules.
The motherboard contains a Z80 processor, 512kB RAM and 512kB flash memory, IO 8255 chip and the Atmel ATF1502AS 5V CPLD that connects it all, which also works as a memory bank switch.
The earlier version, instead of the Atmel chip, was based on the Xilinx CPLD and required an additional 3.3V-> 5V level converter.
The "IO +" board is responsible for image generation, keyboard reading, sound generation, communication with the SD card and the clock.
The required VGA, UARTa and YMZ284 clocks are generated by the Si5351 chip (configurable by I2C generator * 3).
Supported systems: CP / M, ZSDOS.
5V power supply via the USB-C socket.
Main tile and its earlier CPLD version of Xilinx:


Z80, 512kB ram, 512kB flash, CPLD, 8255 IO.
Diagram:

IO board:

XC9572XL as uart, spi and interrupt controller.
GD32 generates the image, reads the keyboard, configures the Si5351 and generates 50Hz to interrupt.
YMZ284 sound generation.
DS1302Z clock.
Diagram:

ATA controller:

Diagram:

Comments
Congratulations on implementing an interesting project. Let me ask, have you carved your own BIOS for CP / M from scratch in Z80 assembly language? You made the so-called deblocking for SD card? Did you... [Read more]
Probably I would have done that, except that I had not dealt with the Z80 or CP / M before. I modified these sources: https://github.com/wwarthen/RomWBW The Z80 assembly language looks nicer than that... [Read more]
A disputable statement. The instruction list in the Z80 as well as the entire processor is an extension of what was in the 8080. There is a huge archaism, such as conditional subroutine call or conditional... [Read more]
Do you know if there is any open core FDC for 3.5 inch FDD? I searched and did not find. As with connecting FDD to FPGA in general, the outputs can be on 3V3 or must they be via a level converter? Ordinary... [Read more]
You can always do 128B sectors :) I wasn't looking for it, but it probably is, I wrote mine for the amiga. I did this: https://obrazki.elektroda.pl/6725477500_1612556054_thumb.jpg FPGA... [Read more]
A very nice design. Nice to see what miracles you can do with old procks :) @piotr_go , of course, I have a few questions :) Are you satisfied with the Si5351? What is the role of T1 in the 8255... [Read more]
You can't see the distortions of the image, it works as it should. Reset negation. Z80 resets low, 8255 high. The reset can also be negated in the CPLD, but you need to solder a slightly larger... [Read more]
@piotr_go , @ maciej_333 How do you have an "organized" data bus in your projects? I wonder what happens when we give an address on the address bus to which nothing is attached and cpu will want... [Read more]
I do not see such a need. [Read more]
There is no need. Something like this has never been done. Anyway, in my case, all the space for data is used. In the case of the I / O space, there are free addresses for possible further expansion. In... [Read more]
You can give pull down resistors on the data bus, then when the PC is set to the address where nothing is there, it will perform NOPs. True, I have not heard of anyone using this. However, the idea... [Read more]
Average idea. These resistors will load the data bus permanently. The permissible current Ioh is much smaller than the Iol. This is not always possible to afford. The 8080 and the Z80 are von Neumann architecture.... [Read more]
I asked about such a solution because a similar mechanism is used in the ISA architecture and I would like to use it in my projects, but I don't know how to do it (I'm playing with MOS 6502). ... [Read more]
Hello I used to play CP / M in Amstrad with 3 "disk drives, due to the poor availability of floppy disks and their high price, I tried to connect the 5.25" station with average results. The station worked... [Read more]
Hello I'm in the process of building a simple z80 computer. I have one question about z80 addresses. It is about connecting the eeprom km28c17 or km28c64a systems with 12 addresses and 8-bit data... [Read more]
You do not connect, unless you want an address decoder. At the exits? There's no need to. [Read more]
It's best to connect to the address decoder, e.g. 74138, then the memory area will be divided into banks, in one you will have your eeprom and connect it with 'CE' to the '0' output... [Read more]
There is a lot of material on the web about building a simple computer on the z80, but the most interesting and practical are either in Arabic, English, Hindu or Urdu. Some people are unable to convey... [Read more]