verilog parameter 예제

매개 변수에는 두 가지 주요 유형의 모듈과 지정이 있으며 둘 다 범위 사양을 허용합니다. 그러나 일반적으로 저장해야 할 값만큼 넓어지므로 범위 사양이 필요하지 않습니다. 모듈 인스턴스 매개 변수 값 할당에서 매개 변수를 건너뛸 수 없습니다. 이렇게 해야 하는 경우 덮어쓸 수 없는 매개 변수에 대한 초기 값을 사용합니다. 모듈 매개 변수는 모듈 내에서 매개 변수 정의를 재정의하는 데 사용할 수 있으며 이렇게 하면 모듈이 컴파일 타임에 다른 매개 변수 집합을 갖습니다. 매개 변수는 defparam 문 또는 모듈 인스턴스 문으로 수정할 수 있습니다. 매개 변수에 대문자를 이름으로 사용하여 즉시 눈에 띄게 하는 것이 일반적입니다. Verilog 포트 선언의 새로운 ANSI 스타일에서는 아래와 같이 매개 변수를 선언할 수 있습니다. 모듈 카운터에는 각각 2와 0의 기본값을 갖도록 선언된 두 개의 매개 변수 N과 DOWN이 있습니다. N은 카운터의 너비를 효과적으로 제어하는 출력의 비트 수를 제어합니다. 기본적으로 2비트 카운터입니다. 매개 변수 DOWN은 카운터가 증분 또는 감소할지 여부를 제어합니다.

기본적으로 매개 변수가 0으로 설정되어 있으므로 카운터가 감소합니다. Verilog 2001에서는 위의 코드가 작동하지만 새로운 기능을 통해 코드를 더 읽기 쉽고 오류 없게 만듭니다. 모듈 인스턴스 매개변수 값 할당 방법은 게이트 인스턴스에 지연 할당처럼 보입니다(예제 4 참조). 이 메서드는 인스턴스화 된 모듈 내부의 매개 변수를 모듈에 나타나는 순서대로 재정의합니다. 이 형식을 사용하면 매개 변수를 건너뛸 수 없습니다. 모듈 my_모듈 (Clk, D, Q) ; 매개 변수 너비 = 2, 지연 = 10; 입력 [너비 – 1 : 0] D ; 입력 Clk; 출력 [너비 : 0] Q; 할당 #delay Q = D; endmodule 매개 변수는 모듈을 다른 사양으로 재사용할 수 있는 Verilog 구문입니다. 예를 들어, 4비트 가산기는 비트 수에 대한 값을 허용하도록 매개변수화될 수 있으며 모듈 인스턴스화 중에 새 매개 변수 값을 전달할 수 있습니다. 따라서 N 비트 가산기는 4 비트, 8 비트 또는 16 비트 가산자가 될 수 있습니다. 함수 호출 중에 전달되는 함수에 대한 인수와 같습니다. Verilog HDL에서 매개 변수는 상수이며 net 또는 레지스터 데이터 형식과 같은 다른 데이터 형식에 속하지 않습니다.