ํ์ฅ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅ ๊ฒ์ดํธ ์ด๋ ์ด ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ๊ฐ๋ฐฉํ ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ์๋ฃจ์ ์ ๊ณต๋ ๊ฐ๋ฐ์ ์ํ ํ๊ฒฝ์ ๊ฐ๋ฐ, ํ๋ณด ๋ฐ ์์ฑํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ์๋ก์ด ๋น์๋ฆฌ ์กฐ์ง์ธ ์คํ ์์ค FPGA ์ฌ๋จ(OSFPGA)์ ์ค๋ฆฝ์ ๋ฐํํ์ต๋๋ค. FPGA) ์นฉ ์ ์กฐ ํ ์ฌํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅํ ๋ ผ๋ฆฌ ์์ ์ ํ์ฉํ๋ ์ง์ ํ๋ก์ ๋๋ค. ์ด๋ฌํ ์นฉ์ ์ฃผ์ ์ด์ง ์ฐ์ฐ(AND, NAND, OR, NOR ๋ฐ XOR)์ ์ฌ๋ฌ ์ ๋ ฅ๊ณผ ํ๋์ ์ถ๋ ฅ์ด ์๋ ๋ ผ๋ฆฌ ๊ฒ์ดํธ(์ค์์น)๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋๋ฉฐ, ์ฐ๊ฒฐ ๊ตฌ์ฑ์ ์ํํธ์จ์ด๋ก ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
OSFPGA์ ์ฐฝ๋ฆฝ ๋ฉค๋ฒ์๋ EPFL, QuickLogic, Zero ASIC ๋ฐ GSG Group๊ณผ ๊ฐ์ ํ์ฌ ๋ฐ ํ๋ก์ ํธ์ ์ ๋ช ํ FPGA ๊ธฐ์ ์ฐ๊ตฌ์์ด ํฌํจ๋์ด ์์ต๋๋ค. ์๋ก์ด ์กฐ์ง์ ํ์์ผ๋ก FPGA ์นฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ ์ํ ํ๋กํ ํ์ดํ๊ณผ ์ ์ ์ค๊ณ ์๋ํ(EDA) ์ง์์ ์ํ ๊ฐ๋ฐฉํ ๋ฌด๋ฃ ๋๊ตฌ ์ธํธ๊ฐ ๊ฐ๋ฐ๋ ์์ ์ ๋๋ค. ๋ํ ์ด ์กฐ์ง์ FPGA์ ๊ด๋ จ๋ ๊ฐ๋ฐฉํ ํ์ค์ ๊ณต๋ ๊ฐ๋ฐ์ ๊ฐ๋ ํ์ฌ ๊ธฐ์ ์ด ๊ฒฝํ๊ณผ ๊ธฐ์ ์ ๊ณต์ ํ ์ ์๋ ์ค๋ฆฝ์ ์ธ ํฌ๋ผ์ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
OSFPGA๋ฅผ ํตํด ์นฉ ํ์ฌ๋ FPGA ์์ฐ๊ณผ ๊ด๋ จ๋ ์์ง๋์ด๋ง ํ๋ก์ธ์ค ์ค ์ผ๋ถ๋ฅผ ์ ๊ฑฐํ๊ณ ์ต์ข ์ฌ์ฉ์ ๊ฐ๋ฐ์์๊ฒ ๊ธฐ์ฑ ๋ง์ถคํ FPGA ์ํํธ์จ์ด ์คํ์ ์ ๊ณตํ๋ฉฐ ํ์ ์ ํตํด ์๋ก์ด ๊ณ ํ์ง ์ํคํ ์ฒ๋ฅผ ๋ง๋ค ์ ์์ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. OSFPGA์์ ์ ๊ณตํ๋ ๊ฐ๋ฐฉํ ๋๊ตฌ๋ ์ ๊ณ ํ์ค์ ์ถฉ์กฑํ๊ฑฐ๋ ์ด๊ณผํ๋ ์ต๊ณ ์์ค์ ํ์ง๋ก ์ ์ง๋ฉ๋๋ค.
์คํ ์์ค FPGA Foundation์ ์ฃผ์ ๋ชฉํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- FPGA ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด์ ๊ด๋ จ๋ ๋๊ตฌ ์ธํธ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ฆฌ์์ค ๋ฐ ์ธํ๋ผ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ค์ํ ์ด๋ฒคํธ๋ฅผ ํตํด ์ด๋ฌํ ๋๊ตฌ์ ์ฌ์ฉ์ ํ๋ณดํฉ๋๋ค.
- ๊ณ ๊ธ FPGA ์ํคํ ์ฒ ์ฐ๊ตฌ๋ ๋ฌผ๋ก ๊ด๋ จ ์ํํธ์จ์ด ๋ฐ ํ๋์จ์ด ๊ฐ๋ฐ์ ์ํ ๋๊ตฌ์ ์ง์, ๊ฐ๋ฐ ๋ฐ ๊ฐ๋ฐฉ์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ์ถํ๋ฌผ ๋ฐ ๋ง๋ฃ๋ ํนํ ๊ณต๊ฐ์์ ํ์๋ ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ FPGA ์ํคํ ์ฒ, ์ค๊ณ ๊ธฐ์ ๋ฐ ๋ณด๋ ์ค๊ณ์ ์นดํ๋ก๊ทธ๋ฅผ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค.
- ๊ด์ฌ ์๋ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ด ๋๋ ๊ต์ก ์๋ฃ๋ฅผ ์ค๋นํ๊ณ ์ด์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์นฉ ์ ์กฐ์ ์ฒด์์ ํ์ ์ ๋จ์ํํ์ฌ ์๋ก์ด FPGA ์ํคํ ์ฒ ๋ฐ ํ๋์จ์ด๋ฅผ ํ ์คํธํ๊ณ ๊ฒ์ฆํ๋ ๋ฐ ๋๋ ๋น์ฉ๊ณผ ์๊ฐ์ ์ค์ ๋๋ค.
๊ด๋ จ ์คํ ์์ค ๋๊ตฌ:
- OpenFPGA๋ Verilog ์ค๋ช ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋์จ์ด ์์ฑ์ ์ง์ํ๋ FPGA์ฉ EDA(์ ์ ์ค๊ณ ์๋ํ) ํคํธ์ ๋๋ค.
- ์ฒซ ๋ฒ์งธ CLaaS๋ FPGA๋ฅผ ์ฌ์ฉํ์ฌ ์น ๋ฐ ํด๋ผ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฉ ํ๋์จ์ด ๊ฐ์๊ธฐ๋ฅผ ์์ฑํ ์ ์๋ ํ๋ ์์ํฌ์ ๋๋ค.
- Verilog-to-Routing(VTR)์ Verilog ์ธ์ด์ ์ค๋ช ์ ๊ธฐ๋ฐ์ผ๋ก ์ ํํ FPGA์ ๊ตฌ์ฑ์ ์์ฑํ ์ ์๋ ํดํท์ ๋๋ค.
- Symbiflow๋ Xilinx 7, Lattice iCE40, Lattice ECP5 ๋ฐ QuickLogic EOS S3 FPGA ๊ธฐ๋ฐ ์๋ฃจ์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ํดํท์ ๋๋ค.
- Yosys๋ ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ Verilog RTL ํฉ์ฑ ํ๋ ์์ํฌ์ ๋๋ค.
- EPFL์ ๋ ผ๋ฆฌ ํฉ์ฑ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ์์ ๋๋ค.
- LSOracle์ ๋ ผ๋ฆฌ ํฉ์ฑ ๊ฒฐ๊ณผ๋ฅผ ์ต์ ํํ๊ธฐ ์ํ EPFL ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ๋๋ค.
- Edalize๋ ์ ์ ์ค๊ณ ์๋ํ(EDA) ์์คํ ๊ณผ ์ํธ ์์ฉํ๊ณ ์ด๋ฅผ ์ํ ํ๋ก์ ํธ ํ์ผ์ ์์ฑํ๊ธฐ ์ํ Python ํดํท์ ๋๋ค.
- GHDL์ VHDL ํ๋์จ์ด ์ค๋ช ์ธ์ด๋ฅผ ์ํ ์ปดํ์ผ๋ฌ, ๋ถ์๊ธฐ, ์๋ฎฌ๋ ์ดํฐ ๋ฐ ํฉ์ฑ๊ธฐ์ ๋๋ค.
- VerilogCreator๋ ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ Verilog 2005์ ๊ฐ๋ฐ ํ๊ฒฝ์ผ๋ก ์ ํํ๋ QtCreator์ฉ ํ๋ฌ๊ทธ์ธ์ ๋๋ค.
- FuseSoC๋ HDL(Hardware Description Language) ์ฝ๋์ฉ ํจํค์ง ๊ด๋ฆฌ์์ด์ FPGA/ASIC์ฉ ์ด์ ๋ธ๋ฆฌ ์ถ์ํ ์ ํธ๋ฆฌํฐ์ ๋๋ค.
- SOFA(Skywater ์คํ ์์ค FPGA)๋ Skywater PDK ๋ฐ OpenFPGA ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ๊ฐ๋ฐฉํ FPGA IP(์ง์ ์ฌ์ฐ) ์ธํธ์ ๋๋ค.
- openFPGALoader๋ FPGA ํ๋ก๊ทธ๋๋ฐ์ ์ํ ์ ํธ๋ฆฌํฐ์ ๋๋ค.
- LiteDRAM - DRAM ๊ตฌํ์ ๊ฐ์ถ FPGA์ฉ ๋ง์ถคํ IP ์ฝ์ด์ ๋๋ค.
๋ํ TV๋ ๋ชจ๋ํฐ์ ์ฐ๊ฒฐ๋ DE10-Nano FPGA ๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋๋ ๊ฒ์ ์ฝ์๊ณผ ํด๋์ ์ปดํจํฐ์ ์ฅ๋น๋ฅผ ์๋ฎฌ๋ ์ด์
ํ ์ ์๋ Main_MiSTer ํ๋ก์ ํธ์ ์ฃผ๋ชฉํ ์ ์์ต๋๋ค. ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ FPGA๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ํ๋์จ์ด ํ๋ซํผ์ฉ ๊ธฐ์กด ์์คํ
์ด๋ฏธ์ง์ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ ์ ์๋ ์๋ ํ๋์จ์ด ํ๊ฒฝ์ ๋ค์ ์์ฑํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru