์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)

Xilinx FPGA ์—์„œ MicroBlaze๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

(5.0) ์ˆ˜๊ฐ•ํ‰ 5๊ฐœ

์ˆ˜๊ฐ•์ƒ 193๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

fpga
fpga
verilog
verilog
hdl
hdl
xilinx
xilinx
fpga
fpga
verilog
verilog
hdl
hdl
xilinx
xilinx
๋‚ ๊ฐœ ๋‹ฌ๋ฆฐ ๋™์ „

๊ฐ•์˜ ์ถ”์ฒœํ•˜๊ณ  ์„ฑ์žฅ๊ณผ ์ˆ˜์ต์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”!

๋‚ ๊ฐœ ๋‹ฌ๋ฆฐ ๋™์ „

๋งˆ์ผ€ํŒ… ํŒŒํŠธ๋„ˆ์Šค

๊ฐ•์˜ ์ถ”์ฒœํ•˜๊ณ  ์„ฑ์žฅ๊ณผ ์ˆ˜์ต์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”!

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

5.0

5.0

withuman

52% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์‹ค๋ฌด์— ๋งŽ์€ ๋„์›€์ด ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!

5.0

soi897

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

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

5.0

balmont

26% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

๊ธˆ๋ฒˆ์— Microblaze๋ฅผ ํ™œ์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์—๋„ ์ž๋ฃŒ๊ฐ€ ๊ทธ๋ฆฌ๋งŽ์ง€์•Š๊ณ  ์‹ค๋ฌด์ ์ธ ๋‚ด์šฉ์„ ์ฐพ๊ธฐ๊ฐ€ ๋งŽ์ด ํž˜๋“ค์—ˆ๋Š”๋ฐ ๋งŽ์€ ๋„์›€์„ ์–ป๊ณ  ๊ฐ‘๋‹ˆ๋‹ค. ์ž๋ฃŒ ๋งŒ๋“œ์‹ ๊ฑฐ ๋ณด๋‹ˆ ๋งŽ์€์‹œ๊ฐ„ ๋…ธ๋ ฅ์˜ ํ”์ ์ด ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ์•”ํŠผ ๋„ˆ๋ฌด ์ข‹์€ ๊ฐ•์˜์˜€์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋ ๊ฑฐ๋ผ ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • FPGA์—์„œ MicroBlaze ์‚ฌ์šฉํ•˜๊ธฐ

  • Verilog ํ”„๋กœ๊ทธ๋žจ

  • FPGA ํ”„๋กœ๊ทธ๋žจ

๊ณต๋ถ€ํ•˜๊ธฐ ๋ง‰๋ง‰ํ•œ FPGA MicroBlaze!
๊ฐ•์˜์™€ ํ•จ๊ป˜๋ผ๋ฉด ๋ฝ€๊ฐค ์ˆ˜ ์žˆ์–ด์š” ๐Ÿ’ช

Xilinx FPGA์—์„œ MicroBlaze ์‚ฌ์šฉํ•˜๊ธฐ!

MicroBlaze๋Š” FPGA์—์„œ IP ํ˜•ํƒœ๋กœ ์ œ๊ณต๋˜๋Š” ํ”„๋กœ์„ธ์„œ์ž…๋‹ˆ๋‹ค. MicroBlaze๋Š” Processor Core์™€ Peripheral์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ชฉ์ ์— ๋งž๊ฒŒ Peripheral์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ•์˜ ์ฃผ์ œ ๐Ÿ“–

