Welcome to Laser Pointer Forums - discuss green laser pointers, blue laser pointers, and all types of lasers

Buy Site Supporter Role (remove some ads) | LPF Donations

Links below open in new window

FrozenGate by Avery

DIY Zilog Z80 computer as a hands-on project...

Joined
Oct 19, 2013
Messages
244
Points
18
I am going to make my own Zilog Z80 based computer just for sh*t and giggles while also learning about the computer history at the same time.
So yeah, I am sure this one wouldn't be the first Z80 related project that got posted here. And I am not that old. LOL But, still the computer history matters to me too.

However, I am trying to figure out if there's strict timing requirement on certain RAMs like the Everspin parallel MRAM (32 kilobytes MR256A08B MRAM with 8-bit IO) and 32 KB Fujitsu asynchronous SRAM (ie. internally clocked) as I might want to single-step through the machine codes stored thereon, kinda like old school computers which you had to input via the switches in the day the keyboards used to be elusive and hard to obtain (around 70s). I want to figure it out before I start laying things out in both CPLD flashing tool and the KiCAD so I have something that actually works.
 





I apologize if it looks like it was put together hastily, I was pushed to deal with the pizza delivery.

So anyhow, the reason why I kind of wanted to ask a question is because I am not 10,000% sure about driving the SRAM and MRAM which both are asynchronous so I am not sure if it works when I single-step the whole thing (in this case the 6 MHz SiTime MEMS oscillator is halted for manual clocking of the Z80 CPU so I could put in machine codes individually like what we (or our parents) have done so in the past - like the IMSAI and Altair computers), as certain chips have very strict timing rules (Don't get me started with the DDR DRAM design considerations. LOL They're very touchy of everything, even being touched). Of course, I will have separate ARM microcontroller to handle the framebuffer on the Noritake GU140X32F-7064B VFD module, and the USB port for keyboards as the classic PS/2 keyboards are pretty much gone at this point. (Or should I add the Bluetooth microcontroller so I can do virtual RS232 and / or wireless keyboard?)

And the whole computer will be made with the SMD parts so I can fit the whole things in a small Pelican case for portability and protection purpose.

And.... It is kind of surprising to me that Zilog continue to make the Z80 CPU. (I know, the Zilog Z80 CPU actually run at 10 MHz, but I decided to give myself a bit more head room, even at paltry 6 MHz CPU speed.)

63337
 
Last edited:
Agreed, there are whole forums and clubs dedicated to stuff like this. I actually have one of the oldest vintage Z80 chips you can get in my chip collection. I always thought about making something with one, but I never have. I have an old arcade board that uses a Z80/V30 for the sound processing. :)
 
I will check them out. As this particular thread group was basically about electronics and whatever that's not laser related, I figured I could try it here. Guess not, but that's ok anyhow. I will have to try it there.

* I found out on their page; asynchronous SRAM is kind of timed by chip select and address pins, in the other word I can single-step either SRAM or magnetic RAM's contents. In a way it's kind of ironic that I am essentially using the direct descendant of the magnetic core memory here (the MRAM) in the clone of ancient Z80 computer, which some Z80 computers way back then could have used the actual magnetic core memory.
 
Last edited:
SRAM is quite interesting to work with. most of mine are all 32K CDIPs. I used two in my 1802 build. though one is swappable to allow me to use an EPROM in it's place with a jumper change. I've not made a Z80 board. might be fun to look into sometime. I could probably grab a couple more chips and throw one together sometime. I have a 8086/8087 or two floating around too, and a 4004....I thought about dinking around with a few of them at one point, but never got around to it, only the RCA 1802 have I done anything with, though I'm using a more modern one...the old vintage CDIP I have works, but it's more of a collector's item now, so I don't use it.

I always thought about implimenting some FRAM in a build too....
 
