Giter Club home page Giter Club logo

nevilshah235 / fos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fpga-research-manchester/fos

0.0 1.0 0.0 208.96 MB

FOS - FPGA Operating System

License: Other

VHDL 42.18% Tcl 3.85% Makefile 0.13% Shell 0.04% C++ 1.93% C 14.59% Objective-C 0.70% Python 0.86% BitBake 0.01% GDB 0.01% Batchfile 0.05% Jupyter Notebook 13.04% SystemVerilog 7.01% Verilog 0.93% Coq 13.46% Assembly 0.04% JavaScript 0.22% HTML 0.11% V 0.86% Pascal 0.01%

fos's Introduction

FOS - FPGA Operating System Demo

FOS extends the ZUCL framework with linux integration, python libs, C++ runtime management to provide support for: multi-tenancy (concurrent processes with hardware accel.), dynamic offload, GUI, network connection and flexibility.

With FOS, you can use HLS or RTL accelerators in standard static accelerator mode, single process (library mode) with partially reconfigurable accelerators or multiple processes (daemon mode) with dynamic reconfiguration support. This allows users to easily program accelerators with its in-built driver support for AXI master and slave interface (as well as libs to build your own drivers).

Moreover, the accelerator development, shell development and user application development can be performed in isolation as FOS provides built-in modularity and abstraction levels.

The aim of this project is to make FPGAs easy to use and allow the deployment and development of FPGA systems at scale. We hope FOS can improve your productivity and make FPGAs more fun to use while retaining its performance and energy.

Key Features

  • Accelerate on the go: Use accelerators with dynamic partial reconfiguration.
  • The more the merrier: Runtime support for concurrent hardware accelerators.
  • Compile where you run: Compile bitstreams on board with EFCAD tool flow.
  • Compile once, run everywhere: Relocate bitstream to any slot in the shell.
  • Accelerators come in all sizes: Combine partial regions for big accelerators.
  • Free to change: Update shell, accelerator, application or Linux individually.
  • Abstraction to rescue: Ponq and Cynq libs for easy hardware integration.
  • Don't repeat yourself: Standard Linux backend for software development.
  • Don't forget your I/O: All types of I/Os (from monitors to storage to network) are supported via host CPU.

See it in action on YouTube: https://www.youtube.com/watch?v=WciuDXEIsr8

Quick Getting Started

  • Download SD Card image for Ultra-96
  • Set board to SD Card mode and turn it on
  • login with username xilinx password xilinx
  • open a terminal for the server:
    • cd fos
    • sudo ./runServer
  • open a terminal for the client:
    • cd fos
    • sudo ./runClient

Tutorials

Compatibility

Target board: Ultra96 (can be ported to ZCU102, UltraZed easily)

The source code presented has been tested with the following tool versions:

  • Vivado and Vivado HLS 2016.2, 2017.3, 2018.2 and 2018.3.
  • PetaLinux kernel 2018.2.
  • Rootfs: Pynq, PetaLinux, Ubuntu 18, Ubuntu 14, Debian, Linaro u96.
  • GRPC version: 2019-09
  • Monitor: Any monitor with Mini displayport to VGA cable (passive)
  • Keyboard/Mouse: standard USB versions
  • Storage/PenDrives: EXT3, EXT4 and FAT32 (PetaLinux kernel does not support fuse for NTFS)

Papers

If you found FOS useful please consider citing following paper:

If you would like to learn more about how the system works or what it can do in detail, you can read the following papers.

Software:

Hardware:

License information

This work is released as free to use and modify for non-commercial purposes as long as the original license and source of development is retained. The exact details of the license can be found here.

Get in Touch

If you would like to ask questions, report bugs or collaborate on research projects, please email any of the following:

Contributors

Anuj Vaishnav, Khoa Dang Pham, Joe Powell, Alasdair Olway, Kyriakos Paraskevas, Andrew Attwood, Malte Vesper, Igor Wodiany, and Dirk Koch

Acknowledgments

  • This work was produced at the University of Manchester as part of PhD and MPhil Projects.
  • This work is supported by the European Commission under the H2020 Programme and the ECOSCALE & EuroEXA projects (grant agreement 671632 & 754337).
  • This work is supported by the Xilinx University Program.

fos's People

Contributors

3nthi0s avatar anujvaishnav avatar joe2580 avatar khoapham avatar kiriakaras 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.