VLSI Wiki
Contents:
  1. FPGA Bitstream Generation
    1. 1. Definition: What is FPGA Bitstream Generation?
    2. 2. Components and Operating Principles
      1. 2.1 Design Tools
    3. 3. Related Technologies and Comparison
    4. 4. References
    5. 5. One-line Summary

FPGA Bitstream Generation

1. Definition: What is FPGA Bitstream Generation?

FPGA Bitstream Generation๋Š” FPGA(Field Programmable Gate Array) ์žฅ์น˜์—์„œ ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋น„ํŠธ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ์„ค๊ณ„์ž๊ฐ€ ํŠน์ •ํ•œ ํ•˜๋“œ์›จ์–ด ๋™์ž‘์„ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ FPGA์˜ ๊ตฌ์„ฑ ์š”์†Œ์— ๋งคํ•‘ํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ๋น„ํŠธ์ŠคํŠธ๋ฆผ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋น„ํŠธ์ŠคํŠธ๋ฆผ์€ FPGA์˜ ๋กœ์ง ์…€, ๋ผ์šฐํŒ… ์ž์›, ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก ๋“ฑ์˜ ์„ค์ •์„ ํฌํ•จํ•˜์—ฌ, FPGA๊ฐ€ ํŠน์ •ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ •๋ณด์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.

FPGA Bitstream Generation์˜ ์ค‘์š”์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ์„ค๊ณ„์ž๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด, ๋‹ค์–‘ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋งž์ถฐ ๋น ๋ฅด๊ฒŒ ์žฌ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘˜์งธ, ๋น„ํŠธ์ŠคํŠธ๋ฆผ์€ ์ตœ์ ํ™”๋œ ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์—ฌ, ์„ฑ๋Šฅ, ์ „๋ ฅ ์†Œ๋น„, ๋ฉด์  ๋“ฑ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค. ์…‹์งธ, ๋น„ํŠธ์ŠคํŠธ๋ฆผ์€ FPGA์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ, ๋ณต์žกํ•œ ๋””์ง€ํ„ธ ํšŒ๋กœ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

FPGA Bitstream Generation์€ ํฌ๊ฒŒ ์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ์„ค๊ณ„ ์ž…๋ ฅ, ํ•ฉ์„ฑ(Synthesis), ๋น„ํŠธ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ. ์„ค๊ณ„ ์ž…๋ ฅ ๋‹จ๊ณ„์—์„œ๋Š” HDL(Hardware Description Language)๊ณผ ๊ฐ™์€ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด ๋™์ž‘์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•ฉ์„ฑ ๋‹จ๊ณ„์—์„œ๋Š” ์ž…๋ ฅ๋œ HDL ์ฝ”๋“œ๋ฅผ ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ์™€ ๊ฐ™์€ FPGA์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋น„ํŠธ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ ๋‹จ๊ณ„์—์„œ๋Š” ํ•ฉ์„ฑ๋œ ๋…ผ๋ฆฌ ๋„คํŠธ์›Œํฌ๋ฅผ FPGA์˜ ํŠน์ • ๊ตฌ์กฐ์— ๋งคํ•‘ํ•˜์—ฌ ๋น„ํŠธ์ŠคํŠธ๋ฆผ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ Timing, Circuit, Behavior, Path์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์  ์š”์†Œ๊ฐ€ ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค.

2. Components and Operating Principles