Ceramic DIP chips are now prohibitively expensive to make - even a 60 cent chip (let's say, the 555 timer) can cost $60 if you use the same part into the ceramic DIP. So yeah, keep those chips you have in the possession, as they're kind of dying breeds in themselves.

As for Zilog Z80 CPU, it has several quirks that made it worth it for me to hack it for fun, ie. single-stepping the CPU. I would have liked to try the higher performances Motorola 68k, however, each CPU generations are profoundly different (enough to make the Amiga hackers grind their teeth out of disappointment and anger due to the aforementioned changes in the GPRs, each instructions were switched out in each generations without fail), however the Motorola 68040 as well as the superscalar 68060 can't be single-stepped due to changes in the clock circuit (of course that could be impossible to single-step the 68080 or even Pentium Pro due to decoupled ALU pipelines, making it pretty difficult to program by hands except for the assemblers due to the out-of-order execution, I use the FASM for that low level stuff. I would wonder if the superscalar version of Z80 exist, and how difficult is it to use it).

However, as for the FRAM, I would have to say be careful, the FRAM is not non-volatile memory in a sense like the MRAM (and properly designed flash memory) is, it loses data once read by the processor (which it is then re-written back on from the SRAM cache unless told to just nuke the whole thing which just reading it is enough to erase it), but you can still use it as-is, however as FRAM is supposed to have about 10 - 30 trillion read / write cycles and also reasonably fast (fast enough to be used with a 400 MHz superscalar microcontroller chip containing ARM Cortex R52 and / or M7 CPU cores). I also do kind of wonder if Intel XPoint memory is yet another FRAM or just a version of phase change memory.
 
** Update to the comments on FRAM endurance; apparently, Cypress have somehow managed to squeeze even more life out of the piezoelectric capacitors, meaning Excelon LP (low power = lower voltage) FRAM can now last between 100 - 1,000 trillion cycles before it completely wear out. Too bad newer FRAM memory now only come in Motorola SPI serial bus option, only older, short-lived FRAMs would come in parallel option, so I went with MRAM as endurance is much more important to me since I want the kit to last longer.
 
Yes, they have a very high endurance now, and it's quite good for fast low power consumption memory. MRAM is interesting to me though, I'd like to see STT stuff come to fruition, but it needs alot of energy to operate. FRAM is still going to outlast the devices it's put int most likely by far, so I'd not be too worried about it at all. Newer stuff, as you have pointed out, is virtually indestructible compared to NAND flash memory and is a nice balance between ram speed while still being nonvolatile.

Fun fact: FRAM is actually used in alot of old game boy advance games. :)
 
Yuppers. MRAM at present eat electrical power like it's unlimited slurpee day, however they're working on getting the current consumption down before they could be useful in the ARM microcontrollers. As for FRAM in the Gameboy Advance cartridges, I have seen several titles that use 64 KB I2C (?) FRAM, especially the Spyro game (can't remember which one).

As for FRAM in your project, I suppose it will do. I will try and get the 32 or 64 KB 8-bit parallel FRAM and experiment with it in my homebrew Zilog Z80 computer, as I planned to put in the connector so I can swap around the memory board, or if I am a bit insane, I can pop in a custom board with the 4 - 8 GB eMMC SSD with CP/M bootloader thereon.
 
Last edited:
Ouch... Took a lookie-see at the 32 KB 8-bit parallel FRAM on the Mouser website, it cost three times as much as the magnetic RAM (MRAM)... I doubt they will want to give me a free sample for this purpose unless it's for testing phase of electronic hardware before I sell the copies of the particular hardware (example - open source oscilloscope) - they are strict about that now.

Nevertheless, I am a tad glad that MRAM is cheaper now than when it first came out.
 
I would have liked to try the higher performances Motorola 68k, however, each CPU generations are profoundly different (enough to make the Amiga hackers grind their teeth out of disappointment and anger due to the aforementioned changes in the GPRs, each instructions were switched out in each generations without fail), however the Motorola 68040 as well as the superscalar 68060 can't be single-stepped due to changes in the clock circuit (of course that could be impossible to single-step the 68080 or even Pentium Pro due to decoupled ALU pipelines, making it pretty difficult to program by hands except for the assemblers due to the out-of-order execution, I use the FASM for that low level stuff. I would wonder if the superscalar version of Z80 exist, and how difficult is it to use it).

I saved a range of different 68k CPUs that I sell for DIY computers:
https://www.ebay.co.uk/itm/233180267738
https://www.ebay.co.uk/itm/233180267214
 





Back
Top