рдореБрдХреНрдд рд╕реНрд░реЛрдд FPGA рдкреБрдврд╛рдХрд╛рд░

рдлреАрд▓реНрдб рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдЧреЗрдЯ рдЕреЕрд░реЗ ( FPGA) рдПрдХрд╛рддреНрдорд┐рдХ рд╕рд░реНрдХрд┐рдЯреНрд╕ рдЬреЗ рдЪрд┐рдк рдЙрддреНрдкрд╛рджрдирд╛рдирдВрддрд░ рдкреБрдиреНрд╣рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рд▓реЙрдЬрд┐рдХ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. рдЕрд╢рд╛ рдЪрд┐рдкреНрд╕рдордзреАрд▓ рдХреА рдмрд╛рдпрдирд░реА рдСрдкрд░реЗрд╢рдиреНрд╕ (AND, NAND, OR, NOR рдЖрдгрд┐ XOR) рд▓реЙрдЬрд┐рдХ рдЧреЗрдЯреНрд╕ (рд╕реНрд╡рд┐рдЪ) рд╡рд╛рдкрд░реВрди рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдЬреНрдпрд╛рдордзреНрдпреЗ рдПрдХрд╛рдзрд┐рдХ рдЗрдирдкреБрдЯ рдЖрдгрд┐ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдЕрд╕рддреЗ, рдЬреНрдпрд╛рдордзреАрд▓ рдХрдиреЗрдХреНрд╢рдирдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рджреНрд╡рд╛рд░реЗ рдмрджрд▓рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

OSFPGA рдЪреНрдпрд╛ рд╕рдВрд╕реНрдерд╛рдкрдХ рд╕рджрд╕реНрдпрд╛рдВрдордзреНрдпреЗ EPFL, QuickLogic, Zero ASIC рдЖрдгрд┐ GSG рдЧреНрд░реБрдк рд╕рд╛рд░рдЦреНрдпрд╛ рдХрдВрдкрдиреНрдпрд╛ рдЖрдгрд┐ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреАрд▓ рдХрд╛рд╣реА рдкреНрд░рдореБрдЦ FPGA рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╕рдВрд╢реЛрдзрдХрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. рдирд╡реАрди рд╕рдВрд╕реНрдереЗрдЪреНрдпрд╛ рдЖрд╢реНрд░рдпрд╛рдиреЗ, FPGA рдЪрд┐рдкреНрд╕ рдЖрдгрд┐ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдбрд┐рдЭрд╛рдЗрди рдСрдЯреЛрдореЗрд╢рди (EDA) рд╕рд╛рдареА рд╕рдорд░реНрдердирд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЬрд▓рдж рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд┐рдВрдЧрд╕рд╛рдареА рдЦреБрд▓реНрдпрд╛ рдЖрдгрд┐ рд╡рд┐рдирд╛рдореВрд▓реНрдп рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓. рд╕рдВрд╕реНрдерд╛ рдПрдлрдкреАрдЬреАрдПрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЦреБрд▓реНрдпрд╛ рдорд╛рдирдХрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдпреБрдХреНрдд рд╡рд┐рдХрд╛рд╕рд╛рд╡рд░ рджреЗрдЦрд░реЗрдЦ рдХрд░реЗрд▓, рдХрдВрдкрдиреНрдпрд╛рдВрдирд╛ рдЕрдиреБрднрд╡ рдЖрдгрд┐ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рддрдЯрд╕реНрде рдордВрдЪ рдкреНрд░рджрд╛рди рдХрд░реЗрд▓.

рдЕрд╢реА рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ рдХреА OSFPGA рдЪрд┐рдк рдХрдВрдкрдиреНрдпрд╛рдВрдирд╛ FPGAs рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЧреБрдВрддрд▓реЗрд▓реНрдпрд╛ рдХрд╛рд╣реА рдЕрднрд┐рдпрд╛рдВрддреНрд░рд┐рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреВрд░ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдХрд░реЗрд▓, рдЕрдВрддрд┐рдо рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛ рд░реЗрдбреАрдореЗрдб, рд╕рд╛рдиреБрдХреВрд▓ FPGA рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реНрдЯреЕрдХ рдкреНрд░рджрд╛рди рдХрд░реЗрд▓ рдЖрдгрд┐ рдирд╡реАрди рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддреЗрдЪреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╣рдпреЛрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрд▓. рд╣реЗ рдиреЛрдВрджрд╡рд▓реЗ рдЬрд╛рддреЗ рдХреА OSFPGA рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реА рдЦреБрд▓реА рд╕рд╛рдзрдиреЗ рдЙрдЪреНрдЪ рджрд░реНрдЬрд╛рдЪреА рдЧреБрдгрд╡рддреНрддрд╛, рдЙрджреНрдпреЛрдЧ рдорд╛рдирдХрд╛рдВрдЪреА рдкреВрд░реНрддрддрд╛ рдХрд┐рдВрд╡рд╛ рдУрд▓рд╛рдВрдбрд▓реА рдЬрд╛рддреАрд▓.