FPGA๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์€ ๋งŽ์€ ์–ด๋ ค์›€์ด ์žˆ์–ด์š”. FPGA๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” HW์ ์ธ ์ง€์‹์€ ๋ฌผ๋ก , ์‚ฌ์šฉํ•˜๋Š” ํˆด๊ณผ Verilog ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ๋งŽ์€ ์ดํ•ด๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. MCU๋ฅผ ํฌํŒ…ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋” ๊นŠ์€ ์ง€์‹์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. Xilinx์—์„œ FPGA์— ๋Œ€ํ•œ ๋งŽ์€ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์ง€๋งŒ, ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ๋‹ค๋ฅธ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋ผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์š”. ๊ทธ๋ž˜์„œ Xilinx ์‚ฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ๋ณด๊ณ  ์ดํ•ดํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ˆ™๋ จ๋œ ๊ฐœ๋ฐœ์ž๋“ค์ด ์•„๋‹ˆ๊ณ ์„œ๋Š” ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋ณธ ๊ฐ•์˜๋Š” Xilinx FPGA์—์„œ MicroBlaze๋ฅผ ํฌํŒ…ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํˆด์„ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •๋ถ€ํ„ฐ MicroBlaze๋ฅผ ํฌํŒ…ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•, ์‚ฌ์šฉ์ž ๋กœ์ง๊ณผ MCU ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์ƒ์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. FPGA์—์„œ MicorBlaze๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ‚ฌ๋กœ ํ•œ ๋‹จ๊ณ„ ๋” ์„ฑ์žฅํ•œ ์ปค๋ฆฌ์–ด๋ฅผ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”!

๊ฐ•์˜์—์„œ ์ดํ•ด๊ฐ€ ์•ˆ ๋˜๋Š” ๋ถ€๋ถ„์€ ์ธํ”„๋Ÿฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋˜๋Š” ์ œ๊ฐ€ ์šด์˜ํ•˜๋Š” ์นดํŽ˜๋ฅผ ํ†ตํ•˜์—ฌ ์งˆ๋ฌธ์„ ์˜ฌ๋ ค์ฃผ์‹œ๋ฉด ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ข ์ˆ˜๊ฐ• ์ „ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•ด์ฃผ์„ธ์š”!

  • ๋ณธ ๊ฐ•์˜๋Š” ์ „์ž๋ฌธ์„œ ํ˜•์‹์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ…์ŠคํŠธ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜์‹œ๋Š” ๋ถ„๋“ค๊ป˜๋Š” ๊ฐ•์˜์— ์„ค๋ช…๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์˜๋Š” ์ถ”ํ›„ ๋™์˜์ƒ์œผ๋กœ ์ œ์ž‘ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • ๋ณธ ๊ฐ•์˜๋Š” 2019 ์ดํ›„ ๋ฒ„์ „์ธ Vitis 2022.1์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 
  • ๊ฐ•์˜ ์ž๋ฃŒ๋Š” '์„น์…˜ 0 - ์ž๋ฃŒ ๊ณต์œ  ๋งํฌ - ์ฒจ๋ถ€ํŒŒ์ผ'์—์„œ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ•์˜ ํŠน์žฅ์  โœจ

๊ฐ•์˜ ๋‚ด์šฉ์€
์‹ค๋ฌด์— ๋ฐ”๋กœ ์ ์šฉ ๊ฐ€๋Šฅ!

ํ…Œ์ŠคํŠธ๋กœ ๊ฒ€์ฆ๋œ
์˜คํ”ˆ์†Œ์Šค ์ œ๊ณต!

๋””๋ฒ„๊น…, ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ
์œˆ๋„์šฐ ์•ฑ ํ”„๋กœ๊ทธ๋žจ ์ œ๊ณต! 


์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š” ๐Ÿ™‹โ€โ™€๏ธ

Verilog๋กœ FPGA๋ฅผ ์„ค๊ณ„ํ•œ
๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„

C ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ
FW๋ฅผ ํ•ด๋ณด์‹  ๋ถ„

MicroBlaze์— ๊ด€์‹ฌ ์žˆ์ง€๋งŒ
๊ฒฝํ—˜์€ ์—†๋Š” ๋ถ„


์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์›Œ์š” ๐Ÿ“š

์„น์…˜ 1. HW ๊ตฌ์„ฑ

