Synthesis (합성) 이란, RTL (Register Transfer Level) language 를 입력 받아서 gate-level netlist 로 변환하는 과정이라고 정의되어 있다. 그렇다면, RTL 은 어떻게 gate-level netlist 가 되는걸까.
아래 예시는 combinational logic 예시이다.
입력 sel 신호가 1이면 입력 A 를 출력하고, 0 이면 입력 B 를 출력한다.
module selection (
input A,
input B,
input sel,
output reg C
);
always @(*) begin
if (sel == 1'b1) begin
C = A;
end
else begin
C = B;
end
end
endmodule
그렇다면 위와 같은 RTL 은, 어떻게 gate-level netlist 가 될 수 있을까? 바로 2-to1 MUX 로 변환 된다.
2-to-1 MUX 는 다음과 같은 boolean algebra logic 을 가진다.
C = A(sel) + B(!sel)
따라서, 예시 코드는 1개의 inverter, 2개의 AND gate, 1개의 OR gate 로 변환 될 수 있는 것이다.
위와 같이, human friendly code 인 RTL 을, logic gate (또는 gate level 이라고함) 로 변환하는 과정을 합성 (Synthesis) 라고 한다.
'VLSI > Design' 카테고리의 다른 글
| Low power RTL coding guide (0) | 2026.03.29 |
|---|