├── Getting Started with Verilog-FPGA.v └── README.md /Getting Started with Verilog-FPGA.v: -------------------------------------------------------------------------------- 1 | Code samples & snippets coming soon! 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |
4 | FPGA Guide 5 |

6 | 7 | #### 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. 8 | 9 | **Note: You can easily convert this markdown file to a PDF in [VSCode](https://code.visualstudio.com/) using this handy extension [Markdown PDF](https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf).** 10 | 11 | # Table of Contents 12 | 13 | 1. [FPGA Development Boards](https://github.com/mikeroyal/FPGA-Guide#fpga-development-boards) 14 | 15 | 2. [FPGA Learning Resources](https://github.com/mikeroyal/FPGA-Guide#fpga-learning-resources) 16 | 17 | 3. [FPGA Tools](https://github.com/mikeroyal/FPGA-Guide#fpga-tools) 18 | 19 |

20 | 21 |
22 |

23 | 24 | Testing a LabVIEW FPGA Design. Source: [NI](https://www.ni.com/en-us/shop/electronic-test-instrumentation/add-ons-for-electronic-test-and-instrumentation/what-is-labview-fpga-module.html) 25 | 26 | # FPGA Development Boards 27 | [Back to the Top](https://github.com/mikeroyal/FPGA-Guide#table-of-contents) 28 | 29 | [Checkout the PolarFire® FPGA Development Kits](https://www.microsemi.com/product-directory/dev-kits-solutions/3864-polarfire-kits) 30 | 31 | 32 | 33 | 34 | [Checkout the Artix 7 FPGA Development board](https://store.digilentinc.com/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users/) 35 | 36 | 37 | 38 | 39 | [Checkout the Spartan 6 FPGA Development board](https://store.digilentinc.com/anvyl-spartan-6-fpga-trainer-board/) 40 | 41 | 42 | 43 | 44 | 45 | [Checkout the Zynq-7000 for ARM/FPGA SoC Development board](https://store.digilentinc.com/cora-z7-zynq-7000-single-core-and-dual-core-options-for-arm-fpga-soc-development/) 46 | 47 | 48 | 49 | 50 | ## FPGA Learning Resources 51 | [Back to the Top](https://github.com/mikeroyal/FPGA-Guide#table-of-contents) 52 | 53 | [FPGA(Field Programmable Gate Arrays)](https://www.xilinx.com/products/silicon-devices/fpga/what-is-an-fpga.html) 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. 54 | 55 | [TinyFPGA](https://tinyfpga.com) is a new series of boards that are low-cost, [open source FPGA boards](https://github.com/tinyfpga) in a tiny form factor. 56 | 57 | [SiFive FPGA shells](https://github.com/sifive/fpga-shells) 58 | 59 | [FPGA & SoC Design Tools from Microsemi](https://www.microsemi.com/product-directory/fpga-soc/1637-design-resources) 60 | 61 | [QuickLogic Embedded FPGA (eFPGA) Intellectual Property (IP) and Software](https://www.quicklogic.com/products/efpga/efpga-ip-software/) 62 | 63 | [FPGA for Beginners with Development Boards from Digilent®](https://store.digilentinc.com/fpga-for-beginners/) 64 | 65 | [Hundreds of FPGA Projects on Instructables](https://www.instructables.com/circuits/howto/FPGA/) 66 | 67 | [FPGA Fundamentals from NI(National Instruments)](https://www.ni.com/en-us/innovations/white-papers/08/fpga-fundamentals.html) 68 | 69 | [Getting Started With LabVIEW FPGA from NI(National Instruments)](https://www.ni.com/tutorial/14532/en/) 70 | 71 | [Programming and FPGA Basics - INTEL® FPGAS](https://www.intel.com/content/www/us/en/products/programmable/fpga/new-to-fpgas/resource-center/overview.html) 72 | 73 | [Intel FPGA Training Program](https://www.intel.com/content/www/us/en/programmable/support/training/overview.html) 74 | 75 | [FPGA Courses on Coursera](https://www.coursera.org/courses?query=fpga) 76 | 77 | [FPGA Courses on Udemy](https://www.udemy.com/topic/fpga/) 78 | 79 | [FPGA Online Training Courses on LinkedIn Learning](https://www.linkedin.com/learning/topics/fpga) 80 | 81 | [UMass Lowell's Graduate Certificate in Field Programmable Gate Arrays(FPGA)](https://gps.uml.edu/certificates/grad/online-field-programmable-gate-arrays-bae-graduate-certificate.cfm) 82 | 83 | [FPGA Design Fundamentals Course (UC San Diego Extension)](https://extension.ucsd.edu/courses-and-programs/fpga-design-fundamentals) 84 | 85 | [FPGA II Course (UC San Diego Extension)](https://extension.ucsd.edu/courses-and-programs/fpga-embedded-design) 86 | 87 | [FPGAs & SoCs Training from Microsemi](https://www.microsemi.com/product-directory/training/4244-fpgas-socs-training) 88 | 89 | [DSP fundamentals for FPGAs course from MATLAB and Simulink Training](https://www.mathworks.com/training-schedule/dsp-for-fpgas.html) 90 | 91 | [Verilog Courses on Coursera](https://www.coursera.org/courses?query=verilog) 92 | 93 | 94 | ## FPGA Tools 95 | [Back to the Top](https://github.com/mikeroyal/FPGA-Guide#table-of-contents) 96 | 97 | [LabVIEW FPGA](https://www.ni.com/en-us/shop/software/products/labview-fpga-module.html) 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. 98 | 99 | [Apio](https://github.com/FPGAwars/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. 100 | 101 | [IceStorm](https://github.com/YosysHQ/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. 102 | 103 | [Icestudio](https://icestudio.io/) is a visual editor for open FPGA boards. Built on top of the Icestorm project using Apio. 104 | 105 | [FuseSoC](https://github.com/olofk/fusesoc) is an award-winning package manager and a set of build tools for HDL (Hardware Description Language) code and FPGA/ASIC development. 106 | 107 | [OpenWiFi](https://github.com/open-sdr/openwifi) is an open-source IEEE802.11/Wi-Fi baseband chip/FPGA design. 108 | 109 | [PipeCNN](https://github.com/doonny/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. 110 | 111 | [Verilator](https://verilator.org/) is an open-source SystemVerilog simulator and lint system. 112 | 113 | [Verilog to Routing(VTR)](https://verilogtorouting.org/) 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. 114 | 115 | [PlatformIO](https://platformio.org/) 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. 116 | 117 | [PlatformIO for VSCode](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide) is a plugin that provides support for the PlatformIO IDE on VSCode. 118 | 119 | [Tock](https://www.tockos.org/) 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. 120 | 121 | [OpenTimer](https://github.com/OpenTimer/OpenTimer) is a High-Performance Timing Analysis Tool for VLSI Systems. 122 | 123 | [LLVM](https://github.com/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). 124 | 125 | [TinyGo](https://tinygo.org/) is a Go compiler(based on LLVM) intended for use in small places such as microcontrollers, WebAssembly (Wasm), and command-line tools. 126 | 127 | [Chipyard](https://chipyard.readthedocs.io/en/latest/) 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](https://berkeley.edu/) projects to produce a RISC-V SoC with everything from MMIO-mapped peripherals to custom accelerators. 128 | 129 | [The Eclipse Embedded CDT](https://github.com/eclipse-embed-cdt/eclipse-plugins) is a collection of plug-ins for Arm & RISC-V C/C++ developers. 130 | [Unicorn](https://github.com/unicorn-engine/unicorn) is a lightweight, multi-platform, multi-architecture CPU emulator framework(ARM, AArch64, M68K, Mips, Sparc, X86) based on [QEMU](https://www.qemu.org/). 131 | 132 | [Keystone](https://github.com/keystone-engine/keystone) is a lightweight multi-platform, multi-architecture(Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) assembler framework. 133 | 134 | [Reko](https://github.com/uxmal/reko) is a decompiler for machine code binaries. 135 | 136 | [Renode](https://renode.io/) is [Antmicro's](https://antmicro.com) 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. 137 | 138 | [Diosix](https://diosix.org/) is a lightweight, secure, multiprocessor bare-metal hypervisor written in Rust for RISC-V. 139 | 140 | ## Contribute 141 | 142 | - [x] If would you like to contribute to this guide simply make a [Pull Request](https://github.com/mikeroyal/FPGA-Guide/pulls). 143 | 144 | 145 | ## License 146 | 147 | [Back to the Top](https://github.com/mikeroyal/FPGA-Guide#table-of-contents) 148 | 149 | Distributed under the [Creative Commons Attribution 4.0 International (CC BY 4.0) Public License](https://creativecommons.org/licenses/by/4.0/). 150 | --------------------------------------------------------------------------------