High Speed Z80 test Board
Posted: 09 Nov 2014 18:47
As part of the MTX+ project Dave and I are building CPU boards that mimic to a certain extent the original MTX, that includes the fairly complex memory paging arrangement.
As a side project, I've built a much simpler CPU board with the intention of seeing just how fast I can get the CPU to go.
In order to use the minimum possible logic, I am using 32k rom and 32k ram. Unlike it's 32k and 512k cousins, a 128k static ram chip has 2 chip selects. The usual active low CE1 and a second active high CE2 located to allow a 32k chip to occupy the same socket.
So, I have A15 from the Z80 connected to the Chip enable on the Flash and to CE2 on the Ram, CE1 on the ram is tied low, as are A15 and A16 on both chips.
With A0-A14 and the data lines connected to both chips, this pages in the rom in the lower 32k and the ram in the upper 32k without needing any decode logic.
The only logic on the board apart from the clock is a single 74F32 which is a quad 2 input OR gate. I use 2 of the 4 gates to combine the Z80's memory request line with the Read and Write, to create Memory read and memory write signals to feed the read and write inputs on the ram and the read on the rom.
The F series chip is used for speed. It's propagation time is in the region of 4ns, somewhat better than the usual HC or LS logic.
I started using a 20Mhz Z80 CPU supplied by Lez and a 4 speed clock from a 40mhz oscillator driving a 74HC193, which gave me choices of 2.5,5,10 or 20mhz.
After testing Lez's chip, I put in a 10mhz CMOS Z80 (from Mouser) just to see how that would respond. Surprisingly, it ran faultlessly at 20Mhz.
After an hour running the test code without any apparent problems, and the chip remaining at room temperature I decided to push it further.
It wasn't able to push the HC193 any faster, so I built a crystal clock based on the normal resonant circuit, with a spare 21.4Mhz Crystal from the V9958, the 10Mhz Z80 coped with that too.
Finally I replaced the crystal with a 27mhz version, and replaced the flash chip with fastest I have available, and tested again.
Net result I have a 10mhz Z80, running at 27Mhz, and no sign of any over heating or other problems....
In order to remain within spec as much as possible, the ram is rated at 55ns, the Flash at 45ns. I don't think I can push it any further without needing new ram, I'd need faster crystals too, 27Mhz is currently the quickest I have.
It's not MTX compatible, as there is no provision for rom or ram paging, nor will it run CPM.
However it is capable of driving the V9958 board from the MTX+ project and hopefully the other I/O boards once we get that far.
And of course it's FAST !
As a side project, I've built a much simpler CPU board with the intention of seeing just how fast I can get the CPU to go.
In order to use the minimum possible logic, I am using 32k rom and 32k ram. Unlike it's 32k and 512k cousins, a 128k static ram chip has 2 chip selects. The usual active low CE1 and a second active high CE2 located to allow a 32k chip to occupy the same socket.
So, I have A15 from the Z80 connected to the Chip enable on the Flash and to CE2 on the Ram, CE1 on the ram is tied low, as are A15 and A16 on both chips.
With A0-A14 and the data lines connected to both chips, this pages in the rom in the lower 32k and the ram in the upper 32k without needing any decode logic.
The only logic on the board apart from the clock is a single 74F32 which is a quad 2 input OR gate. I use 2 of the 4 gates to combine the Z80's memory request line with the Read and Write, to create Memory read and memory write signals to feed the read and write inputs on the ram and the read on the rom.
The F series chip is used for speed. It's propagation time is in the region of 4ns, somewhat better than the usual HC or LS logic.
I started using a 20Mhz Z80 CPU supplied by Lez and a 4 speed clock from a 40mhz oscillator driving a 74HC193, which gave me choices of 2.5,5,10 or 20mhz.
After testing Lez's chip, I put in a 10mhz CMOS Z80 (from Mouser) just to see how that would respond. Surprisingly, it ran faultlessly at 20Mhz.
After an hour running the test code without any apparent problems, and the chip remaining at room temperature I decided to push it further.
It wasn't able to push the HC193 any faster, so I built a crystal clock based on the normal resonant circuit, with a spare 21.4Mhz Crystal from the V9958, the 10Mhz Z80 coped with that too.
Finally I replaced the crystal with a 27mhz version, and replaced the flash chip with fastest I have available, and tested again.
Net result I have a 10mhz Z80, running at 27Mhz, and no sign of any over heating or other problems....
In order to remain within spec as much as possible, the ram is rated at 55ns, the Flash at 45ns. I don't think I can push it any further without needing new ram, I'd need faster crystals too, 27Mhz is currently the quickest I have.
It's not MTX compatible, as there is no provision for rom or ram paging, nor will it run CPM.
However it is capable of driving the V9958 board from the MTX+ project and hopefully the other I/O boards once we get that far.
And of course it's FAST !