semisgdh
@semisgdh
Students
4,145
Reviews
339
Course Rating
5.0
์๋ ํ์ธ์. ์ค๊ณ๋ ํ์ ๋ง๋น์ ๋๋ค.
ํ) Global Top5 Fabless๊ธฐ์ ์์ HW IP ์ค๊ณํ๊ณ ์์ต๋๋ค.
์ธ์์ ์๋ ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ๋ถ๋ค์ ํ์ ์ํ์ ๋์์ด ๋๋, "์ง์ง ๋ฐ๋์ฒด ์ค๊ณ ์ค๋ฌด ๊ฐ์"๋ฅผ ๋ง๋ค๊ณ ์์ต๋๋ค.
์ค๊ณ๋ ํ ๋ก๋๋งต๊ณผ ํจ๊ป ์ฌ๋ฌ๋ถ๋ค์ ์ค๋ ฅ์ ํค์๋ณด์์.
์ค๊ณ๋ ํ๊ณผ ํจ๊ปํ ์ ์๋ ๋งํฌ์ ๋๋ค. ํจ๊ป ์ฆ๊ณตํ๊ณ ์ฑ์ฅํด์!
Courses
Reviews
jhpark76758
ยท
์ค๊ณ๋ ํ's Verilog Master Season 1 (Career Leap for Digital Design Engineers Completed Through Practical Coding Test Problems)์ค๊ณ๋ ํ's Verilog Master Season 1 (Career Leap for Digital Design Engineers Completed Through Practical Coding Test Problems)jesseredwoman4682
ยท
Design Self-Study Tastebi's Practical Verilog HDL Season 1 (From Clock to Internal Memory)Design Self-Study Tastebi's Practical Verilog HDL Season 1 (From Clock to Internal Memory)yung19783645
ยท
Design Self-Study Tastebi's Practical Verilog HDL Season 1 (From Clock to Internal Memory)Design Self-Study Tastebi's Practical Verilog HDL Season 1 (From Clock to Internal Memory)leeug135308
ยท
Design Self-study Taste's Bible for Practical AI HW Design, Complete Conquest of CNN Operations (Accelerator Practice Using Verilog HDL + FPGA)Design Self-study Taste's Bible for Practical AI HW Design, Complete Conquest of CNN Operations (Accelerator Practice Using Verilog HDL + FPGA)leeky749900
ยท
Design Self-Study Tastebi's Practical Verilog HDL Season 1 (From Clock to Internal Memory)Design Self-Study Tastebi's Practical Verilog HDL Season 1 (From Clock to Internal Memory)
Posts
Q&A
fifo์ stall๊ณผ ํผํฌ๋จผ์ค ๋๋
์๋ ํ์ธ์ ๐"์๋จ์ ์ ๋ ฅํ๋ ๋ชจ๋์ด fifo์ writeํ๋ ์๋๊ฐ ๋ท๋จ์ ๋ชจ๋์ด readํ๋ ์๋๋ณด๋ค ๋น ๋ฅธ๋ค๋ฉด full์ด ์ผ์ด๋์ง ์์ ํ๋์จ์ด ์ฑ๋ฅ์ด ์ข์์ง๋ค ํ์ จ์ต๋๋ค."์ ์ด์ฃผ์ ๋ฌธ์ฅ์์ ๋ง์ง์๋ ๋ถ๋ถ์ด ์๋ ๊ฒ ๊ฐ์๋ฐ์. ์ด๋ฐ๋ง์ ํ์ ์ด ์์๊น์?์์์ ๋ค์ ๋ดค๋๋ฐ, ์ด๋ ๊ฒ ๋ฉํธ๋ฅผ ํ๊ฒ ์๋ณด์ฌ์์.write ํ๋ ์๋๊ฐ read ํ๋ ์๋๋ณด๋ค ๋น ๋ฅด๋ฉด, fifo ์ full ์ด ๋ฐ์ํ๊ณ ์. read ์ชฝ์์ bottle neck ์ํฉ์ด ํผ์ณ์ ธ์, ๊ฒฐ๊ตญ read ํ๋ ์๋๋ก performance ๊ฐ align ๋ ๊ฒ ๊ฐ์๋ฐ, ๋ค์ ํ์ธ ๋ถํ๋๋ฆด๊ป์.
- 1
- 2
- 14
Q&A
๋ณด๋ ์ถ๊ฐ์ ํด๋ฆญ์ฐฝ์ด ์์ต๋๋ค.
์.. AI ์ธํด์ด ํด๊ฒฐ์ ํด์คฌ๋ ๋ณด๊ตฐ์.์ฆ๊ณตํ์ธ์!!
- 1
- 2
- 19
Q&A
FPGA ๊ฐ์ ๋ณด๋ ๋ฌธ์ ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์! ์.. Zybo ๊ฐ ๋จ์ข ์ธ๊ฐ์? ใ ใ ํด์ธ๋ฐฐ์ก์ด ์๊ธด ํ๋๋ฐ..์ด๊ฒ ์๊ฐ์๋ง๋ค ์ ๋ถ ๋ฌ๋ผ์ ๋๋ค ์๋๋ค ๋ฅผ ๋ต๋ณ๋๋ฆฌ๊ธฐ ์ด๋ ค์ด๋ฐ, ๊ธฐ์ ์ ์ผ๋ก๋ ๋จผ์ ๊ฐ์๋ Arty Z7 10 ์ผ๋ก๋ ์ถฉ๋ถํ ๋ฐ๋ผ์ฌ ์ ์๋ค๊ณ ์๊ฐ์ด ๋ค๊ณ ์. (๊ฐ์ ์นฉ ๊ณ์ด์ ๋๋ค.)๋ค๋ง FPGA ๋ฅผ ์ ๋ง๋ก ์ฒ์ ํ์๋ ๋ถ์ด๋ผ๋ฉด.. ๊ทธ๋ ๊ฒ ์ถ์ฒ๋๋ฆฌ์ง๋ ์์ต๋๋ค.๋ณด๋ ๋จ์ข ์ ๋๋ฌด ์์ฝ๋ค์ ใ ใ ์ฆ๊ณตํ์ธ์!!
- 1
- 2
- 42
Q&A
5์ฅ DFFํน์ฑ์ ๋ํ ์ง๋ฌธ
์๋ ํ์ธ์ ๐์ดํด๋ฅผ ์ํด์, ์ฝ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด "_1" . "_2" ๋ฅผ ๋ถ์ฌ์ ๋๊ฐ์ F/F ์ ์ถ๊ฐ๋ก pipeline ์์ผฐ์ต๋๋ค. (์ฌ์ง)๋ค์ ์๋ฎฌ๋ ์ด์ ์ ๋ณด์๋ฉด ์์๋ค์ํผ, reset ์ด๋ผ๊ณ ํด์ ํน๋ณํ๊ฒ ์ทจ๊ธ๋๋ ๊ฒ์ด ์๋๋๋ค. value 1 ๋ํ reset ์ฒ๋ผ ๋์ผํ๊ฒ pipeline ์ด ๋ฉ๋๋ค. ์ฆ reset ์ด๋ผ๊ณ ํด์ posedge ๊ณผ์ ์์ ํน๋ณ? ์ทจ๊ธ์ ๋ฐ๋๊ฒ์ด ์๋๋ผ๋ ๋ป์ ๋๋ค. (๋ค์ ๊ทธ๋ฆผ์ ๋ณด์๋ฉด ์ดํด๊ฐ ๋์ค๊บผ์์)(์ฌ์ง) ์ง๋ฌธ์๋์ด ๊ถ๊ธํด ํ์๋ ํฌ์ธํธ๊ฐ, posedge ๊ฐ ๋์๋ง์ ๋ฐ๋ก ๊ฐ์ด ๋ฐ์๋๋ ๊ฒ์ธ๊ฐ? ๋ฅผ ๊ถ๊ธํด ํ์๋๊ฑฐ๋ผ๋ฉด, ๊ทธ๊ฒ์ ์๋ฎฌ๋ ์ด์ ํ๊ฒฝ์์ ์๋ฌด๋ฐ delay ๊ฐ ๊ณ ๋ ค๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค.์ฆ clock edge ์์น๊ณผ ๋์์ ๋ฐ๋ก ๊ฐ์ด ๋ฐ์๋ ๊ฒ์์ผ๋ก delay ์ ๋๋์ ๋ฐ์ง ๋ชปํ๊ณ ์์ต๋๋ค.์๊ณ ๊ณ์๋ ๊ฒ์ฒ๋ผ ์ต์ข d_ff ์ output ์ 1 cycle ๋ฐ๋ฆฐ ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ง์ต๋๋ค. ์ด ๊ฒ์ ์ฆ๋ช ํ๊ฒ "_1", "_2" ๊ฐ ๋๊ฒ ์ต๋๋ค.์ฆ๊ณตํ์ธ์ ๐
- 1
- 3
- 32
Q&A
vivado linux ์ฌ์ฉ ์ด์ .
์๋ ํ์ธ์ ๐Vivado ์ฌ์ฉ ํ๊ฒฝ์ ๋ํด ๋ง์ด๋ค ๊ถ๊ธํดํ์๋ ํฌ์ธํธ๋ผ, ์ง๋ฌธ ์ฃผ์ ๊น์ ์ ๋ฆฌํด์ ๋ต๋ณ ๋๋ ค๋ณด๊ฒ ์ต๋๋ค.Vivado๋ฅผ Linux์์ ์ฌ์ฉํ๋ ์ด์ ๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด ํ์๋ ์๋๊ณ , ์ฅ๋จ์ ์ ์ ํ์ ๊ฐ๊น์ต๋๋ค.๋ค๋ง ์ ๊ฐ Linux ํ๊ฒฝ์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ค์ ์ชฝ์ ๊ฐ๊น์ต๋๋ค.์ค์ ํ์ FPGA/ASIC ๊ฐ๋ฐ ํ๊ฒฝ์ด Linux ์๋ฒ ๊ธฐ๋ฐ์ธ ๊ฒฝ์ฐ๊ฐ ๋งค์ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋๋ค.TCL ์คํฌ๋ฆฝํธ, Makefile, ๋ฐฐ์น ๋น๋, CI ์๋ํ ๋ฑ ํด์ โ๊ฐ๋ฐ ๋๊ตฌโ์ฒ๋ผ ๋ค๋ฃจ๊ธฐ์๋ Linux๊ฐ ํจ์ฌ ํธํฉ๋๋ค.๋๊ท๋ชจ ํ๋ก์ ํธ๋ ์ฅ์๊ฐ ํฉ์ฑ/๊ตฌํ ์ ์์ ์ฑ๋ Linux ์ชฝ์ด ์ ๋ฆฌํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.๊ทธ๋ ๋ค๊ณ ํด์ ํ์ต ๋จ๊ณ์์ Windows๊ฐ ํ๋ ธ๋ค๋ ์๋ฏธ๋ ์ ํ ์๋๋๋ค.๊ฐ์ธ ํ์ตยท์ ๋ฌธยท์๊ท๋ชจ ์ค์ต์ Windows + Vivado๋ ์ถฉ๋ถํ ์ข์ ์ ํ์ ๋๋ค.๊ฐ์์์ Linux๋ฅผ ์ฐ๋ ๊ฒ์ โ์ด๋ฐ ํ๊ฒฝ๋ ์๋คโ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ์ฑ๊ฒฉ์ด ๋ ํฝ๋๋ค.Vivado 2020.2 Linux ์ค์น ๊ด๋ จ (bin ํ์ผ ๋ฌธ์ )Vivado๋ ๋ฒ์ ๋ณ๋ก Windows์ฉ / Linux์ฉ ์ค์น ํ์ผ์ด ์์ ํ ๋ฐ๋ก์ ๋๋ค.2020.2๋ฅผ ๋ฐ์ผ์ จ๋๋ผ๋, Windows Installer๋ง ๋ฐ์ผ๋ฉด Linux์ฉ bin ํ์ผ์ ๋น์ฐํ ์์ต๋๋ค.๋ฐ๋ผ์20.2 ์์ฒด๋ฅผ ๊ผญ ์ ์งํ ํ์๊ฐ ์๋ค๋ฉด โ 22.2 ๊ฐ์ ์ต์ LTS ๊ณ์ด์ Linux์ฉ์ผ๋ก ์๋ก ๋ฐ๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.๊ฐ์๋ ๊ธฐ์กด ํ๋ก์ ํธ ๋๋ฌธ์ 20.2๊ฐ ํ์ํ๋ค๋ฉด โ AMD ์ฌ์ดํธ์์ โLinux Installerโ๋ฅผ ๋ช ์์ ์ผ๋ก ์ ํํด์ ๋ค์ ๋ค์ด๋ก๋ํ์ ์ผ ํฉ๋๋ค.๊ธฐ์กด Windows์ฉ 20.2๋ฅผ โ์ญ์ ํด์ผ๋งโ ํ๋ ๊ฒ์ ์๋๊ณ , ํ๊ฒฝ์ด ๋ค๋ฅด๋ฉด ๊ณต์กด๋ ๊ฐ๋ฅํฉ๋๋ค.์ ๋ฆฌํ๋ฉด,Vivado๋ Windows๋ Linux๋ ์๊ด์์ด ํ์ต์ ๊ฐ๋ฅํ๊ณ Linux๋ ์ฅ๊ธฐ์ ์ผ๋ก ์ค๊ณ ํ๋ฆ์ ๊น๊ฒ ๊ฐ์ ธ๊ฐ๊ณ ์ถ์ ๋ถ๋ค๊ป ์ ๋ฆฌํ ์ ํ์ด๋ฉฐ์ค์น ๋ฌธ์ ๋ ๋๋ถ๋ถ OS๋ณ ์ค์น ํ์ผ ์ ํ ๋ฌธ์ ์์ ๋ฐ์ํฉ๋๋ค.๋๋ฌด ๋ถ๋ด ๊ฐ๊ณ ํ ๋ฒ์ ํ๊ฒฝ์ ๋ฐ๊พธ์ค ํ์๋ ์๊ณ ,์ง๊ธ ์ฐ์๋ Windows ํ๊ฒฝ์์ ๊ฐ์ ๋ฐ๋ผ์ค์๋ค๊ฐ ์ฌ์ ์์ ๋ Linux๋ฅผ ๋ณํํด ๋ณด์ ๋ ์ถฉ๋ถํฉ๋๋ค.๊ฐ์์ ๋์ผํ ํ๊ฒฝ์ ๊ฐ์ถ๊ณ ์ถ์ผ์๋ค๋ฉด WSL + Vivado ํ๊ฒฝ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.์ฆ๊ณตํ์ธ์!
- 1
- 2
- 47
Q&A
Edit in IP Packager์์ ์ฝ๋ ์์ ํ IP ์์ ํ๋ฉด simulation์์ ์์ ๋ ์ฝ๋๋ก ์๋์ด ์๋ฉ๋๋ค
์๋ ํ์ธ์ ๐์ด ๋ฌธ์ ๋ Edit in IP Packager์์ ์์ ํ ์ฝ๋๊ฐ Vivado ํ๋ก์ ํธ์ ์๋ฎฌ๋ ์ด์ ๊ฒฝ๋ก์ ์ ๋๋ก ๋ฐ์๋์ง ์์์ ์๊ธฐ๋ ํ์์ ๋๋ค. ํต์ฌ์ IP๋ฅผ ์์ ํ๊ณ update IP๋ง ํ ๊ฒ์ผ๋ก๋ simulation source ๊ฒฝ๋ก๊ฐ ์๋์ผ๋ก ๊ฐฑ์ ๋์ง ์๋๋ค๋ ์ ์ ๋๋ค.Vivado์ ์๋ฎฌ๋ ์ด์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก โproject ๋ด์ ๋ณต์ฌ๋ simulation์ฉ wrapper ํ์ผโ์ ๋ฐ๋ผ๋ณด๊ณ ๋์ํฉ๋๋ค. ์ฆ, IP Packager ์์์ ์ฝ๋๋ฅผ ์์ ํด๋, update IP๋ฅผ ํ ๋ค์ generate output products โ generate simulation sources๋ฅผ ๋ค์ ํด์ค์ผ Vivado๊ฐ ์์ ๋ ํ์ผ์ simulation ๊ฒฝ๋ก๋ก ๋ฐ์ํฉ๋๋ค.๊ทธ๋์ ์๋ ์์๋ก ์ ๋ฆฌ๋๋ฆด๊ฒ์.Edit in IP Packager์์ ์์ ํ ์ ์ฅPackager ์ฐฝ ๋ซ์ ๋ ๋ฐ๋์ โPackage IP โ update repositoryโ๊น์ง ์๋ฃVivado๋ก ๋์๊ฐ์ ํด๋น IP ์ ํ ํ์ค๋ฅธ์ชฝ ํด๋ฆญ โ โRegenerate Output Productsโ๋ค์ ์ค๋ฅธ์ชฝ ํด๋ฆญ โ โGenerate Simulation Sourcesโ๊ทธ ๋ค simulation์ ๋ค์ ์คํ์ด๋ ๊ฒ ํด์ผ Vivado๊ฐ ๊ธฐ์กด simulation ๋๋ ํ ๋ฆฌ ์์ .v ํ์ผ์ ์๋ก ๋ฎ์ด์๋๋ค.๋ง์ฝ ๊ทธ๋๋ ๋ฐ์์ด ์ ๋๋ค๋ฉด, simulation ํด๋(sim_1/simulations/ip_name)๋ฅผ ์ง์ ์ญ์ ํ ํ ์ ๋จ๊ณ๋ฅผ ๋ค์ ํ๋ฉด ๋ฉ๋๋ค. Vivado๊ฐ ์๋ก ๋ณต์ฌํ๋ฉด์ ์ต์ IP ์ฝ๋๋ก ์๋ฎฌ๋ ์ด์ ์ ๋๋ฆฝ๋๋ค.๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ฐ๋ณตํด์ ๊ฒช์ง ์์ผ๋ ค๋ฉด, IP๋ฅผ ์์ ํ ๋๋ง๋ค Vivado์์ Tools โ Report IP Status๋ก ํ์ธํ์ธ์. โOut of dateโ๊ฐ ํ์๋๋ IP๋ ๋ฐ๋์ regenerate๋ฅผ ํด์ผ simulation์ด ์ ์ ๋ฐ์๋ฉ๋๋ค.์ ๋ฆฌํ๋ฉด, update IP๋ง์ผ๋ก๋ simulation ์ชฝ์ด ๊ฐฑ์ ๋์ง ์๊ณ , generate output + generate simulation sources ๋ ๋จ๊ณ๋ฅผ ๊ผญ ์ํํด์ผ ์์ ๋ ์ฝ๋๋ก ๋์ํฉ๋๋ค.์ฆ๊ณตํ์ธ์!
- 1
- 2
- 44
Q&A
mobaxterm ์์ ์ญ์ ๋ฒ
์๋ ํ์ธ์ ๐์ธ๋ถ ํด๊ณผ ๊ด๋ จ๋ ์ด์๋ AI ๋ ๊ตฌ๊ธ๋ง์ด ์ข์ ๊ฒ ๊ฐ์๋ฐ์.AI ์ธํด์ด ๋งํด์ค ๋ฐฉ๋ฒ์ ์ ํด๋ณด์๊ฒ ์ด์?
- 1
- 2
- 80
Q&A
๋ฉ๋ชจ๋ฆฌ์ ํํ๊ฐ ์ ์ฒด์ค๊ณ์ ๋ฏธ์น๋ ์ํฅ์ด ๊ถ๊ธํฉ๋๋ค.
์๋ ํ์ธ์ ๐AI ์ธํด์ด ๊ธฐ์ด์ ์ธ ๋ต์ ์ ๋ฌ์์ค์, ๊ธฐ๋ณธ์ ์ธ ์ด๋ก ๋ด์ฉ์ ์ฐธ๊ณ ํ์๋ฉด ๋ ๊ฒ ๊ฐ์์.์ ์ถ๊ฐ ๋ต๋ณ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.FPGA ๋ด์๋ Primitive cell ์ด๋ผ๊ณ ๋ถ๋ฅด๋, ์ด๋ฏธ chip ์์ ์กด์ฌํ๋ ๋ก์ง๋ค์ด ์กด์ฌํฉ๋๋ค.FPGA ์์์ Verilog ์ฝ๋ ๋์์ ๋ฐ๋ก ์ด ๋ก์ง๋ค์ Verilog ์ฝ๋๋ก ๋ง๋ IP ๊ฐ ์ฌ์ฉํ๊ฒ ํ๋ ๊ฒ์ด๊ฒ ์ฃ .PnR ๊ณผ์ ์ ๊ฑฐ์ณ์์.Primitive bram ์ด chip ๋ด์ ์กด์ฌํ๊ณ ์. ํด๋น ๋ฉ๋ชจ๋ฆฌ shape ์ด ์ด๋ป๊ฒ ์๊ฒผ๋์ง๋ฅผ ์ดํดํด๋ณด๋ฉด, ๋ ๋ง์ Bram ์ฉ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค.์ดํด๋ฅผ ๋๊ธฐ์ํด์ ๊ทน๋จ์ ์ผ๋ก ์๋ฅผ๋ค์ด๋ณด๋ฉด, ์ฌ์ฉํ์๋ FPGA ๋ด์ BRAM์ด RAMB18E1 ๋ง ์๋ค๊ณ ๊ฐ์ ํด๋ณด์ฃ . https://docs.amd.com/r/en-US/ug953-vivado-7series-libraries/RAMB18E1(์ฌ์ง)Din/Dout ์ 16 bits ์ ๋๋ค.๋ง์ฝ์ width ๋ฅผ 1๋ก ์ฌ์ฉํ๋ค๋ฉด, 15 ๋งํผ์ ๋น๊ณต๊ฐ (์์ฐ๋ ์์ญ) ์ด ์๊ธฐ๊ฒ ์ฃ .์ฆ ํ์ ๋ ์์ ์ค์์ 1/16 ๋งํผ๋ง ์ฌ์ฉํ๊ฒ ๋๋ ๋ถ์์ฌ? ๊ฐ ๋ฐ์ํฉ๋๋ค.์ฌ์ฉํ์๋ FPGA Chip set ๋ด์ BRAM ์ shape ์ ์ ํ์ ํ์๊ณ , memory size ๋ฅผ ์ค๊ณํ์๋ฉด Area ํจ์จ์ ์ธ ์ค๊ณ๊ฐ ๊ฐ๋ฅํ์ค๊บผ์์.์ฆ๊ณตํ์ธ์ ๐
- 1
- 2
- 71
Q&A
๋์ค์ฝ๋ ๋ฉค๋ฒ์ฝ ๋ฑ์ ๊ด๋ จ ๋ฌธ์
์ ์ด๋ฐ!!์ค๋ ์ ๋ ์ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.์ชผ๊ธ๋ง ๊ธฐ๋ค๋ ค์ฃผ์ ์!!
- 1
- 2
- 60
Q&A
BRAM์ Read / Write๋ฅผ ๋ค ์ํํ๋์ง ํ์ธํ ๋ ์ฌ์ฉ๋๋ num_cnt / i_num_cnt ๊ด๋ จ ์ง๋ฌธ
์๋ ํ์ธ์!!์ถ์์ฐํด๋ผ์ ๋ต๋ณ์ด ์กฐ๊ธ ๋ฐ๋ ธ๋ค์ ใ ์ง๋ฌธ ์์ง๋ โ์ i_num_cnt๋ฅผ ๋ฐ๋ก ์ฐ์ง ์๊ณ ๋ ์ง์คํฐ num_cnt์ ์บก์ฒํ๋๋โ๋ก ์ดํดํ์ต๋๋ค. ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด, ๋น๊ต ๊ธฐ์ค์ ํธ๋์ญ์ ๋จ์๋ก ๊ณ ์ ํ๊ณ ํ์ด๋ฐ์ ์์ ํํ๋ ค๋ ์๋์ ๋๋ค. ํญ๋ชฉ๋ณ๋ก ๋ต๋๋ฆฌ๊ฒ ์ต๋๋ค.๋ง์ต๋๋ค. num_cnt๋ฅผ ๋ ์ง์คํฐ๋ก ๋๋ฉด ํ๋ฆฝํ๋กญ ์์์ด ๋ค๊ณ , i_run์ ์บก์ฒ๋๋ ์์ ๋งํผ ํ ์ฌ์ดํด์ ์ง์ฐ์ด ์๊น๋๋ค. ๋ค๋ง ์ด ๋น์ฉ์ ๋ณดํต ํญ๋งํผ์ FF(์: AWIDTH๋นํธ)๋ผ์ ๋งค์ฐ ์๊ณ , ์์คํ ํ์ด๋ฐ ์ธก๋ฉด์์ ์ด๋์ด ๋ ํฝ๋๋ค.์ฅ์ ์ ์ธ ๊ฐ์ง๊ฐ ํต์ฌ์ ๋๋ค.์์์ฑ ๋ณด์ฅ: i_num_cnt๊ฐ ํธ๋์ญ์ ๋์ค ๋ฐ๋์ด๋, ์บก์ฒ๋ num_cnt๋ ๋๋ ๋๊น์ง ๊ฐ์ด ๊ณ ์ ๋ฉ๋๋ค. done ๋น๊ต ๊ธฐ์ค์ด ํ๋ค๋ฆฌ์ง ์์ต๋๋ค.ํ์ด๋ฐ/๊ธ๋ฆฌ์น ์ฐจ๋จ: ์์ ๋ก์ง์ ์กฐํฉ ๊ฒฝ๋ก๊ฐ ๊ธธ๊ฑฐ๋ ๊ธ๋ฆฌ์น๊ฐ ์์ด๋ FF์์ ํ๋ฒ ๋์ด ์ฃผ๋ฏ๋ก ๋น๊ต ๊ฒฝ๋ก๊ฐ ์งง๊ณ ๊นจ๋ํด์ง๋๋ค(ํ์ด๋ฐ ํด๋ก์ ์ ๋ฆฌ).๋ฆฌ์ ยท์ํ ๊ฒฝ๊ณ ๋ช ํํ: ์ฝ๋์ฒ๋ผ o_done์์ 0์ผ๋ก ํด๋ฆฌ์ดํ๋ฉด ํธ๋์ญ์ ๊ฒฝ๊ณ๊ฐ ๋ถ๋ช ํด์ง๋๋ค. ์ฐจ๊ธฐ ํธ๋์ญ์ ์์ ์ ์ ๊ธฐ์ค๊ฐ์ด ๋จ์์์ด ์๊ธฐ๋ ์คํ์ดํฌ๋ฅผ ์๋ฐฉํฉ๋๋ค.addr_cnt_read == i_num_cnt-1๋ก ๋ฐ๋ก ๋น๊ตํด๋ ํฉ์ฑ์ ๋ฉ๋๋ค. ๋ค๋ง ๊ถํ์ง ์์ต๋๋ค. ์ด์ ๋ํธ๋์ญ์ ์ค i_num_cnt๊ฐ ๋ณํ๋ฉด ์๋ฃ ํ์ค๊ฐ ์๋น๊ฒจ์ง๊ฑฐ๋ ์ฌ๋ผ์ง ์ ์์ต๋๋ค.์์์์ ์ค๋ ์กฐํฉ๊ฒฝ๋ก๊ฐ ๊ธธ์ด์ง๋ฉด ํฌ๋ฆฌํฐ์ปฌ ํจ์ค๊ฐ ๊ทธ์ชฝ์ผ๋ก ๋์๋ฉ๋๋ค.i_num_cnt==0์ผ ๋ i_num_cnt-1์ ์ธ๋ํ๋ก๋ก ์ ๋นํธ 1์ด ๋์ด ์ค๋์ ์ํ์ด ํฝ๋๋ค(๋ ์ง์คํฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ผ์ ๋ณดํต i_num_cnt>0 ์ ์ ยทassert๋ ๊ฐ๋ ๋ก์ง์ ๋ก๋๋ค).์ ๋ฆฌํ๋ฉด, num_cnt๋ฅผ ๋ ์ง์คํฐ๋ก ์บก์ฒํ๋ ๊ฑด โ๋ฆฌ์์ค ์๋ชจ ๋๋น ์์ ์ฑ/์ฌํ์ฑ/ํ์ด๋ฐ ์ด๋โ์ด ํ์คํฉ๋๋ค. ์ค๋ฌด์์ ์ ๋ ฅ์ ๊ทธ๋๋ก ์ฐ๊ธฐ๋ณด๋ค ํธ๋์ญ์ ์์์ ์บก์ฒํด์ ์ฐ๋ ํจํด์ ๊ธฐ๋ณธ์ผ๋ก ๊ฐ์ ธ๊ฐ์๋ฉด ์์ ํฉ๋๋ค. ํ์ํ๋ฉด i_run๊ณผ o_done ์ฌ์ด์ ๊ฒฝ๊ณ์์๋ง ์ ๋ฐ์ดํธ๋๋๋ก ํ ์ฌ์ดํด ๋ ํ์ดํ๋ผ์ด๋ํ๋ ๊ฒ๋ ์ข์ต๋๋ค.์ฆ๊ณตํ์ธ์!
- 1
- 1
- 61





