LLHD-Projekt - Universal Hardware Description Language

Erst neulich wurde auf arXiv ein sehr interessanter Artikel von Schweizer Forschern veröffentlicht , der die Details des LLHD-Projekts vorstellt . Dies ist ein Projekt zur Erstellung einer mehrstufigen Zwischendarstellung für Hardwarebeschreibungssprachen, die die Ideologie und Prinzipien des LLVM-Projekts übernimmt .


Mit einfachen Worten, dies ist eine neue Sprache zur Beschreibung der Ausrüstung, ohne die Mängel ihrer Vorgänger, und die jetzt eine anständige Leistung, Flexibilität und Kompatibilität mit der vorhandenen Infrastruktur demonstriert. Das Schöne ist, dass der Code für die Hauptwerkzeuge in Rust geschrieben ist .


Vorgeschlagene Hierarchie der Werkzeuge (im Folgenden Bilder aus dem Originalartikel)


Das Projekt hat jede Chance, das zu werden, was GCC und LLVM einst für die offene Software-Welt wurden. Es ist schwer vorstellbar, wie sehr dies den Eisenabbau beeinflussen kann.


Unter dem Cutter finden Sie eine Beschreibung des aktuellen Zustands, einen kurzen Überblick über die Sprache und die Unterschiede des neuen Ansatzes.


Einführung


, 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 , .


, , , :


Bild

: (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