Jump to content
IGNORED

it's fun to play on the F. P. G. A.


Recommended Posts

The MiSTer project suggests that "hybrid-emulation" is a simple mix of FPGA + traditional CPU. Some parts are emulated in the FPGA, and others in the ARM CPU.

 

It seams that the MISTer used the ARM SoC for the overlay menu and SD card loading. The FPGA cores are still used for simulation. I have not seen a traditional Emulator running on the ARM side yet.

Link to comment
Share on other sites

 

It seams that the MISTer used the ARM SoC for the overlay menu and SD card loading. The FPGA cores are still used for simulation. I have not seen a traditional Emulator running on the ARM side yet.

A simple ARM (especially old ones) is more than adequate and easy to program a menu. I assume once something is selected, it reconfigures the FPGA and runs the intended system core. I also doubt highly that any ARM core built into FPGA will be fast or complex enough to house it's own emulator. GBA runs emulated games however, so you could emulate those games on a GBA core. That would be redundant though and inferior to a native FPGA core.

Link to comment
Share on other sites

It looks like there also might be a hybrid FPGA/ARM in the works for RetroArch, read the discussion here: Has anybody used Zynq for FPGAgaming?

 

You may also want to check the recent discussion at byuu's [higan developer] message board on whether FPGA is emulation or not in the context of the Super Nt announcement.

Edited by retro_fan
  • Like 1
Link to comment
Share on other sites

Rightly or wrongly, the way I see it is that a good and desirable system should have the FPGA being commanded by an outboard microprocessor. A microprocessor that can draw menus, interface with ports & USB, perform file management tasks, program the FPGA and reprogram it again on the fly. The best world would be incorporating the FPGA into a modern PC, and just rely on it to enforce timings. Different thinking for sure.

Link to comment
Share on other sites

No reason it couldn't be like a vintage Voodoo board, that has pass-through video. Or be like the 3DO Blaster or Jaguar Development system. A completely independent system that either communicates by USB or PCIe, but has access to all the amenities a host PC can offer.

 

The concept for all three is proven and feasible.

Edited by Keatah
Link to comment
Share on other sites

It looks like there also might be a hybrid FPGA/ARM in the works for RetroArch, read the discussion here: Has anybody used Zynq for FPGAgaming?

 

You may also want to check the recent discussion at byuu's [higan developer] message board on whether FPGA is emulation or not in the context of the Super Nt announcement.

Oh lovely, 8 pages of arguing about the definition of emulation.

 

Though this on page 9:

 

 

The 240p that is in the HDMI standards isn't the 240p you're thinking of, though. The "240p" used by consoles included the blank fields in their output height, which the 240p standard does not (as expected, since "progressive" means "use all the fields all the time"). A hypothetical console that output the actual 240p standard would produce a half-height image crammed up at the top of the screen.

 

This is absolutely correct. If you connect a real SNES using the Luma signal from the S-Video to the Green cable on a component-capable television, what you get is 1440x240x59.97 , if the television works correctly, it will still fill the screen. The HD Retrovision cable basically does this for the SNES Component video cable. On my capture hardware it produces a 1440x240 image that has to be stretched to fit.

 

Back on topic.

 

If we really wanted a general-purpose FPGA console/computer, someone has to actually keep on top of what is put out by the FPGA manufacturers and compile working cores for each one, while also producing a PCB with the necessary parts. That's a lot of work for a fringe market. Even if the cores were open-source, that just leads to forking and feature creep. Some OSS projects manage to herd catty devs.

 

Like the NT Mini basically proved there is a market for a FPGA console, so I'm glad Analogue took a risk and built it, but they kinda overkilled it, thus demands for the same features on the Super NT. Had the NT Mini not had the analog outputs, there would likely not some people begging for it on the Super NT, but then again you have to remember why the Analogue NT existed in the first place (original NES parts were used before.) So you can't just cut a feature after it originally had it. The Super NT however is not introduced with the analog outputs, and, the SNES in the first place actually generates a RGB signal, so that is the native format, though not directly usable.

 

I expect to see the same (game console/computer cores) features the NT Mini has. I don't care too much about analog output, especially since most old CRT's were never that good in the first place.

Edited by Kismet
Link to comment
Share on other sites

