All Projects → SymbiFlow → Symbiflow Arch Defs

SymbiFlow / Symbiflow Arch Defs

Licence: isc
FOSS architecture definitions of FPGA hardware useful for doing PnR device generation.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Symbiflow Arch Defs

Livehd
Live Hardware Development (LiveHD), a productive infrastructure for Synthesis and Simulation
Stars: ✭ 110 (-19.71%)
Mutual labels:  verilog, fpga, synthesis
async fifo
A dual clock asynchronous FIFO written in verilog, tested with Icarus Verilog
Stars: ✭ 117 (-14.6%)
Mutual labels:  fpga, verilog, synthesis
xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (-81.75%)
Mutual labels:  fpga, verilog, synthesis
Edalize
An abstraction library for interfacing EDA tools
Stars: ✭ 270 (+97.08%)
Mutual labels:  verilog, fpga, synthesis
sphinxcontrib-hdl-diagrams
Sphinx Extension which generates various types of diagrams from Verilog code.
Stars: ✭ 37 (-72.99%)
Mutual labels:  fpga, sphinx, verilog
Vtr Verilog To Routing
Verilog to Routing -- Open Source CAD Flow for FPGA Research
Stars: ✭ 466 (+240.15%)
Mutual labels:  verilog, fpga, synthesis
Ustc Rvsoc
FPGA-based RISC-V CPU+SoC.
Stars: ✭ 77 (-43.8%)
Mutual labels:  verilog, fpga
Icestation 32
Compact FPGA game console
Stars: ✭ 93 (-32.12%)
Mutual labels:  verilog, fpga
Pp4fpgas Cn Hls
HLS Project of pp4fpgas - https://github.com/xupsh/pp4fpgas-cn
Stars: ✭ 97 (-29.2%)
Mutual labels:  jupyter-notebook, fpga
Autofpga
A utility for Composing FPGA designs from Peripherals
Stars: ✭ 108 (-21.17%)
Mutual labels:  verilog, fpga
J1sc
A reimplementation of a tiny stack CPU
Stars: ✭ 64 (-53.28%)
Mutual labels:  verilog, fpga
Nyuziprocessor
GPGPU microprocessor architecture
Stars: ✭ 1,351 (+886.13%)
Mutual labels:  verilog, fpga
Vm80a
i8080 precise replica in Verilog, based on reverse engineering of real die
Stars: ✭ 114 (-16.79%)
Mutual labels:  verilog, fpga
Antikernel
The Antikernel operating system project
Stars: ✭ 75 (-45.26%)
Mutual labels:  verilog, fpga
Symbiflow Examples
Example designs showing different ways to use SymbiFlow toolchains.
Stars: ✭ 71 (-48.18%)
Mutual labels:  verilog, fpga
Vgasim
A Video display simulator
Stars: ✭ 94 (-31.39%)
Mutual labels:  verilog, fpga
Jt gng
CAPCOM arcade hardware accurately replicated on MiST and MiSTer FPGA platforms. It covers Ghosts'n Goblins, 1942, 1943, Commando, F1-Dream, GunSmoke, Tiger Road, Black Tiger, Bionic Commando, Higemaru, Street Fighter and Vulgus.
Stars: ✭ 65 (-52.55%)
Mutual labels:  verilog, fpga
Open Register Design Tool
Tool to generate register RTL, models, and docs using SystemRDL or JSpec input
Stars: ✭ 126 (-8.03%)
Mutual labels:  verilog, fpga
Dnnweaver2
Open Source Specialized Computing Stack for Accelerating Deep Neural Networks.
Stars: ✭ 125 (-8.76%)
Mutual labels:  jupyter-notebook, fpga
Docs
Documentation site
Stars: ✭ 128 (-6.57%)
Mutual labels:  documentation, sphinx

SymbiFlow Architecture Definitions

This repository is used during the development of architecture support in SymbiFlow, if you are looking to use the toolchain you should start with the symbiflow-examples repository.

License status Build Status Documentation Status

This repo contains documentation of various FPGA architectures, it is currently concentrating on;

The aim is to include useful documentation (both human and machine readable) on the primitives and routing infrastructure for these architectures. We hope this enables growth in the open source FPGA tools space.

The repo includes;

  • Black box part definitions
  • Verilog simulations
  • Verilog To Routing architecture definitions
  • Documentation for humans

The documentation can be generated using Sphinx.

Getting Started

To initialize submodules and setup the CMake build system, from the root of the symbiflow-arch-defs directory run:

make env

To build all demo bitstreams there are 3 useful targets:

# Build all demo bitstreams, targetting all architectures
make all_demos

# Build all 7-series demo bitstreams
make all_xc7

# Build all ice40 demo bitstreams
make all_ice40

Specific bitstreams can be built by specifying their target name, followed by a suffix specifying the desired output. For example, the LUT-RAM test for the RAM64X1D primative is called dram_test_64x1d. Example targets are:

# Just run synthesis on the input Verilog
make dram_test_64x1d_eblif

# Complete synthesis and place and route the circuit
make dram_test_64x1d_route

# Create the output bitstream (including synthesis and place and route)
make dram_test_64x1d_bin

# Run bitstream back into Vivado for timing checks, etc.
make dram_test_64x1d_vivado

Tools installed via submodules

Tools installed via conda

  • yosys Verilog parsing and synthesis.

  • vtr Place and route tool.

  • iverilog Very correct FOSS Verilog Simulator

Tools potentially used in the future

  • verilator Fast FOSS Verilog Simulator

  • sphinx Tool for generating nice looking documentation.

  • breathe Tool for allowing Doxygen and Sphinx integration.

  • doxygen-verilog Allows using Doxygen style comments inside Verilog files.

  • symbolator Tool for generating symbol diagrams from Verilog (and VHDL) code.

  • wavedrom Tool for generating waveform / timing diagrams.

Resource Requirements

To run examples provided, please make sure these resources are available:

  • Memory: 5.5G
  • Disk space: 20G

Development notes

Because symbiflow-arch-defs relies on yosys and VPR, it may be useful to override the default packaged binaries with locally supplied binaries. The build system allows this via environment variables matching the executable name. Here is a list of common environment variables to defined when doing local yosys and VPR development.

  • YOSYS : Path to yosys executable to use.
  • VPR : Path to VPR executable to use.
  • GENFASM : Path genfasm executable to use.

There are more binaries that are packaged (e.g. VVP), but the packaged versions are typically good enough for most use cases.

After setting or clearing one of these environment variables, CMake needs to be re-run.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].