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

Bitstream Generation

1. Definition: What is Bitstream Generation?

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

Bitstream Generation์˜ ์ฃผ์š” ์—ญํ• ์€ ์„ค๊ณ„๋œ ํšŒ๋กœ์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ์™€ ๋™์ž‘์„ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ์„ค๊ณ„์˜ ์ตœ์ ํ™”, ํƒ€์ด๋ฐ ๋ถ„์„, ๋ฆฌ์†Œ์Šค ํ• ๋‹น ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ, ์ตœ์ข…์ ์œผ๋กœ ์„ค๊ณ„๊ฐ€ ์‹ค์ œ ํ•˜๋“œ์›จ์–ด์—์„œ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋น„ํŠธ์ŠคํŠธ๋ฆผ์€ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ด์ง„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์œผ๋กœ, FPGA ๋‚ด๋ถ€์˜ LUT(Look-Up Table), ํ”Œ๋ฆฝํ”Œ๋กญ, ๋ผ์šฐํŒ… ์ž์› ๋“ฑ๊ณผ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ์ž์›์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

2. Components and Operating Principles

Bitstream Generation์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์šด์˜ ์›๋ฆฌ๋Š” ๋ณต์žกํ•œ ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„๋ฅผ ํ•˜๋“œ์›จ์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ฃผ์š” ๋‹จ๊ณ„์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ์„ค๊ณ„ ์ž…๋ ฅ, ํ•ฉ์„ฑ(Synthesis), ๋ฐฐ์น˜ ๋ฐ ๋ผ์šฐํŒ…(Placement and Routing), ๋น„ํŠธ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ.

  1. ์„ค๊ณ„ ์ž…๋ ฅ: ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์„ค๊ณ„์ž๊ฐ€ HDL๋กœ ํšŒ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” HDL์—๋Š” VHDL๊ณผ Verilog๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด ์–ธ์–ด๋“ค์€ ํšŒ๋กœ์˜ ๊ตฌ์กฐ์™€ ๋™์ž‘์„ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.

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

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

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

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

2.1 Synthesis

ํ•ฉ์„ฑ ๋‹จ๊ณ„๋Š” Bitstream Generation์—์„œ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•˜๋ฉฐ, HDL ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”๋œ ๋…ผ๋ฆฌ ํšŒ๋กœ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ด, ๋…ผ๋ฆฌ ์ตœ์†Œํ™”, ๋ฆฌ์†Œ์Šค ๊ณต์œ , ํƒ€์ด๋ฐ ์ตœ์ ํ™” ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํ•ฉ์„ฑ ํ›„, ์„ค๊ณ„์ž๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ์ถ”๊ฐ€์ ์ธ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2.2 Placement and Routing

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

Bitstream Generation์€ ๋‹ค์–‘ํ•œ ๊ด€๋ จ ๊ธฐ์ˆ  ๋ฐ ๋ฐฉ๋ฒ•๋ก ๊ณผ ๋น„๊ต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ASIC(Application-Specific Integrated Circuit) ์„ค๊ณ„์™€์˜ ๋น„๊ต๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ASIC ์„ค๊ณ„๋Š” ํŠน์ • ์šฉ๋„์— ๋งž์ถฐ ์ตœ์ ํ™”๋œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, Bitstream Generation์„ ํ†ตํ•ด FPGA์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ธ” ์†Œ์ž๋Š” ๋” ๋†’์€ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

  2. ๊ฐœ๋ฐœ ์‹œ๊ฐ„: FPGA์˜ ๊ฒฝ์šฐ, ๋น„ํŠธ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ์„ ํ†ตํ•ด ๋น ๋ฅธ ํ”„๋กœํ† ํƒ€์ดํ•‘์ด ๊ฐ€๋Šฅํ•˜์—ฌ, ๊ฐœ๋ฐœ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค. ASIC์€ ์ œ์กฐ ๊ณผ์ •์ด ๊ธธ๊ณ  ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์—, ์ดˆ๊ธฐ ์„ค๊ณ„ ๊ฒ€์ฆ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

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

์ด์™€ ๊ฐ™์€ ๋น„๊ต๋ฅผ ํ†ตํ•ด Bitstream Generation์˜ ์ค‘์š”์„ฑ๊ณผ ์œ ์šฉ์„ฑ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ์‘์šฉ ๋ถ„์•ผ์—์„œ์˜ ํ™œ์šฉ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.

4. References

  • Xilinx
  • Intel (Altera)
  • IEEE (Institute of Electrical and Electronics Engineers)
  • ACM (Association for Computing Machinery)

5. One-line Summary

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