VHDL(VHSIC Hardware Description Language)๋ ๋งค์ฐ ๊ณ ์ ์ง์ ํ๋ก(VHSIC) ์ค๊ณ๋ฅผ ์ํด ๊ฐ๋ฐ๋ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด์ ๋๋ค. VHDL์ ๋์งํธ ํ๋ก ์ค๊ณ์์ ์ค์ํ ์ญํ ์ ํ๋ฉฐ, ํ๋ก์ ๊ตฌ์กฐ์ ๋์์ ๊ธฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ธ์ด๋ ์ค๊ณ์๊ฐ ๋ณต์กํ ๋ ผ๋ฆฌ ํ๋ก๋ฅผ ๋ชจ๋ธ๋งํ๊ณ ์๋ฎฌ๋ ์ด์ ํ ์ ์๋๋ก ํด์ฃผ๋ฉฐ, ์ด๋ฅผ ํตํด ์ค๊ณ ๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๋ฅผ ์ฌ์ ์ ๋ฐ๊ฒฌํ๊ณ ์์ ํ ์ ์์ต๋๋ค.
VHDL์ ์ค์์ฑ์ ๊ทธ ์ ์ฐ์ฑ์ ์์ต๋๋ค. ์ค๊ณ์๋ VHDL์ ์ฌ์ฉํ์ฌ ๋์์ ์ค๋ช (Behavioral description), ๊ตฌ์กฐ์ ์ค๋ช (Structural description), ๋ฐ์ดํฐ ํ๋ฆ ์ค๋ช (Dataflow description) ๋ฑ ๋ค์ํ ๋ฐฉ์์ผ๋ก ํ๋ก๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ค์ํ ํํ ๋ฐฉ์์ ์ค๊ณ์๊ฐ ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ํ๋ก๋ฅผ ์ต์ ํํ ์ ์๋๋ก ๋์์ค๋๋ค.
VHDL์ ๋ํ ํ๋์จ์ด ์ค๊ณ์์์ ์ฌ์ฌ์ฉ์ฑ์ ์ง์ํฉ๋๋ค. ์ค๊ณ์๋ ์ด๋ฏธ ์์ฑ๋ VHDL ๋ชจ๋์ ์ฌ์ฌ์ฉํ์ฌ ์๋ก์ด ์ค๊ณ๋ฅผ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ค๊ณ ์๊ฐ๊ณผ ๋น์ฉ์ ์ ๊ฐํ๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค. VHDL์ ๋ํ ๋ค์ํ ์๋ฎฌ๋ ์ด์ ๋๊ตฌ์ ํตํฉ๋์ด ์์ด, ๋์งํธ ํ๋ก์ ๋์์ ์๋ฎฌ๋ ์ด์ ํ๊ณ ๊ฒ์ฆํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
VHDL์ ์ฃผ์ ๊ธฐ์ ์ ํน์ง ์ค ํ๋๋ ๊ฐ๋ ฅํ ํ์ ์์คํ ์ ๋๋ค. ์ด ์์คํ ์ ๋ฐ์ดํฐ์ ํ์ ์ ๋ช ํํ ์ ์ํ๊ณ , ์ค๊ณ ๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ํ์ ๊ด๋ จ ์ค๋ฅ๋ฅผ ์ค์ด๋ ๋ฐ ๋์์ ์ค๋๋ค. ๋ํ VHDL์ ๋ณ๋ ฌ ์ฒ๋ฆฌ์ ๊ฐ์ ๋ณต์กํ ๊ฐ๋ ์ ์ฝ๊ฒ ํํํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ, ํ๋์ VLSI ์ค๊ณ์์ ํ์์ ์ธ ์์๋ก ์๋ฆฌ์ก๊ณ ์์ต๋๋ค.
VHDL์ ๊ตฌ์ฑ ์์์ ์๋ ์๋ฆฌ๋ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋๋ ์ ์์ผ๋ฉฐ, ๊ฐ ๋จ๊ณ๋ ์๋ก ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋์ด ์์ต๋๋ค. VHDL์ ์ฃผ์ ๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: ์ํฐํฐ(Entity), ์ํคํ ์ฒ(Architecture), ํ๋ก์ธ์ค(Process), ์ ํธ(Signal), ๋ณ์(Variable), ๊ทธ๋ฆฌ๊ณ ๊ตฌ์ฑ ์์(Components)์ ๋๋ค.
Entity๋ VHDL ์ค๊ณ์ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๋ ๋ถ๋ถ์ผ๋ก, ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ํฌํธ๋ฅผ ๋ช ์ํฉ๋๋ค. ์ํฐํฐ๋ ์ค๊ณ์ ์ธ๋ถ์์ ์ฐ๊ฒฐ์ ๋ํ๋ด๋ฉฐ, ์ค๊ณ์๊ฐ ์ด๋ค ์ ํธ๊ฐ ๋ค์ด์ค๊ณ ๋๊ฐ๋์ง๋ฅผ ๋ช ํํ ์ดํดํ ์ ์๋๋ก ๋์์ค๋๋ค.
Architecture๋ ์ํฐํฐ์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ฉฐ, ํ๋ก์ ๋์์ ๊ธฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ํคํ ์ฒ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ ์ ์์ผ๋ฉฐ, ๊ฐ ๋ฐฉ์์ ์ค๊ณ์์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ ํ๋ฉ๋๋ค. VHDL์์๋ Behavioral, Structural, Dataflow ์ํคํ ์ฒ๋ฅผ ์ง์ํ๋ฉฐ, ์ด๋ฌํ ๋ค์ํ ์ํคํ ์ฒ๋ ์ค๊ณ์๊ฐ ์ํ๋ ๋ฐฉ์์ผ๋ก ํ๋ก๋ฅผ ๊ตฌํํ ์ ์๊ฒ ํด์ค๋๋ค.
Process๋ VHDL์์ ์ค์ํ ๊ฐ๋ ์ผ๋ก, ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ์คํ๋๋ ์ฝ๋ ๋ธ๋ก์ ์ ์ํฉ๋๋ค. ํ๋ก์ธ์ค ๋ด์์๋ ๋ณ์์ ์ ํธ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ณต์กํ ๋์์ ๋จ์ํํ ์ ์์ต๋๋ค. ํ๋ก์ธ์ค๋ ์ผ๋ฐ์ ์ผ๋ก clock edge์ ๊ฐ์ ํน์ ์ด๋ฒคํธ์ ๋ฐ์ํ๋๋ก ์ค๊ณ๋ฉ๋๋ค.
Signal์ VHDL์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ์ฃผ์ ์๋จ์ผ๋ก, ์ ํธ๋ ์ฌ๋ฌ ํ๋ก์ธ์ค ๊ฐ์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ ํธ๋ ๋น๋๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ฉฐ, ์ด๋ ์ค๊ณ์๊ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ํด์ค๋๋ค.
Variable์ ํ๋ก์ธ์ค ๋ด์์๋ง ์ ํจํ ๋ฐ์ดํฐ ์ ์ฅ์๋ก, ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๋์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๋ณ์๋ ์ ํธ๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ๊ฐ์ ์ ๋ฐ์ดํธํ ์ ์๋ ์ฅ์ ์ด ์์ผ๋ฉฐ, ๋ณต์กํ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋ ๋ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
VHDL์ Verilog, SystemVerilog์ ๊ฐ์ ๋ค๋ฅธ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด์ ๋น๊ตํ ๋ ๋ช ๊ฐ์ง ์ฐจ๋ณํ๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. Verilog๋ ์ฃผ๋ก ์ฐ์ ์์ ์ฌ์ฉ๋๋ฉฐ, ์๋์ ์ผ๋ก ๊ฐ๋จํ ๋ฌธ๋ฒ์ ๊ฐ์ง๊ณ ์์ด ๋ฐฐ์ฐ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ VHDL์ ๋ ๊ฐ๋ ฅํ ํ์ ์์คํ ๊ณผ ๋ค์ํ ํํ ๋ฐฉ์์ ์ ๊ณตํ์ฌ, ๋ณต์กํ ์ค๊ณ์์ ๋ ๋ง์ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
VHDL์ ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
Verilog๋ ์ด๋ฌํ VHDL์ ์ฅ์ ์ ๋นํด ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๋๋ค:
์ค์ ์ฌ๋ก๋ก๋ VHDL์ด FPGA(Field Programmable Gate Array) ์ค๊ณ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ ์ ๋ค ์ ์์ต๋๋ค. VHDL์ ์ฌ์ฉํ์ฌ FPGA์ ๋ค์ํ ๋ชจ๋์ ์ค๊ณํ๊ณ , ์๋ฎฌ๋ ์ด์ ํ์ฌ ์ต์ ํ๋ ํ๋ก๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด, Verilog๋ ASIC(Application-Specific Integrated Circuit) ์ค๊ณ์์ ๋ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
VHDL์ ๋ณต์กํ ๋์งํธ ํ๋ก๋ฅผ ๋ชจ๋ธ๋งํ๊ณ ์๋ฎฌ๋ ์ด์ ํ๋ ๋ฐ ํ์์ ์ธ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด๋ก, ๊ฐ๋ ฅํ ํ์ ์์คํ ๊ณผ ๋ค์ํ ์ํคํ ์ฒ๋ฅผ ํตํด ์ค๊ณ์ ์ ์ฐ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ์ ๊ณตํฉ๋๋ค.