
Verilog FPGA Program 1 (Arty A7-35T)
alex
โฉ110,000
์ด๊ธ / Verilog HDL, FPGA
5.0
(16)
Verilog๋ฅผ ์ด์ฉํ FPGA ๊ตฌํ
์ด๊ธ
Verilog HDL, FPGA

๊ฐ์์ ํตํ์ฌ FPGA๋ฅผ ์ด์ฉํ DDR Controller๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
์๊ฐ์ 122๋ช
๋์ด๋ ์ค๊ธ์ด์
์๊ฐ๊ธฐํ ๋ฌด์ ํ

๋จผ์ ๊ฒฝํํ ์๊ฐ์๋ค์ ํ๊ธฐ
5.0
mjs1004
DDR Controller๋ฅผ ์ฌ์ฉํ๋ ค๋ ๋ง๋ง ํ๋๋ฐ, ํ์ํ ํต์ฌ ๋ถ๋ถ์ ์ ์๋ ค์ฃผ๋ ๊ฐ์์ ๋๋ค. Xilinx์ ๋ฌธ์๋ค์ ์ด๋์๋ถํฐ ์ด๋ป๊ฒ ์ฝ์ด์ผ ๋๊ฐํ๋๋ฐ, ๊ฐ์ ์๊ฐ ํ ๊ธธ์ด ๋ณด์ด๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ข์ ๊ฐ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
5.0
coldugs
FPGA ๊ด๋ จ ์๋ฃ๋ ์ฐพ๊ธฐ๋ ์ด๋ ต๊ณ ์ฐพ์๋ ์์ด ๋ฐฉ๋ํด์ ๋ฐฐ์ฐ๊ธฐ๊ฐ ํ๋ค๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ข์ ์๋ฃ๋ก ๋ง์ ๋์์ด ๋์์ต๋๋ค.
5.0
miheungsound
์ข์ ๊ฐ์ ๋ด์ฉ์ผ๋ก ๋ง์ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ๋ฌ๋ฒ ๋ฐ๋ณต ํด์ ๋ณด๊ณ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
DDR Controller
Frame Buffer
์ค๋ ฅ ์๋ Verilog ๊ฐ๋ฐ์์๊ฒ ํ์ํ
DDR Memory Controller ์คํฌ! โจ
FPGA์๋ ๋ง์ ๊ธฐ๋ฅ์ด IP ํํ๋ก ์ ๊ณต๋๊ณ ์์ต๋๋ค. ๊ทธ์ค์์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฃผ๋ก ์ฌ์ฉ๋๋ DDR Controller์ ๋ํด์ ์ค๋ช ํฉ๋๋ค.
1. ๋ฐ์ดํฐ ์ํธ๋ฅผ ๋ณด๊ณ ๊ทธ๋๋ก ๊ตฌํ
2. Xilinx ์ฌ์์ ์ ๊ณตํ๋ IP๋ก ๊ตฌํ
์ ์๊ฐ DDR Controller๋ฅผ ๊ตฌํํ๋ฉด์ ์ด๋ฌํ ๋ง์ ์ด๋ ค์์ ๊ฒฝํํ์์ต๋๋ค. ๋ญ๊ฐ ํ์ํ ๋ถ๋ถ๋ง ์ ๋ฆฌ๋ ํ๋์ ๋ฌธ์๊ฐ ์์ผ๋ฉด ์ข์ง ์์๊น ํ๋ ์๊ฐ์ ๋ง์ด ํ์ต๋๋ค. ์ฒ์์๋ ํ์ํ ๋ถ๋ถ๋ง ์ดํดํ๊ณ ๊ฐ๋ฐ์ ์งํํด์ DDR์ read / write ํด ๋ณด๊ณ , ์ ์ ๋ ์ดํด๋๋ฅผ ๋์ฌ๊ฐ๋ ๊ฒ์ด ํจ์จ์ ์ ๋๋ค. ๋จผ์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ณ , ๋์ค์ ์ธ๋ถ์ ์ธ ๋ด์ฉ๋ค์ ์ดํดํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ ๋๋ค. ๋ณธ์๋ DDR Controller๋ฅผ ์ฒ์ ์ ํ๋ ๊ฐ๋ฐ์๋ค๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
DDR Memory๋ ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์์ด ์์ฃผ ์ค์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ฉด ์ ๊ทผํ๊ธฐ๊ฐ ์ด๋ ต๊ณ ๋ํ ์ด๋ฌํ ์ ๋ฌธ์ ์ธ ๋ด์ฉ์ ๋ค๋ฃจ๋ ์๋ฃ๊ฐ ๊ฑฐ์ ์๋ ๊ฒ์ด ํ์ค์
๋๋ค. ๋ณธ ๊ฐ์๋ DDR Memory Controller๋ฅผ ๊ตฌํํ๋ ๋ชจ๋ ๋ด์ฉ์ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ๋ํ DDR Controller๋ฅผ ์ด์ฉํ์ฌ Frame Buffer๋ฅผ ๊ตฌํํ๋ ๋ด์ฉ์ ์์ธํ ์ค๋ช
ํ๊ณ ์์ต๋๋ค.
๐พ ์๊ฐ ์ ํ์ธํด์ฃผ์ธ์!
DDR Memory Controller์ ๋ํ ๋ด์ฉ์ ๋ค๋ฃจ๋ ๋ฌธ์๋ ๊ฑฐ์ ์์ต๋๋ค. ๋ณธ ๊ฐ์๋ ๋ชจ๋ ๊ณผ์ ์ ์์ธํ๊ฒ ์ค๋ช ํ์ฌ ๋๋ฆฝ๋๋ค. Memory IP๋ฅผ ์์ฑํ๊ณ Simulation ํ๋ ๊ณผ์ ๋ถํฐ ๋ฒ์ฉ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ DDR Memory Controller ๊ตฌํ, ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ Frame Buffer๋ฅผ ๊ตฌํํ๋ ๋ด์ฉ๊น์ง ๋ชจ๋ ๊ณผ์ ์ ์ค๋ช ํ๊ณ ์์ต๋๋ค. ๋ํ ์์ค ์ฝ๋๋ง๋ค simulation์ ํตํ์ฌ ๊ฒ์ฆํ๊ณ ๋์์ ์ดํดํ ์ ์๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๋ณธ ๊ฐ์์ ๋ด์ฉ์ ๋ชจ๋ ์ดํดํ๋ค๋ฉด DDR Controller๋ฅผ ๊ตฌํํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ, Verilog๋ฅผ ํ์ฉํ FPGA ๊ตฌํ์ ์ค๋ ฅ ์๋ ๊ฐ๋ฐ์๊ฐ ๋ ๊ฒ์ ๋๋ค.
Verilog๋ฅผ ๋ฐฐ์ฐ๊ณ ์ ํ๋ ๋ถ๋ค์๊ฒ DDR Memory Controller๋ ๋งค์ฐ ์ข์ ์คํฌ์ ๋๋ค. ๋ง์ ๊ฐ๋ฐ๊ฒฝ๋ ฅ์ ๊ฐ์ง๊ณ ์๋ ์ฌ๋๋ค๋ DDR Memory Controller๋ฅผ ์ ํด๋ณด์ง ๋ชปํ ๋ถ๋ค์ด ๋ง์ด ์์ต๋๋ค. Verilog๋ฅผ ํ ๋จ๊ณ ์ ๊ทธ๋ ์ด๋ ํ ๊ธฐํ๋ฅผ ์ ๊ณตํ์ฌ ๋๋ฆฝ๋๋ค.
๋ณธ ๊ฐ์๋ฅผ ๊ตฌ๋งคํ์๋ ๋ถ๋ค์๊ฒ๋ ๊ฐ์์ ์ค๋ช ๋ ๋ชจ๋ ์์ค๋ฅผ ์ ๊ณตํ์ฌ ๋๋ฆฝ๋๋ค. ์ ๊ณต๋๋ ์์ค๋ ๊ฐ์๋ฅผ ์ ์ํ๋ฉด์ ์ฒ์๋ถํฐ ํ๋ํ๋ ์ฝ๋ฉํ๊ณ ๊ฒ์ฆ๋ ์๋ฃ๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋ํ ํ์ ์์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ ์ฝ๋๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋ณธ ๊ฐ์๋ฅผ ํตํ์ฌ DDR Controller์ ๋ง์คํฐ๊ฐ ๋์๊ธธ ๋ฐ๋๋๋ค.
๋ณธ ๊ฐ์๋ DDR Controller IP๋ฅผ ์์ฑํ๋ ๊ณผ์ ๊ณผ ์์ฑ๋ IP๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง Simulation์ ํตํ์ฌ ๋์ ๊ณผ์ ์ ์ดํดํ๊ณ , ์์ฑ๋ IP๋ฅผ ์ด์ฉํ์ฌ ๋ฒ์ฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ DDR Controller๋ฅผ ์ค๊ณํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์์๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ Frame ๋ฒํผ๋ฅผ ๊ตฌํํ๋ ๊ณผ์ ์ ์ค๋ช ํฉ๋๋ค.
๋ณธ ๊ฐ์๋ ์ค๋ซ๋์ ISP(Image Signal Processing) ๊ฐ๋ฐ์ ์งํํ๋ ์ ์์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. ๋ณธ์์ ๋ด์ฉ๋ค์ ์ค๋ฌด์ ๋ฐ๋ก ์ ์ฉํ ์ ์๋ ์ฝ๋๋ค์ ๋๋ค. ๋ด์ฉ์ด ๋ค์ ์ด๋ ค์ด ๋ถ๋ถ๋ค์ด ํฌํจ๋ ์ ์์ง๋ง, ์ดํด๋์ง ์๋ ๋ถ๋ถ๋ค์ 2-3๋ฒ ์ ๋ ์ ๋ ํ์๊ณ , ์ฝ๋๋ค์ Simulation ํ๋ฉด์ ๋์ ๋ด์ฉ์ ๋ณต์ตํด๋ณด์ธ์.
๋ณธ ๊ฐ์๋ Digilent ์ฌ์์ ํ๋งคํ๋ Arty A7 ๊ฐ๋ฐ ๋ณด๋์์ ์ค์ต์ ์งํํฉ๋๋ค. FPGA๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ์์ด์ HW์ ์ ์ฉํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. Simulation์ผ๋ก ๊ตฌํํ๋ ๊ฒ์ ํ๊ณ๊ฐ ์์ต๋๋ค. ๋ฐ๋์ HW์์ ๊ฒ์ฆํด์ผ ํฉ๋๋ค. (๋ณธ์์ ๋ง์ง๋ง ์ฅ์์ ๋ค๋ฃจ๋ ํ๋ ์ ๋ฒํผ์ ๋ํ ๋ด์ฉ์ ์ ๋นํ HW๋ฅผ ์ฐพ์ง ๋ชปํด์ Simulation์ผ๋ก๋ง ๊ฒ์ฆ์ ์งํํ๋ ์์ฌ์์ด ์์ต๋๋ค. ์ถํ ์ ๋นํ ๋ณด๋๋ฅผ ์ฐพ์์ HW ๊ฒ์ฆ๊น์ง ์งํํ ์ ์๊ธธ ๊ธฐ๋ํฉ๋๋ค)
1์ฅ์ ์ ๋ฐ์ ์ธ ๋ด์ฉ์ ๋ํ ๊ฐ์์ ๋๋ค.
2์ฅ์ ์ค์ต์ ์ฌ์ฉ๋๋ Arty A7 ๋ณด๋์ ๋ํด์ ์ค๋ช ํฉ๋๋ค.
3์ฅ์ DDR Controller IP๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ User Interface Logic์ ๋ํด์ ์ค๋ช ํฉ๋๋ค.
4์ฅ์ ์์ฑ๋ DDR Controller IP์ Simulation์ ํตํ์ฌ ๋์ ํน์ฑ์ ์ดํดํฉ๋๋ค. ์ด๋ ๋ฒ์ฉ์ผ๋ก ์ฌ์ฉ๊ฐ๋ฅํ DDR Controller๋ฅผ ๊ตฌํํ๋๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
5์ฅ์ ๋ฒ์ฉ์ผ๋ก ์ฌ์ฉ๊ฐ๋ฅํ DDR Controller๋ฅผ ๊ตฌํํ๊ณ , ์ด๋ฅผ ์ด์ฉํ์ฌ DDR Memory์ ์ ์์ญ์ Read/Write ํ๋ ๊ฒ์ ๊ตฌํํฉ๋๋ค. ๋ํ Bitstream์ ์์ฑํด์ ๋ณด๋์์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค.
6์ฅ์ Memory Access ์๋์ ๊ดํ ๋ด์ฉ์ ์ดํด๋ณด๊ณ , ์ต๋ ์๋๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๋ด์ฉ์ ๋ค๋ฃจ๊ฒ ๋ฉ๋๋ค.
7์ฅ์ 5์ฅ์์ ๊ตฌํํ ๋ฒ์ฉ DDR Controller๋ฅผ ์ด์ฉํ์ฌ ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ Frame Buffer๋ฅผ ๊ตฌํํฉ๋๋ค.
8์ฅ์ 16bits DDR Memory 2๊ฐ๋ฅผ ์ฌ์ฉํ์ฌ 32Bits Interface๋ฅผ ๊ตฌํํฉ๋๋ค.
9์ฅ์ Spartan6์์ DDR Controller๋ฅผ ๊ตฌํํฉ๋๋ค.
10์ฅ์ DDR4 Controller๋ฅผ ๊ตฌํํฉ๋๋ค.
์ด์ ๊ฐ์ ํจ๊ป ๋ณด๊ธฐ ๐
Q. Verilog ์ด๋ณด์๋ค๋ ๊ฐ๋ฅํ๊ฐ์?
Verilog์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ง์์ด ์์ด์ผ ํฉ๋๋ค. ๊ด๋ จ ์ง์์ด ์์ผ๋ฉด ์ด๋ ค์ธ ์ ์์ต๋๋ค.
Q. ์ค๋น ์ฌํญ์ด ์๋์?
์ฝ๋๋ฅผ ๊ตฌํํ๊ณ ๊ฒ์ฆํ๊ธฐ ์ํ์ฌ Arty A7 ๋ณด๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ณด๋๊ฐ ์ค๋น๋๋ฉด ๊ตฌํํ ๋ด์ฉ์ ์ง์ ํ์ธํด ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์์ค๋ฅผ simulation ํ ์ ์๊ฒ ๊ตฌ์ฑ๋์ด ์์ด์ ๋จผ์ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ณด๋๊ฐ ์ค๋น๋๋ฉด ๋์ค์ ๊ฒ์ฆํด๋ ๋ฉ๋๋ค.
Q. ํ๋ก๊ทธ๋จ ํด์ ๋ฌด์์ ์ฌ์ฉํ๋์?
Xilinx ์ฌ์ vivado 2018.3์ ์ฌ์ฉํฉ๋๋ค. 2018.3 ์ดํ ๋ฒ์ ์ด๋ฉด ๊ฐ๋ฅํฉ๋๋ค.
์ ๋ 20์ฌ ๋ ๋์ ๋๊ธฐ์ , ์ค์๊ธฐ์ ์์ ๊ฐ๋ฐ์๋ก ์ผํด์๊ณ ํ์ฌ๋ ์์ ๊ธฐ์ ์ ์ด์ํ๊ณ ์์ต๋๋ค. CCTV์ฉ ISP(Image Signal Processing) ASIC์ ๊ฐ๋ฐํ์๊ณ OLED ๊ฒ์ฌ ์ฅ๋น, DAQ (Data Acquisition System) ๋ฑ FPGA๋ฅผ ์ด์ฉํ ๋ง์ ์ ํ์ ๊ฐ๋ฐํ์์ต๋๋ค. FPGA๋ฟ๋ง ์๋๋ผ FW ๊ฐ๋ฐ (STM32, PIC32, AVR, ATMEGA ๋ฑ), ํ๋ก ์ค๊ณ, Windows Program ๋ฑ ๋ง์ ๊ฒฝํ์ ๊ฐ๊ณ ์์ต๋๋ค. ๊ทธ๋์ ์ ๊ฐ ์์์จ ํญ๋์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ฌ๋ฌ๋ถ์ ํ์ต์ ๋์์ด ๋๊ธฐ๋ฅผ ์๋งํฉ๋๋ค.
ํ์ต ๋์์
๋๊ตฌ์ผ๊น์?
FPGA๋ฅผ ์ด์ฉํ ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
Frame Buffer ๊ตฌํ
Verilog ๋ฐฐ์ฐ๊ณ ์ถ์์ ๋ถ
FPGA ๋ฐฐ์ฐ๊ณ ์ถ์ผ์ ๋ถ
์ ์ ์ง์,
ํ์ํ ๊น์?
Verilog
vivado
FPGA
1,733
๋ช
์๊ฐ์
87
๊ฐ
์๊ฐํ
131
๊ฐ
๋ต๋ณ
4.8
์
๊ฐ์ ํ์
17
๊ฐ
๊ฐ์
์ ๋ ์ง๋ 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++
์ ๋๋ค.
์ ์ฒด
277๊ฐ
ํด๋น ๊ฐ์์์ ์ ๊ณต:
์ ์ฒด
7๊ฐ
5.0
7๊ฐ์ ์๊ฐํ
์๊ฐํ 4
โ
ํ๊ท ํ์ 5.0
5
๋ง์ ๋์์ด ๋จ
๋์์ด ๋์ จ๋ค๋ ๊ฐ์ฌํฉ๋๋ค. ์ค๋ ํ๋ฃจ๋ ์ฆ๊ฑฐ์ด ์๊ฐ ๋์ธ์. ~!!
์๊ฐํ 2
โ
ํ๊ท ํ์ 5.0
์๊ฐํ 2
โ
ํ๊ท ํ์ 5.0
5
์ข์ ๊ฐ์ ๋ด์ฉ์ผ๋ก ๋ง์ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ๋ฌ๋ฒ ๋ฐ๋ณต ํด์ ๋ณด๊ณ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค. ๊ฐ์ ํตํด์ ddr controller๋ฅผ ์์ ํ ์ดํดํ์๊ธธ ๋ฐ๋๋๋ค. xilinx ์์ ์ ๊ณตํ๋ ip ํ๋๋ฅผ ์ ๋ณตํ๋ฉด ๋ค๋ฅธ ip๋ค๋ ์ฌ์ฉํ๋๋ฐ ๋ง์ ๋์์ด ๋ฉ๋๋ค~ fpga ๋ถ์ผ๊ฐ ์ฝ์ง ์์ ๋ถ์ผ์ ๋๋ค. ๋๊น์ง ์์ฃผ ํ์๊ธธ ์์ํฉ๋๋ค ~!!
์๊ฐํ 1
โ
ํ๊ท ํ์ 5.0
5
FPGA ๊ด๋ จ ์๋ฃ๋ ์ฐพ๊ธฐ๋ ์ด๋ ต๊ณ ์ฐพ์๋ ์์ด ๋ฐฉ๋ํด์ ๋ฐฐ์ฐ๊ธฐ๊ฐ ํ๋ค๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ข์ ์๋ฃ๋ก ๋ง์ ๋์์ด ๋์์ต๋๋ค.
์ ๋ ์ฒ์ ๋ฐฐ์ธ ๋ ๋ญ ๋ด์ผํ๊ณ ์ด๋ป๊ฒ ์์ํด์ผ ํ ์ง ๋ง๋งํ๋ ๊ฒ ๊ฐ๋ค์. ๋์ฑ ์ ์ตํ ์๋ฃ๊ฐ ๋ ์ ์๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค~!!
์๊ฐํ 4
โ
ํ๊ท ํ์ 5.0
์์ ๋จ
์ง์๊ณต์ ์๋์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
๊ฐ์ ๋ถ์ผ์ ๋ค๋ฅธ ๊ฐ์๋ฅผ ๋ง๋๋ณด์ธ์!
์ โฉ22,000
5๊ฐ์ ํ ๋ถ ์
โฉ110,000