Git Product home page Git Product logo

fast-openbox_s4-impl's Introduction

FAST-OpenBox_S4-impl

What are these files?

This is a FAST implementation on OpenBox S4 (using Xilinx zynq 7000 SoC). Learn more about FAST from here.

  • fast-sw/: contains the software components of FAST framework.
  • platform/: contains a embedded OS and necessary file systems for PS part of Zynq board, and also bitstream that is used to program the PL part.
  • fast-hw/: contains the hardware components of FAST framework. This is a complete and runnable vivado project to reduce users' workload to develop their PL logics based FAST.

How to run the built-in applications?

Necessary steps in order to run FAST on a OpenBox S4:

  1. override the TF card with the whole files in platform/.
  2. switch on the device, connect the PS to a PC using whether an ethernet port or serial port.
  3. cd to /mnt/ and execute l2switch.
  4. connect two PCs (within the same port) using two random ports on the box.
  5. If the PCs can communicate with each other, congrets that you can run the built-in apps now!

Note: after the above procedures are finished, you will be able to run all the apps in the /mnt/fast/ directory.

How to develop my own network prototype based on FAST?

FAST provides users with clear and understandable programming abstractions both on software and hardware. learn more from our paper or FAST white paper. Be noted that FAST white paper now are written in Chinese, we hope to make the English version to the community ASAP.

Write your own hardware code using FAST libs

users are able to create their own apps using FAST API. To write yourown code:

  1. cd to fast-sw/app/, create your own directory using mkdir.

  2. create a blank c file, include FAST headers at the beginning.

  3. write your own code, etc., a load balancer, a firewall, a packet generator...

  4. exit the file and create a Makefile in your self-constructed directory.

    FAST uses gnome autotools to compile all the project. So you only need to write a Makefile.am to tell the autoconf tool how to generate a Makefile automatically.

    If you don't know how to write it, you can simply copy one from other built-in apps. But DO REMEMBER to change macros such as bin_PROGRAMS and xx_SOURCES in Makefile.am according to your own code.

  5. modify the Makefile.am in the app/ directory to add your app into it.

Note: FAST API is defined in fast-sw/include/ , you can read them before you write your own software code. As FAST is fully opensourced, you can also invoke/write API for your own convenience.

Write your own software code within UM pipeline

As the PL part is based on a Xilinx FPGA board, you can simply use Xilinx IDE (Vivado) to develop your hardware logics.

We have encapsulate the platform related designs into netlist so there is nothing you need to care about. All you have to do is writing your verilog code in /um modules and testbench them before you synthesize the PL project.

Compile your code

The most tricky thing here is to install cross-compile the fast-sw project on a x86 Linux PC before you can run them on the OpenBox S4 box.

If you don't know what is cross-compile and how to cross-compile the project. This web may be helpful. We also provide users with a virtual machine that already installed the environment for cross-compile. You can find it here with the access passwd: r7gz. THE VIRTUAL MACHHINE IS IN fast/1.0/OpenBox-S4/ directory.

After you prepare the cross-compile settings, the procedure is like this:

  1. type aclocal in terminal (in the top-directory of fast-sw);
  2. type autoreconf to generate the configure.in;
  3. type automake --add-missing --foreign to generate the Makefile.in;
  4. type ./configure --host=arm-xilinx-linux-gnueabi-gcc to generate Makefile;
  5. type make to generate your software that can run on the arm core of OpenBox S4;
  6. you can find your app in the same directory you created.

Run your own prototype on OpenBox S4

  1. use whatever tools to copy the generated app into the arm core to OpenBox S4;
  2. implement your hardware project onto the FPGA part of OpenBox S4 (this procedure is optional, it's depend on whether you changed the built-in pipeline of FAST);
  3. use ./xxx to run your application.

fast-openbox_s4-impl's People

Contributors

winters123 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.