์„น์…˜ 2. Vitis 2022.1 ์„ค์น˜ ๊ณผ์ •

  • Vitis๋Š” ๋งค์šฐ ๋ฌด๊ฑฐ์šด ํˆด์ž…๋‹ˆ๋‹ค. ์„ค์น˜ ์‹œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์‚ฌํ•ญ๊ณผ ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ Vivado์™€ ์ถฉ๋Œ ์—†์ด ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ 3. MicroBlaze๋กœ ํ™”๋ฉด์— โ€œHello worldโ€๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ

  • ๋ณธ ์„น์…˜์—์„œ๋Š” ๋Œ€๋žต์ ์ธ ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์— ๋ชฉ์ ์„ ๋‘๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ 4. MicoBlaze์˜ Peripheral

  • ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” GPIO, Timer, Uart, Interrupt๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. MicroBlaze์—์„œ ์ œ๊ณตํ•˜๋Š” Peripheral์ด ๋น„์Šทํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ตํžˆ๋ฉด ๋‹ค๋ฅธ Peripheral๋„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„น์…˜ 5. ์‹ค๋ฌด์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์‹

  • ๋Œ€๋ถ€๋ถ„์˜ ์ž๋ฃŒ๊ฐ€ Peripheral์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์—์„œ ๋๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ FPGA์—์„œ MicroBlaze๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค๊ณ„ํ•œ Logic์„ MicroBlaze๋ฅผ ํ†ตํ•˜์—ฌ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ๋Š” UI(User Interface)๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์„ค๊ณ„ํ•œ Logic์„ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๊ฐ•์˜์—์„  User Logic์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ PWM ๋ชจ๋“ˆ 4๊ฐœ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. User Logic์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ Register Map์„ ๊ตฌ์„ฑํ•˜๊ณ , MicroBlaze, UI๋ฅผ ํ†ตํ•˜์—ฌ User Logic์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ณผ์ •์„ ์„ค๋ช…ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ๋ณธ ์„น์…˜์—์„œ ์„ค๋ช…๋œ ๋‚ด์šฉ์€ ์‹ค๋ฌด์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. User Logic์„ ์ถ”๊ฐ€ํ•˜๊ณ  Register Map์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ทธ ์™ธ์˜ ๋ชจ๋“  ๊ณผ์ •์€ ๊ตฌํ˜„๋œ ๊ทธ๋Œ€๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

์„น์…˜ 6. lwIP Echo Server

  • lwIP๋ฅผ ์ด์šฉํ•˜์—ฌ Echo Server๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. MicroBlaze์—์„œ Cache(Instruction Cache, Data Cache)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•˜์—ฌ DDR Controller๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ 7. lwIP ํ™œ์šฉ

  • lwIP๋ฅผ ์ด์šฉํ•œ TCP/IP ํ†ต์‹ ์— User Logic์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. PC์—์„œ TCP/IP๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ช…๋ น์–ด๋ฅผ ์ „์†กํ•˜๋ฉด, lwIP๋ฅผ ํ†ตํ•˜์—ฌ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  User Logic์—์„œ ๋ณด๋“œ์˜ LED๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•˜์—ฌ lwIP์™€ User Logic์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ 8. W5500 ๋ชจ๋“ˆ์„ ์ด์šฉํ•œ TCP/IP ๊ตฌํ˜„

  • v1.4์—์„œ ์ถ”๊ฐ€๋œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. wiznet ์‚ฌ์˜ w5500 ๋ชจ๋“ˆ์„ ์ด์šฉํ•˜์—ฌ TCP/IP๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. PC์™€ Network์œผ๋กœ ์—ฐ๊ฒฐํ•ด์„œ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‘์šฉํ•˜๋ฉด TCP/IP๋ฅผ ์ด์šฉํ•˜๋Š” ๋ถ„์•ผ์— ๋‹ค์–‘ํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„น์…˜ 9. Block Memory Interface - 1

  • v1.5์—์„œ ์ถ”๊ฐ€๋œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. Block Design์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” Block Memory Interface๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ 10Block Memory Interface - 2

  • v1.5์—์„œ ์ถ”๊ฐ€๋œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. User Logic์—์„œ Block Memory๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Block Memory Interface๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‘์šฉํ•˜์—ฌ User Register Map์„ ๊ตฌํ˜„ํ•˜๊ณ , pwm์˜ frequency, duty๋ฅผ ์ œ์–ดํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. 