The VeriSNES has been ported to MiSTer, although it's not yet released to the public:

 

Both MiST and MiSTer use an ARM microcontroller to reprogram the FPGA on he fly, and handle both USB and SD card access. It's nice because it simplifies the functions that a core must handle and because changing systems is just a menu away without rebooting.

 

What I also find interesting is that the MiSTer is "just" a custom firmware and SDRAM expansion on top of an industrial board (Terasic DE10 Nano SoC Kit), so it's a bit more powerful than custom PCBs for the same price.

 

If anything MiSTer is more like a spec/standardization to assign pins for certain functions. For example there is an optional VGA out board which cores can support.

 

And standards are good, because it will make moving to future boards easier. :)

Edited by Newsdee
  • Like 3
Link to comment
Share on other sites

Both MiST and MiSTer use an ARM microcontroller to reprogram the FPGA on he fly, and handle both USB and SD card access. It's nice because it simplifies the functions that a core must handle and because changing systems is just a menu away without rebooting.

 

 

I find these two fragments from the MiSTer Wiki intriguing:

 

"Linux on ARM provides support for many I/O devices and file systems."

 

"Talking about the Linux, most people will think "Oh, Linux will take a lot of time to load." It's not true in this case. The Linux used on this board is specially tweaked and takes only 2 seconds to boot. Usually monitor/TV requires longer time to lock the video and start to display. So usually board is ready sooner than TV start to display the video."

 

It looks like this Linux version has been very nicely streamlined.

Link to comment
Share on other sites

The VeriSNES has been ported to MiSTer, although it's not yet released to the public:

 

Both MiST and MiSTer use an ARM microcontroller to reprogram the FPGA on he fly, and handle both USB and SD card access. It's nice because it simplifies the functions that a core must handle and because changing systems is just a menu away without rebooting.

 

What I also find interesting is that the MiSTer is "just" a custom firmware and SDRAM expansion on top of an industrial board (Terasic DE10 Nano SoC Kit), so it's a bit more powerful than custom PCBs for the same price.

 

If anything MiSTer is more like a spec/standardization to assign pins for certain functions. For example there is an optional VGA out board which cores can support.

 

And standards are good, because it will make moving to future boards easier. :)

Correct me if I'm wrong, but won't the ARM handling I/O instead of directly byt the FPGA, cause the very same latency issues, which is one of the cheif advantages of FPGA over emulation? (besides realtime bus interface)
Link to comment
Share on other sites

Correct me if I'm wrong, but won't the ARM handling I/O instead of directly byt the FPGA, cause the very same latency issues, which is one of the cheif advantages of FPGA over emulation? (besides realtime bus interface)

I don't think so, at least I haven't noticed any difference between using DB9 inputs or USB on the MiST, or any problems on MiSTer. Can you suggest a way to test? I'm happy to try it and report.

 

Lag usually happens because the CPU can only do things sequentially and it has to spend some cycles in emulating the machine on top of reading inputs. In these boards the ARM CPU is only doing the I/O with the rest handled by the FPGA, so it is able to poll and process USB at a much faster rate.

 

Anyway if it were to be a problem, there are GPIO pins still unassigned that so could be used to wire inputs directly to the FPGA. Advantages of using a dev board as base :)

Edited by Newsdee
Link to comment
Share on other sites

Checked some numbers: a cheap USB adapter polls at 100 to 125 Hz, good ones increase that to 1 Mhz. Here we have an ARM CPU running at 800 Mhz that only has to run I/O and a barebones OS. Even with overhead, pretty sure it can match the 1 Mhz from controllers.

Edited by Newsdee
Link to comment
Share on other sites

Bunch of new cores came out for the MiSTer:

Edited by Newsdee
Link to comment
Share on other sites

Not if you do IO directly to/from the FPGA chip. And use the ARM for setup and config and care & feeding. Not unlike the early 3DFx boards.

Well early 3DFX boards used an analog switch. It would be identical to using a mechanical VGA switch to switch between the 2D card and 3D card, though the quality of the switch and cables left a lot to be desired.

 

Like I'd reasonably expect a ARM+FPGA solution to have the FPGA do everything, and the ARM side only handles a "mechanical" i/o switch to switch the video graphics and controller/keyboard input back to the ARM side when the FPGA is "rebooted" , when the FPGA is running, the input is on the FPGA side and a watchdog process on the Linux side monitors for the FPGA to send a "suspend" state before switching back i/o to the ARM side.

 

