Difference between revisions of "Hardware Description Language"

From CPUdev wiki
Jump to navigation Jump to search
(→‎List of HDLs: sortable table + feature matrix)
(→‎List of HDLs: replace "type system" with "allows non-synthesizable constructs", which is the more interesting property.)
Line 20: Line 20:
|+ Caption text
|+ Caption text
|-
|-
! Name !! Simulation !! Synthesis !! Type system
! Name !! Simulation !! Synthesis !! Allows non-synthesizable constructs
|-
|-
| [https://www.chisel-lang.org/ Chisel]
| [https://www.chisel-lang.org/ Chisel]
Line 40: Line 40:
| Yes
| Yes
| Yes
| Yes
| Static, strong
| ?
|-
|-
| [https://github.com/SpinalHDL/SpinalHDL SpinalHDL]
| [https://github.com/SpinalHDL/SpinalHDL SpinalHDL]
| Yes
| Yes
| Yes
| Yes
| Static, strong
| ?
|}
|}



Revision as of 20:55, 21 March 2025

A hardware description language, or HDL, is a tool to describe the behavior of electronic circuits.

While intended for simulation, most (all?) HDLs are also usable to synthesize physical circuits. However, beware some languages support constructs that cannot actually be translated to a physical circuit.

The most common HDL is Verilog, followed by VHDL. Many other HDLs are translated to Verilog under the hood.

Simulation

Verilator

Synthesis

Yosys

List of HDLs

This list is incomplete. Feel free to add more entries.

Caption text
Name Simulation Synthesis Allows non-synthesizable constructs
Chisel ? ? ?
Clash ? ? ?
MyHDL ? ? ?
RustHDL Yes Yes ?
SpinalHDL Yes Yes ?

See also

External references