์ƒ์„ธ ์ปค๋ฆฌํ˜๋Ÿผ์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด?
  1. ๊ฐœ์š” (4)
  2. HW ๊ตฌ์„ฑ (6)
  3. SW ์„ค์น˜ (7)
  4. Hello World ๊ตฌํ˜„ (12)
    1. ๊ธฐ๋ณธ Template ๊ตฌํ˜„ (12)
      1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (12)
      2. Create Block Design (15)
      3. Create HDL Wrapper (21)
      4. User Logic ๊ตฌํ˜„ (22)
      5. xdc ๊ตฌํ˜„ (27)
      6. Generate Bitstream (30)
      7. Export Hardware (31)
    2. Embedded SW ๊ตฌํ˜„ (34)
    3. Flash์— ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ (45)
      1. vitis์—์„œ ๋‹ค์šด๋กœ๋“œ (45)
      2. elf ํŒŒ์ผ์„ vivado์—์„œ ์ถ”๊ฐ€ ํ›„ ๋‹ค์šด๋กœ๋“œ (50)
  5. MicroBlaze Peripheral ๊ตฌํ˜„ (59)
    1. Block Design (59)
      1. GPIO : LED_4bits (60)
      2. GPIO : btn0 (External Interrupt-1) (61)
      3. GPIO : btn1 (External Interrupt-2) (62)
      4. GPIO : btn3, 4(General Input, Toggle switch) (63)
      5. Timer (64)
    2. Application SW (71)
      1. xparameters.h file (72)
      2. ์†Œ์Šค ๊ตฌ์กฐ (75)
      3. ์ฝ”๋“œ ๊ตฌํ˜„ (77)
    3. ๋‹ค์šด๋กœ๋“œ ๋ฐ ๊ฒฐ๊ณผ ํ™•์ธ (82)
  6. User Logic ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ (83)
    1. Block Design (84)
    2. User Logic ๊ตฌํ˜„ (88)
      1. mcu_pwm.v (89)
      2. pwm_top.v (90)
      3. spi_slave.v (91)
        1. ํ†ต์‹  ํ”„๋กœํ† ์ฝœ (93)
        2. ๋ ˆ์ง€์Šคํ„ฐ ๋งต (93)
        3. ํŒŒํ˜• ๋ถ„์„ (94)
        4. ์ฝ”๋“œ ๊ตฌํ˜„ (96)
        5. Simulation (103)
      4. BlazeTop.v (106)
      5. xdc ์ƒ์„ฑ (109)
    3. Application SW (112)
      1. comm_task ๋ณต์‚ฌ  (116)
      2. helloworld.c (116)
      3. ํ†ต์‹  ํ”„๋กœํ† ์ฝœ (118)
      4. comm_task (119)
    4. ๋‹ค์šด๋กœ๋“œ ๋ฐ ๊ฒฐ๊ณผ ํ™•์ธ (120)
    5. HW Update (124)
  7. lwIP Echo Server ๊ตฌํ˜„ (126)
    1. ์‹œ์Šคํ…œ ๊ตฌ์„ฑ (126)
    2. lwIP HW ๊ตฌํ˜„ (128)
      1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (128)
      2. HW Block ์ƒ์„ฑ (130)
      3. Create HDL Wrapper (152)
      4. Application SW (158)
      5. ๊ฒฐ๊ณผ ํ™•์ธ (167)
      6. ์†Œ์Šค ๋ถ„์„ (174)
  8. lwIP ํ™œ์šฉ (180)
    1. HW Design (180)
    2. User Logic ๊ตฌํ˜„ (185)
    3. Application SW ๊ตฌํ˜„ (192)
  9. W5500์„ ์ด์šฉํ•œ TCP/IP ๊ตฌํ˜„ (202)
    1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (206)
    2.  Block Design (207)
    3. Top Module ๊ตฌํ˜„ (217)
    4. ์‘์šฉ SW ๊ตฌํ˜„ (222)
      1. Memory Size (232)
      2. ํŒŒ์ผ ๊ตฌ์กฐ (233)
      3. data_type.h (233)
      4. ax_common.h (234)
      5. w5500.c, w5500.h (234)
      6. w5500_task.c, w5500_task.h (234)
      7. w5500_socket.c, w5500_socket.h (235)
      8. w5500_loopback.c, w5500_loopback.h (235)
      9. helloworld.c (238)
    5. ๊ฒฐ๊ณผ ํ™•์ธ (240)
      1. Build Project (240)
      2. PC Network ์„ค์ • (241)
      3. ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ ๋ฐ ๊ฒฐ๊ณผ ํ™•์ธ (242)
      4. ์™ธ๋ถ€ Flash์— ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ (246)
    6. ๊ฒฐ๋ก  (247)
  10. Block Memory Interface - 1 (248)
    1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (248)
    2. Block Design (250)
    3. Constraints ํŒŒ์ผ ์ถ”๊ฐ€ (260)
    4. ์‘์šฉ SW ๊ตฌํ˜„ (263)
  11. Block Memory Interface - 2 (268)
    1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (269)
    2. Block Design (270)
    3. User Logic Design (279)
    4. ์‘์šฉ SW ๊ตฌํ˜„ (289)
    5. ๋‹ค์šด๋กœ๋“œ ๋ฐ ๊ฒฐ๊ณผ ํ™•์ธ (289)
    6. ๋งํฌ ์Šคํฌ๋ฆฝํŠธ ์ˆ˜์ • (295)
  12. ์ฐธ๊ณ  ์ž๋ฃŒ (297)
  13. Revision History (298)

