Giter Club home page Giter Club logo

awesome-python-tools's Introduction

awesome-hardware-tools

A curated list of awesome open source hardware tools.

  • Categorized
  • Alphabetical (per category)
  • Requirements
    • link should be to source code repository
    • open source projects only
    • working projects only (not WIP/rusty)
  • One tag line sentence per project.

Compiler Frameworks

  • act
    • Asynchronous circuit compiler tools
  • amaranth
    • Python based hardware design framework
  • bsc
    • Compiler, simulator, and tools for the Bluespec Hardware Description Language
  • bfg
    • Open-Source Silicon Compiler for Reduced-Complexity Reconfigurable Fabrics
  • bsg_fakeram
    • Fake RAM generator
  • calyx
    • Intermediate language and infrastructure for building compilers that generate custom hardware accelerators
  • cfu-playground
    • Famework for playing with custom opcodes to accelerate TensorFlow Lite for Microcontrollers
  • chisel
    • Scala based hardware description language
  • circt
    • Circuit IR Compilers and Tools
  • circuitgraph
    • Tools for working with circuits as graphs in python
  • clash
    • Haskell to VHDL/Verilog/SystemVerilog compiler
  • coreir
    • LLVM-style hardware compiler with first class support for generators
  • dfiant
    • Dataflow Hardware Description Language
  • firrtl
    • Intermediate Representation for RTL
  • gamma
    • Optimizes mapping of DNN models on DNN Accelerators
  • halide
    • Language for fast, portable data-parallel computation
  • halide-to-hardware
    • Hardware generator combining halide and coreir
  • hdlconvertor
    • Verilog/VHDL parser preprocessor and code generator for C++/Python based on ANTL4
  • hs-to-coq
    • Convert Haskell source code to Coq source code
  • livehd
    • Infrastructure for live interactive synthesis and simulation
  • llhd
    • Intermediate representation for digital circuit descriptions
  • kami
    • Platform for High-Level Parametric Hardware Specification and its Modular Verification
  • magma
    • Python based hardware design language
  • matchlib
    • SystemC/C++ library of commonly-used hardware functions and components that can be synthesized by most commercially-available HLS tools into RTL
  • matchclib_connections
    • SystemC library implementing latency-insensitive channels for use by High-Level synthesis tools.
  • myhdl
    • Python based hardware description and verification language
  • naja
    • Structural Netlist API (and more) for EDA post synthesis flow development
  • NNgen
    • A Fully-Customizable Hardware Synthesis Compiler for Deep Neural Network
  • panda
    • High level synthesis (HLS) C/C++ framework
  • pipelinec
    • C-like hardware description language (HDL) with automatic pipelining
  • pygears
    • Python based hardware design framework
  • pymtl3
    • Python hardware generation, simulation, and verification framework
  • pyrtl
    • Python integrated design and simulation framework
  • pysysc
    • Python package to make SystemC usable from Python
  • pyverilog
    • Python design toolkit for Verilog HDL
  • rohd
    • Dart based framework for describing and verifying hardware
  • silice
    • Language that simplifies prototyping and writing algorithms on FPGA architectures
  • skidl
    • SKiDL is a module that extends Python with the ability to design electronic circuits
  • slang
    • Library that provides various components for lexing, parsing, type checking, and elaborating SystemVerilog code
  • sodaopt
    • Leverages mlir to extract, optimize, and translate high-level code snippets into LLVM IR for use by high-level synthesis tools
  • spinalhdl
    • Scala based HDL
  • spydrnet
    • Framework for analyzing and transforming Verilog netlists
  • surelog
    • SystemVerilog IEEE 2017 Pre-processor, Parser, Elaborator, UHDM Compiler
  • sv-parser
    • SystemVerilog IEEE 1800-2017 parser library
  • sv2v
    • SystemVerilog to Verilog conversion
  • systemc
    • SystemC system design and verification language that spans hardware and software
  • systemc-compiler
    • Translates synthesizable SystemC to synthesizable Verilog
  • uhdm
    • Universal object model for IEEE SystemVerilog designs
  • verible
    • Suite of SystemVerilog developer tools, including a parser, style-linter, and formatter
  • veriloggen
    • Mixed-Paradigm Hardware Construction Framework
  • verik
    • Kotlin based hardware description language
  • Vlsir
    • Interchange formats for chip design
  • xls
    • Google framework for hardware synthesis

