At the close of the 8-bit home computer era there were some machines produced that attempted to bridge the gap between the 8- and 16-bit worlds, either by providing a 16-bit device with a backwards compatibility mode, or an 8-bit one with enhanced capabilities to compete with its newer rivals. These products largely fell by the wayside in the face of new 16-bit only platforms, but they and the various enhanced versions of 8-bit processors that appeared over subsequent decades present a fascinating glimpse of what might have been. It’s a theme [Konstantin Dimitrov] explores with his Z20X computer project, a machine using the Zilog eZ80 processor running at 20 MHz, with 512 kB of external memory, and an interface for a 7″ TFT screen module.
The eZ80 is a more recent development, a pipelined processor capable of much higher clock speeds and addressing up to 16 MB of memory while maintaining software compatibility with the Z80. Had it come to market in the late 1980s it would have been a sensation, but instead it has appeared in embedded computers and perhaps of most interest to Hackaday readers, in TI’s line of programmable calculators.
The Z20X is designed to be a through-hole board, with the only SMD component the eZ80 itself. We can understand the motivation behind this, but at the same time wonder whether its likely builders in 2020 will be people unfazed by SMD assembly. It has a system of processor modules in case of future upgrades, and an expansion backplane with an option of an RC2014-compatible bus. There are also PS/2 keyboard and mouse connectors, a serial bus, and an on-board sound chip. The website is short on details of any software, but we’d expect it to work with the typical Z80 retrocomputer offerings such as a BASIC interpreter and the CP/M operating system.
This machine is likely to appeal to retrocomputing enthusiasts, but had it appeared even without the display in a previous decade it would no doubt have become an object of desire. It does however serve as a reminder that the Z80 line has been updated, and though most of us will have moved on it still offers a few chips that could be of interest. Meanwhile for a comparison, take a look at last year’s review of the latest in the range of RC2014 retrocomputer boards.
Thanks [yNos] for the tip.
Does this CPU also emulate a few bugs the original Z80 had? A later revision of the CPU fixed the bugs, which broke some fairly important business software. So Zilog had to put the bugs back in the next revision because they’d become features.
I don’t think I’ve heard of this – do you have any more detail?
There were some undefined op codes in the original Z80 that some designers were taking advantage of. I forget the exact functionality of those op codes, but they provided some operations. The operation of these op codes was modified in the CMOS version (and Z280 and Z380) and completely changed in the eZ80 version.
Thanks! Not entirely unlike the story with the 6502 – although the idea that the Z80 reinstated some functions is I think a bit different.
This actually excites me…
I like it, A CPU that is actually understandable by mere morals and no need to digest a 3000 page databook that is so common with ARM cpu’s.
That’s a depressing comment. The original ARM instruction set was so ‘pure’ that it was trivially learned in an afternoon – unlike the Z80 which took at least a weekend :-). Then I got exposed to the 68k, and I’m still in therapy.
Original ARM was fine unles you want to do stuff that is linear algebra vector multiplications of data shared in area of memory where multiple cores might overwrite it and do that in as few cycles of processor possible.
Does it work? I can’t find any pictures or videos of it actually powered on.
This looks interesting … I thought the eZ80 was nice too, so I’ve been selling this system with options and various software for about a year … http://makerlisp.com – 50 MHz eZ80, 1 Mb SRAM, lots of stuff to make it a whole computer – plus Lisp and CP/M 2.2
You sell it for 99$ while the SC126 (with z180 16 bit cpu) is only 58$ on tindie.
The SC126 is an excellent product, I agree. The product I’ve developed is very different, it’s a 50 MHz, 24-bit eZ80 CPU, with 1 MByte of fast SRAM, I needed this to support the particular things I wanted to do, and I wanted the business card form factor (with I/O expansion through a high density connector) to build a system around. But then you can pop the CPU card in your shirt pocket and take your world with you, away from the “dock” of the whole system at your desk. So it’s a particular set of choices that was right for me, and for a few other people who are using the system, the thrust was really “Self-hosted Arduino experience with Lisp”, but it is also a very naturally capable CP/M machine, although only a few people are using it that way. So thanks for your input, if the SC126 is the right thing for you, go for it, I am so impressed with the Tindie community and I’m also an enthusiastic customer. The price will come down on my products when I can build them 100 at a time, right now I build them in smaller batches.
I just want to thank you for the thoughtful and measured response. I saw the system advertised on Tindie (I think) and this just makes me more interested in it.
You’re quite welcome. I’ll be at the Vintage Computer Festival in Seattle, March 21-22, and other similar events throughout the year. I also often go to talk to Lisp and Functional Programming user groups, so if you know of an event that might be a good place to talk about vintage+Lisp+embedded+maker :) then I’m all ears !
On the Zilog eZ80 evaluation board I have (see my website at baremetal dot engineer) the Flash rom runs with 7 wait states and ISTR the static ram runs at 2 or 3 wait states… You said “1 MByte of fast SRAM”… I wonder what flash and ram devices you are using…?
The flash is the flash inside the eZ80, it’s running with 4 wait states, but the SRAM is running with 0 wait states (the Zilog development board I used when prototyping, before I had my board, required 1 wait state). I’m using SRAMs from ISSI, the part number is IS61WV5128EDBLL-10TLI.
Thank you, Luthor… Appreciated….
https://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second_(MIPS) says the eZ80 has 80mips @ 50MHz against the Z80 with 0.580 MIPS at 4.000 MHz and the Z80H with 1.16 MIPS at 8 MHz
*IF* the eZ80 could be clocked at 100 MHz, one assumes 160MIPS against the Arm Cortex-M3 with 125 MIPS at 100 MHz
So it looks like the eZ80 is a very good h/w design…
“I’m using SRAMs from ISSI, the part number is IS61WV5128EDBLL-10TLI” Ok, without looking it up, that looks like a 10ns part… When I firsted started with the Z80A in the early ’80’s, I used 450ns Eproms…
Yes, those are 10 ns parts.
But I’ve built the system such that the code is copied from flash to RAM on start-up, so I’m running out of RAM for code and data, all the time.
Z88 this was great machine
Is RomWBW or some other CPM ported to it?
I will be porting cp/m to it soon.
I really hope 64 bit stays around. I can see why we ditched 32, but 64 is good enough for just about any imaginable purpose. At some point we need to start making things usable for more than a few years, now that we actually have tech that doesn’t suck so much you want to upgrade as soon as you can.
“but 64 is good enough for just about any imaginable purpose. ”
Isn’t that what Bill Gates said about 640K?
B^)
“18 exabytes ought to be enough for anybody.” :- eternityforest, February 24, 2020
Is it me or is the air getting thinner in here, chest tightening, walls closing in… damn, getting a number on it makes it feel claustrophobic already. :-D
Great idea executed nicely with the hobbyist in mind. The only things I would need would be a better sound chip, preferably a YM2151 and some sort of CRT compatible video option.
If you’re interested, the facebook group [rc2014 users club] (https://www.facebook.com/groups/428735714230194/) has a post asking for devs to join in he fun. (https://www.facebook.com/photo.php?fbid=1548465625318763)
So, I’m curious – does this ez80 take 11 clock cycles just to get a 16 bit word off the stack? Seems like a job that could be done in 4, maybe even 3. But supposedly that 11 cycles was the fastest instruction (surely NOP was faster?) because .. idk, architectural reasons. 50MHz is an improvement, but it’d sure be nice if that’s not wasted faffing about like the original.
According to the eZ80 CPU manual, page 280, in ADL mode 0, a POP is 3 cycles. Not sure where you get the idea that a POP was considered the fastest….
I think you mean NOP (NoOPeration), not POP.
NOP is one cycle, per the manual, PDF page 258, printed page 249 (Zilog UM0077, available at zilog.com). The eZ80 is very cycle-efficient, with a 24-bit ALU. The only reason POP takes as many cycles as it does is that you still need a full cycle for each 8 bits popped off the stack to traverse the data bus. The post I was replying to stated “…But supposedly that 11 cycles was the fastest instruction (surely NOP was faster?) because ….” and so my reply was about POP, not NOP. The Z80 took so many cycles due to the 4-bit ALU it had. Ken Shirriff’s blog ( http://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html ) has the full write-up. The Z80 needed a 4-bit ALU because that’s all that would physically fit onto the die; but that doubles the number of cycles to do 8-bit arithmetic, including the stack pointer math needed for POP. This was one of the many tradeoffs of the old Z80 design; the eZ80, while not perfect in my opinion, is a much more efficient design.
Thank you all for the comments. I wasn’t actually aware of this article until yesterday, hence the lack of answers to the few questions above.
Z20X has no ambition to enter the “big-bigger-biggest” race, so running at maximum speed is not the priority. Instead, I aimed at making something that could be assembled from part 1 to part Last at home by any hobbyist. It is also an educational project so “simple” was the ultimate factor in the design.
There is no software ported to it yet, but I hope with the help of some great people around there will be something soon.
I invite everyone interested to join the online group: https://www.facebook.com/groups/509573713269277
Z20X is a great-looking and fun design. It’s not the chip I actually have on-hand (6 EZ80F91AZ050SG in dry-packs, four of the EZ80F917150MODG modules), but most of the software would port over. The F91 has more pins, runs at 50MHz, etc, but one of the cool things about this hobby is that each developer/hobbyist is free to pick their own favorite. But this design looks clean, and most importantly it looks like you’re having fun with it.
All Z20X boards can now be ordered from PCBway: https://www.pcbway.com/project/member/?bmbno=4582C8E5-A4FF-44
All Z20X boards can now be ordered from PCBway: https://www.mokotechnology.com/
Talking about the eZ80, you all may find my “personal passion” website @ http://baremetal.engineer of interest…
Particularly this file: http://baremetal.engineer/baremetal.software.engineer.pdf
and perhaps even this one: http://baremetal.engineer/baremetal.blockchain.engineer.pdf
The eZ80 clocked at 50MHz is good for 80 mips
I have SHA-256 running in assembler within a Forth environment… For future blockchain work…
Enjoy!
Regards David a.k.a Baremetal Engineer…
And I have this system, eZ80 has worked well for me over the last few years: http://makerlisp.com
Thank you all for the comments. I wasn’t actually aware of this article until yesterday, hence the lack of answers to the few questions above.
Z20X has no ambition to enter the “big-bigger-biggest” race, so running at maximum speed is not the priority. Instead, I aimed at making something that could be assembled from part 1 to part Last at home by any hobbyist. It is also an educational project so “simple” was the ultimate factor in the design.
There is no software ported to it yet, but I hope with the help of some great people around there will be something soon.
good
https://www.qx-motor.com
https://www.bluetoothabc.com
Ok… so where are the _IRQ lines on these eZ80’s? I’m looking at a eZ80L92AZ50 version and no _IRQ pin? What’s that all about?