Bitstream Generation๋ ๋์งํธ ํ๋ก ์ค๊ณ์์ ์ค์ํ๊ณ ํ์์ ์ธ ๊ณผ์ ์ผ๋ก, ํน์ ํ๋์จ์ด ์ค๊ณ ์ธ์ด(HDL)๋ก ์์ฑ๋ ํ๋ก์ ๊ธฐ๋ฅ์ ์ค๋ช ์ ๋นํธ์คํธ๋ฆผ ํํ๋ก ๋ณํํ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค. ์ด ๊ณผ์ ์ FPGA(Field-Programmable Gate Array)์ ๊ฐ์ ํ๋ก๊ทธ๋๋จธ๋ธ ๋ ผ๋ฆฌ ์์์ ๊ตฌํ์ ํ์์ ์ด๋ฉฐ, ์ด๋ฌํ ์์๋ค์ ๋ค์ํ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง์ถฐ ์ฌ๊ตฌ์ฑํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
Bitstream Generation์ ์ฃผ์ ์ญํ ์ ์ค๊ณ๋ ํ๋ก์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ์ ๋์์ ํ๋์จ์ด๊ฐ ์ดํดํ ์ ์๋ ํ์์ผ๋ก ๋ณํํ๋ ๊ฒ์ ๋๋ค. ์ด ๊ณผ์ ์ ์ค๊ณ์ ์ต์ ํ, ํ์ด๋ฐ ๋ถ์, ๋ฆฌ์์ค ํ ๋น ๋ฑ์ ํฌํจํ์ฌ, ์ต์ข ์ ์ผ๋ก ์ค๊ณ๊ฐ ์ค์ ํ๋์จ์ด์์ ์ํ๋ ๋๋ก ์๋ํ๋๋ก ๋ณด์ฅํฉ๋๋ค. ๋นํธ์คํธ๋ฆผ์ ๊ฐ ๊ตฌ์ฑ ์์์ ์ํ๋ฅผ ๋ํ๋ด๋ ์ด์ง ๋ฐ์ดํฐ ์คํธ๋ฆผ์ผ๋ก, FPGA ๋ด๋ถ์ LUT(Look-Up Table), ํ๋ฆฝํ๋กญ, ๋ผ์ฐํ ์์ ๋ฑ๊ณผ ๊ฐ์ ํ๋์จ์ด ์์์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
์ด ๊ณผ์ ์ ์ค์์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฒซ์งธ, Bitstream Generation์ ๋ณต์กํ ๋์งํธ ํ๋ก๋ฅผ ์ค์ ํ๋์จ์ด๋ก ๋ณํํ๋ ๋ฐ ํ์ํ ํ์ ๋จ๊ณ๋ก, ์ค๊ณ์ ๊ฒ์ฆ๊ณผ ์ต์ ํ๋ฅผ ํตํด ์ฑ๋ฅ์ ๊ทน๋ํํฉ๋๋ค. ๋์งธ, ์ด ๊ณผ์ ์ ์ค๊ณ์๊ฐ ํ๋์จ์ด์ ๋์์ ์ ํํ๊ฒ ์ฌํํ ์ ์๋๋ก ํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ค์ํ ์์ฉ ๋ถ์ผ์์์ ํ์ฉ ๊ฐ๋ฅ์ฑ์ ๋์ ๋๋ค. ๋ง์ง๋ง์ผ๋ก, ๋นํธ์คํธ๋ฆผ์ ํ๋์จ์ด์ ์ฌ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ๊ฒ ํ์ฌ, ์ค๊ณ ๋ณ๊ฒฝ์ด๋ ์ ๋ฐ์ดํธ๊ฐ ์ฉ์ดํ๋๋ก ํฉ๋๋ค.
Bitstream Generation์ ๊ตฌ์ฑ ์์์ ์ด์ ์๋ฆฌ๋ ๋ณต์กํ ๋์งํธ ํ๋ก ์ค๊ณ๋ฅผ ํ๋์จ์ด๋ก ๋ณํํ๋ ๋ฐ ํ์ํ ์ฃผ์ ๋จ๊ณ์ ์ํธ์์ฉ์ ํฌํจํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๋จ๊ณ๋ก ๋๋ ์ ์์ต๋๋ค: ์ค๊ณ ์ ๋ ฅ, ํฉ์ฑ(Synthesis), ๋ฐฐ์น ๋ฐ ๋ผ์ฐํ (Placement and Routing), ๋นํธ์คํธ๋ฆผ ์์ฑ.
์ค๊ณ ์ ๋ ฅ: ์ด ๋จ๊ณ์์๋ ์ค๊ณ์๊ฐ HDL๋ก ํ๋ก๋ฅผ ์ ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ HDL์๋ VHDL๊ณผ Verilog๊ฐ ์์ผ๋ฉฐ, ์ด ์ธ์ด๋ค์ ํ๋ก์ ๊ตฌ์กฐ์ ๋์์ ๊ธฐ์ ํฉ๋๋ค.
ํฉ์ฑ(Synthesis): ํฉ์ฑ ๋จ๊ณ์์๋ HDL๋ก ์์ฑ๋ ์ค๊ณ๋ฅผ ๋ ผ๋ฆฌ ๊ฒ์ดํธ์ ํ๋ฆฝํ๋กญ ๋ฑ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ก ๋ณํํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ค๊ณ์ ์ฑ๋ฅ์ ๊ทน๋ํํ๊ณ , ์์ ์ฌ์ฉ์ ์ต์ํํฉ๋๋ค. ํฉ์ฑ ํ, ์ค๊ณ์ ๋ ผ๋ฆฌ์ ํํ์ด ์์ฑ๋ฉ๋๋ค.
๋ฐฐ์น ๋ฐ ๋ผ์ฐํ (Placement and Routing): ์ด ๋จ๊ณ์์๋ ํฉ์ฑ๋ ๋ ผ๋ฆฌ ํ๋ก๋ฅผ FPGA์ ์ค์ ํ๋์จ์ด ์์์ ๋ฐฐ์นํ๊ณ , ์ ํธ ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค. ๋ฐฐ์น ๋จ๊ณ์์๋ ๊ฐ ๋ ผ๋ฆฌ ์์๋ฅผ FPGA์ ๋ฌผ๋ฆฌ์ ์์์ ํ ๋นํ๊ณ , ๋ผ์ฐํ ๋จ๊ณ์์๋ ์ ํธ์ ๊ฒฝ๋ก๋ฅผ ์ ์ํฉ๋๋ค. ์ด ๊ณผ์ ์ ํ์ด๋ฐ ๋ถ์์ ํตํด ์ต์ ํ๋์ด์ผ ํ๋ฉฐ, ๊ฐ ๊ฒฝ๋ก์ ์ง์ฐ ์๊ฐ์ ์ต์ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋นํธ์คํธ๋ฆผ ์์ฑ: ๋ง์ง๋ง ๋จ๊ณ์์๋ ๋ฐฐ์น ๋ฐ ๋ผ์ฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ๋นํธ์คํธ๋ฆผ์ ์์ฑํฉ๋๋ค. ์ด ๋นํธ์คํธ๋ฆผ์ FPGA์ ํ๋ก๊ทธ๋๋ฐ์ ์ํ ์ด์ง ๋ฐ์ดํฐ๋ก, ๊ฐ ์์์ ์ค์ ๋ฐ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค. ๋นํธ์คํธ๋ฆผ์ FPGA์ ๋ก๋๋์ด ํ๋์จ์ด ์ค๊ณ๋ฅผ ๊ตฌํํ๊ฒ ๋ฉ๋๋ค.
์ด๋ฌํ ๊ฐ ๋จ๊ณ๋ ์๋ก ๊ธด๋ฐํ๊ฒ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ, ์ต์ข ์ ์ผ๋ก ์์ฑ๋ ๋นํธ์คํธ๋ฆผ์ ํ๋์จ์ด ์ค๊ณ์ ์ฑ๋ฅ๊ณผ ๊ธฐ๋ฅ์ ๊ฒฐ์ ์ง๋ ์ค์ํ ์์์ ๋๋ค.
ํฉ์ฑ ๋จ๊ณ๋ Bitstream Generation์์ ํต์ฌ์ ์ธ ์ญํ ์ ํ๋ฉฐ, HDL ์ฝ๋๋ฅผ ์ต์ ํ๋ ๋ ผ๋ฆฌ ํ๋ก๋ก ๋ณํํฉ๋๋ค. ์ด ๊ณผ์ ์์๋ ์ฌ๋ฌ ๊ฐ์ง ์ต์ ํ ๊ธฐ๋ฒ์ด ์ฌ์ฉ๋๋ฉฐ, ์๋ฅผ ๋ค์ด, ๋ ผ๋ฆฌ ์ต์ํ, ๋ฆฌ์์ค ๊ณต์ , ํ์ด๋ฐ ์ต์ ํ ๋ฑ์ด ํฌํจ๋ฉ๋๋ค. ํฉ์ฑ ํ, ์ค๊ณ์๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฒํ ํ๊ณ , ํ์์ ๋ฐ๋ผ ์ถ๊ฐ์ ์ธ ์ต์ ํ๋ฅผ ์ํํ ์ ์์ต๋๋ค.
๋ฐฐ์น ๋ฐ ๋ผ์ฐํ ๋จ๊ณ์์๋ FPGA์ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ์ฌ ์ต์ ์ ๋ฐฐ์น์ ์ ํธ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด ๋จ๊ณ์์๋ FPGA์ ์ํคํ ์ฒ์ ์์ ๋ฐฐ์น์ ๋ํ ๊น์ ์ดํด๊ฐ ํ์ํ๋ฉฐ, ํ์ด๋ฐ ๋ถ์์ ํตํด ๊ฒฝ๋ก ์ง์ฐ์ ์ต์ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด ๊ณผ์ ์์ ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณ์ ๋ณต์ก์ฑ์ ๋ฐ๋ผ ๋ค์ํ๊ฒ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
Bitstream Generation์ ๋ค์ํ ๊ด๋ จ ๊ธฐ์ ๋ฐ ๋ฐฉ๋ฒ๋ก ๊ณผ ๋น๊ต๋ ์ ์์ต๋๋ค. ํนํ, ASIC(Application-Specific Integrated Circuit) ์ค๊ณ์์ ๋น๊ต๊ฐ ์ค์ํฉ๋๋ค. ASIC ์ค๊ณ๋ ํน์ ์ฉ๋์ ๋ง์ถฐ ์ต์ ํ๋ ํ๋์จ์ด๋ฅผ ์ ๊ณตํ์ง๋ง, Bitstream Generation์ ํตํด FPGA์ ๊ฐ์ ํ๋ก๊ทธ๋๋จธ๋ธ ์์๋ ๋ ๋์ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
์ ์ฐ์ฑ: FPGA๋ ๋นํธ์คํธ๋ฆผ์ ํตํด ์ฝ๊ฒ ์ฌ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ์ฌ, ์ค๊ณ ๋ณ๊ฒฝ์ด๋ ์ ๊ทธ๋ ์ด๋๊ฐ ์ฉ์ดํฉ๋๋ค. ๋ฐ๋ฉด, ASIC์ ์ค๊ณ ํ ๋ณ๊ฒฝ์ด ์ด๋ ค์ ์ด๊ธฐ ์ค๊ณ ๋จ๊ณ์์์ ๊ฒฐ์ ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค.
๊ฐ๋ฐ ์๊ฐ: FPGA์ ๊ฒฝ์ฐ, ๋นํธ์คํธ๋ฆผ ์์ฑ์ ํตํด ๋น ๋ฅธ ํ๋กํ ํ์ดํ์ด ๊ฐ๋ฅํ์ฌ, ๊ฐ๋ฐ ์๊ฐ์ด ๋จ์ถ๋ฉ๋๋ค. ASIC์ ์ ์กฐ ๊ณผ์ ์ด ๊ธธ๊ณ ๋น์ฉ์ด ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์, ์ด๊ธฐ ์ค๊ณ ๊ฒ์ฆ์ด ์ค์ํฉ๋๋ค.
๋น์ฉ: ์ด๊ธฐ ๋น์ฉ ์ธก๋ฉด์์ ASIC์ ๋๋ ์์ฐ ์ ๋น์ฉ ํจ์จ์ ์ผ ์ ์์ง๋ง, ์๋ ์์ฐ์์๋ FPGA๊ฐ ๋ ๊ฒฝ์ ์ ์ ๋๋ค. ๋นํธ์คํธ๋ฆผ ์์ฑ์ ๋ฎ์ ์ด๊ธฐ ๋น์ฉ์ผ๋ก ๋ค์ํ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง์ถ ์ค๊ณ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
์ฑ๋ฅ: ASIC์ ํน์ ์ฉ๋์ ๋ง์ถฐ ์ต์ ํ๋์ด ๋์ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์์ง๋ง, FPGA๋ ๋นํธ์คํธ๋ฆผ์ ํตํด ๋ค์ ์ฑ๋ฅ ์์ค์ด ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ต์ FPGA ๊ธฐ์ ์ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋์ด, ๋ง์ ์์ฉ ๋ถ์ผ์์ ๊ฒฝ์๋ ฅ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
์ด์ ๊ฐ์ ๋น๊ต๋ฅผ ํตํด Bitstream Generation์ ์ค์์ฑ๊ณผ ์ ์ฉ์ฑ์ ์ดํดํ ์ ์์ผ๋ฉฐ, ๋ค์ํ ์์ฉ ๋ถ์ผ์์์ ํ์ฉ ๊ฐ๋ฅ์ฑ์ ๋์ด๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
Bitstream Generation์ ๋์งํธ ํ๋ก ์ค๊ณ๋ฅผ FPGA์ ๊ฐ์ ํ๋ก๊ทธ๋๋จธ๋ธ ํ๋์จ์ด์ ๊ตฌํํ๊ธฐ ์ํ ํ์์ ์ธ ๊ณผ์ ์ผ๋ก, ์ค๊ณ์ ์ต์ ํ์ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.