ElEctric_EyE wrote:
To me it sounds like you've have some success with your VHDL coding, which is great! as I'm sure you know.
Thank you. I'm still very new to it, and all self taught etc. One thing I've not looked at is simulation and test suits, something I really need to do sooner rather then later, even if it sounds very dry and boring.
It was quite something hooking up the CPLD to the lovely 30 year old MPU and seeing the registers I'd implemented, address decoders, etc "come to life".
As a brief update on the DMAC, I've managed to reach a kind of compromise: I can read a page into a page, a byte into a page, a page into a byte and a byte into a byte (256 times...). So it;s sort of useful. I've yet to implement any kind of status register, or interrupt line. And just what I've implemented so far uses about 75% of my largest 108 macrocell CPLD, without niceties like being able to read the registers back. This is obviously not ideal, as it would be great to implement a multi channel controller, with arbitrary source and destination addresses, perhaps even with things like rate limiting.
Quote:
I can say from my experience I very quickly grew out of CPLDs, only because my primary interest originally was to have a very fast 6502 core controlling a small TFT display with graphics. Your goals are different, but the fact remains CPLDs are extremely limited when compared to FPGAs of similar pin count. I think you will find designing with FPGAs very rewarding. You might not ever look at another CPLD again...
Well, ignoring the DMAC for the minute, the CPLD I am using has served my little 8 bit micro very well and takes the place of probably a dozen or more 74xx series ICs. I'm not interested in soft cores myself; my interest is in building (hardware and software) an 80s era micro, but removing the burden of masses of glue logic by using contemporary programmable logic instead. Plus I'm very interested to learn some new skills. But I'm very keen on using "classical" ICs for the key components. My desire to implement a DMAC is based on wanting to learn how they work, and to prove to myself that I can do it. I'm also, on exactly the same basis, wanting to learn how I might implement a simple MMU. Here the CPLD would prove utterly useless because of a lack of registers, I think.
Quote:
But I think I understand why your not so keen on FPGA design because of the lower voltage levels one is forced to deal with.
All your familiar 5V IC's in your design would be useless, or you would need voltage level translators. But what a pain!
Yes indeed.
There's the voltage problem, and also the prototyping problem. With the XC95xx CPLDs, I was able to do much of the prototyping on breadboard, with some PLCC44 adapters. This let me test that the 30 year old NMOS parts could be driven by the relatively modern CPLD. I then went ahead and had made up a PCB using the larger 88 pin part, without ever prototyping it, and was amazed that it worked first time (this was a big thing for me
) This next to impossible to replicate with the modern FPGAs because of packaging, number of pins etc.
To "overcome" the voltage issue I've been looking at some older FPGAs. The Spartan 2, for instance, tolerates 5V inputs unlike anything newer. It would mean using an older ISE version though. And of course the protyping stage is interesting because these ICs aren't available in PLCC, only 0.5mm flatpack. This scares me rather a lot. I'm also confused as to comparing a CPLD macrocell with a FPGA logic cell? Are they roughly equivilant? For my desigms, even including MMU and DMAC and all the rest of the glue on a single device, I probably need maybe 400-500 CPLD macrocells and maybe 120 pins, leaving me quite a bit of spares in both.
I also see that Atmel still makes 5V FPGAs (AT10Ks), which is very interesting. They seem impossible to get hold of though, and I have no idea what software to use, or if I need a new programmer etc.
Another thing that is "weird" about FPGAs is that they are runtime programmed. This means, presumaby, that there is a startup delay before the device is useable. I guess I'd need to implement some kind of reset logic to trigger a program of the FPGA while the MPU is stalled?
So while I'd dearly love to use an FPGA in my computer, even by modern standards a trivial one, there remains some large problems....
Quote:
One solution is to use a soft core function for a given 5V IC, written in HDL, that could fit inside the FPGA.
While that would be a lot of fun, it's a different project to what I'm currently working on.
Quote:
I wish you good luck!
Thank you! And sorry for the fairly random questions....