Microblaze - Terry4055/FPGA_HW GitHub Wiki

  • ๋งˆ์ดํฌ๋กœ ๋ธ”๋ ˆ์ด์ฆˆ๋ž€, ๋งˆ์ดํฌ๋กœ๋ธ”๋ ˆ์ด์ฆˆ ์ž„๋ฒ ๋””๋“œ ํ”„๋กœ์„ธ์„œ ์†Œํ”„ํŠธ ์ฝ”์–ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. Xilinx FPGA ๋‚ด์—์„œ ์ดˆ๊ธฐ FPGA ๋ ˆ์ง€์Šคํ„ฐ ์…‹ํŒ… ๋“ฑ์˜ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Implementation์šฉ ์ตœ์ ํ™”๋œ RISC(reduced instruction set computer)๋‹ค. ์ž‘์€ CPU๋ผ๊ณ  ์ƒ๊ฐํ•˜์ž. Zynq๋Š” ARM core๊ฐ€ ์ž„๋ฒ ๋””๋“œ ๋˜์–ด ์žˆ์ง€๋งŒ, ํƒ€ ์‹œ๋ฆฌ์ฆˆ FPGA์—๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค.

Microblaze

  • ๊ตฌ์กฐ

    • Program Counter๋Š” CPU๊ฐ€ ํ˜„์žฌ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š” Instruction ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฅดํ‚จ๋‹ค.
    • Instruction Decode๋Š” ILMB๋ฅผ ํ†ตํ•ด ์ฝ์–ด ๋“œ๋ฆฐ Instruction ์ฆ‰ Instruction Buffer์— ๋‹ด๊ธด Instruction์„ ํ•ด์„ํ•˜์—ฌ CU ์ฆ‰ Central Unit์—๊ฒŒ ๋„˜๊ธด๋‹ค.
    • DLMB๋ฅผ ํ†ตํ•˜์—ฌ, Data Register๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์‹ค์งˆ์ ์ธ FPGA Logic๊ณผ๋Š” M_AXI_DP๋ฅผ ํ†ตํ•ด AXI4 ๋˜๋Š” AXI4-Lite๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.
  • ๋งˆ์ดํฌ๋กœ ๋ธ”๋ ˆ์ด์ฆˆ๋Š” ๋จผ์ € VIVADO ๋ธ”๋ก ๋””์ž์ธ์—์„œ ๊ตฌ์„ฑ์„ ๋งˆ์น˜๊ณ , Export Hardware๋ฅผ ํ†ตํ•˜์—ฌ Hardware Platform์„ ์ถ”์ถœํ•˜์—ฌ SDK๋กœ ์ดํ›„ C์ž‘์—…์„ ํ•œ๋‹ค.

  • ์ฃผ์š” ๋งˆ์ดํฌ๋กœ๋ธ”๋ ˆ์ด์ฆˆ ์ธํ„ฐํŽ˜์ด์Šค

    • LMB : on-chip block RAM ์ ‘๊ทผ ํ•˜๋Š”๋ฐ ์“ฐ์ด๋Š” Synchronous Bus
    • DLMB : Data Interface, Local Memory Bus
    • ILMB : Instruction Interface, Local Memory Bus
    • M_AXI_DP : Peripheral Data Interface
    • DLMB,ILMB๋Š” Local Memory Bus, Local BRAM Controller๋ฅผ ํ†ตํ•ด True Dual Port RAM์— ์‚ฌ์šฉํ•œ๋‹ค.
  • SDK ๊ตฌ์„ฑ

    • BSP(board Support Package)
      • I/O ์ฆ‰ FPGA Logic๋ถ€์™€ ์—ฐ๊ฒฐ๋˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•˜์—ฌ ๋™์ž‘์ด ๊ฐ€๋Šฅ์ผ€ ํ•˜๋Š” ํŽŒ์›จ์–ด ๋ถ€์ด๋ฉฐ .mss ํŒŒ์ผ๋กœ ๊ด€๋ฆฌ ๋œ๋‹ค.
    • Hardware Platform
      • VIVADO์—์„œ Exportํ•˜์—ฌ .hdf ํŒŒ์ผ๋กœ ๊ด€๋ฆฌ ๋˜๋ฉฐ, Hardware IP์˜ Address ์ •๋ณด ๋“ฑ์„ ์•Œ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ค์ • ๊ฐ€๋Šฅ
    • C ํŒŒ์ผ
      • ์‹ค์งˆ์ ์ธ ์ฝ”๋”ฉ ์ œ์–ด ๋ถ€