GithubHelp home page GithubHelp logo

amamory / hermes-2x2-noc-axis-ip Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 35 KB

A 2x2 mesh NoC compatible with AXI streaming interface

Shell 4.99% Tcl 44.40% Coq 50.61%
network-on-chip vivado axi-stream axi4-stream

hermes-2x2-noc-axis-ip's Introduction

Vivado Hermes based 2x2 mesh network-on-chip

This repo contains scripts to recreate an 2x2 mesh network-on-chip based on Hermes router. The project is setup for Zedboard, although it would be easy to change to other boards assuming you have some basic TCL skills.

IP design

The IP contains four masters and four slaves AXI streaming interfaces. The router ports are configured with 32-bit data width and input buffers of size 4. The IP frequency is currently set to 50MHz.

2x2 mesh network-on-chip

How to use this repository

These scripts presented here are quite reusable if you keep the same dir structure. It should be useful for other Vivado/SDK projects with minor efforts. For this reason this repository is a template. Just click in Use this Template button to replicate it for your own project.

In command line, create an empty repository called in github and follow these steps to use it as a template:

mkdir <my-new-project>
cd <my-new-project>
git clone https://github.com/amamory/vivado-base-project.git .
rm -rf .git
git init
git remote set-url origin https://github.com/<your-username>/<your-reponame>
git add * .gitignore
git commit -m "my initial commit"
git push origin master

Each directory has instructions related to the kind of file you have to place in them.

How to run it

These scripts are assuming Linux operation system (Ubuntu 18.04) and Vivado 2018.2.

Follow these instructions to recreate the Vivado and SDK projects:

  • Open the build.sh script and edit the first two lines to setup the environment variables:
    • VIVADO: path to the Vivado install dir;
    • VIVADO_DESIGN_NAME: mandatory name of the design
    • XIL_APP_NAME: used only in projects with software. Not used in this design;
    • VIVADO_TOP_NAME: set the top name (optional).
  • run build.sh

These scripts will recreate the entire Vivado project, compile the design, generate the bitstream, export the hardware to SDK, create the SDK projects, import the source files, build all projects, and finally download both the bitstream and the elf application. Hopefully, all these steps will be executed automatically.

How to update the scripts

These scripts come from a template repository and they get updated and improved over time. If you wish to get the latest script version, then follow these steps:

git remote add template https://github.com/amamory/vivado-base-project.git
git fetch --all
git merge --no-commit --no-ff template/master --allow-unrelated-histories

Solve any conflict manually and then commit.

Future work

  • update the scripts to Vitis
  • support or test with Windows (help required !!! :D )

Credits

The scripts are based on the excellent scripts from fpgadesigner plus few increments from my own such as project generalization, support to SDK project creation and compilation and other minor improvements.

hermes-2x2-noc-axis-ip's People

Contributors

amamory avatar

Stargazers

 avatar

Watchers

 avatar  avatar

hermes-2x2-noc-axis-ip's Issues

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.