์˜ˆ์ƒ ์งˆ๋ฌธ Q&A ๐Ÿ’ฌ

Q. ๊ฐ•์˜๋ฅผ ๋“ฃ๋Š” ๋Œ€์ƒ์ž๋Š” ๋ˆ„๊ตฌ์ธ๊ฐ€์š”?

Verilog ๋ฌธ๋ฒ•์„ ์ดํ•ดํ•˜๊ณ , FPGA ์„ค๊ณ„ ๊ฒฝํ—˜์ด ์žˆ๊ณ , ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ(FW) ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹  ๋ถ„๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ฝ๊ฐ„์˜ ๊ฒฝํ—˜๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์–ด๋„ ๋‚ด์šฉ๋Œ€๋กœ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ ํ•˜์‹œ๋ฉด ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Q. ๊ฐ•์˜๋ฅผ ๋“ฃ๊ธฐ ์œ„ํ•ด ์ค€๋น„ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์žˆ๋‚˜์š”?

๋ณธ ๊ฐ•์˜๋Š” ์‹ค์Šต ๋ณด๋“œ Arty A7-35T(100T, Digilent ์‚ฌ ์ œํ’ˆ)์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ณด๋“œ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋จผ์ € ๋‚ด์šฉ์„ ๋ณด์‹œ๊ณ  ๋‚˜์ค‘์— ๋ณด๋“œ๋ฅผ ๊ตฌ์ž…ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ๋ณด๋“œ ์ƒ์—์„œ ํ™•์ธํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. FPGA ๊ตฌํ˜„์€ Simulation์—์„œ ๋๋‚˜์ง€ ์•Š๊ณ , ๋ฐ˜๋“œ์‹œ HW์—์„œ ๊ฒ€์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Q. ํ”„๋กœ๊ทธ๋žจ ํˆด์€ ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๋‚˜์š”?

