https://github.com/jpt13653903/alcha
A New Programming Language for FPGA Projects
https://github.com/jpt13653903/alcha
fpga hardware-description-language programming-language
Last synced: 7 months ago
JSON representation
A New Programming Language for FPGA Projects
- Host: GitHub
- URL: https://github.com/jpt13653903/alcha
- Owner: jpt13653903
- License: gpl-3.0
- Created: 2018-07-14T08:50:49.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-01-23T10:28:47.000Z (12 months ago)
- Last Synced: 2025-01-23T11:29:07.340Z (12 months ago)
- Topics: fpga, hardware-description-language, programming-language
- Language: C++
- Homepage: https://sourceforge.net/p/alcha/wiki
- Size: 3.99 MB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: Readme.md
- Contributing: Contributing.md
- License: License
- Code of conduct: Code_of_Conduct.md
Awesome Lists containing this project
README
# ALCHA
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.
Development is happening in the [develop](https://github.com/jpt13653903/ALCHA/tree/develop)
branch, so it's best to track it instead of master. The latest stuff is in feature branches.
## Features
- 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
## How to Build
When cloning the repository, remember to also clone the sub-modules.
### Windows
1. Install [TDM GCC MinGW](http://tdm-gcc.tdragon.net/) version 5.1.0 or newer. Currently, only the 32-bit version links to the libraries provided.
1. Open a POSIX-like terminal (such as [git bash](https://git-scm.com/)).
1. Change directory to the project folder.
1. Run `mingw32-make`
### Linux
1. Install a C++11 capable version of GCC.
1. Open a bash (or sh) terminal.
1. Install the development versions of `libgmp`, `libmpfr` and `libfftw3`. 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`
1. Change directory to the project folder.
1. Run `make`
## Running Test Cases
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).
## More Information
Alcha was the subject of [a PhD thesis](http://hdl.handle.net/11427/37117).
See the [Wiki](https://sourceforge.net/p/alcha/wiki) for more information.