Build Systems

  • bazelhdl
    • Bazel based hdl build system
  • bender
    • Dependency management tool for hardware projects.
  • chipyard
    • Agile RISC-V SoC Design Framework.
  • cocoon
    • An infrastructure for integrated EDA
  • edalize
    • An abstraction library for interfacing EDA tools.
  • f4pga
    • Architecture definitions of FPGA hardware
  • fusesoc
    • Package manager and build abstraction tool for FPGA/ASIC development.
  • hammer
    • Agile physical design component part of UC Berkeley Chipyard framework.
  • hwtBuildsystem
    • Library of utils for interaction with the vendor tools.
  • legoHDL
    • Command line HDL package manager and development tool.
  • mflowgen
    • Modular flow specification and build-system generator for ASIC and FPGA design-space exploration.
  • siliconcompiler
    • Build system that automates translation from source code to silicon.

EDA Interfaces

  • pyaedt
    • AEDT Python Client Package
  • pydpf-core
    • Data Processing Framework - Python Core
  • pyfluent
    • Pythonic interface to Ansys Fluent
  • pymapdl
    • Pythonic interface to MAPDL

Generators

  • bag
    • Berkeley analog layout generator
  • esp
    • Design platform for heterogeneous SoC architecture and IP
  • fabulous
    • FPGA fabric generator
  • fftgenerator
    • Chisel based FFT generator
  • fsm2sv
    • SystemVerilog FSM generator
  • garnet
    • CGRA generator
  • gemmini
    • Spatial array machine learning accelerator generator
  • gen_registers
    • Python based tool for generating hardware registers and their associated files
  • kaktus2dev
    • Graphical EDA tool based on the IP-XACT standard
  • lake
    • Synthesizable memory generator
  • litex
    • Framework for FPGA and soc development
  • opencgra
    • Parametrizable Coarse-Grained Reconfigurable Array (CGRA) Generator
  • openfasoc
    • Fully-Autonomous SoC Synthesis using Customizable Cell-Based Synthesizable Analog Circuits
  • openfpga
    • FPGA IP Generator
  • openram
    • Static random access memory (SRAM) compiler.
  • prga
    • Python based FPGA fabric generator
  • pymtl3-net
    • Cornell parameterizable OCN (on-chip network) generator
  • revenoc
    • Configurable HDL NoC (Network-On-Chip) generator
  • rggen
    • Configuration and status register generator
  • rocket
    • Rocket chip chisel based generator
  • spiral
    • Spiral based FFT generator
  • systemrdl
    • Generic compiler front-end for Accellera's SystemRDL 2.0 register description language
  • tce
    • Application-specific instruction-set processor (ASIP) toolset for design and programming of customized co-processors

Design Formats

  • Vlsir
    • Interchange formats for chip design

Analog Design

  • OpenVAF
    • Next generation Verilog-A compiler
  • OpenPLC_Editor
    • IDE capable of creating programs for the OpenPLC Runtime
  • OpenPLC_v3
    • OpenPLC Runtime version 3
  • oregano
    • Schematic capture and circuit simulator
  • xschem
    • Schematic editor for VLSI/Asic/Analog custom designs, netlist backends for VHDL, Spice and Verilog

Board Design

  • boardview
    • Reads KiCAD PCB layout files and writes ASCII Boardview files
  • cuflow
    • Experimental procedural PCB layout program
  • datasheet-scrubber
    • Utility that scrubs through large sets of PDF datasheets/documents in order to extract key circuit information
  • kicad
    • Board design framework
  • pcbflow
    • Python based Printed Circuit Board (PCB) layout and design package based on CuFlow

