Projet LLHD - Langage universel de description du matériel

L'autre jour, un article très intéressant de chercheurs suisses a été publié sur arXiv , qui présente les détails du projet LLHD . Il s'agit d'un projet visant à créer une représentation intermédiaire à plusieurs niveaux pour les langages de description matérielle, héritant de l'idéologie et des principes du projet LLVM .


En termes simples, il s'agit d'un nouveau langage pour décrire le matériel, dépourvu des défauts de ses prédécesseurs et démontrant désormais des performances, une flexibilité et une compatibilité décentes avec l'infrastructure existante. Ce qui est bien, c'est que le code des principaux outils est écrit en rouille .


Hiérarchie d'outils proposée (ci-après images de l'article original)


Le projet a toutes les chances de devenir ce que GCC et LLVM sont devenus pour le monde du logiciel ouvert. Il est difficile d'imaginer à quel point cela peut faire une différence dans l'extraction du fer.


Sous le cutter se trouve une description de la situation actuelle, un bref aperçu du langage et des différences de la nouvelle approche.


introduction


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


, , , :


image

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