Skip to content

mikeroyal/FPGA-Guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation


FPGA Guide

A guide covering FPGA(Field Programmable Gate Arrays) devices such as the PolarFire®, Artix 7 , Spartan 6 and Zynq-7000. Along with the tools, applications and libraries that will make you a better and more efficient developer with FPGA devices. Also, learn about cool projects that you can build with your FPGA device.

Note: You can easily convert this markdown file to a PDF in VSCode using this handy extension Markdown PDF.

Table of Contents

  1. FPGA Development Boards

  2. FPGA Learning Resources

  3. FPGA Tools


Testing a LabVIEW FPGA Design. Source: NI

FPGA Development Boards

Back to the Top

Checkout the PolarFire® FPGA Development Kits

Checkout the Artix 7 FPGA Development board

Checkout the Spartan 6 FPGA Development board

Checkout the Zynq-7000 for ARM/FPGA SoC Development board

FPGA Learning Resources

Back to the Top

FPGA(Field Programmable Gate Arrays) are semiconductor devices that are based around a matrix of configurable logic blocks (CLBs) connected via programmable interconnects. FPGAs can be reprogrammed to desired application or functionality requirements after manufacturing.

TinyFPGA is a new series of boards that are low-cost, open source FPGA boards in a tiny form factor.

SiFive FPGA shells

FPGA & SoC Design Tools from Microsemi

QuickLogic Embedded FPGA (eFPGA) Intellectual Property (IP) and Software

FPGA for Beginners with Development Boards from Digilent®

Hundreds of FPGA Projects on Instructables

FPGA Fundamentals from NI(National Instruments)

Getting Started With LabVIEW FPGA from NI(National Instruments)

Programming and FPGA Basics - INTEL® FPGAS

Intel FPGA Training Program

FPGA Courses on Coursera

FPGA Courses on Udemy

FPGA Online Training Courses on LinkedIn Learning

UMass Lowell's Graduate Certificate in Field Programmable Gate Arrays(FPGA)

FPGA Design Fundamentals Course (UC San Diego Extension)

FPGA II Course (UC San Diego Extension)

FPGAs & SoCs Training from Microsemi

DSP fundamentals for FPGAs course from MATLAB and Simulink Training

Verilog Courses on Coursera

FPGA Tools

Back to the Top

LabVIEW FPGA is a software add-on for LabVIEW that you can use to more efficiently and effectively design FPGA-based systems through a highly integrated development environment, IP libraries, a high-fidelity simulator, and debugging features.

Apio is a multiplatform toolbox, with static pre-built packages, project configuration tools and easy command interface to verify, synthesize, simulate and upload your verilog designs.

IceStorm is a project that aims at documenting the bitstream format of Lattice iCE40 FPGAs and providing simple tools for analyzing and creating bitstream files.

Icestudio is a visual editor for open FPGA boards. Built on top of the Icestorm project using Apio.

FuseSoC is an award-winning package manager and a set of build tools for HDL (Hardware Description Language) code and FPGA/ASIC development.

OpenWiFi is an open-source IEEE802.11/Wi-Fi baseband chip/FPGA design.

PipeCNN is an OpenCL-based FPGA Accelerator for Large-Scale Convolutional Neural Networks (CNNs). Currently, there is a growing trend among developers in the FPGA community to utilize High Level Synthesis (HLS) tools to design and implement customized circuits on FPGAs.

Verilator is an open-source SystemVerilog simulator and lint system.

Verilog to Routing(VTR) is a collaborative project to provide a open-source framework for conducting FPGA architecture and CAD Research & Development. The VTR design flow takes as input a Verilog description of a digital circuit, and a description of the target FPGA architecture.

PlatformIO is a professional collaborative platform for embedded development with no vendor lock-in. It provides support for multiplatforms and frameworks such as IoT, Arduino, CMSIS, ESP-IDF, FreeRTOS, libOpenCM3, mbed OS, Pulp OS, SPL, STM32Cube, Zephyr RTOS, ARM, AVR, Espressif (ESP8266/ESP32), FPGA, MCS-51 (8051), MSP430, Nordic (nRF51/nRF52), NXP i.MX RT, PIC32, RISC-V.

PlatformIO for VSCode is a plugin that provides support for the PlatformIO IDE on VSCode.

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded platforms. Tock's design centers around protection, both from potentially malicious applications and from device drivers.

OpenTimer is a High-Performance Timing Analysis Tool for VLSI Systems.

LLVM is a library that has collection of modular/reusable compiler and toolchain components (assemblers, compilers, debuggers, etc.). With these components LLVM can be used as a compiler framework, providing a front-end(parser and lexer) and a back-end (code that converts LLVM's representation to actual machine code).

TinyGo is a Go compiler(based on LLVM) intended for use in small places such as microcontrollers, WebAssembly (Wasm), and command-line tools.

Chipyard is an open source framework for agile development of Chisel-based systems-on-chip. It will allow you to leverage the Chisel HDL, Rocket Chip SoC generator, and other Berkeley projects to produce a RISC-V SoC with everything from MMIO-mapped peripherals to custom accelerators.

The Eclipse Embedded CDT is a collection of plug-ins for Arm & RISC-V C/C++ developers. Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator framework(ARM, AArch64, M68K, Mips, Sparc, X86) based on QEMU.

Keystone is a lightweight multi-platform, multi-architecture(Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) assembler framework.

Reko is a decompiler for machine code binaries.

Renode is Antmicro's virtual development framework for multinode embedded networks (both wired and wireless) and is intended to enable a scalable workflow for creating effective, tested and secure IoT systems.

Diosix is a lightweight, secure, multiprocessor bare-metal hypervisor written in Rust for RISC-V.

Contribute

  • If would you like to contribute to this guide simply make a Pull Request.

License

Back to the Top

Distributed under the Creative Commons Attribution 4.0 International (CC BY 4.0) Public License.