FPGA Bitstream Generation์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์ž‘๋™ ์›๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์„ค๊ณ„ ์ž…๋ ฅ (Design Entry): ์„ค๊ณ„์ž๋Š” VHDL, Verilog์™€ ๊ฐ™์€ HDL์„ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ์˜ ๋™์ž‘์„ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ํšŒ๋กœ์˜ ๊ธฐ๋Šฅ, ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ์‹ ํ˜ธ, ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ƒํƒœ ๊ธฐ๊ณ„ ๋“ฑ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์„ค๊ณ„ ์ž…๋ ฅ์€ FPGA์˜ ๋™์ž‘์„ ๊ฒฐ์ •์ง“๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‹จ๊ณ„๋กœ, ์ •ํ™•ํ•˜๊ณ  ์ตœ์ ํ™”๋œ ์„ค๊ณ„๋ฅผ ์œ„ํ•ด ์‹ ์ค‘ํ•˜๊ฒŒ ์ž‘์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. ํ•ฉ์„ฑ (Synthesis): ์„ค๊ณ„ ์ž…๋ ฅ์ด ์™„๋ฃŒ๋˜๋ฉด, ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ํ•ฉ์„ฑ์ž…๋‹ˆ๋‹ค. ํ•ฉ์„ฑ ๊ณผ์ •์—์„œ๋Š” HDL ์ฝ”๋“œ๊ฐ€ ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ์™€ ๊ฐ™์€ FPGA์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ตœ์ ํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์„ค๊ณ„์˜ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•ฉ์„ฑ ํ›„์—๋Š” RTL(Register Transfer Level) ์„ค๊ณ„๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ, ์ด๋Š” FPGA์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

  3. ๋ฐฐ์น˜ ๋ฐ ๋ผ์šฐํŒ… (Placement and Routing): ํ•ฉ์„ฑ๋œ ์„ค๊ณ„๋Š” FPGA์˜ ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ์— ๋งž๊ฒŒ ๋ฐฐ์น˜๋˜๊ณ  ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ๋Š” FPGA์˜ ๋กœ์ง ์…€, ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก, ๊ทธ๋ฆฌ๊ณ  ๋ผ์šฐํŒ… ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ๋ฐ ๋ผ์šฐํŒ… ๋‹จ๊ณ„์—์„œ Timing ๋ถ„์„์ด ์ˆ˜ํ–‰๋˜์–ด, ์‹ ํ˜ธ์˜ ์ „ํŒŒ ์ง€์—ฐ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์ตœ์ ์˜ Clock Frequency๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  4. ๋น„ํŠธ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ (Bitstream Generation): ๋งˆ์ง€๋ง‰์œผ๋กœ, ๋ฐฐ์น˜ ๋ฐ ๋ผ์šฐํŒ…์ด ์™„๋ฃŒ๋œ ํ›„, ๋น„ํŠธ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ ๋‹จ๊ณ„์—์„œ ์ตœ์ข… ๋น„ํŠธ์ŠคํŠธ๋ฆผ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ FPGA์— ๋กœ๋“œ๋˜์–ด ํ•˜๋“œ์›จ์–ด๊ฐ€ ์„ค๊ณ„๋œ ๋Œ€๋กœ ๋™์ž‘ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋น„ํŠธ์ŠคํŠธ๋ฆผ ํŒŒ์ผ์€ FPGA์˜ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์„ค์ •์„ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด ํŒŒ์ผ์˜ ํฌ๊ธฐ์™€ ๋ณต์žก์„ฑ์€ ์„ค๊ณ„์˜ ๊ทœ๋ชจ์™€ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฐ ๋‹จ๊ณ„๋Š” ์„œ๋กœ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ, FPGA Bitstream Generation์˜ ํšจ์œจ์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ๊ฒฐ์ •์ง“๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์„ค๊ณ„์ž๋Š” ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์ดํ•ดํ•˜๊ณ , ๊ฐ ๋‹จ๊ณ„์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2.1 Design Tools

FPGA Bitstream Generation์„ ์œ„ํ•œ ์ฃผ์š” ๋„๊ตฌ๋กœ๋Š” Xilinx Vivado, Intel Quartus Prime, Lattice Diamond ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค ๋„๊ตฌ๋Š” ์„ค๊ณ„ ์ž…๋ ฅ, ํ•ฉ์„ฑ, ๋ฐฐ์น˜ ๋ฐ ๋ผ์šฐํŒ…, ๋น„ํŠธ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ์„ ํฌํ•จํ•œ ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋„๊ตฌ๋Š” ํŠน์ • FPGA ์•„ํ‚คํ…์ฒ˜์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ํ•„์š”์— ๋งž๋Š” ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜์—ฌ ์„ค๊ณ„๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

