Implementation of a Synthesizable AI Accelerator Using Ternary Data Representation and Systolic Arrays in SystemC
Parameterized Systolic Arrays with Ternary Arithmetic
An implementation of parameterized systolic arrays, the balanced ternary system, its addition and multiplication in SystemC
| Decimal | Balanced ternary a | Balanced ternary b |
|---|---|---|
| -1 | 0 | 0 |
| 0 | 0 | 1 |
| Or | 1 | 0 |
| 1 | 1 | 1 |
(Decimal = Balanced ternary a + Balanced ternary b - 1)
| Dependency name | Tested version | Minimum version |
|---|---|---|
| AMD Vivado Design Suite | 2023.2 | 2019.1 |
| CMake | 3.28 | 3.12 |
| Dialog | 1.3 | - |
| Distrobox | 1.7 | - |
| GNU Compiler Collection | 13.3 | - |
| GNU Make | 4.3 | - |
| Intel Compiler for SystemC | 1.6.17 | 1.6.12 |
| Stack | 2.9 | - |
| SystemC | 3.0 | 2.3 |
| SystemVerilog to Verilog | 0.0.13 | - |
| Ubuntu | 24.04 | 22.04 |
(Compatibility with other versions is possible, but not guaranteed)
curl https://raw.githubusercontent.com/libalis/bachelor/refs/heads/main/Source%20Code/sh/install.sh | bash# 1. Clone the git repository:
git clone https://github.com/libalis/bachelor.git
cd "bachelor/Source Code"
# 2. Compile using the defaults:
make clean
make
# Or using the dialog:
make config
# 3. Run the compiled binary:
./build/bachelorOpen an issue here
- Learn SystemC
- Implement Makefile
- Implement full adder
- Implement test bench
- Implement main function
- Implement balanced ternary system
- Implement balanced ternary system addition
- Implement balanced ternary system subtraction
- Implement balanced ternary system multiplication
- Implement balanced ternary system systolic array
- Make balanced ternary system systolic array parameterized
- Make balanced ternary system systolic array synthesizable
- Synthesize balanced ternary system systolic array
In active development
Robert Kagan