• Stars
    star
    246
  • Rank 164,726 (Top 4 %)
  • Language Verilog
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Recipe for FPGA cooking
 _____ ____   ____    _    
|  ___|  _ \ / ___|  / \   
| |_  | |_) | |  _  / _ \  
|  _| |  __/| |_| |/ ___ \ 
|_|   |_|    \____/_/   \_\

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

More Repositories

1

source-singularity

Clone of the MSR Singularity Project
C#
100
star
2

lastweek.github.io

Yizhou' Homepage
HTML
38
star
3

source-glibc

notes about glibc, ld-so and more.
C
34
star
4

fpga_decode_bitstream

C code to parse xilinx bitstream. See http://lastweek.io/fpga/bitstream/
C
26
star
5

2022-UCSD-Thesis

Yizhou Shan's Doctoral Dissertation (UCSD CSE)
TeX
15
star
6

NVM-Emulator

A kernel-level NVM emulator on bare-metal x86
C
9
star
7

fpga_icap_hls

HLS-based Xilinx ICAP3 Controller (tested with VCU108)
Tcl
8
star
8

fpga_pr_scripts

some reusable scripts
Tcl
6
star
9

fpga_vivado_resources

A set of Vivado dev resources.
6
star
10

spinalhdl-util

Scala
5
star
11

goRDMA

C
4
star
12

linux-xperf-4.19.44

Measure user/kernel space crossing latency in CPU cycles. (Check README.md)
C
3
star
13

Sniffer

A simple sniffer based on Libpcap, which is based on Berkeley Packet Filter
C
3
star
14

FPGA-icape3-references

Xilinx ICAPE3
Verilog
3
star
15

STM-Toy

Software Transactional Memory
C
2
star
16

disaggregated.cloud

http://www.disaggregated.cloud
2
star
17

goKV

Go
2
star
18

rdma_bench_dirty

C
2
star
19

awesome-llm-cap-paper-list

The CAP Principle for LLM Serving
2
star
20

vcu118_fmcp_qsfp

VCU118 + http://www.hitechglobal.com/FMCModules/x6QSFP28.htm
Verilog
2
star
21

linux-ftrace

ftrace scripts
C
2
star
22

source-gtk

C
1
star
23

linux-sample-modules

Well.. time to save some code for quick reference.
C
1
star
24

Sandix

Sandy Unix Operating System
C
1
star
25

linux-AsyncXing-5.1.9

Asynchronous Crossing
C
1
star
26

source-exokernel

MIT Exokernel.
C
1
star
27

source-minimal-buddy-allocator

a userspace buddy allocator.
C
1
star
28

SOSP17-LITE-kernel-4.9

Port LITE (SOSP '17) for linux-4.9.103
Objective-C
1
star
29

dot-home

General Scripts
Vim Script
1
star