рдПрд▓рдПрд▓рдПрдЪрдбреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ - рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд┐рд╡рд░рдг рднрд╛рд╖рд╛

рджреВрд╕рд░реЗ рджрд┐рди, рд╕реНрд╡рд┐рд╕ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд▓реЗрдЦ arXiv рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ LLHD рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдпрд╣ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд┐рд╡рд░рдг рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЬреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ ред


рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдЙрдкрдХрд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рднрд╛рд╖рд╛ рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рдкреВрд░реНрд╡рд╡рд░реНрддрд┐рдпреЛрдВ рдХреА рдХрдорд┐рдпреЛрдВ рд╕реЗ рд░рд╣рд┐рдд рд╣реИ рдФрд░ рдЕрдм рдореМрдЬреВрджрд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреЗ рдкреНрд░рджрд░реНрд╢рди, рд▓рдЪреАрд▓реЗрдкрди рдФрд░ рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд░рд╕реНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ ред


рдФрдЬрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрджрд╛рдиреБрдХреНрд░рдо (рдЗрд╕рдХреЗ рдмрд╛рдж рдореВрд▓ рд▓реЗрдЦ рд╕реЗ рдЪрд┐рддреНрд░)


рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкрд╛рд╕ рдПрдХ рдмрд╛рд░ рдУрдкрди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЬреАрд╕реАрд╕реА рдФрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрдирдиреЗ рдХрд╛ рд╣рд░ рдореМрдХрд╛ рд╣реИ ред рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЛрд╣реЗ рдХреЗ рдЦрдирди рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд┐рддрдирд╛ рдлрд░реНрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред


рдХрдЯрд░ рдХреЗ рддрд╣рдд рдорд╛рдорд▓реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐, рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди рдФрд░ рдирдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЕрдВрддрд░ рдХрд╛ рд╡рд░реНрдгрди рд╣реИред


рдкрд░рд┐рдЪрдп


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


:


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

, , . , , , .


, Rust , , LLVM . , LLHD.


All Articles