avatar_MacDeath

FPGA developpment board as universal extension for Amstrad CPC/PLUS

Started by MacDeath, 07:58, 20 July 10

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

MacDeath

So at other topics I mentionned this.


Mostly a FPGA developpment board a board with :

--A FPGA (or equivalent technology) Chip.
--Connectors.
--Connectors to programm it with a PC/computer...sometime needing an additionnal converter (USB per exemple)

Depending of the model (a lot exist) you may also have :
--Memory.
--Some voltage converter.
--additionnal features.


One of the probable issue : finding a 5V compatible system.
Most of those are recent 3,3V.

From what I saw, it may work only half without system.

The FPGA 3,3 signal is compatible with the CPC.

But the CPC 5V signals are not compatible with the 3,3V FPGA.

So this is an issue as I can't figure any extension were the CPC's CPU would not give orders...

Of course such issues have solutions, as most builders give the right answers to how to do it.




A generic Extension ?

From what I understand (not a lot...) stuff like Symbiface is largely FPGA based.

2 FPGA on those beasts... or stuff looking like FPGAs...(lol)

Also FPGA or equivalents are often used as a one-chip solution to (more or less) accurately emulate full computers.
But this need expensive development boards...


The idea is to focus on what can actually be achieved with a "not so big" mini FPGA generic development board ?


Main additionnal and usefull stuffs :

--Memory upgrade : the FPGA/board must include some pseudo RAM so we can programm a bit of the chip to émulate/recreate/act as a normal RAM extension.
Our beloved Amstrad needing only a ridiculous +512K to be fully effective, this mustn't be that an issue.
Also if enough memory exist, the FPGA would then have it's own memory for its own use...or ROM "emulation".
It may actually even feature Flash Memory (virtual HDD, silicondisk, ROM or whatever).

--Sound upgrade :
Such stuff would need a more complicated setting.
Just adding a basic AY is perhaps not that difficult, but getting it to work without using to much of the Z80 from Amstrad can get a lot trickier as we would have to also programm some CPU features inside the FPGA.
Also it would need the proper Soundplugs/Jacks and perhaps some amplification/mixing system...
Yet the simpler solution is to connect it to a mini PC speacker...

like those ?
While the normal CPC sound output is also connected to some speakers (Plus Monitor...)
Then mix it manually.

But can a FPGA board be conected directly to this ? or would it need some additionnal stuff ?


--Blitter :
Perhaps the sweet stuff would be to get the FPGA doing some Blittering.
Shit would be so Cash.
What kind of component is a Blitter ?
Have some ever been designed for a CPC ?


--Networking :
From what I saw, many modern cards (Symbiface ? or whatever) offer some Networking solution.
But it seems the actual Network CPC applications/usefull stuff is close to zero...unused.
What could be achieved then ?

--Arithmetic : multiply and divide made easier... but perhaps some kind of 3D accelerator too ?

--What else ?



All those would need the correct amount of plugs and adaptators.
Mostly to connect the board to the extension port...

But any fairly sized FPGA (or stuff like this) developpment board with the minimum requirements (5+ compatibility, Memory, enough programmable area/gates) may work.

Yet the main problem is to focus on optimised solutions, able to work on the maximum models.
And to define the minimum requirements.

For exemple :
http://www.easyfpga.com/
http://www.easyfpga.com/ez2susb_config.htm
Would it be enough/accurate ?
Well it is a bit too much overpriced...

http://colibri.acmesystems.it/
65€uros...mmmh perhaps still to much.

http://shop.ebay.fr/i.html?_nkw=fpga+board&_sacat=0&defsort=2&LH_AvailTo=71&_dmpt=FR_SK_Jeuxvideo_Games_VideoGames&_odkw=fpga+kit&_osacat=0&bkBtn=&LH_ClassifyToggle=0&_trksid=p3286.m270.l1313
(hope the links would work)

Some starting prices at 25euros...yet shipping fee are quite huge too.
But can those boards do what we need ?

Could we find the perfect existing cheap model or would we have to custom design it ourselves ?

