ASIC Design Flow๋ ํน์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํด ์ค๊ณ๋ ์ง์ ํ๋ก์ธ ASIC(Application-Specific Integrated Circuit)์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํ ํ๋ฆ์ ์๋ฏธํฉ๋๋ค. ์ด ํ๋ฆ์ Digital Circuit Design์ ํต์ฌ ์์๋ก์, ASIC์ ์ค๊ณ, ๊ตฌํ, ๊ฒ์ฆ, ์์ฐ ๋จ๊ณ๊น์ง์ ์ ๊ณผ์ ์ ํฌ๊ดํฉ๋๋ค. ASIC Design Flow๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค: ์์คํ ์ค๊ณ, RTL(Register Transfer Level) ์ค๊ณ, ํฉ์ฑ(Synthesis), ๋ฐฐ์น ๋ฐ ๊ฒฝ๋ก ๋ฐฐ์ (Placement and Routing), ๊ฒ์ฆ(Verification) ๋ฐ ํ ์คํธ(Test).
ASIC Design Flow์ ์ค์์ฑ์ ์ฌ๋ฌ ์ธก๋ฉด์์ ๋๋ฌ๋ฉ๋๋ค. ์ฒซ์งธ, ASIC์ ํน์ ๊ธฐ๋ฅ์ ์ํด ์ต์ ํ๋๊ธฐ ๋๋ฌธ์, ์ผ๋ฐ์ ์ธ ํ๋ก์ธ์๋ณด๋ค ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ฉฐ ์ ๋ ฅ ์๋ชจ๊ฐ ์ ์ต๋๋ค. ๋์งธ, ASIC Design Flow๋ ์ค๊ณ์๊ฐ ๋ณต์กํ ํ๋ก๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ฉฐ, ์ค๋ฅ๋ฅผ ์ต์ํํ๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค. ์ ์งธ, ์ด ํ๋ฆ์ ์ค๊ณ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ , ๋ค์ํ ๋๊ตฌ์ ๊ธฐ์ ์ ํตํฉํ์ฌ ์์ฐ์ฑ์ ๊ทน๋ํํฉ๋๋ค.
ASIC Design Flow์ ๊ธฐ์ ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ฐ ๋จ๊ณ๋ ๋ช ํํ ๋ชฉํ์ ์ํคํ ์ฒ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ์ค๊ณ์๋ ์๊ตฌ ์ฌํญ์ ๋ง๋ ์ต์ ์ ์๋ฃจ์ ์ ๋์ถํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, RTL ์ค๊ณ ๋จ๊ณ์์๋ Verilog ๋๋ VHDL๊ณผ ๊ฐ์ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด(HDL)๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ๋์์ ์ ์ํฉ๋๋ค. ํฉ์ฑ ๋จ๊ณ์์๋ ์ด๋ฌํ HDL ์ฝ๋๋ฅผ ์ค์ ํ๋์จ์ด์ ๋ง๋ ๊ฒ์ดํธ ์์ค์ ํ๋ก๋ก ๋ณํํฉ๋๋ค. ์ด๋ฌํ ๊ฐ ๋จ๊ณ๋ ์๋ก ์ํธ์์ฉํ๋ฉฐ, ์ค๊ณ์ ํ์ง์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ฐ๋ณต์ ์ผ๋ก ๊ฒํ ๋๊ณ ์์ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ASIC Design Flow๋ ๋จ์ํ ์ค๊ณ ํ๋ก์ธ์ค๋ฅผ ๋์ด, ์ฒด๊ณ์ ์ด๊ณ ๋ฐ๋ณต์ ์ธ ๊ฒ์ฆ ๊ณผ์ ์ ํตํด ์ ๋ขฐ์ฑ์ ๋์ด๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
ASIC Design Flow๋ ์ฌ๋ฌ ์ฃผ์ ๋จ๊ณ์ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ๊ฐ ๋จ๊ณ๋ ์๋ก ๊ธด๋ฐํ๊ฒ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ์ด ์น์ ์์๋ ASIC Design Flow์ ์ฃผ์ ๊ตฌ์ฑ ์์์ ๊ทธ ์๋ ์๋ฆฌ์ ๋ํด ์์ธํ ์ค๋ช ํฉ๋๋ค.
์์คํ ์ค๊ณ(System Design): ์ด ๋จ๊ณ์์๋ ASIC์ด ์ํํด์ผ ํ ๊ธฐ๋ฅ๊ณผ ์๊ตฌ ์ฌํญ์ ์ ์ํฉ๋๋ค. ์์คํ ์ํคํ ์ฒ๋ฅผ ์ค๊ณํ๊ณ , ํ์ํ ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ๊ตฌ์ฑ ์์๋ฅผ ์๋ณํฉ๋๋ค. ์ด ๊ณผ์ ์์ ์ฑ๋ฅ, ์ ๋ ฅ ์๋ชจ, ๋น์ฉ ๋ฑ์ ์์๋ฅผ ๊ณ ๋ คํ์ฌ ์ต์ ์ ์ค๊ณ๋ฅผ ๋์ถํฉ๋๋ค.
RTL ์ค๊ณ(Register Transfer Level Design): ์์คํ ์ค๊ณ๊ฐ ์๋ฃ๋๋ฉด, ๋ค์ ๋จ๊ณ๋ RTL ์ค๊ณ์ ๋๋ค. ์ด ๋จ๊ณ์์๋ ํ๋์จ์ด ๊ธฐ์ ์ธ์ด(HDL)๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ๋์์ ์ ์ํฉ๋๋ค. RTL ์ค๊ณ๋ ํ๋ก์ ๋์์ ์ถ์์ ์ผ๋ก ํํํ๋ฏ๋ก, ์ค๊ณ์๋ ๋ณต์กํ ํ๋ก๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ์ดํดํ๊ณ ์์ ํ ์ ์์ต๋๋ค. ์ด ๋จ๊ณ์์์ ์ฃผ์ ๋ชฉํ๋ ํ๋ก์ ๊ธฐ๋ฅ์ ์ ํํ๊ฒ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค.
ํฉ์ฑ(Synthesis): RTL ์ค๊ณ๊ฐ ์๋ฃ๋๋ฉด, ์ด ์ฝ๋๋ฅผ ์ค์ ํ๋์จ์ด์ ๋ง๋ ๊ฒ์ดํธ ์์ค์ ํ๋ก๋ก ๋ณํํ๋ ํฉ์ฑ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค. ํฉ์ฑ ๋๊ตฌ๋ RTL ์ฝ๋์ ์ต์ ํ๋ฅผ ์ํํ์ฌ, ์ฑ๋ฅ๊ณผ ์ ๋ ฅ ์๋ชจ๋ฅผ ๊ณ ๋ คํ ์ต์ ์ ๊ฒ์ดํธ ๋ ๋ฒจ ํ๋ก๋ฅผ ์์ฑํฉ๋๋ค. ์ด ๊ณผ์ ์์ ๋ค์ํ ์ต์ ํ ๊ธฐ๋ฒ์ด ์ฌ์ฉ๋๋ฉฐ, ์ด๋ ASIC์ ์ฑ๋ฅ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋ฐฐ์น ๋ฐ ๊ฒฝ๋ก ๋ฐฐ์ (Placement and Routing): ํฉ์ฑ์ด ์๋ฃ๋ ํ, ๋ฐฐ์น ๋จ๊ณ์์๋ ๊ฒ์ดํธ๋ฅผ ์นฉ์ ๋ฌผ๋ฆฌ์ ๊ณต๊ฐ์ ๋ฐฐ์นํฉ๋๋ค. ์ดํ ๊ฒฝ๋ก ๋ฐฐ์ ๋จ๊ณ์์๋ ๊ฐ ๊ฒ์ดํธ ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค. ์ด ๋จ๊ณ๋ ASIC์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ๊ณผ ์ ๋ ฅ ์๋ชจ๋ฅผ ์ต์ ํํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ๋ฐฐ์น ๋ฐ ๊ฒฝ๋ก ๋ฐฐ์ ์ ์ ๊ธฐ์ ํน์ฑ๊ณผ ๋ฌผ๋ฆฌ์ ์ ์ฝ์ ๋ชจ๋ ๊ณ ๋ คํด์ผ ํ๋ฏ๋ก, ๋งค์ฐ ๋ณต์กํ ๊ณผ์ ์ ๋๋ค.
๊ฒ์ฆ(Verification): ์ค๊ณ๊ฐ ์๋ฃ๋๋ฉด, ๊ฒ์ฆ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค. ์ด ๋จ๊ณ์์๋ ์ค๊ณ๊ฐ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋์ง ํ์ธํ๊ณ , ์ค๋ฅ๋ฅผ ์ฐพ์ ์์ ํฉ๋๋ค. ๊ฒ์ฆ์ ์๋ฎฌ๋ ์ด์ , ์ ์ ํ์ด๋ฐ ๋ถ์(Static Timing Analysis), ํ์ ๊ฒ์ฆ(Layout Verification) ๋ฑ์ ํตํด ์ํ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ ASIC์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
ํ ์คํธ(Test): ๋ง์ง๋ง์ผ๋ก, ASIC ์ ์ ํ์๋ ํ ์คํธ ๋จ๊ณ๊ฐ ํ์ํฉ๋๋ค. ์ด ๋จ๊ณ์์๋ ์ค์ ASIC์ด ์ค๊ณ ์ฌ์์ ์ถฉ์กฑํ๋์ง ํ์ธํ๊ธฐ ์ํด ๋ค์ํ ํ ์คํธ๋ฅผ ์ํํฉ๋๋ค. ํ ์คํธ๋ ASIC์ ๋์์ ๊ฒ์ฆํ๊ณ , ์ ์กฐ ๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ๊ฒฐํจ์ ์ฐพ์๋ด๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
์ด๋ฌํ ๊ฐ ๋จ๊ณ๋ ์๋ก ๋ฐ์ ํ๊ฒ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ, ์ค๊ณ์๋ ๊ฐ ๋จ๊ณ์์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ์ฌ์ ์ ํ์ ํ๊ณ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ASIC Design Flow๋ ์ด๋ฌํ ๋ณต์กํ ๊ณผ์ ์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ, ์ต์ข ์ ์ผ๋ก ๊ณ ํ์ง์ ASIC์ ์์ฐํ๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
์์คํ ์ค๊ณ ๋จ๊ณ๋ ASIC Design Flow์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก, ์ ์ฒด ์ค๊ณ์ ๋ฐฉํฅ์ฑ๊ณผ ๋ชฉํ๋ฅผ ์ค์ ํ๋ ๋ฐ ๊ฒฐ์ ์ ์ธ ์ญํ ์ ํฉ๋๋ค. ์ด ๋จ๊ณ์์์ ์๋ชป๋ ํ๋จ์ ์ดํ ๋ชจ๋ ๋จ๊ณ์ ์ํฅ์ ๋ฏธ์น ์ ์์ผ๋ฏ๋ก, ์ฒ ์ ํ ์๊ตฌ ์ฌํญ ๋ถ์๊ณผ ์ค๊ณ ๊ฒํ ๊ฐ ํ์ํฉ๋๋ค.
๊ฒ์ฆ ๋จ๊ณ๋ ASIC์ ํ์ง์ ๋ณด์ฅํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ๋ค์ํ ๊ฒ์ฆ ๊ธฐ๋ฒ์ด ์์ผ๋ฉฐ, ๊ฐ ๊ธฐ๋ฒ์ ํน์ ํ ์๊ตฌ ์ฌํญ๊ณผ ์ค๊ณ ์กฐ๊ฑด์ ๋ง์ถฐ ์ ํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋์ ์๋ฎฌ๋ ์ด์ (Dynamic Simulation)์ ์ค์ ๋์์ ์๋ฎฌ๋ ์ด์ ํ์ฌ ์ค๊ณ์ ์ ํ์ฑ์ ๊ฒ์ฆํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
ASIC Design Flow๋ ๋ค์ํ ๊ด๋ จ ๊ธฐ์ ๊ณผ ๋น๊ต๋ ์ ์์ผ๋ฉฐ, ์ด๋ค ๊ฐ์ ์ฐจ์ด์ ๊ณผ ์ ์ฌ์ ์ ์ดํดํ๋ ๊ฒ์ ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ASIC Design Flow๋ฅผ FPGA(Field-Programmable Gate Array) ๋์์ธ ํ๋ฆ ๋ฐ CPLD(Complex Programmable Logic Device) ๋์์ธ ํ๋ฆ๊ณผ ๋น๊ตํฉ๋๋ค.
ASIC vs. FPGA: ASIC์ ํน์ ์ฉ๋์ ๋ง๊ฒ ์ต์ ํ๋ ํ๋ก๋ก, ์ฑ๋ฅ๊ณผ ์ ๋ ฅ ์๋ชจ ์ธก๋ฉด์์ ๋ฐ์ด๋ ์ฅ์ ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ฉด, FPGA๋ ์ฌ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ์ฌ ์ ์ฐ์ฑ์ด ๋ฐ์ด๋์ง๋ง, ASIC๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์์ต๋๋ค. ASIC Design Flow๋ ๊ณ ์ ๋ ์ค๊ณ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ฅด์ง๋ง, FPGA ๋์์ธ ํ๋ฆ์ ๋ณด๋ค ์ ์ฐํ๊ฒ ์ค๊ณ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํฉ๋๋ค.
ASIC vs. CPLD: CPLD๋ ์๋์ ์ผ๋ก ๊ฐ๋จํ ๋์งํธ ํ๋ก๋ฅผ ์ค๊ณํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ASIC์ ๋๊ท๋ชจ ํตํฉ ํ๋ก์ ์ ํฉํ ๋ฐ๋ฉด, CPLD๋ ์๊ท๋ชจ ํ๋ก์ ์ ํฉํฉ๋๋ค. ASIC Design Flow๋ ๋ณต์กํ ๋จ๊ณ์ ๊ฒ์ฆ ๊ณผ์ ์ ํฌํจํ๊ณ ์์ผ๋ฉฐ, CPLD ๋์์ธ ํ๋ฆ์ ์๋์ ์ผ๋ก ๊ฐ๋จํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฅ์ ๊ณผ ๋จ์ : ASIC Design Flow์ ์ฃผ์ ์ฅ์ ์ ๋์ ์ฑ๋ฅ๊ณผ ๋ฎ์ ์ ๋ ฅ ์๋ชจ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ฐ ๋น์ฉ์ด ๋๊ณ , ์ค๊ณ ๋ณ๊ฒฝ์ด ์ด๋ ค์ด ๋จ์ ์ด ์์ต๋๋ค. ๋ฐ๋ฉด, FPGA์ CPLD๋ ๊ฐ๋ฐ ๋น์ฉ์ด ๋ฎ๊ณ , ์ ์ฐ์ฑ์ด ๋ฐ์ด๋์ง๋ง, ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์์ต๋๋ค.
์ค์ ์๋ก๋, ์ค๋งํธํฐ์ ํ๋ก์ธ์๊ฐ ASIC์ผ๋ก ์ค๊ณ๋๋ ๋ฐ๋ฉด, ํ๋กํ ํ์ ๊ฐ๋ฐ์๋ FPGA๊ฐ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ๋น๊ต๋ฅผ ํตํด ASIC Design Flow์ ํน์ฑ๊ณผ ์ฅ๋จ์ ์ ๋ช ํํ ์ดํดํ ์ ์์ต๋๋ค.
ASIC Design Flow๋ ํน์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํด ์ต์ ํ๋ ASIC์ ์ค๊ณ ๋ฐ ๊ตฌํ ๊ณผ์ ์ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํ ํ๋ก์ธ์ค์ ๋๋ค.