Logic Synthesis

  • abc
    • System for Sequential Logic Synthesis and Formal Verification
  • lsoracle
    • Famework built on EPFL logic synthesis libraries.
  • lstools
    • Showcase examples for EPFL logic synthesis libraries
  • mockturtle
    • C++ logic network library
  • yosys
    • Yosys Open SYnthesis Suite

ASIC Layout

  • align
    • Automatic layout generator for analog circuits
  • chip_art
    • Convert an image to a GDS format for inclusion in a zerotoasic project
  • coriolis
    • RTL2GDS toolchain for mature nodes
  • dreamplace
    • Deep learning toolkit-enabled VLSI placement
  • gds3d
    • Reads GDSII layout and renders in 3D.
  • gdsfactory
    • Python package to generate GDS layouts.
  • gdstk
    • Gdstk (GDSII Tool Kit) is a C++/Python library for creation and manipulation of GDSII and OASIS files.
  • gdspy
    • Python module for creating GDSII stream files, usually CAD layouts.
  • klayout
    • Layout viewer
  • Layout21
    • Integrated Circuit Layout
  • lclayout
    • Layout generator for CMOS standard-cells
  • magic
    • VLSI Layout Tool
  • magical
    • Machine Generated Analog IC Layout
  • netgen
    • LVS tool for comparing SPICE or verilog netlists
  • openlane
    • Automated ASIC flow scripts based on openroad, yosys, magic, netgen.
  • openroad
    • Complete RTL2GDS platform
  • phidl
    • Python GDS layout and CAD geometry creation

FPGA Design

  • byteman
    • Bitstream relocation and manipulation tool
  • icestudio
    • Visual editor for open FPGA boards
  • flowtune
    • FPGA synehsis and PNR optimizer
  • foedag
    • Framework Open EDA Gui
  • nextpnr
    • FPGA place and route tool
  • openfpgaloader
    • Universal utility for programming FPGA
  • rphax
    • Automation flow to develop and prototype hardware accelerators on Xilinx FPGAs
  • vtr
    • FPGA place and route tool

Formal Verification

  • boolector
    • SMT solver for the theories of fixed-size bit-vectors, arrays and uninterpreted functions.
  • cvc5
    • SMT automatic theorem prover
  • ilang
    • Princeton modeling and Verification Platform for SoCs using ILAs
  • pono
    • Extensible SMT-based model checker implemented in C++.
  • sby
    • Front-end for Yosys-based formal verification flows.
  • z3
    • Microsoft research theorem prover.