Basically, such card would be a cost down Symbiface, because :
--Far less connectors (parhaps not that far less).
--Far less dedicated Components (no real time clock or HDD stuff...only one FPGA, not 2...)


Well, minus the IDE connectors, the PS2 Mouse connector and controller, the realtimeclock, and perhaps only one FPGA (PLD).
And less sockets too... this shouldn't be as expensive, or is it ?

The power supply per exemple may be then given by the extension port from the Amstrad, as fare less chips needing power suplly.
But of course this would need other parts as to enable to reprogramm the FPGA....
Perhaps a USB controller to connect to PC then.

Also this would need some sort of library of programs for any wanted/usable/usefull/realistic extensions... or only the basic ones, and peoples to include those in their softwares. ???
Yet memory, additionnal soundchip or blitter can certainly find potentials.


Have anyone of you some knowledge on the matter that would correct me realistically, as you all know I suck at technicals... :-[ :'(

OCT

CPCs (or pretty much any 8-bit era home computer for that matter) and extra hardware can be recreated entirely in FPGAs http://www.c64upgra.de/c-one/ even on very cheap hardware http://en.wikipedia.org/wiki/C64_Direct-to-TV as Her Ellsworthy Highness has so aptly demonstrated. :)

MacDeath

Thx for the links...



This looks Guuuuuwd... :P
They call it the CPU/RAM card...What it the price of this ?


A cracked ACID cratridge for a PLUS would certainly be like this...

But a FPGA based universal extension too, with a bit more connectic perhaps, as it won't have to be as complex as a fully equipped computer...

The one chip C64 joystick seems to use a proper ASIC.

A universal extension would perhaps need a very basic and low spec FPGA... The problem is that I can't evaluate what would be the minimum requirement and what kind of prices we are talking about...



OMG...we are doomed !
::) ??? :'(

SyX

Hi MacDeath!!!  ;)

I suggest that you take a look at the V6Z80P project, it's the equivalent at an Amiga 500 (enhance with tilemaps modes, between other things) with a Z80 at 16 MHz, all the special hardware is in the FPGA that the board includes. It has a zx mode, maybe could be possible to add a cpc mode too  :P

You can get all the sources and schematics in its wiki, don't forget to read the documentation of that wiki to understand how  works.

And in the project homepage you can see the V6 in Action!!!  8)

Gryzor

Can I haz one with a PCI interface to stuff into my PC, running a CPC core and with access to local media?

OCT

Quote from: SyX on 09:34, 21 July 10
I suggest that you take a look at the V6Z80P project, it's the equivalent at an Amiga 500 (enhance with tilemaps modes, between other things) with a Z80 at 16 MHz, all the special hardware is in the FPGA that the board includes. It has a zx mode, maybe could be possible to add a cpc mode too  :P
Impressive. To paraphrase Gates, "55 sprites per scanline ought to be enough for everybody." ;) And all that's missing is indeed a reincarnation of the CPC (preferably plus) for this platform (that one of you still has to write) - comparatively affordable at GBP 90 whereas the C-ONE commands a whopping EUR 333 (@MacDeath: Jeri optional and priceless). :)

MacDeath

Well, getting to "clone" or recreate a complete CPC or other is not what I intended...
Cards with big FPGA enabling such thing are somewhat not that cheap...

And, well, i actually have a real CPC collection...but no extensions.

I only wanted to get a "smaller" FPGA based card as an extension for an existing CPC... and if you have some knoledge of affordable such cards that would be big enough to create a good amount of extension...


For exemple, the Symbiface is to specialised and with too much stuff IMO.

Just getting only the memory and FPGA would be enough to get interesting stuff, if you can freely reprogramm the FPGA.

Bryce

Hi MacDeath,
        is there a reason that it must be an FPGA? Wouldn't it make more sense to use a low cost µP from Atmel or Microchip? That way you can easily reprogram the logic for many different utilities or addons and it also has a certain amount of "intelligence" and RAM to allow a wider range of hardware to be created?

Bryce.

MacDeath

I said FPGA-like chips, but a lot of programable chip families do exist, I know.

