Giter Site home page Giter Site logo

bfasster's Introduction

Bfasster: BFASST 2.0

NOTE: As of 2024, this project is a demo of contributions towards a complete refactor of the bfasst project. It is not maintained or kept up to date. When it was created, it served as a proof of concept, which was eventually adopted and implemented in bfasst in its entirety.


This project removes a lot of overhead from the bfasst project.

  • It takes advantage of the ninja build tool to automatically handle job creation, up-to-date checking of dependencies, parallel processing, and io redirection.
  • It uses chevron, the python implementation of the mustache templating engine to template the scripts used for common operations such as synthesis and implementation of designs, and even the running of other ninja files at the top level.
  • It keeps python as its base language, rather than switching to bash in order to minimize the learning curve and maximize portability in transitioning to the new architecture.

The project is currently in demo mode, with few designs and flows supported as compared to the original bfasst. The hope is to migrate all flows and designs from the original project over to this new architecture.

Usage:

There are two steps two running any flow with any design(s): a ninja generation step and a run step. For convenience, a script is included to execute both steps sequentially with a single command:

Usage:
    python bfasster.py [--yaml YAML] [--design DESIGN] [--flow FLOW]

options:
    --yaml YAML         The yaml experiment to run, same as with bfasst
    --design DESIGN     The design to run
    --flow FLOW         The flow to use for the specified design

NOTE: You must specify either a yaml file or both a design and flow.

Alternatively, you can execute the ninja generation step entirely separate from the run step for a single design:

Usage:
    python bfasster/flows/vivado.py [--design DESIGN]
    ninja

In either use case, the design should be specified as a subdirectory of the included designs directory in this repo (e.g. 'byu/alu').

bfasster's People

Contributors

keenanrileyfaulkner avatar

Stargazers

Jevin Sweval avatar

Watchers

Jevin Sweval avatar  avatar

bfasster's Issues

Dependencies resolve incorrectly causing implementation to always rerun

Every time the program is executed using the bfasster.py script, implementation is rerun. Further exploration needs to be done to see if this is the case when running ninja manually as well. If so, the .ninja_log file needs to be checked for return statuses/codes, and we need to reexamine the dependencies of the vivado rule and related build directives.

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.