
Verilog FPGA Program 3 (DDR Controller, Arty A7-35T)
alex
โฉ110,000
์ค๊ธ์ด์ / verilog, FPGA
5.0
(7)
๊ฐ์์ ํตํ์ฌ FPGA๋ฅผ ์ด์ฉํ DDR Controller๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
์ค๊ธ์ด์
verilog, FPGA

FPGA ๋ด์ MCU Core IP๋ฅผ ํฌํ (Porting)ํด์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ตฌํํฉ๋๋ค.
์๊ฐ์ 28๋ช
๋์ด๋ ์ค๊ธ์ด์
์๊ฐ๊ธฐํ ๋ฌด์ ํ







๋ค์ด๋ฒ์นํฐ
์ ๊ด์ฌ์๋ ์ฌ๋๋ค๋ ๋ฃ๋ ์ค!





๋ค์ด๋ฒ์นํฐ
์ ๊ด์ฌ์๋ ์ฌ๋๋ค๋ ๋ฃ๋ ์ค!
FPGA์ MCU ํฌํ ํด์ ์ฌ์ฉํ๊ธฐ
Bootloader ๊ตฌ์กฐ
FPGA ๋ด MCU ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑํ๊ธฐ
Verilog HDL์ FPGA Program ์ธ์ด์ ๋๋ค. FPGA ๋ฟ๋ง ์๋๋ผ ASIC๋ ๋ง๋ค ์ ์์ด์. Verilog์ ๊ด์ฌ์ด ์๊ฑฐ๋ ํ์ ์์ ์คํฌ์ ์ ํ๊ณ ์ถ์ ๊ฐ๋ฐ์ ๋ถ๋ค์ด ๋ง์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ Verilog, FPGA๋ ๋งค์ฐ ํน์ํ ๋ถ์ผ์ฌ์ ์์ธํ ์ค๋ช ๋์ด ์๋ ๊ฐ์๋ฅผ ์ฐพ๋ ๊ฑด ๋งค์ฐ ์ด๋ ต์ต๋๋ค. FPGA ์ ์กฐ์ฌ์์ ๋ฌธ์๋ฅผ ์ ๊ณตํ์ง๋ง ๋๋ฌด ๋ง์ ๋ฌธ์์ ์์ด๋ก ๋์ด ์์ด์ ์ด๋ค ๋ฌธ์๋ฅผ ๋ด์ผ ํ๋์ง๋ ์ ์ ์์ต๋๋ค.
์ ๋ 20๋ ์ด์ ํ์ ์์ ๊ฐ๋ฐ์๋ก ์ผํ๋ค๊ฐ ํ์ฌ๋ 1์ธ ๊ธฐ์ ์ ์ด์ํ๊ณ ์์ต๋๋ค. ์ ๊ฐ ์ง๊ธ๊น์ง ์์์จ ์ง์๋ค์, ํ์ ์์ ๊ฐ๋ฐ์๋ก ์ด์๊ฐ๋ ๋ถ๋ค์ด๋ ๊ฐ๋ฐ์์ ๊ธธ์ ์ค๋นํ์๋ ๋ถ๋ค์๊ฒ ์ ํด๋๋ฆฌ๊ณ ์ถ์ด ๊ฐ์๋ฅผ ์ ์ํ๊ฒ ๋์์ต๋๋ค.
๊ฐ์๋ ์ด 4๊ฐ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๋ณธ ๊ฐ์๋ 4๋ฒ์งธ ๊ฐ์๋ก MCU Porting์ ๋ํ ๋ด์ฉ์ ๋๋ค. Xilinx์์ ์ ๊ณตํ๋ ํ๋ก์ธ์๊ฐ ์๋๋ผ ๋น๊ต์ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ ์ ์๋ 8bits ํ๋ก์ธ์์ ๋๋ค. ํ๋ก์ธ์๋ฅผ FPGA๋ด์ Porting ํ๋ ๊ณผ์ ์ ์์ธํ๊ฒ ์ค๋ช ํฉ๋๋ค. ์ด๋ฅผ ํตํ์ฌ Memory๋ฅผ ๊ตฌ์ฑํ๊ณ , Bootloader๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ์ ๋ ์ง๊ธ๊น์ง ๋๋ถ๋ถ์ FPGA์ ์ด ์๋ฃจ์ ์ ์ด์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ์์ต๋๋ค. Microblaze์ ๋นํด์ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ ์ ์๊ณ , Memory ๊ตฌ์ฑ๋ฑ ๋ง์ ๋ถ๋ถ์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฅ๋ ฅ์๋ ๊ฐ๋ฐ์๊ฐ ๋๋ ๊ฒ์ ์ฌ์ด ์ผ์ด ์๋๋๋ค. ๊ทธ๋งํผ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค. ๊ทธ ์ด๋ ค์ด ๊ณผ์ ์์ ์น์ ํ Guide๊ฐ ์๋ ๊ฒ์ ๋งค์ฐ ์ข์ ์ผ์ ๋๋ค.
๋ณธ ๊ฐ์๋ ๋งค์ฐ ๋ง์ ๋ด์ฉ์ ๋ด๊ณ ์์ต๋๋ค. ์๋ จ๋ ๊ฐ๋ฐ์๊ฐ ์๋๋ฉด, ํ๋ฒ์ ๋ชจ๋ ๋ด์ฉ์ ์ดํดํ๊ธฐ์๋ ์ด๋ ค์์ด ์์ ์ ์์ต๋๋ค. ๋ฐ๋ณตํด์ ์ฝ๋ฉํ๊ณ , simulation ํ๊ณ , ๋ณด๋์์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ณ ์ด๋ฌํ ๊ณผ์ ์ ํตํด ์กฐ๊ธ์ฉ ์์ ์ ๊ฒ์ผ๋ก ๋ง๋ค์ด ๊ฐ ์ ์์ ๊ฒ์ ๋๋ค.
๋ณธ ๊ฐ์์ ๋ด์ฉ์ ์๋ฒฝํ ์ดํดํ๊ณ ํ์ฉํ ์ ์๋ค๋ฉด ๋งค์ฐ ํ๋ฅญํ ๊ฐ๋ฐ์๊ฐ ๋ ์ ์์ต๋๋ค.
๊ฐ์์์ ์ดํด๊ฐ ์ ๋๋ ๋ถ๋ถ์ ์ธํ๋ฐ ์ปค๋ฎค๋ํฐ ๋๋ ์ ๊ฐ ์ด์ํ๋ ์นดํ๋ฅผ ํตํ์ฌ ์ง๋ฌธ์ ์ฌ๋ ค์ฃผ์๋ฉด ๋ต๋ณํด ๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ข ์๊ฐ ์ ๋ฐ๋์ ํ์ธํด์ฃผ์ธ์!
๋ณธ ๊ฐ์๋ ์ ์๋ฌธ์ ํ์์ผ๋ก ๊ตฌ์ฑ๋ ํ ์คํธ ๊ฐ์์ ๋๋ค. ๊ฐ์๋ฅผ ์๊ฐํ์๋ ๋ถ๋ค๊ป๋ ๊ฐ์์ ์ค๋ช ๋์ด ์๋ ๋ชจ๋ ์์ค ํ์ผ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ์๋ ์ถํ ๋์์์ผ๋ก ์ ์ ์์ ์ ๋๋ค.
๋ณธ ๊ฐ์์์ ์ฌ์ฉํ๋ Tool์ vivado 2018.3 ์ ๋๋ค.
๋ณธ ๊ฐ์์ ์ค์ต์ ์ฌ์ฉ๋๋ ๋ณด๋๋ ๊ฐ์๋ฅผ ์ํด ์์ฌ์์ ๊ฐ๋ฐํ HIL-A35T ์ ๋๋ค. ์์ฌ์์ ์ด์ํ๋ ์ค๋งํธ ์คํ ์ด์์ ๊ตฌ๋งคํ ์ ์์ต๋๋ค(์ค๋งํธ ์คํ ์ด ๋งํฌ : https://smartstore.naver.com/ihil)
๊ฐ์ ์๋ฃ๋ '์น์ 0 - ์๋ฃ ๊ณต์ ๋งํฌ - ์ฒจ๋ถํ์ผ'์์ ๋ค์ด๋ฐ์ ์ ์์ต๋๋ค.
์ ๋ ์ฝ 20๋ ์ ๋ FPGA ๊ด๋ จ๋ ์ผ๋ค์ ํด์๊ณ , ๋๋ถ๋ถ์ ํ๋ก์ ํธ์์ FPGA ๋ด์ MCU๋ฅผ ํฌํ ํด์ ์งํํ์ต๋๋ค. MCU๋ฅผ FPGA ๋ด์ ํฌํ ํด์ ์ฌ์ฉํ๋ฉด ๋ง์ ์ฅ์ ์ด ์์ต๋๋ค. ์ธ๋ถ์ ๋ณ๋๋ก MCU๋ฅผ ์ฌ์ฉํ ํ์๋ ์๊ณ , MCU ํํธ์ LOGIC ํํธ๋ก ๋๋์ด์ ์งํํ ์๋ ์์ต๋๋ค.
์ ๋ ๋๋ถ๋ถ์ FPGA(Spartan, Artix, Kintex, Virtex)์์ MCU๋ฅผ ํฌํ ํด์ ์ฌ์ฉํ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ง ์๋ฉด ๋๋ถ๋ถ์ FPGA์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ณธ ๊ฐ์๋ ์ด๋ฌํ ๊ณผ์ ์ ์์ธํ๊ฒ ์ค๋ช ํ๊ณ ์์ต๋๋ค. ๊ฐ์์์ FPGA ๋ด์ MCU IP๋ฅผ ํฌํ ํด์ SOC(System On Chip)์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ๊ฐ์๋ฅผ ํตํด FPGA๋ก ํ๋ก๊ทธ๋จํ๋ ๊ฐ๋ฐ์๋ถ๋ค์ ์คํฌ์ ํ ๋จ๊ณ ์ ๊ทธ๋ ์ด๋ํ๊ธธ ๋ฐ๋๋๋ค.
์ ๊น! โ MCU๋?
๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ ์ ๋(Micro Controller Unit)์ ๋งํด์. ๋จ์ผ ์นฉ ๋ด๋ถ์ ํ๋ก์ธ์, ๋ฉ๋ชจ๋ฆฌ, ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ๋ชจ๋ ๊ฐ์ถ ์ฅ์น์์. ํ๋ก๊ทธ๋๋ฐ์ ํตํด ์ ์ด๋ ์ฐ์ฐ ์์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋์ฐจ๋ถํฐ ๊ฐ์ ์ ํ, ์ฅ๋๊ฐ๊น์ง ๋์ ๋ถ์ผ์์ ์ฐ์ด๊ณ ์์ด์. ํน์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ํ๋ก๊ทธ๋๋ฐ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํด์.
Verilog๋ก FPGA๋ฅผ ์ค๊ณํ ๊ฒฝํ์ด ์์ผ์ ๋ถ
C ์ธ์ด๋ฅผ ์ด์ฉํ์ฌ FW๋ฅผ ํด๋ณด์ ๋ถ
System Block์ Bootloader ์ดํด
MCU Memory ๋ฐ LOGIC ๊ตฌํ
Application FW ๊ตฌํ ๋ฐ ์์ฉ
FW ๋ค์ด๋ก๋๋ฅผ ์ํ Windows Program ๊ตฌํ
๋ด์ฉ์ด ์ ์ง๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋ํ๋ ์ดํดํด์ ์์ ์ ๊ฒ์ผ๋ก ๋ง๋ ๋ค๋ฉด ํฅํ FPGA๋ฅผ ์ฌ์ฉํ๋ ์ผ์ ๋๋ถ๋ถ ์ ์ฉํ ์ ์์ ๊ฒ์ ๋๋ค ๐ช
๐ข ๊ฐ์๋ ์ด 4๊ฐ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋ณธ ๊ฐ์๋ 4๊ฐ ์ ๋๋ค.
1๊ฐ : Verilog FPGA Program 1
๊ธฐ๋ณธ ๊ธฐ๋ฅ ๊ตฌํ
2๊ฐ : Verilog FPGA Program 2
Microblaze
3๊ฐ : Verilog FPGA Program 3
DDR Controller
4๊ฐ : Verilog FPGA Program 4
MCU Porting
๊ธฐ์ด : Verilog๋ฅผ ์ด์ฉํ FPGA ํ์ฉ ๊ธฐ์ด
๐ข ๊ฐ์๋ ์ค์ต๋ณด๋์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๊ฐ์ ๊ตฌ๋งค์ ์ฃผ์ํ์ธ์.
Arty A7-35T ๋ณด๋
Verilog FPGA Program 1 (Arty A7-35T)
Verilog FPGA Program 2 (MicroBlaze1, Arty A7-35T)
Verilog FPGA Program 2 (MicroBlaze2, Arty A7-35T)
Verilog FPGA Program 3 (DDR Controller, Arty A7-35T)
Verilog FPGA Program 4 (MCU Porting, Arty A7-35T)
Zynq mini 7020 ๋ณด๋
Verilog FPGA Program 1 (Zynq mini 7020)
Verilog ZYNQ Program1 (Zynq mini 7020)
HIL-A35T ๋ณด๋ (๊ฐ์๋ฅผ ์ํด ์์ฌ์์ ๊ฐ๋ฐํจ)
Verilog FPGA Program 1 (HIL-A35T)
Verilog FPGA Program 2 (MicroBlaze, HIL-A35T)
Verilog FPGA Program 3 (DDR Controller, HIL-A35T)
Verilog FPGA Program 4 (MCU Porting, HIL-A35T)
์น์ 1. HW ๊ตฌ์ฑ
์น์ 2. System Block
์ ์ฒด์ ์ธ System ๊ตฌ์ฑ์ ์ดํดํฉ๋๋ค.
์น์ 3. ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑ
๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑ์ ์ดํดํฉ๋๋ค.
์น์ 4. Clock ๊ตฌ์ฑ
Clock ๊ตฌ์กฐ๋ฅผ ์ดํดํฉ๋๋ค.
์น์ 5. Bootloader
Bootloader๋ฅผ ์ดํดํฉ๋๋ค.
์์ฃผ ์ค์ํ ๋ด์ฉ์ ๋๋ค.
์น์ 6. Logic ๊ตฌํํ๊ธฐ
Processor์์ Interface์ ์ดํดํ๊ณ ๊ตฌํํฉ๋๋ค.
์น์ 7. Application FW
Application FW ๊ฐ๋ฐ ํ๊ฒฝ์ ์ดํดํฉ๋๋ค.
Application FW์ ๊ตฌํํ๊ณ ๋ค์ด๋ก๋ํ๋ ๊ณผ์ ์ ์ดํดํฉ๋๋ค.
์น์ 8. Windows Application Program
fw๋ฅผ ๋ค์ด๋ก๋ํ๊ณ , User Interface๋ฅผ ๊ตฌํํฉ๋๋ค.
์น์ 9-10. Bitstream ๋ค์ด๋ก๋, ๊ฒฐ๊ณผ ํ์ธ
Bitstream์ ๋ค์ด๋ก๋ ํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค.
์น์ 11-12. Uart Buadrate ๋ณ๊ฒฝ, Application fw์์ I2C ์ฌ์ฉ
Uart Baudrate๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
Application fw์์ I2C์ ์ฌ์ฉํ๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
์น์ 13. W5500 Interface ๊ตฌํ
w5500 Interface๋ฅผ ๊ตฌํํฉ๋๋ค.
์ด๋ฅผ ํตํ์ฌ ํ๋ก์ธ์์ User Logic ๊ฐ์ Memory ๊ณต์ , Register Map ๋ฑ์ ๊ตฌํํฉ๋๋ค.
ํ์ ์ ์ฌ์ฉํ ์ ์๋ ๋งค์ฐ ์ค์ํ ์คํฌ์ ๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
FPGA ์คํฌ ์ ์ ์ํ์๋ ๋ถ
FPGA SOC ๊ตฌํ์ ์ํ์๋ ๋ถ
FPGA์ MCU๋ฅผ ํฌํ ํด์ ์ฌ์ฉํ์๊ธฐ ์ํ์๋ ๋ถ
์ ์ ์ง์,
ํ์ํ ๊น์?
C ์ธ์ด
Verilog ์ธ์ด
FPGA ์ค๊ณ
1,824
๋ช
์๊ฐ์
91
๊ฐ
์๊ฐํ
133
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
18
๊ฐ
๊ฐ์
์ ๋ ์ง๋ 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++
์ ๋๋ค.
์ ์ฒด
163๊ฐ
ํด๋น ๊ฐ์์์ ์ ๊ณต:
์ ์ฒด
1๊ฐ
์ง์๊ณต์ ์๋์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
๊ฐ์ ๋ถ์ผ์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!