рдореБрдХреНрдд-рд╕реНрд░реЛрдд FPGA рдлрд╛рдЙрдВрдбреЗрд╢рдирдЪреА рдореБрдЦреНрдп рдЙрджреНрджрд┐рд╖реНрдЯреЗ рдЖрд╣реЗрдд:

  • FPGA рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЖрдгрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╕рдВрдЪ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ.
  • рд╡рд┐рд╡рд┐рдз рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдВрджреНрд╡рд╛рд░реЗ рдпрд╛ рд╕рд╛рдзрдирд╛рдВрдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рд╕ рдкреНрд░реЛрддреНрд╕рд╛рд╣рди рджреЗрдгреЗ.
  • рдкреНрд░рдЧрдд FPGA рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреНрдпрд╛ рд╕рдВрд╢реЛрдзрдирд╛рд╕рд╛рдареА, рддрд╕реЗрдЪ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЖрдгрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╡рд┐рдХрд╛рд╕рд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди, рд╡рд┐рдХрд╛рд╕ рдЖрдгрд┐ рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рдореЛрдХрд│реЗрдкрдгрд╛ рдкреНрд░рджрд╛рди рдХрд░рд╛.
  • рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХрд░рд┐рддреНрдпрд╛ рдЙрдкрд▓рдмреНрдз FPGA рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░реНрд╕, рдбрд┐рдЭрд╛рдЗрди рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЖрдгрд┐ рдкреНрд░рдХрд╛рд╢рди рдЖрдгрд┐ рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдкреЗрдЯрдВрдЯ рдкреНрд░рдХрдЯрдирд╛рдВрдордзреВрди рдШреЗрддрд▓реЗрд▓реНрдпрд╛ рдмреЛрд░реНрдб рдбрд┐рдЭрд╛рдЗрдиреНрд╕рдЪрд╛ рдХреЕрдЯрд▓реЙрдЧ рд░рд╛рдЦрдгреЗ.
  • рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдЪрд╛ рд╕рдореБрджрд╛рдп рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рд╛рдордЧреНрд░реА рддрдпрд╛рд░ рдХрд░рд╛ рдЖрдгрд┐ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рд╛.
  • рдирд╡реАрди FPGA рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░реНрд╕ рдЖрдгрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рдЪреА рдЪрд╛рдЪрдгреА рдЖрдгрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЦрд░реНрдЪ рдЖрдгрд┐ рд╡реЗрд│ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЪрд┐рдк рдЙрддреНрдкрд╛рджрдХрд╛рдВрд╕рд╣ рд╕рд╣рдпреЛрдЧ рд╕реБрд▓рдн рдХрд░рд╛.

