Skip to content

sharc-lab/LaZagna

Repository files navigation

LaZagna: 3D FPGA Architecture Exploration Tool Logo

⚠️ Note: Tutorials and documentation website are currently under development. 👷 🚧

LaZagna is an open-source tool for designing and evaluating 3D FPGA architectures. It supports customizable vertical interconnects, layer heterogeneity, and switch block patterns. LaZagna generates synthesizable RTL and bitstreams, enabling full architectural exploration from high-level specs to physical design.

Table of Contents

Installation

Before building, ensure you have all the Python dependencies installed. You can do this using:

make prereqs
pip install -r requirements.txt

Building

Build the project using make:

make all

For faster build times, use parallel processing with the -j flag:

make all -j4  # Uses 4 cores

Usage

Running LaZagna

Execute the tool using:

python3 lazagna/main.py -f <path_to_setup_file>

Optional flag: -v: Enable verbose output

Setup Files

Configuration is done through setup files. See the setup_files directory for:

  1. Setup file format
  2. Available options
  3. Example configurations

Output Structure

LaZagna generates two types of output:

  1. tasks_run/: Contains detailed results and generated RTL code
  2. results/: CSV files with placement and routing results for each benchmark

Cleaning Up

Clean specific outputs:

# Remove output files
make clean_files

# Clean OpenFPGA build
make clean_openfpga

# Clean everything
make clean

Directory Structure

To Do

License

This project is licensed under the MIT License

License: MIT

Copyright (c) 2025 Ismael Youssef

See the LICENSE file for full license details.

About

3D FPGA Architecture Exploration Tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages