Coder Social home page Coder Social logo

fpga_readings's Introduction

 _____ ____   ____    _    
|  ___|  _ \ / ___|  / \   
| |_  | |_) | |  _  / _ \  
|  _| |  __/| |_| |/ ___ \ 
|_|   |_|    \____/_/   \_\

Updates

07/14/2021:

Just a couple thoughts I want to share.

This repo has not been updated for a while. Although I'm still collecting FPGA pages in my own Zotero, I haven't added them here. Also, I no longer use Xilinx HLS as my main development language. I started using Scala-based languages such as SpinalHDL and Chisel (mostly SpinalHDL). I think they are very expressive, practical, and fit the hardware model very well. And they have been used across many successful projects (e.g., Xiangshan, BOOM, etc).

Xilinx HLS still has its place in Industy, at least for now. Google's latest Video Processing Unit (ASPLOS'21) is designed using HLS. They praise for HLS's C++ model, hence able to enjoy a lot language sanity checking. I guess they must have a set of good HLS practices to make it work.

Also, if you are into network-related processing, go checkout the Corundum.io project. In fact, check out all the projects from Alex Forencich. Dude is a lengend in the open-source FPGA world, he is making such a big impact on the whole research community.

FPGA has never been so hot for system researchers. People are using it to build various things, prototyping for ASIC etc. It aids networking, storage, machine learning. With those high-quality open-source RISC-V cores, network stack and so on, sky is the limit.

Everyone is welcomed to contribute. You can add new papers, new code, new practice lessons, and so on.

Cook FPGA

This repository is intended for folks who are new and want to learn something about FPGA. This repository is a collection of useful resources and links rather than a thorough FPGA tutorial. Traditional HDL (Hard and Difficult Language) is not the main focus, instead, we focus on using high-level languages (e.g., C++) to cook FPGA.

Originally, this repository was started by a newbie to record his learning of FPGA, and late made public in the hope that it could help researchers to start their journey along with FPGA, with less pain and whiskey.

Resources collected here, or the way contents are organized, are not in their perfect shape. This repository is still raw and need major improvements. Any form of contribution is welcomed and appreciated.

Main contents:

  • README.md
    • Basics about Digital Design
    • Basics about FPGA
    • Relevant Courses and Books
    • Papers about FPGA internal
  • Xilinx
    • xilinx.md
    • xilinx_constraints.md
    • xilinx_cheatsheet.md
    • xilinx_lessons_vivado.md
    • xilinx_lessons_hls.md
  • submodules/: Github repositories about FPGA
  • hls/: Sample Xilinx HLS C++ code
    • AXI Stream
    • Network protocol processing
  • xilinx_arty_a7: Sample Xilinx projects for Arty A7 100 board
    • Tri-mode MAC reference design
    • Simple LED
    • Clocked LED
  • FAQ.md
    • Some implementation questions about FPGA

Resources

Papers

List of academic papers.

FPGA Intro

Digital Basics

Verilog

High-Level Synthesis (HLS)

Courses

Books

fpga_readings's People

Contributors

lastweek avatar sarsanaee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fpga_readings's Issues

Question about organizing the content!

Hi,

This is a really cool repository for two main reasons! First is that I like the incentives regarding learning FPGAs, second, the manner that you have about how you are getting started with this research area.

I was looking at different places to learn more about this area since we can see so many specialized devices for data center applications like programmable NICs, Switches, accelerators for Graph Processing and ... I also really like the paper at OSDI'18 - "Sharing, Protection, and Compatibility for Reconfigurable Fabric with AmorphOS." They have not shared so many details about the implementation stuff unlike your paper there!

Anyway, I would be happy to contribute to this repository. You shared a lot in this repository, however, that would be awesome if you could add a section in the README.md indicating the best order of reading the content there!

The Get Started section is also pretty packed, it is possible to look through all content but it is not time efficient. The RapidWright FPGA Architecture Basics was really good for me! Like there are a couple of courses and you marked one of them as the most practical one, and that would be the one I read first!

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.