I'm not racist, any would fit, as long as it is cheap and powerfull enough, and easy to reprogram/design/whatever.

It just that my brother is into those FPGA at the moment, but the main stuff would be price and easysupply... and "easy" reprogramming.




MacDeath

QuoteEpic...
Good to see you understand french humour. ;)


Yeah, FPGA is Xilinc technology Amirite ?
PIC perhaps would be good enough ? (I didn't say spics... :laugh: )


What are the basic different reprogramable chip families ?

Bryce

With Atmel or Microchip, they offer a whole range of chips of varying specifications. Starting from 8 pin really basic 4Mhz devices right up to major µPs >100Mhz. Depending on what you intend to build, you can choose first what family of device you want, such as 8-Bit /  16-Bit, then choose the amount of RAM / Program ROM the device should have and then what additional features it should have. The features range from basic A/D conversion, Serial / SPI ports right up to embedded USB controllers. It's up to you to choose what you want, you'll usually find a device to fullfil your requirements. As far as programming is concerned, if you can program z80 assembler, you'll have no problem writing stuff for a µP. Getting the program into the µP is also quite simple, you can build your own programmer for very little <2€

Microchip have an online product selector here: http://www.microchip.com/productselector/MCUProductSelector.html  that you can mess about with and see what's available.

Bryce.

MacDeath

The choice of FPGA was simmply that is was powerfull enough to allow a "universal" stuff...
I mean, it's fast...
So we can homebrew anything with the same component...

freemac

In fact it was one of the first topics I have read about CPC on FPGA. And as it was macdeath that invite me by there... I glue here.



I'm not really a famous chip welder, it's why I use directly standard FPGA starter kit, that can be buy on my country. Using starter-kit I think that it is encouraging the open source development way.


I started implementing an Amstrad CPC 6128 on "NEXYS2 500k-gates" FPGA starter-kit from digilent (the one who made wire used in order to program FPGA...)
It take actually about 99.9% percent of the FPGA chip... but it exists some about 1200k-gates.
They are about 20 games actually running.


This is at step of prototype (staying some bugs and some tests not done already), in fact it was written in VHDL language, so it's not CPC TREX (I think that CPC TREX is in verilog, C-ONE also is in verilog)


It was written in 5 month, with one different target task by month (having something on screen, having screen moving, having sdcard...)
So it was developed in order to run quickly (before I'll return at work in fact ^^)


Great thing discovered is that Amstrad can boot with a FAKE-IO component (returning zeros on data while Z80 IO access), and an static ROM correctly dispatched on Z80 MEM READ access, and a RAM on Z80 WRITE access. Then RAM has correct reaction on display area &C000-&FFFF. So second step was made some VGA-module and alternate between RAM written by Z80 and read by VGA module.


Sound chip was already written on fpgaarcade, and VHDL PPI CPCWiki work fine.


I'll came back to write about other strategic I used

MacDeath

Hi Freemac, and welcome aboard.

Just to remind all the achievment unlocked :



http://www.youtube.com/results?search_query=fpga+amstrad+CPC&aq=f
You did a lot of videos...


Another cool stuff :
CPC TREX :



FPGA Atari ST :

http://stlabs.free.fr/
"ST in a box"

Fun stuff :
http://www.arduino.cc/playground/Main/SID-emulator

Perhaps i can have a proper SID on my 6128PLUS then...

http://tolaemon.com/hplayer/
an AY player, hence the plAYer.
but this one seem to use real chip.

Bryce

I suggested a CPC SID interface (for a real CPC) a while back and the feedback was negative, so I dropped the idea.

@Freemac: Nice work.

Bryce.

steve

If you want an extension board to a real CPC, then I would suggest the first thing would be to give it all the PLUS features, DMA can also speed up disk transfers, 16 AY sound channels fed by DMA, It could have 8MB dynamic ram- 4MB as RAM and 4MB as ROMs loaded from disk, SD or CF slots x 2 to allow easy card copying and perhaps an Ethernet port.

If you want you CPC to grow up and be really special then you can add a blitter, 3d core and a 32 bit Z380 compatible CPU softcore, or 4 QUADCORE!

Bryce

Or just buy a PC with all that and install an emulator? :D

Bryce.

steve

I really don't like PC's, as soon as I can access the net on my CPC, my PC will go out the window.

Z80 FOREVER!

P.S  Have you been reading about how none of the emulators are perfect?

steve

I do not want to be a passive PC user, I want the challenge of enhancing the hardware and software of a CPC/PLUS to do the things that a PC can do, granted it won't be as fast as a PC, but it may be fast enough.

Shredder11

Quote from: Bryce on 12:36, 05 July 11
I suggested a CPC SID interface (for a real CPC) a while back and the feedback was negative, so I dropped the idea.

@Freemac: Nice work.

Bryce.


Oh the shame and the stigma!  :-[ :o




....only kidding!  :laugh:
Amstrad CPC6128, 3.5" Ext' Floppy, SD HxC Floppy Emulator

Bryce

@shredder11 :D Yeah, that was the reaction when I suggested it last time.

@Steve: That's why I only use real hardware. They're not perfect either, but the flaws are retro too :)

Bryce.

OCT

Quote from: Bryce on 12:36, 05 July 11
I suggested a CPC SID interface (for a real CPC) a while back
I recall there actually was a DIY SID interface, stereo even, IIRC in the early 1990s.
It could be that it wasn't just advertised for the CPC but rather sitting on a standard parallel printer port and also geared towards the Amiga/Atari/PC (maybe in Elektuur/Elektor rather than one of the CPC mags?).

MacDeath

QuoteIf you want an extension board to a real CPC, then I would suggest the first thing would be to give it all the PLUS features, DMA can also speed up disk transfers, 16 AY sound channels fed by DMA, It could have 8MB dynamic ram- 4MB as RAM and 4MB as ROMs loaded from disk, SD or CF slots x 2 to allow easy card copying and perhaps an Ethernet port.

If you want you CPC to grow up and be really special then you can add a blitter, 3d core and a 32 bit Z380 compatible CPU softcore, or 4 QUADCORE!
sorry guy but this looks too much.

To me a proper Amstrad CPC's successor should be like :

=able to produce ZX speccy, Amstrad CPC, Amstrad PLUS and PCW full compatibility.

=able to cumulate all those computers advantages into one...
So :
=Plus palette (4096 would be enough)
=CPC's bit per pixels modes... also the Mode3 and a 1bpp 320x200 mode, with use of attributes possible in all modes...
=overclocked bpp modes... so a 160x200x256/320x200x16/640x200x4... also with possibility of attributes (except perhaps for the 256colours mode...)

=more sprites (perhaps 32...64?) and faster to upload/refresh into "ASIC"...
Also sprites in 16x16 in 256colours, or 32x16 in 16 colours...

=still possibility for "overscan (as on CPC or PCW...


Scrollings...
Also some bits of blitters, even a math coprocessor (would be usefull for 3D...)


VGA plug so the vertical resolution could also be doubled, but also divided by 3 (like 160x100 square big pixels...)

Interrupts to mix vertically the various modes...
Attributes can be used to define modes (in the same bpp range...per scanline) so be used as some sort of vertical rasters...



Can you imagine a mode2 in 4 colours and attributes of 4x8 per exemple ?
or even a 640x400x4 + 8x8 attributes...


Sounds ?
2 AY should be enough : one in CPC setting and the other in speccy config, full DMA of course (not buggy this time)
Add to this one buzzer/beeper too, perhaps stereo (2 Beeper channels then ? 3 ?)

Z80 ? 4mhz (to emulate properly other systems) 8mhz, 16mhz... perhaps even 32mhz ?

Remember the 16mhz PCW's Z80 ?


::)   

Off course this machine should be able to emulate NEC PC 6xxx too... so perhaps had also some synthspeech and so on. ;D

Bryce

@OCT: I subscribe to (abonniere) Elektor since 1984 and have the entire collection on DVD. I'll see if I can find that, would be interesting for the Wiki.

Bryce.

Powered by SMFPacks Menu Editor Mod