์ตœ์‹  ๋ฒ„์ „์ธ vitis 2022.1 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ๊ฐ•์˜์— ์„ค์น˜ ๊ณผ์ •์ด ์ž์„ธํžˆ ์†Œ๊ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


์ง€์‹๊ณต์œ ์ž ์†Œ๊ฐœ โœ’๏ธ

์ด๋ ฅ ์‚ฌํ•ญ

์ €๋Š” 20์—ฌ ๋…„ ๋™์•ˆ ๋Œ€๊ธฐ์—…, ์ค‘์†Œ๊ธฐ์—…์—์„œ ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•ด์™”๊ณ  ํ˜„์žฌ๋Š” ์ž‘์€ ๊ธฐ์—…์„ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. CCTV์šฉ ISP(Image Signal Processing) ASIC์„ ๊ฐœ๋ฐœํ•˜์˜€๊ณ  OLED ๊ฒ€์‚ฌ ์žฅ๋น„, DAQ (Data Acquisition System) ๋“ฑ FPGA๋ฅผ ์ด์šฉํ•œ ๋งŽ์€ ์ œํ’ˆ์„ ๊ฐœ๋ฐœํ•˜์˜€์Šต๋‹ˆ๋‹ค. FPGA๋ฟ๋งŒ ์•„๋‹ˆ๋ผ FW ๊ฐœ๋ฐœ (STM32, PIC32, AVR, ATMEGA ๋“ฑ), ํšŒ๋กœ ์„ค๊ณ„, Windows Program ๋“ฑ ๋งŽ์€ ๊ฒฝํ—˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 


์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • MicroBlaze ๊ด€์‹ฌ ์žˆ์œผ์‹  ๋ถ„

  • FPGA ๊ด€์‹ฌ ์žˆ์œผ์‹  ๋ถ„

  • Verilog ๊ด€์‹ฌ ์žˆ์œผ์‹  ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • C ์–ธ์–ด

  • Verilog HDL

  • Xilinx FPGA

์•ˆ๋…•ํ•˜์„ธ์š”
alex์ž…๋‹ˆ๋‹ค.

1,768

๋ช…

์ˆ˜๊ฐ•์ƒ

84

๊ฐœ

์ˆ˜๊ฐ•ํ‰

128

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

19

๊ฐœ

๊ฐ•์˜

์ €๋Š” ์ง€๋‚œ 20์—ฌ๋…„ ๋™์•ˆ ๋Œ€๊ธฐ์—…, ์ค‘์†Œ๊ธฐ์—…์—์„œ ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•ด์™”๊ณ 

ํ˜„์žฌ๋Š” ์ž‘์€ ๊ธฐ์—…์˜ ๋Œ€ํ‘œ๋กœ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ฒฝ๋ ฅ์‚ฌํ•ญ์€

  • Verilog HDL์„ ์ด์šฉํ•œ FPGA ์„ค๊ณ„

    • CCTV์šฉ ISP ASIC ๊ฐœ๋ฐœ (์•ฝ 10๋…„)

    • OLED Display ๊ฒ€์‚ฌ์žฅ๋น„ ๊ฐœ๋ฐœ (์•ฝ 3๋…„)

    • FPGA๋ฅผ ์ด์šฉํ•œ ์žฅ๋น„ ๊ฐœ๋ฐœ

  • MCU FW

    • STM32

    • PIC32

    • AVR, ATMEGA

    • DSP (TI)

  • Windows Application Program

    • Visual Studio MFC, C++

์ž…๋‹ˆ๋‹ค.

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

290๊ฐœ

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

