Proyecto LLHD - Lenguaje de descripción de hardware universal

Justo el otro día, se publicó un artículo muy interesante de investigadores suizos en arXiv , que presenta los detalles del proyecto LLHD . Este es un proyecto para crear una representación intermedia de varios niveles para lenguajes de descripción de hardware, heredando la ideología y los principios del proyecto LLVM .


En palabras simples, este es un nuevo lenguaje para describir el hardware, sin las deficiencias de sus predecesores y ahora demostrando un rendimiento decente, flexibilidad y compatibilidad con la infraestructura existente. Lo bueno es que el código de las herramientas principales está escrito en Rust .


Jerarquía de herramientas propuesta (en adelante, imágenes del artículo original)


El proyecto tiene todas las posibilidades de convertirse en lo que GCC y LLVM alguna vez se convirtieron para el mundo del software abierto. Es difícil imaginar cuánto puede marcar la diferencia en torno a la minería de hierro.


Debajo del cortador hay una descripción del estado actual de las cosas, una breve descripción del lenguaje y las diferencias del nuevo enfoque.


Introducción


, NDA, . , , : HDL , , (bitstream), . Lattice iCE40 ( iCE Storm), ECP5 ( Trellis) , , Xilinx 7 ( X-Ray).


, - . , : Verilog VHDL. , , . , - : , . , Chisel, Verilog VHDL. , , Verilog, .




. , Verilog VHDL —  . . .


, , , — .


HTML, , .


, ( ) , , , , .


, , — , — . , , , , «».



(Intermediate Representation, IR) . , LLVM GCC LLVM IR GIMPLE. CPS. JVM IR. .


IR , .


, , , :


imagen

: (behavioral), (structural) (netlist):


  • , . , - .
  • , . , (. ).
  • . , , , .

, IR . LLHD . LLHD , , . LLHD .


LLVM LLHD


LLVM — , — IR LLVM. , , . LLVM . ++ Siberia JIT VM Smalltalk.


, IR . LLVM . , LLVM IR : , «» , , , .. , IR , « » , LLVM .


SSA .. , , . .


IR LLVM . IR . , , :



LLHD IR LLVM, , . , .


LLHD IR .


IR , LLVM JIT- IR .


, . .


IR LLHD


HDL LLHD : , .


0 0 1 . . , SSA. , . .


, , . , . , . 0 . . , , . , , . , .


. , . .


IR LLHD. , :



acc ( clk, 32- x en) 32- (q). d q, , . zero.



acc_ff clk. prb ; wait ( - ) ; neq and " " " "; br ; drv .



acc_comb q, x en. , , (add) qp xp.


. , . , :



LLHD


  • : (CF), (DCE) peephole (IS)
  • «» (ECM)
  • (TCM)
  • phi (TCFE)

IR :



, . .



LLHD, JIT- LLHD HDL . HDL , , LLHD Moore.



, --. JIT- LLHD 2.4 , , RISC-V .


, Moore. . , LLHD RISC-V.



, , , . , SystemVerilog, JIT- LLHD, .


:


  • LLHD
  • IR LLHD , ,
  • , HDL
  • -
  • ,

, , . , , , .


, Rust , , LLVM . , LLHD.


All Articles