Title | pde2hw (FPGA-based hardware prototypes in Processing) |
Author | Nikolaos Kavvadias 2014 |
Contact | nikos@nkavvadias.com |
Website | http://www.nkavvadias.com |
Release Date | 15 October 2014 |
Version | 0.0.0 |
Rev. history | |
v0.0.0 | 2014-10-15 First public release containing three hardware prototypes (gensca, imgsynth, rugca). |
pde2hw is a collection of standalone hardware prototypes that have been written in the Processing programming language (http://www.processing.org). The Processing codes that comprise this collection have been verified in FPGA-based hardware by using a high-level synthesis approach from ANSI/ISO C. The HLS tool that was used for the final implementation is HercuLeS: http://www.nkavvadias.com/hercules/
pde2hw comprises of the following applications:
It should be mentioned that while the Processing prototypes are meant to serve as early-stage experiments prior dedicating to hardware, the first three cases (gensca, imgsynth, rugca) are post-mortem prototypes, i.e. the Processing codes had been developed after the FPGA implementations (which were synthesized to VHDL using HercuLeS).
The pde2hw distribution includes the following files:
/pde2hw | Top-level directory |
AUTHORS | List of pde2hw authors. |
LICENSE | The modified BSD license governs pde2hw. |
README.html | HTML version of README. |
README.pdf | PDF version of README. |
README.rst | This file. |
rst2docs.sh | Bash script for generating the HTML and PDF versions. |
VERSION | Current version of the project sources. |
/src/gensca | Processing code for gensca |
gensca.pde | The gensca application. |
/src/imgsynth | Processing code for imgsynth |
imgsynth.pde | The imgsynth application. |
/src/rugca | Processing code for rugca |
rugca.pde | The rugca application. |
gensca is a generic implementation of the Generations automaton (2D, outer totalistic with decay).
Generations rules are defined in the "S/B/C" form, where:
imgsynth is a static image synthesis engine for testing various algebraic effects.
The following triplets of two-variable functions which follow the form R_f(x,y), G_f(x,y), B_f(x,y) for each color component R, G, B have been tested:
to which optionals masks can be applied.
rugca is the Generic implementation of a rug-like automaton (2D).
Rug rules are averaging rules using the full range of 256 possible states. To update itself in a Rug rule, every cell takes four steps.
In order to execute the Processing applications, you have to invoke the Processing environment/IDE and then press the Run button with the application loaded (and visible in the editor).
Alternatively you can simply double-click on the *.pde file that contains the application (Windows).
Processing IDE (http://www.processing.org)
The applications have been tested with version 2.2.1 of the Processing environment on Windows.