Verilog

# 의미 (delay 아님)

julyjuny 2023. 12. 27. 16:31

Testbench에서 delay 의미 말고, design에서 "#"은 파라미터화된 모듈 인스턴스를 나타냄.

 

파라미터화된 모듈은 모듈 정의 시에 파라미터 값을 받아들일 수 있는 모듈을 뜻함. 이렇게 정의된 모듈은 다양한 파라미터 값을 가지는 여러 개의 인스턴스를 생성할 수 있습니다.

 

예시:

module MyModule #(parameter WIDTH = 8) (input [WIDTH-1:0]data);
    // 모듈 내용
endmodule
 

이 모듈은 WIDTH라는 파라미터를 가지며, 입력 포트로 WIDTH에 따라 크기가 다른 data 신호를 받습니다. 이제 이 모듈을 인스턴스화하고 파라미터 값을 지정해보겠습니다:

MyModule #(16) instance1 (.data(input_data1));
MyModule #(32) instance2 (.data(input_data2));
 
 

위의 예제에서, "#" 기호를 사용하여 파라미터 값을 지정하고, 인스턴스 이름 뒤에 괄호를 사용하여 입력 포트를 연결합니다. instance1은 WIDTH가 16인 MyModule 인스턴스이고, instance2는 WIDTH가 32인 MyModule 인스턴스입니다.

이렇게 파라미터화된 모듈을 사용하면, 동일한 모듈을 다양한 파라미터 값으로 여러 번 인스턴스화할 수 있으며, 재사용성과 유연성을 높일 수 있습니다.