Menu
Coddy logo textTech

설계 추상화 수준

Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 3번째.

디지털 디자인에서는 동일한 회로를 다양한 상세 수준에서 설명할 수 있습니다. Verilog는 이러한 추상화 단계(abstraction levels) 중 어떤 수준에서든 회로를 설명할 수 있는 언어입니다. 이것이 바로 Verilog가 강력한 이유입니다!

다음은 Levels입니다:

Level 1: Behavioral

이 Level은 회로가 무엇을 하는지를 설명하며, how 수행하는지는 설명하지 않습니다. "카운트 업" 또는 "두 숫자 더하기"와 같은 기능이나 동작에 중점을 둡니다.

카운팅이나 더하기가 어떻게 일어나는지에 대한 내부 details는 나타나지 않습니다. 이 Level은 인간의 사고에 가장 가까우며 작성하기가 더 쉽습니다.

Level 2: RTL

이 Level은 data가 레지스터 간에 how 이동하고 해당 data에 어떤 연산이 일어나는지 shows합니다. data 경로를 볼 수 있습니다: data는 레지스터에서 가산기로 이동한 다음 다시 레지스터로 돌아갑니다.

이것은 이해하기 쉬운 정도와 하드웨어를 생성할 수 있을 만큼 상세한 정도 사이에서 좋은 균형을 제공하기 때문에 대부분의 디지털 디자이너들이 작업하는 단계입니다.

Level 3: Gate Level

이 Level은 AND, OR, XOR와 같은 기본 논리 게이트를 사용하여 회로를 설명합니다. 모든 연결이 명시적으로 표시됩니다.

이 Level은 매우 상세하며 손으로 직접 작성하기 어렵습니다. 보통 수동으로 작성되지 않고 더 높은 Level의 설명으로부터 도구를 통해 생성됩니다.
 

중요한 이유

- **Higher level** = 작성하기 쉬움, 제어력이 낮음
- **Lower level** = 작성하기 어려움, 제어력이 높음
- **RTL**은 대부분의 Design 작업에 가장 적합한 핵심 영역입니다

challenge icon

챌린지

수행할 작업:

  1. 이 코드를 실행하고 동일한 연산이 세 가지 서로 다른 수준에서 어떻게 기술되는지 확인하세요:

직접 해보기

module abstraction_demo;
  
  initial begin
    $display("=== Design Abstraction Levels ===");
    $display("");
    
    $display("Level 1 (Behavioral):");
    $display("  'Add a and b' - no details how");
    $display("");
    
    $display("Level 2 (RTL):");
    $display("  'On clock edge, result <= a + b' - shows data flow");
    $display("");
    
    $display("Level 3 (Gate Level):");
    $display("  'XOR gates for sum, AND gates for carry' - actual gates");
    $display("");
    
    $finish;
  end
  
endmodule
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