What would induce latency is actually running the video as a frame buffer full time, (typically to have overlay menus) by which you then have to buffer the audio and input. There are things like LD Arcades (which use an Amiga+Genlock+LD Player) and MPEG cards in PC's that essentially require overlay support of some sort, and that is more easier achieved using a frame buffer if it's just playing video.

Link to comment
Share on other sites

Yes. Something like that thanks for the elaboration.

 

I would want the ARM to handle menus and rom selection and core configuration and setup - otherwise a whole new mini-OS needs to be written. It can be done, it has been done, but I still want all the features of an existing OS. Why reinvent the wheel?

Link to comment
Share on other sites

I would want the ARM to handle menus and rom selection and core configuration and setup - otherwise a whole new mini-OS needs to be written. It can be done, it has been done, but I still want all the features of an existing OS. Why reinvent the wheel?

This is exactly how the MiSTer and MiST operate. The FPGA runs completely in parallel to the ARM side and they only communicate for SD card access and hardware signals (e.g. controller inputs). The video output is connected to the FPGA directly so there is no lag. To be clear: MiSTer has a full blown OS and MiST has a custom firmware for an arduino-like microcontroller, but both provide similar features to the FPGA.

 

Memory is also separate. The FPGA on the MiSTer (one of the Cyclone V models) has about 700k internal memory, and the board has 1GB of DDR RAM connected to the ARM. To supplement this the MiSTer uses an add-on board with 32MB of SDRAM connected to the FPGA. So the ARM and FPGA aren't competing for resources.

 

I'm really liking the MiSTer with its Linux ARM kernel, I can login to it via Ethernet and upload files to the SD card via FTP while an FPGA core is running, while having debug output on a terminal console (via USB serial connection). Not too shabby for a stock board plus a memory add-on :)

Edited by Newsdee
  • Like 1
Link to comment
Share on other sites

I'm not surprised that many chips started as FPGA, only thing is that the devices must have been super expensive back in the days of the Super FX.

 

The SNES Emulator SE, ICE (In Circuit Emulator) had a bunch of FPGA/CPLD's there were three of them (one on the CPU, Midi and Video boards.)

 

Notice the Xilinx chip on the CPU board.

34gabh5.jpg

 

Given the age, it's very likely these are CPLD's that use EEPROM, not flash rom.

Link to comment
Share on other sites

Found and interesting article:

https://www.eejournal.com/article/20131203-dead/

 

FPGAs have been with us for the better part of three decades now. As electronic engineers, we see them everywhere. They are as ubiquitous on circuit boards as fax machines and typewriters in offices. Its hard to imagine doing a digital design without one. The FPGA is our digital duct tape [link]. Its our do-all, catch-all, connect-anything-together, fix-the-last-minute-oversight, future-proofing, standards-hopping, jack-of-all-chips.

 

Spoiler: this 2013 article is describing how FPGAs were becoming something else as a hybrid CPU + FPGA chip, which is indeed the case in Altera's Cyclone V series for instance.

Link to comment
Share on other sites

  • 2 weeks later...

Have you heard about MicroCore Labs' FPGA implementations of retro CPUs? Check out the blog with a lot of interesting details and photos, there are also links to YT videos which show how these can be used as drop-in replacements for original CPUs. Recently one of the cores has even been open sourced.

That's very interesting. There are versions of these CPUs in open source but they are not necessarily cycle accurate. This might help several projects as drop-in replacement.
Link to comment
Share on other sites

For those of you interested in MiSTer, you can order assembled SDRAM boards from here:

https://www.cbmstuff.com/products.php?cat=3

 

The base DE10 board can be bought in Digikey:

https://www.digikey.hk/product-detail/en/terasic-inc/P0496/P0496-ND/6817231

 

These two pieces are the bare minimum to run most cores with HDMI output. There is a separate I/O board with VGA but you can get it later on.

 

Together the two boards will cost you about $150 (plus shipping). You can find a list of available cores here:

https://github.com/MiSTer-devel/Main_MiSTer/wiki

Edited by Newsdee
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...