[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[f-cpu] F-GPU : a hardware platform to develop the F-CPU



Hi !
The recent revival of the list has brought many positive things !

Currently, no actual work can start (and I have no idea when it will
be possible) but before we can, it's important to redefine where
we're going and how to get there.

15 years ago we were focused mainly on developing an architecture
and instruction set, but the efforts exhausted around 2004.
This was due, among others, to the lack and heterogenity of the
available development tools, and of a clear, affordable and
non-cpu-nerd-centric application. We tried to do too much and
for too many applications and it couldn't do any of it, it was
even lacking a hardware target.

I have since worked on developing a suitable, free and cost-effective
CPU design environment, which is now called YGWM http://ygwm.org
as I'm forking it from the YASEP project http://yasep.org
(sometimes referred to as "a toy CPU" but it's beyond that, today)

In YGWM, the specifications of the architectures are written in JavaScript
so newcomers can evaluate and play in their browser without installing
anything (this entry barrier prevented F-CPU from reaching more people).
Fast emulators can then be written in C and gate-level VHDL
can be simulated with the free GHDL simulator. Using HTTaP http://httap.org it is possible to keep a uniform interface to explore and debug all those
versions.

The YASEP works "more or less" and needs more development. The more
tools I make, the faster it gets. Once it gets good enough to talk
over Ethernet, it will replace the Raspberry Pi currently employed
to provide the programming web interface (HTML+CGI with Apache).
I am now quite fluent with the Actel/Microsemi ProASIC3/Fusion family
and I plan to support the much better Igloo2. Once again, my professional
projects meet my hobbies and each feeds the other.


And now, it gets really fun.


F-CPU can inherit from most of this work and share tools with the YASEP
(I'll even confess I've made them with the F-CPU in mind).
Now, the YASEP progressed because there was a need for this flexible, small CPU. Similarly, the F-CPU needs an actual, simple and yet generic target, or else it will
not progress.

In 2009 I studied such a target : the report was presented at HSF2009,
the (french) slides are there : http://ygdes.com/HSF2009/HSF2009_GPL.html GPL is a pun for Gaming Platform Libre and it matches most of our requirements
from both hardware and software perspectives. It reuses the very same
basic building blocks as describes above and adds some I/O to make a
simple portable gaming console.

The modular design helps design the F-CPU : the "host" platform
is a YASEP-based development system with platform-specific extensions
while the "guest" runs the applications (games) on a swappable module
(using a FPGA or other chip of the user's choice).

The first iterations of the guest module could use a FPGA such as the
Microsemi Igloo2 and the F-CPU core could be implemented, tested,
profiled, along with its software and the software development tools
(compiler, debugger...). A gaming console will stress algorithms and
architectures with sound, graphics, storage, network, real-time,
user interface, kernel... and all the possible interactions.

It's a "free" project so people can try to turn this hack into an actual product but I will stress it again : the purpose is not to compete with the major
electronic game vendors but to have and control a FREE (libre)
development tool that is uniform among the developers.
The fact that it allows game design brings another element :
it makes it Fun, hence the "F" for the new name of this sub-project :
"F-GPU" stands for Fun Gaming Platform Unit :-P

Several people have shown interest in this sub-project,
who else is interested ?

yg
*************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxx with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/