就在前几天,瑞士研究人员在arXiv上发表了一篇非常有趣的文章,其中介绍了LLHD项目的详细信息。该项目继承了LLVM项目的思想和原则,为硬件描述语言创建了多级中间表示形式。
简而言之,这是一种用于描述硬件的新语言,它没有其前辈的缺点,现在展示了出色的性能,灵活性和与现有基础结构的兼容性。不错的是,主要工具的代码是用Rust编写的。
建议的工具层次结构(以下为原始文章的图片)
该项目有机会成为GCC和LLVM曾经成为开放软件世界的东西。很难想象这会对铁矿开采产生多大的影响。
刀具下方是对当前事务状态的描述,对语言的简要概述以及新方法的区别。
介绍
, 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 , .
, , , :
: (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, .
:
, , . , , , .
, Rust , , LLVM . , LLHD.