5๊ฐœ

5.0

5๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • haneuli๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    haneuli

    ์ˆ˜๊ฐ•ํ‰ 15

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    • balmont๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      balmont

      ์ˆ˜๊ฐ•ํ‰ 1

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      26% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ๊ธˆ๋ฒˆ์— Microblaze๋ฅผ ํ™œ์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์—๋„ ์ž๋ฃŒ๊ฐ€ ๊ทธ๋ฆฌ๋งŽ์ง€์•Š๊ณ  ์‹ค๋ฌด์ ์ธ ๋‚ด์šฉ์„ ์ฐพ๊ธฐ๊ฐ€ ๋งŽ์ด ํž˜๋“ค์—ˆ๋Š”๋ฐ ๋งŽ์€ ๋„์›€์„ ์–ป๊ณ  ๊ฐ‘๋‹ˆ๋‹ค. ์ž๋ฃŒ ๋งŒ๋“œ์‹ ๊ฑฐ ๋ณด๋‹ˆ ๋งŽ์€์‹œ๊ฐ„ ๋…ธ๋ ฅ์˜ ํ”์ ์ด ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ์•”ํŠผ ๋„ˆ๋ฌด ์ข‹์€ ๊ฐ•์˜์˜€์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋ ๊ฑฐ๋ผ ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค

      • alex
        ์ง€์‹๊ณต์œ ์ž

        ์ˆ˜๊ฐ•ํ‰ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. MicroBlaze ๊ด€๋ จ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ๊ณ„์‹ ๋‹ค๋‹ˆ, ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž˜ ์ง„ํ–‰๋˜์–ด ์ข‹์€ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค~!!

    • withuman๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      withuman

      ์ˆ˜๊ฐ•ํ‰ 2

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      52% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ์‹ค๋ฌด์— ๋งŽ์€ ๋„์›€์ด ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!

      • baekga83๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        baekga83

        ์ˆ˜๊ฐ•ํ‰ 1

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        5

        61% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ์ง€๊ธˆ๊นŒ์ง€ ์‰ฝ๊ฒŒ ์„ค๋ช…์ด ๋˜์–ด ์žˆ์–ด ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๊ฐ•์˜์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜„์—…์—์„œ FPGA Logic๊ณผ HW๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์š”์ฆ˜์€ MB or NIOS ๊นŒ์ง€ Handling ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๋งŽ์ด๋“ค ์š”๊ตฌ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ข‹์€ ๋””๋”ค๋Œ์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ์ข‹์€ ๊ต์œก ๋ถ€ํƒ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

        • alex
          ์ง€์‹๊ณต์œ ์ž

          ์ˆ˜๊ฐ•ํ‰ ์ •๋ง๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜์‹ ๋‹ค๊ณ  ํ•˜๋‹ˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์„ธ์ƒ์ด ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ ๋ฐ”๋€Œ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ๋„ ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ ๋ณ€ํ•ด์„œ ์ด๊ฒƒ๋„ ํ•ด์•ผ ๋˜๊ณ , ์ €๊ฒƒ๋„ ํ•ด์•ผ ๋˜๊ณ  ํ•  ๊ฒŒ ๋„ˆ๋ฌด ๋งŽ๋„ค์š”. ์•„๋ฌดํŠผ ์ง„ํ–‰ํ•˜์‹œ๋Š” ์ผ๋“ค ์ž˜ ์ง„ํ–‰๋˜์‹ค๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ~!!

      • soi897๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        soi897

        ์ˆ˜๊ฐ•ํ‰ 6

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        5

        100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

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

        • alex
          ์ง€์‹๊ณต์œ ์ž

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

      alex๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

      ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

      ๋น„์Šทํ•œ ๊ฐ•์˜

      ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

      ์›” โ‚ฉ340,983

      5๊ฐœ์›” ํ• ๋ถ€ ์‹œ

      โ‚ฉ82,500