FPGA-MAFIA / fpga_mafia

Designing a Multi-Agent Fabric Integration Architecture to run on de10-lite FPGA.
MIT License
13 stars 5 forks source link
fpga hardware manycore mesh risc-v riscv

mafia_level2

Current Development Status:

This project is currently a work in progress (WIP). We are in the process of enabling and integrating individual IPs.
Working diligently to deliver a fully functional fabric by May 1, 2024.
Stay tuned for updates!

FPGA Multi-Agent FabrIc Architecture (MAFIA)

Welcome to the MAFIA Project, a initiative aimed at designing a System-on-a-Chip (SoC) Tile-based mesh fabric.
Our architecture is designed to be highly versatile, capable of incorporating a variety of functionalities.
This includes, but is not limited to:

Project Overview

The MAFIA Project is developed by final year Electrical and Computer Engineering students at Bar-Ilan University and the Technion in Israel. We aim to design a System-on-a-Chip (SoC) tile-based mesh fabric for integrating diverse range of IPs and functionalities. Key features and capabilities include:

Technology Stack

Main Components:

Our architecture consists of the following key elements:

Software Stack to run on SoC:

Our system runs on a simple proprietary RISCV embedded OS like system and includes:

The diagram below provides a visual representation of the project's hardware architecture.
image

Getting Started

For best experience we recomended using a windows machin running vscode + gitbash.
To see the build and run options, use the following command: python build.py -h
For any issue please see here: fpga_mafia/discussions
Please add your question discussion tab

A tutorial for getting started with the tool chain:

https://fpga-mafia.github.io/fpga_mafia_wiki/docs/build_script/intro

Prerequisite

Before you start, make sure you have the following tools and software installed:

Inspiration Behind the Project:

This project draws inspiration from innovative players in the field of computing.
These include:

Troubleshooting Common Issues

Issue: 'ModuleNotFoundError: No module named 'termcolor''

Solution: Run the following command to resolve this issue:

pip install termcolor

'riscv-none-embed-gcc.exe' is not recognized as an internal or external command
Solution: Add the following line to your ~/.bashrc file:

export PATH=$PATH:/c/Users/'user_name'/AppData/Roaming/xPacks/riscv-none-embed-gcc/xpack-riscv-none-embed-gcc-10.2.0-1.2/bin
Then, reload the bashrc file with this command:
source ~/.bashrc

'quartus_map' is not recognized as an internal or external command, Solution: Add the following line to your ~/.bashrc file:

export PATH=$PATH:/c/intelFPGA_lite/20.1/quartus/bin64/
Then, reload the bashrc file with this command:
source ~/.bashrc

Quick Access Commands

For easy access, you can run the following commands in the GitBash shell for Windows: ./build.py -h
./build.py -dut big_core -tests alive -app -hw -sim ./build.py -dut cache -tests cache_alive -hw -sim -pp ./build.py -dut sc_core -tests alive -full_run