디지털 회로 설계 업계를 이해하기 위하여 기본적인 용어에 대한 이해가 부족함을 느꼈다.
논리회로, 논리회로설계, 마이크로프로세서, 컴퓨터구조 수업에서 배웠지만 기억이 잘 나지않는 용어에 대해서도 다시한 번 정리하려한다.
그래서 오늘은 관련 용어를 정리해볼 것이다.
모든 설계의 궁극적인 목표와 산업 구조를 나타내는 용어들이다.
PPA (Power, Performance, Area): 반도체 설계의 3대 핵심 지표 (소비전력, 성능, 면적).
Fabless (팹리스): 공장 없이 설계만 전문으로 하는 회사 (NVIDIA, Apple).
Foundry (파운드리): 설계를 받아 생산만 전담하는 회사 (TSMC, 삼성전자).
IP (Intellectual Property): 이미 검증된 회로 설계 자산 (Arm Core, PCIe IP 등).
Design House: 팹리스의 설계를 파운드리 공정에 맞게 최적화해주는 가교 역할.
ASIC (Application Specific IC): 특정 목적을 위해 주문 제작된 회로.
SoC (System on Chip): 하나의 칩에 CPU, 메모리, GPU 등을 모두 집약한 시스템.
Tape-out: 최종 설계 도면을 파운드리에 보내 생산을 의뢰하는 단계.
Process Node (nm): 반도체 공정 미세화 단위 (3nm, 5nm 등).
Yield (수율): 웨이퍼 한 장에서 결함 없는 정상 칩이 나오는 비율.
코드로 회로의 논리적 구조를 만드는 단계이다.
RTL (Register Transfer Level): 레지스터 간의 데이터 흐름으로 회로를 기술하는 레벨.
Verilog / SystemVerilog: 가장 널리 쓰이는 하드웨어 기술 언어(HDL).
VHDL: 유럽이나 국방 분야에서 주로 쓰이는 HDL.
Synthesis (합성): RTL 코드를 실제 논리 게이트(Netlist)로 변환하는 과정.
Netlist: 게이트들과 그들의 연결 상태를 나타내는 리스트.
이 회로는 AND 게이트 3개,
OR 게이트 1개,
D-FF 2개가
이렇게 연결돼 있음
```
와 같은 설계도(텍스트 데이터)임.FSM (Finite State Machine): 상태 전이를 통해 회로를 제어하는 설계 방식.
Combinational Logic: 입력에 의해서만 출력이 결정되는 회로 (AND, OR 등).
Sequential Logic: 입력+현재 상태에 의해서 출력이 결정되는 회로 (Flip-Flop).
Flip-Flop vs Latch: 클락 에지(Edge)에서 동작하느냐, 레벨(Level)에서 동작하느냐의 차이.
Clock Skew: 같은 클락 신호가 서로 다른 플립플롭에 도달하는 시간 차이.
clk ──┬── FF1
│
└── (긴 배선) ── FF2Clock Jitter: 클락 주기가 미세하게 흔들리는 현상.
Metastability: 입력 신호가 불안정하여 출력이 0인지 1인지 결정되지 못하는 현상.
CDC (Clock Domain Crossing): 서로 다른 클락을 사용하는 영역 간에 데이터를 주고받을 때 발생하는 문제.
예를들어 clk_A가 100 MHz, clk_B가 60 MHz -> 두 클록은 서로 위상도 관계없음
만약 clk_B가 data_A가 바뀌는 바로 그 순간에 샘플링하면?
→ 플립플롭 입력이 setup/hold 위반
→ Metastability 상태Synchronizer: CDC 문제를 해결하기 위해 사용하는 다단 플립플롭 구조.
HLS (High-Level Synthesis): C/C++ 같은 상위 언어를 RTL로 변환하는 기술.
Linting: 코드의 문법 및 잠재적 오류를 정적으로 분석하는 과정.
Resource Utilization: FPGA나 ASIC 내의 자원(LUT, FF 등) 사용량.
LUT(Look-Up Table) : 임의의 조합논리(combinational logic)를 구현하는 작은 메모리.

Critical Path: 칩 내에서 신호 전달 시간이 가장 오래 걸리는 경로 (최대 동작 주파수 결정).
Pipeline: 연산을 여러 단계로 나눠 동시에 처리하여 Throughput을 높이는 기법.
Fan-out / Fan-in: 하나의 출력이 연결되는 입력의 수 / 하나의 입력으로 들어오는 신호의 수.
설계한 회로가 의도대로 작동하는지 확인하는 가장 시간 소모가 많은 단계입니다.
Simulation: 가상 환경에서 입력을 넣어 출력을 확인하는 과정.
Testbench: 검증을 위해 작성한 코드 환경.
UVM (Universal Verification Methodology): 표준화된 시스템베릴로그 검증 방법론.
Code Coverage: 테스트 코드가 실제 RTL 코드를 얼마나 실행했는지의 지표.
Assertion (SVA): 특정 조건이 항상 참인지 실시간으로 체크하는 코드.
Formal Verification: 수학적 모델로 설계의 무결성을 증명하는 방식.
Golden Model: 정답지 역할을 하는 모델 (보통 C/Python으로 작성).
Emulation: 전용 하드웨어(Palladium 등)를 사용하여 초고속 시뮬레이션을 수행.
FPGA Prototyping: 실제 ASIC 제작 전 FPGA에 올려 기능을 최종 확인.
Post-Layout Simulation: 배선 지연 시간(Delay)까지 포함한 정밀 시뮬레이션.
회로를 실제 실리콘 레이아웃으로 구현하는 단계이다.
Floorplan: 칩 내부의 주요 블록과 I/O 패드의 위치를 잡는 초기 단계.
P&R (Place and Route): 게이트를 배치하고 금속선으로 연결하는 과정.
CTS (Clock Tree Synthesis): 클락 신호를 모든 플립플롭에 고르게 전달하기 위한 트리 구조 생성.
GDSII: 반도체 레이아웃 데이터의 표준 파일 형식 (공장에 보내는 최종 파일).
STA (Static Timing Analysis): 시뮬레이션 없이 회로의 타이밍(속도) 적합성을 분석.
Setup Time: 클락 에지 전까지 데이터가 안정적으로 유지되어야 하는 시간.


Hold Time: 클락 에지 후까지 데이터가 유지되어야 하는 시간.

DRC (Design Rule Check): 공정 미세 간격 등 물리적 규칙을 지켰는지 확인.
LVS (Layout vs Schematic): 레이아웃이 원래 회로도와 일치하는지 확인.
Parasitic Extraction (RC Extraction): 배선에서 발생하는 기생 저항과 커패시턴스 추출.
IR Drop: 배선 저항으로 인해 전압이 떨어지는 현상.
Electromigration (EM): 높은 전류 밀도로 인해 금속 배선이 변형되는 현상.
PVT Corner (Process, Voltage, Temperature): 반도체 동작 환경의 최악/최선 조건 조합.
Signal Integrity (SI): 인접 배선 간의 간섭(Crosstalk) 등으로 신호가 왜곡되는 문제.
최근 산업의 핵심인 AI 가속기 관련 용어이다.
NPU (Neural Processing Unit): AI 연산(특히 딥러닝)에 최적화된 프로세서.
MAC (Multiply-Accumulate): AI 연산의 핵심인 '곱셈 후 덧셈' 유닛.
Systolic Array: 데이터가 인접 연산기들 사이를 흐르며 연산되는 구조 (TPU의 핵심).
Precision (FP16, INT8): 연산의 정밀도. (AI 칩은 전력 효율을 위해 낮은 비트를 선호).
Quantization (양자화): 높은 정밀도의 연산을 낮은 비트(예: 32bit -> 8bit)로 줄이는 기술.
Pruning (가지치기): 의미 없는 AI 가중치(0에 가까운 값)를 제거하여 연산량을 줄이는 기술.
Throughput: 단위 시간당 처리할 수 있는 데이터 양.
Latency: 데이터 입력 후 출력까지 걸리는 지연 시간 (실시간 AI에 중요).
SRAM (Static RAM): 칩 내부에 위치한 빠르고 비싼 메모리 (On-chip Buffer).
Memory Wall: 연산 속도보다 메모리 데이터 전송 속도가 느려 발생하는 병목 현상.
Compute-in-Memory (CiM): 메모리 내부에서 직접 연산을 수행하여 데이터 이동을 최소화하는 기술.
TOPS (Tera Operations Per Second): 1초당 몇 조 번 연산하는지를 나타내는 AI 성능 단위.