FPGA Bitstream Generation์€ ASIC(Application-Specific Integrated Circuit) ์„ค๊ณ„, CPLD(Complex Programmable Logic Device) ์„ค๊ณ„, ๊ทธ๋ฆฌ๊ณ  ์†Œํ”„ํŠธ์›จ์–ด ๊ธฐ๋ฐ˜ ํ”„๋กœ์„ธ์„œ ์„ค๊ณ„์™€ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ์ˆ ์€ ๊ณ ์œ ์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ํŠน์ • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋”ฐ๋ผ ์„ ํƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • FPGA vs ASIC: FPGA๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ํ”„๋กœ๊ทธ๋žจํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ˜๋ฉด, ASIC์€ ํŠน์ • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ตœ์ ํ™”๋˜์–ด ๋†’์€ ์„ฑ๋Šฅ์„ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค. ASIC์€ ์ดˆ๊ธฐ ๊ฐœ๋ฐœ ๋น„์šฉ์ด ํฌ์ง€๋งŒ, ๋Œ€๋Ÿ‰ ์ƒ์‚ฐ ์‹œ ๋‹จ๊ฐ€๊ฐ€ ๋‚ฎ์•„์ง€๋Š” ๋ฐ˜๋ฉด, FPGA๋Š” ์ดˆ๊ธฐ ๋น„์šฉ์ด ๋‚ฎ๊ณ  ์„ค๊ณ„ ๋ณ€๊ฒฝ์ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.

  • FPGA vs CPLD: CPLD๋Š” FPGA๋ณด๋‹ค ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ฃผ๋กœ ์†Œ๊ทœ๋ชจ์˜ ๋””์ง€ํ„ธ ํšŒ๋กœ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. CPLD๋Š” ๋‚ฎ์€ ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ๋†’์€ ์‹ ๋ขฐ์„ฑ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, FPGA์— ๋น„ํ•ด ์œ ์—ฐ์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ณต์žกํ•œ ์„ค๊ณ„์—๋Š” FPGA๊ฐ€ ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  • FPGA vs Software-based Processors: ์†Œํ”„ํŠธ์›จ์–ด ๊ธฐ๋ฐ˜ ํ”„๋กœ์„ธ์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์šฉ์ดํ•˜์ง€๋งŒ, ํ•˜๋“œ์›จ์–ด์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. FPGA๋Š” ํ•˜๋“œ์›จ์–ด ์ˆ˜์ค€์—์„œ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜์—ฌ, ํŠน์ • ์ž‘์—…์— ๋Œ€ํ•ด ๋งค์šฐ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋น„๊ต๋ฅผ ํ†ตํ•ด, ์„ค๊ณ„์ž๋Š” ์ž์‹ ์˜ ํ•„์š”์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋งž๋Š” ์ตœ์ ์˜ ๊ธฐ์ˆ ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. FPGA Bitstream Generation์€ ๋ณต์žกํ•œ ๋””์ง€ํ„ธ ํšŒ๋กœ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์žˆ์–ด ๋งค์šฐ ์œ ์šฉํ•œ ๋„๊ตฌ์ด๋ฉฐ, ๋‹ค์–‘ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ทธ ๊ฐ€์น˜๋ฅผ ๋ฐœํœ˜ํ•ฉ๋‹ˆ๋‹ค.

4. References

  • Xilinx Inc.
  • Intel Corporation
  • Lattice Semiconductor Corporation
  • IEEE Computer Society
  • ACM (Association for Computing Machinery)

5. One-line Summary

FPGA Bitstream Generation์€ FPGA์—์„œ ๋””์ง€ํ„ธ ํšŒ๋กœ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋น„ํŠธ์ŠคํŠธ๋ฆผ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์œผ๋กœ, ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„์˜ ์œ ์—ฐ์„ฑ๊ณผ ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.