Simulation and Analysis

  • adc-eval
    • Python tools for ADC performance analysis
  • anasysmod
    • Framework for FPGA emulation of mixed-signal systems
  • awsteria_infra
    • Middleware for AWS hosted FPGA applications
  • bigspicy
    • Tool for merging circuit descriptions
  • champsim
    • Trace-based simulator for a microarchitecture study.
  • cocotb
    • Coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python
  • cvc
    • CVC: Circuit Validity Checker. Check for errors in CDL netlist
  • devsim
    • TCAD Semiconductor Device Simulator
  • dromajo
    • RISC-V RV64GC functional emulator
  • eesim
    • Browser-based SPICE circuit simulator
  • essent
    • High-perofrmance FIRRTL (Chisel) simulator
  • Fault
    • Design-for-testing (DFT) Solution
  • frame
    • Fast Roofline Analytical Modeling and Estimation
  • firesim
    • FPGA-accelerated Cycle-accurate Hardware Simulation in the Cloud
  • fstdumper
    • Verilog VPI module to dump FST (Fast Signal Trace) databases
  • gem5
    • Modular simulator platform for computer-system architecture research
  • ghdl
    • VHDL 2008/93/87 simulator
  • icarus
    • Verilog IEEE-1364 simulator
  • lctime
    • Library cell characterization
  • hotspot
    • Thermal modeleing tool for use in architectural studies
  • libsystemctlm-soc
    • SystemC/TLM-2.0 Co-simulation framework
  • maestro
    • Analytical cost model evaluating DNN mappings (dataflows and tiling)
  • msdsl
    • Automatic generation of real number models from analog circuits
  • netlist-paths
    • A library and command-line tool for querying a Verilog netlist
  • ngspice
    • Spice simulator
  • opensta
    • Signoff quality STA engine used by OpenRoad
  • opentimer
    • High perormance static timing analysis
  • osvvm
    • A VHDL verification framework, utility library, verification component library, and a simulator independent scripting flow
  • qemu
    • Generic and open source machine & userspace emulator and virtualizer
  • qucs_s
    • Integrated circuit simulator with Graphical User Interface
  • pact
    • Thermal Simulator
  • pyspice
    • Python interface for ngspice and xyce
  • pyuvm
    • SystemVerilog UVM written in Python
  • renode
    • Generic and open source machine emulator (including multi-part and peripheral) designed to run unmodified firmware which includes co-simulation with RTL simulators.
  • SimulIDE
    • SimulIDE is a simple real-time electronic circuit simulator
  • svlint
    • SystemVerilog linter
  • svlint-action
    • GitHub action for svlint
  • svreal
    • Synthesizable real number library in SystemVerilog, supporting both fixed- and floating-point formats
  • systemctlm-cosim-demo
    • Demo system for libsystemctlm-soc library
  • uvvm
    • A free and Open Source Methodology and Library for making very structured VHDL-based testbenches.
  • verilator
    • SystemVerilog simulator and lint system.
  • v2k-top
    • Parser/simulation framework for Verilog & C++
  • vidbo
    • Virtual development board
  • vunit
    • Unit testing framework for VHDL/SystemVerilog
  • xyce
    • Parallel spice simulator from Sandia national labs

Waveform viewers

  • gtkwave
    • GTK+ based VCD waveform viewer
  • konata
    • Instruction pipeline visualizer for Gem5
  • sigrok
    • Portable, cross-platform, sinal analysis software suite (logic analyzers, scopes, multimeters, and more)
  • simview
    • Text-based SystemVerilog design browser and waveform viewer
  • sootty
    • Command-line tool for displaying vcd waveforms

Benchmark Circuits

  • bsg_pipeclean_suite
    • Collection of designs used to stress test new CAD flows
  • corescore
    • Benchmark for FPGAs and their synthesis/P&R tools
  • epfl-benchmarks
    • Combinational Benchmark Suite for logic synthesis
  • opdb
    • Princeton design benchmark generators
  • rdf-2020
    • IEEE CEDA eda benchmark flow
  • sv-tests
    • SystemVerilog compliance test suite

Documentation

  • freecad
    • 3D parametric CAD for building models of components for KiCad 3D preview (also enclosures)
  • graphviz
    • Python library for graph cration and rendering in DOT language
  • netlistsvg
    • draws an SVG schematic from a JSON netlist
  • pcbdraw
    • Convert KiCAD board into 2D drawing suitable for pinout diagrams
  • pinion
    • Generate interactive Diagrams for your PCBs
  • pinout
    • Python package that generates hardware pinout diagrams as SVG images
  • sphinx
    • Document builder
  • sphinx-verilog-domain
    • Sphinx domain to allow integration of Verilog / SystemVerilog documentation into Sphinx.
  • sphinxcontrib-hdl-diagrams
    • Sphinx plugin to automatically generate diagrams from RTL.
  • symbolator
    • HDL symbol generator
  • undulate
    • Python compatible wavedrom module with extensions and console rendering support
  • wavedrom
    • Digital timing diagram rendering engine
  • wavedrompy
    • Python comptabled Wavedrom module

Other Awesome Lists

awesome-python-tools's People

Contributors

aolofsson avatar hubmartin avatar jbm9 avatar jimlewis avatar jpc-lip6 avatar martinda avatar mbaykenar avatar mgielda avatar mithro avatar mole99 avatar rajesh-s avatar ramazansubasi avatar sbeamer avatar shtaxxx avatar taichi-ishitani avatar tmichalak avatar

Watchers

 avatar

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.