рд╕рдВрдмрдВрдзрд┐рдд рдореБрдХреНрдд рд╕реНрд░реЛрдд рд╕рд╛рдзрдиреЗ:

  • рдУрдкрдирдПрдлрдкреАрдЬреАрдП рд╣реЗ рдПрдлрдкреАрдЬреАрдПрд╕рд╛рдареА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдбрд┐рдЭрд╛рдЗрди рдСрдЯреЛрдореЗрд╢рди (рдИрдбреАрдП) рдХрд┐рдЯ рдЖрд╣реЗ рдЬреЗ рд╡реЗрд░рд┐рд▓реЙрдЧ рд╡рд░реНрдгрдирд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдирд┐рд░реНрдорд┐рддреАрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ.
  • 1st CLaaS рд╣реЗ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрд╣реЗ рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдм рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдкреНрд░рд╡реЗрдЧрдХ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА FPGAs рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.
  • Verilog-to-Routing (VTR) рд╣реЗ рдЯреВрд▓рдХрд┐рдЯ рдЖрд╣реЗ рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ Verilog рднрд╛рд╖реЗрддреАрд▓ рд╡рд░реНрдгрдирд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ FPGA рдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
  • рд╕рд┐рдореНрдмреАрдлреНрд▓реЛ рд╣реЗ Xilinx 7, Lattice iCE40, Lattice ECP5 рдЖрдгрд┐ QuickLogic EOS S3 FPGAs рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрд╛рдп рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯреВрд▓рдХрд┐рдЯ рдЖрд╣реЗ.
  • Yosys рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рдПрдХ Verilog RTL рд╕рдВрд╢реНрд▓реЗрд╖рдг рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрд╣реЗ.
  • EPFL рд╣реЗ рд▓реЙрдЬрд┐рдХ рд╕рд┐рдВрдереЗрд╕рд┐рд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд╛рдпрдмреНрд░рд░реАрдВрдЪрд╛ рд╕рдВрдЧреНрд░рд╣ рдЖрд╣реЗ.
  • рд▓реЙрдЬрд┐рдХ рд╕рд┐рдВрдереЗрд╕рд┐рд╕ рдкрд░рд┐рдгрд╛рдо рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА LSOracle рд╣реЗ EPFL рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдЕреЕрдб-рдСрди рдЖрд╣реЗ.
  • рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдбрд┐рдЭрд╛рдИрди рдСрдЯреЛрдореЗрд╢рди (EDA) рд╕рд┐рд╕реНрдЯреАрдорд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдбрд╛рд▓рд╛рдЗрдЭ рдПрдХ рдкрд╛рдпрдерди рдЯреВрд▓рдХрд┐рдЯ рдЖрд╣реЗ.
  • GHDL рд╣реЗ VHDL рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╡рд░реНрдгрди рднрд╛рд╖реЗрд╕рд╛рдареА рдХрдВрдкрд╛рдЗрд▓рд░, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ, рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЖрдгрд┐ рд╕рд┐рдВрдереЗрд╕рд╛рдпрдЭрд░ рдЖрд╣реЗ.
  • VerilogCreator рд╣реЗ QtCreator рд╕рд╛рдареА рдкреНрд▓рдЧрдЗрди рдЖрд╣реЗ рдЬреЗ рдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд▓рд╛ Verilog 2005 рдордзреНрдпреЗ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдмрджрд▓рддреЗ.
  • FuseSoC HDL (рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╡рд░реНрдгрди рднрд╛рд╖рд╛) рдХреЛрдб рдЖрдгрд┐ FPGA/ASIC рд╕рд╛рдареА рдЕрд╕реЗрдВрдмрд▓реА рдЕреЕрдмреНрд╕реНрдЯреНрд░реЕрдХреНрд╢рди рдпреБрдЯрд┐рд▓рд┐рдЯреАрд╕рд╛рдареА рдкреЕрдХреЗрдЬ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЖрд╣реЗ.
  • SOFA (Skywater Open-source FPGA) рд╣рд╛ Skywater PDK рдЖрдгрд┐ OpenFPGA рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд╛рдкрд░реВрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓рд╛ рдУрдкрди FPGA IP (рдЗрдВрдЯрд▓реЗрдХреНрдЪреНрдпреБрдЕрд▓ рдкреНрд░реЙрдкрд░реНрдЯреА) рдЪрд╛ рд╕рдВрдЪ рдЖрд╣реЗ.
  • рдУрдкрдирдПрдлрдкреАрдЬреАрдПрд▓рдУрдбрд░ рд╣реА рдПрдлрдкреАрдЬреАрдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрддрддрд╛ рдЖрд╣реЗ.
  • LiteDRAM - DRAM рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ FPGA рд╕рд╛рдареА рд╕рд╛рдиреБрдХреВрд▓ IP рдХреЛрд░.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА Main_MiSter рдкреНрд░рдХрд▓реНрдк рд▓рдХреНрд╖рд╛рдд рдШреЗрдК рд╢рдХрддреЛ, рдЬреЛ рдЬреБрдиреНрдпрд╛ рдЧреЗрдо рдХрдиреНрд╕реЛрд▓ рдЖрдгрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рдХреЙрдореНрдкреНрдпреБрдЯрд░рдЪреНрдпрд╛ рдЙрдкрдХрд░рдгрд╛рдВрдЪреЗ рдЕрдиреБрдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯреАрд╡реНрд╣реА рдХрд┐рдВрд╡рд╛ рдореЙрдирд┐рдЯрд░рд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ DE10-Nano FPGA рдмреЛрд░реНрдб рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдЪрд╛рд▓рдгрд╛рд░реНтАНрдпрд╛ рдПрдореБрд▓реЗрдЯрд░рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, FPGA рд╡рд╛рдкрд░рд▓реНрдпрд╛рдиреЗ рдореВрд│ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ рдЬреНрдпрд╛рд╡рд░ рддреБрдореНрд╣реА рдЬреБрдиреНрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рд╡рд┐рджреНрдпрдорд╛рди рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддрд┐рдорд╛ рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