跳转至

硬件构建

Hardware Construction Language (HCL) or High-Level HDL

  • ActiveCore (ITMO)
    • A framework that demonstrates original hardware designing concept based on "Micro-Language IP" (MLIP) cores.
  • Amaranth HDL, under BSD 2-Clause License
    • The Amaranth project provides an open-source toolchain for developing hardware based on synchronous digital logic using the Python programming language, as well as evaluation board definitions, a System on Chip toolkit, and more.
  • BSV/BH (Bluespec, Sandburst, MIT), under MIT License
    • Bluespec SystemVerilog (BSV) and Bluespec Haskell (BH or Bluespec Classic), a high-level hardware description language.
    • Bluespec Compiler (Bluespec), most under BSD-3-Clause License
      • Compiler, simulator, and tools for the Bluespec Hardware Description Language.
    • CBG-BSV Toy Bluespec Compiler (Cambridge)
      • "For compiler writers like myself, the best way to learn a new language was to write a toy compiler for it."
  • Cash (GaTech), under BSD 3-Clause License
    • Cash is a C++ embedded domain specific library (EDSL) for hardware design and simulation.
  • Chisel (Berkeley), under BSD 3-Clause License
    • A hardware construction language that supports advanced hardware design using highly parameterized generators and layered domain-specific hardware languages.
  • CFlexHDL (Victor Suarez Rovere), under a customized license
    • Design digital circuits in C.
  • Cλash/Clash (U Twente), under BSD 2-Clause License
    • A functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell.
  • Co-Feldspar (Chalmers U of Tech.), under BSD 3-Clause License
    • A staged hardware software co-design language embedded in Haskell.
  • DFiant HDL (Barcelona Supercomputing Center), under GNU Lesser General Public License v3.0
    • DFiant is a dataflow HDL and is embedded as a library in the Scala programming language.
  • Genesis2 (Stanford), under BSD 2-Clause License
    • A design system and meta-programming language for automatically producing custom hardware.
  • Hardcaml (Jane Street)
    • An OCaml library for designing hardware.
  • HeteroCL (Cornell, UCLA), under Apache License 2.0
    • A Multi-Paradigm Programming Infrastructure for Software-Defined Reconfigurable Computing.
  • HDLGen (Wilson Chen), under Apache License 2.0
    • HDLGen is a tool for HDL(mainly for Verilog) generation, it enables embedded Perl or Python scripts in Verilog source code, and support Perl style variable anyway, to generate desired HDL in an easy and efficient way.
  • hdl-js (Dmitry Soshnikov), under MIT License
    • Hardware description language (HDL) parser, and Hardware simulator.
  • hoodlum (Tim Ryan), under MIT License or Apache License 2.0
    • It wants to add stronger type guarantees and high-level concepts like enums (and structs/typedefs), but also make FPGA design easier and more fun to get involved with.
  • HWT, under MIT License
    • HWToolkit (HWT) is a VHDL/Verilog/SystemC code generator, simulator API written in python/c++.
  • kaze (ferris), under Apache License 2.0 or MIT license
    • kaze provides an API to describe Modules composed of Signals, which can then be used to generate Rust simulator code or Verilog modules.
  • Kiwi (Cambridge)
    • Aims to make reconfigurable computing technology like Field Programmable Gate Arrays (FPGAs) more accessible to mainstream programmers.
  • Kratos (Stanford), under BSD 2-Clause License
    • Kratos is a hardware design language written in C++/Python.
  • magma (Stanford), under MIT License
    • Magma is a hardware design language embedded in python.
  • Migen FHDL (M-Labs), under BSD 2-Clause License
    • Migen makes it possible to apply modern software concepts such as object-oriented programming and metaprogramming to design hardware.
  • MyHDL, under GNU Lesser General Public License v2.0
    • MyHDL is a Python package for using Python as a hardware description and verification language.
  • pipelineDSL, under BSD 3-Clause License
    • A Haskell DSL for describing hardware pipelines.
  • PSHDL, under GNU General Public License
    • PSHDL is aimed to be a language that makes it easy to write something that can be synthesized and behaves the same in simulation.
  • PyGears (U Novi Sad), under MIT License
    • PyGears is a free framework that lets you design hardware using high-level Python constructs and compile it to synthesizable SystemVerilog or Verilog code.
  • PyHCL (SCUT), under MIT License
    • PyHCL is a hardware construct language like Chisel but more lightweight and more relaxed to use.
  • PyMTL3 (Cornell), under BSD 3-Clause License
    • PyMTL 3 (Mamba) is the latest version of PyMTL, an open-source Python-based hardware generation, simulation, and verification framework with multi-level hardware modeling support.
  • Pyrope (UCSC), under BSD 3-Clause License
    • Python-like language supporting "fluid pipelines" and "live flow".
  • PyRTL (UCSB), under BSD 3-Clause License
    • a collection of classes for pythonic register-transfer level design, simulation, tracing, and testing suitable for teaching and research.
  • QuSoC (Evgeny Muryshkin)
    • Low-level RTL design using C# and Quokka FPGA toolkit.
  • ReqAck (Aliaksei Chapyzhenka), under MIT License
    • JavaScript Tool set to construct, transform and analyze digital circuits based on elastic transactional protocol and Request-Acknowledge handshake.
  • RHDL (Phil Tomson), under GNU General Public License v2.0
    • Ruby Hardware Description Language.
  • ROHD (Intel), under BSD 3-Clause License
    • A framework for describing and verifying hardware in the Dart programming language.
  • ScalaHDL (SJTU, Morgan Staneley)
    • An open-source domain-specific language (DSL) that enables designers to describe algorithms using a multi-paradigm programming language, and generate the required Verilog code to implement such systems.
  • SpinalHDL, under LGPL License and MIT License
    • A language to describe digital hardware.
  • SystemC (Accellera), under Apache License v2.0
    • Standards are developed in a collaborative and open environment by technical working groups.
    • Intel Compiler for SystemC (ICSC) translates synthesizable SystemC design to synthesizable SystemVerilog design.
  • THDL++ (Sysprogs), under LGPL license
    • THDL++ is a hardware design language, that inherits VHDL semantics and provides several major timesaving features.
  • Verilog.jl, under MIT "Expat" License
    • A Verilog-generation DSL for Julia.
  • Veriloggen (NAIST), under Apache License 2.0
    • Veriloggen is constructed on Pyverilog. In addition to the low-level abstraction of Verilog HDL, Veriloggen provides high-level abstractions to productively express a hardware structure.
      • Stream is a dataflow-based high-level synthesis layer for high-performance parallel stream processing.
      • Thread is a procedural high-level synthesis layer to express sequential behaviors, such as DMA transfers and controls.
  • VeriScala (SJTU)
    • A new open-source Domain-Specific Language (DSL) based framework that supports highly abstracted object-oriented hardware defining, programmatical testing, and interactive on-chip debugging.
  • See also the lists in awesome-hdl's Meta HDL and Transpilers and HWT's similar projects.