Revival: an alternative to FPGAs and Emulation

Page 1/3
| 2 | 3

By Leo

Paragon (1236)

Leo's picture

17-03-2010, 10:39

Hi all,

I have notived that PARALLAX builds microcontrollers that are almost FPGA,
in fact in each microcontroller there is 8x cores (or cog) working in parallel ,
each one has local RAM and a common RAM , and each of them has a video
generator, each core is about 100MHz.

It is very well suited for single board computers with keyboard , SD slot and
video output ( composite or VGA ). There is already a tiny board that runs a
Z80 system witrh 512k ram with video output and boots CP/M from SD.
This boards costs 40usd. the Z80 only emulation takes only one core out
of the eights.

You can program it in assembler , it is not that different from Z80 asm .

Could that be a platform to implement an msx , not in an FPGA and not by emulation
running on PC ?
cheers,
Cool

you can look :
"Zicog" , for Z80 emulation in one "cog" :
http://forums.parallax.com/forums/default.aspx?f=25&m=332138
datasheet:
http://www.parallax.com/Portals/0/Downloads/docs/prod/prop/PropellerDatasheet-v1.2.pdf

Login or register to post comments

By RetroTechie

Paladin (1008)

RetroTechie's picture

17-03-2010, 23:46

These Propeller chips are very nice microcontrollers for hobbyist audio/video/homebrew gaming/robotics etc. applications. But they have nothing in common with FPGA's, that's totally different type of technology.

A Z80 emulator running on these controllers is very impressive... LOL! That said... it's just that: Z80 emulator(s) running on an advanced, multi-core microcontroller.

Personally I don't think much of it because it's too much 'in the middle' for my taste: if you're going to emulate, then emulate on the widest available, powerful platform known as PC (or Mac, or ARM-powered netbook, whatever). If you want to run real hardware, then go down FPGA or real Z80 road. But hey, that's just me... Hannibal

By bore

Expert (66)

bore's picture

18-03-2010, 08:33

Yes, those propeller microcontrollers do indeed look nice, until you look further down in the datasheet.
For example it has very limited memory capabilities. (Each cog can only access it's own set of 2k or the shared memory of 32k, but only one cog can access the shared memory at a time so to make use of them you will have to work against the 2k memory most of the time. This might not be a showstopper, you could still let the cog emulating the z80 and the cog emulating the vdp use the main memory for ram and vram if you can live with 32k in total.)

The propeller microcontroller is not useless but it is optimized for solving a specific set of problems and my guess is that emulating MSX is not one of the things that it does best. If I were to build a hardware based MSX emulator I would probably not use a propeller. But then again, I have only had a look at the datasheet. I do not have any actual experience with the chip.

By bore

Expert (66)

bore's picture

18-03-2010, 08:33

removed double post

By Leo

Paragon (1236)

Leo's picture

18-03-2010, 12:03

Yes yes , it has nothing to do with FPGA.

But FPGA are costly , you need to know VHDL , you need to synthesize it for a couple of hours , then you special cable jtag to download it
then if you have problem you need to run vhdl simulation , fot hobbyist that means also BGA package you can solder , so you need to
buy a board with extension connectors : all these ends to frankeinstein lab or dedicated pcb/design like ocm which costs $$$ to develop.

On the other Hand emulation , does not taste the same , ( by the way is FPGA emulation as well ? ) , you cant put your franky cartridge
into emulator !

This propeller allows people with no knowledge of vhdl , and light equipment to run msx on a board .
I like to see it as if it was a "FPGA programmed in assembler".

The cp/M emulator runs on more than 32kb.
This memory bandwidth limitation can also be adressed with cache ram method.

By Leo

Paragon (1236)

Leo's picture

18-03-2010, 15:49

Maybe the best idea here would be to implement a "kind of propeller" , i mean many cpus in parallel , with dedicated features
that enable to program each one to emulate msx chips but also couldbe programmed in asm to create new extensions half way
between SW/HW .
Memory would be shared between peripherals , and local memory would be used for registers settings.

all inside FPGA !

By Edwin

Paragon (1175)

Edwin's picture

18-03-2010, 22:40

Reading some of the implementation posts, I don't think a single chip will be anywhere near enough to implement a full MSX. And once you have to connect multiple, all the advantage of "easier" implementation are gone. Still a nice little chip. Might have some merit as a generic extension inside a cartridge.

By Leo

Paragon (1236)

Leo's picture

19-03-2010, 22:56

they are planning a version with 16 cores or cogs executings code 4x faster , in one chip.
have you seen hydra system , they can run large game systems :
http://www.xgamestation.com/view_media.php?id=164

By bore

Expert (66)

bore's picture

20-03-2010, 01:27

On the other Hand emulation , does not taste the same , ( by the way is FPGA emulation as well ? ) , you cant put your franky cartridge
into emulator !

Perhaps I were not able to express what I ment in my previous post.

What I mean is that if you want to create an MSX emulator in hardware you can basically do it in three possible ways.
1) Recreate an MSX in an FPGA, cycle exact and everything.
2) Write an emulator for a high end microcontroller (ARM, AVR32, Coldfire or whatever you fancy.)
3) Write an emulator for a cluster of smaller microcontrollers where each microcontroller emulates a single part of the MSX.

Now, each of those versions have advantages and disadvantages but regardless I believe that the further down you go on that list the harder it will be to get good emulation.

