A New Programming Language for FPGA Projects – currently in pre-alpha.
ALCHA aims to reduce FPGA project develop time by means of automation and abstraction, but without loosing the low-level control that HDLs, such as Verilog, provide.
- Compile to complete vendor-specific project from largely vendor-neutral source
- Object oriented programming model
- Proceedural state-machine programming model
- Abstract data and signal types
- Compile-time scripting
- Automated timing-requirement generation
- Bit- and timing-accurate circuit description
When cloning the repository, remember to also clone the sub-modules.
- Install TDM GCC MinGW version 5.1.0 or newer. Currently, only the 32-bit version links to the libraries provided.
- Open a POSIX-like terminal (such as git bash).
- Change directory to the project folder.
- Run
mingw32-make
- Install a C++11 capable version of GCC.
- Open a bash (or sh) terminal.
- Install the development versions of
libgmp
,libmpfr
andlibfftw3
. On Ubuntu, this can be achieved with:sudo apt-get install libgmp-dev
sudo apt-get install libmpfr-dev
sudo apt-get install libfftw3-dev
- Change directory to the project folder.
- Run
make
To run the test cases, change directory into the Source
folder, then run make test????
. Replace the question-marks with the appropriate subfolder in the TestCases
folder.
The functional test-cases at the moment are:
make testButtonsToLEDs
: a minimal test-case used to test that the logic of the implemented architecture is working.make testCombinational
: A more thorough test of combination circuits (and various scripting structures).
Alcha was the subject of a PhD thesis.
See the Wiki for more information.