Menu

Tree [6c6c2c] master /
 History

HTTPS access


File Date Author Commit
 .github 2020-11-22 John-Philip Taylor John-Philip Taylor [a0a5eb] Updates to the issue templates
 Notes and Ideas 2020-01-25 John-Philip Taylor John-Philip Taylor [752c2e] Removed trailing spaces from source files
 Simulation 2020-05-04 John-Philip Taylor John-Philip Taylor [64030e] Adding literals is working
 Source 2020-05-04 John-Philip Taylor John-Philip Taylor [15a82c] Implemented division
 Syntax Highlighting 2021-05-09 John-Philip Taylor John-Philip Taylor [f6bd38] Added the finally keyword to alcha.vim
 TestCases 2020-05-04 John-Philip Taylor John-Philip Taylor [e77fd5] Housekeeping: testCombinational
 Wiki 2023-07-14 John-Philip Taylor John-Philip Taylor [e9a8d0] Minor correction to the PhD reference in the Wiki
 .gitignore 2019-03-13 John-Philip Taylor John-Philip Taylor [c04e88] Housekeeping
 .gitmodules 2018-07-14 John-Philip Taylor John-Philip Taylor [829e27] Removed username from .gitmodules
 Code_of_Conduct.md 2019-03-09 John-Philip Taylor John-Philip Taylor [8a7a6b] Renamed upper-case files to title-case
 Contributing.md 2019-03-09 John-Philip Taylor John-Philip Taylor [8a7a6b] Renamed upper-case files to title-case
 License 2019-03-09 John-Philip Taylor John-Philip Taylor [8a7a6b] Renamed upper-case files to title-case
 Makefile 2020-01-18 John-Philip Taylor John-Philip Taylor [b44cfc] Fixed the testScanner and testParser executable...
 Readme.md 2024-12-29 John-Philip Taylor John-Philip Taylor [6c6c2c] Update Readme.md with a pointer to the develop ...

Read Me

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
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 version 5.1.0 or newer. Currently, only the 32-bit version links to the libraries provided.
  2. Open a POSIX-like terminal (such as git bash).
  3. Change directory to the project folder.
  4. Run mingw32-make

Linux

  1. Install a C++11 capable version of GCC.
  2. Open a bash (or sh) terminal.
  3. 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
  4. Change directory to the project folder.
  5. 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.

See the Wiki for more information.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.