The propeller does not seem to be powerful enough to implement the emulator on a single cog, this more or less puts you down on step three, basically it will just be an emulator but since you have several cores/cpu's running asynchronously and a memory model that does not seem to translate to the MSX very well you have just bought yourself a set of new problems that you could have avoided by designing the emulator for a single core system.

I can of course be wrong on this and it might very well be that the Propeller is ideal for emulating an MSX but if I were to design such an emulator I would try to find an ARM9 with a MSX cartridge compatible memory interface and video output.
If no such ARM can be found I would settle for one with video output and use whatever gpio available to poll data from the cartridge.

By Leo

Paragon (1236)

Leo's picture

20-03-2010, 08:39

you are right , it must be easier to implemetn emulator on arm or even one can find little motherboard PC system .
...
I wonder how aleste 520EX does vdp emulation , without fpga , would it be possible to have msx with only v9990 and vdp's emulated on it , and what about propeller + gfx9000 ?

By matthew180

Resident (47)

matthew180's picture

18-08-2011, 21:53

Yes yes , it has nothing to do with FPGA.

But FPGA are costly ,

A 250K-gate Xilinx is $14 at Digikey. If you need a 1M-gate FPGA, then yes, they start to get expensive, but the 100K-gate to sub 1M-gate FPGAs are affordable. And devboards are *very* reasonable (less than $150) if you are serious about getting in to FPGAs. The DE0 board is nice, and so are many offerings from Digilent.


you need to know VHDL ,

Yup, you can't get around that one. But for any microcontroller, you are going to have to learn a low level assembly language to really get the performance you need. HDL is not so hard either. However, understanding computer architecture is more of the challenge really. If you take "programmer's approach" to HDL development, you will not get terribly far and your designs will be bloated.

Working with FPGAs and HDL is not like programming. Some people like to think so, but my opinion is otherwise.


you need to synthesize it for a couple of hours ,

Woah! What are you synthesizing, The Terminator? I synthesize my video chip in about 2 minutes from source to bit stream. PacMan (from fpgaarcade.com) takes about 3 minutes.


then you special cable jtag to download it

USB is special? It really depends on the end device. The development boards are going to be USB to your PC. If you make an end product, then you need some way to program you flash chips, and having JTAG is nice for testing and troubleshooting. But JTAG is a standard, and having tools is a requirement no matter what hardware you start messing with. A decent EPROM programmer costs about double what my JTAG programmer cost me.


then if you have problem you need to run vhdl simulation ,

You don't have to run simulations, it is up to you. I never did. My devboard offers other troubleshooting alternatives. Definitely troubleshooting FPGAs is harder than software, but what you are doing is way more complicated too. Like I said above, FPGAs and HDL is more about understanding computer architecture at the gate level; there is no way around that (IMO).


fot hobbyist that means also BGA package you can solder ,

You can get a lot of FPGAs in QFP packages. Granted the BGAs have more I/Os and are smaller, but it is not necessary. When I started my project I was concerned with hand soldering Fine-Pitch (0.5mm) QFPs. Now that I have done it, it's "old hat". Also, if you are making one or two boards, then you *can* solder BGAs with a hot-air rework station (which you can get a decent one for about $125.) If you are going to bulk produce your hobby project, you will have the boards machine assembled, so it does not matter at that point.


so you need to
buy a board with extension connectors : all these ends to frankeinstein lab or dedicated pcb/design like ocm which costs $$$ to develop.

Not any worse than solderless breadboards with wires and cables running everywhere. Hardware design and development is inherently "wirey". And no matter what, you need tools, it all depends on what you decide to invest in.


On the other Hand emulation , does not taste the same , ( by the way is FPGA emulation as well ? ) , you cant put your franky cartridge into emulator !

Nope, FPGAs are not emulation in the same sense as software. With an FPGA you are working with real gates. Basically it is like having an unlimited (seemingly) pile of 74LSxxx logic chips to build anything you want. With HDL you are "describing hardware". Your HDL causes gates to be wired up inside the FPGA and your design is realized in real hardware. If you "describe" an MSX computer with HDL and load it in to an FPGA, it is the same as if you had built an MSX from discrete logic chips, CPUs, etc.


This propeller allows people with no knowledge of vhdl , and light equipment to run msx on a board .
I like to see it as if it was a "FPGA programmed in assembler".

You don't "program" FPGAs. "HDL" means "Hardware Description Language", and includes such dialects as VHDL and Verilog. When you work with an HDL, you are describing what hardware will be synthesized inside the FPGA, i.e. mux, decoder, combinatorial logic, etc. and how they are wired together.

Unfortunately VHDL, and especially Verilog, have language constructs that look a lot like C, which can confuse a software programmer. When I started with FPGAs I took a programmer's perspective and quickly became frustrated and confused. It took me a few months of reading hardware architecture books before things started to really come together. I'm a self-learner and I basically took myself to school on hardware design. Some people can do that, some can't or don't care to learn such things.

As you can tell I'm a proponent of FPGAs, but I agree that they are not for everyone and not suited for all jobs. In the hobbyist community it really comes down to a choice about what you want to learn and how you want the end result to function.

If you are a software only person with no knowledge of electronics or digital logic, you will probably be unhappy and struggle with FPGAs. However, if you find the idea of making your own computer (including the CPU and other chips) from discrete chips, you will find FPGAs a fun and affordable technology to mess with.

Page 1/3
| 2 | 3
My MSX profile