Coder Social home page Coder Social logo

bynaryman / suf Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 131.44 MB

SUF is a SUperset Framework for OpenROAD that acts as an enhancement graft by augmenting the original capabilities.

License: Other

TeX 32.59% Python 66.89% Makefile 0.29% Tcl 0.24%
arithmetic artificial-intelligence async asynchronous-tasks eda framework latex matplotlib numpy open-source openroad python silicon virtual

suf's Introduction

SUF

SUF is a Superset Framework for OpenROAD that acts as an enhancement graft by augmenting the original capabilities. This repository and documentation are works in progress (WIP), especially as I will soon provide example scripts to demonstrate the capabilities of this framework with multi-parallel PDK compilation.

Table of Contents

Overview

TL;DR

Are you interested by OpenROAD or the evolving domain of modern, open-source, rapid EDA tools for silicon design? This project operates as an enhancement graft that augments OpenROAD's capabilities. By cloning this repository, you will obtain both OpenROAD and a suite of Python tools adept at managing the process from input generation to generating detailed output plots in a parallel fashion. For a swift overview after cloning and setting up, as detailed in the subsequent sections, a user can engage with the available commands/scripts as follows:

  1. Clone the repository.
  2. Install as per the instructions below.
  3. cd graft_road/ to browse its structure.
  4. ls -la to examine the file organization.
  5. . ./venv/bin activate activate virtual environment
  6. cd tools
  7. ./run_example to generate HDL for various designs with different PDKs and initiate the OpenROAD flow concurrently.
  8. ./plot_example to reveal the plotting capabilities.

Graphically Speaking

Overall, SUF framework is best represented with the following Figure SUF Overview

Organization Hierarchy

file hierachy with explanations

Installation Instructions

The graft_road directory contains the necessary submodules for translation tools. To clone graft_road and its submodules, use the following commands:

git clone --recurse-submodules https://github.com/Bynaryman/SUF.git
cd SUF/graft_road/translation_tools

How does it work ?

The main initial feature is the parallel and asynchronous nature of SUF. With a class named scenario (located at ..) that relies on python async facilities, and a graph describing actions and their interdependencies, the execution is made through several threads and waits for the results and orchetrate next tasks lunching several OpenROAD flows in parallel to a certain controllable amount. When finished up to a certain point in the compilation flow, this graph still has the information of all designs and one last action thread can gather data to plot them.

Poster Presentation

We had the opportunity to present our work at the 2024 4th Workshop on Open-Source Design Automation (OSDA), alongside the highly regarded International Conference on Design, Automation and Test in Europe (DATE). This event took place on March 25, 2024, at the Palacio De Congresos Valencia (Valencia Conference Centre - VCC) in Valencia, Spain. Below, you'll find the details of our presentation, including a preview of the associated poster and guidelines for academic citation.

Poster Preview

OSDA Valencia Date Preview

How to Cite

For those interested in citing this work in academic studies, please use the following BibTeX entry:

@inproceedings{LedouxCasas2024,
  title={The Grafted Superset Approach: Bridging Python to Silicon with Asynchronous Compilation and Beyond},
  author={Louis Ledoux and Marc Casas},
  booktitle={2024 4th Workshop on Open-Source Design Automation (OSDA), hosted at the International Conference on Design, Automation and Test in Europe Conference (DATE)},
  venue={Palacio De Congresos Valencia (Valencia Conference Centre - VCC), Valencia, Spain},
  date={March 25, 2024},
  year={2024},
  organization={OSDA},
  note={Available online soon.}
}

Or with the following text:

  • Louis Ledoux and Marc Casas. (2024). "The Grafted Superset Approach: Bridging Python to Silicon with Asynchronous Compilation and Beyond." Presented at the 2024 4th Workshop on Open-Source Design Automation (OSDA), International Conference on Design, Automation and Test in Europe (DATE), March 25, Valencia, Spain. Available online soon. Or in text:

Authors

How to Contribute?

We're excited you're interested in contributing to our project! Here are a few ways you can help:

  • If you plan to use it, please don't hesitate to email us. Your insights and feedback can help us improve.
  • If you've used it, we would greatly appreciate a mention or citation. It helps spread the word and recognize our efforts.

For those interested in direct code contributions, here's how you can get started:

Pull Requests

We're open to pull requests! If you have a feature enhancement, a bug fix, or new functionality you'd like to add, please follow these guidelines:

  1. Fork the Repository - Begin by clicking the "Fork" button at the top-right of this page. This creates your own copy of this project in your GitHub account.

  2. Clone the Repository - Navigate to your GitHub profile, find the forked repository, click on the "Code" button, then click the "Copy to clipboard" icon. Use the following command in your terminal to clone the repository:

git clone "url you just copied"
  1. Create a New Branch - Once you've navigated to the repository directory on your computer, it's time to create a new branch. This keeps your changes organized and separate from the main branch:
cd repository-name
git checkout -b your-new-branch-name
  1. Make Necessary Changes and Commit Them - With your new branch ready, you can start making changes or additions to the project. Once you're done, add these changes to your local repository using:
git add .
git commit -m "Brief description of your contribution"
  1. Push Changes to GitHub - After committing your changes, you're ready to push them to your forked repository on GitHub. This is done with the following command:
git push origin <your-branch-name>

By following these steps, you're well on your way to contributing to the project. We're thrilled to see what improvements and innovations you bring to the table. Thank you for considering contributing to our project!

License

Academic Free License (โ€œAFLโ€) v. 3.0

suf's People

Contributors

bynaryman avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.