HDL과 검증

위와 같이 parameter를 사용하여 module을 작성하는 장점으로 올바른 것은?

module adder #(parameter W = 8) (
    input  [W-1:0] a, b,
    output [W:0]   s
);
    assign s = a + b;
endmodule
  1. Aparameter를 사용하면 회로가 자동으로 빨라진다
  2. Bparameter의 값은 칩이 동작하는 중에 자유롭게 바꿀 수 있다
  3. C사용하는 곳마다 W를 지정하여, 같은 기술로 8비트나 16비트 등 폭이 다른 가산기를 만들 수 있다
정답과 해설 보기

정답: C. 사용하는 곳마다 W를 지정하여, 같은 기술로 8비트나 16비트 등 폭이 다른 가산기를 만들 수 있다

parameter는 module을 사용할 때 값을 지정할 수 있는 상수입니다. 비트 폭이나 FIFO의 깊이 등을 parameter로 해 두면 하나의 기술을 다양한 크기로 재사용할 수 있어, 비슷한 회로를 여러 번 작성하는 수고와 오류를 줄일 수 있습니다. 값은 논리 합성 시에 정해지며, 각 값에 맞는 크기의 회로가 만들어집니다. 칩이 동작하는 동안 바뀌는 값이 아니므로, 실행 중에 바꾸고 싶은 설정은 레지스터로 가집니다.

  • A. 속도는 변하지 않습니다.
  • B. 합성 시에 정해지는 상수이며 동작 중에는 바꿀 수 없습니다.
  • C. 올바릅니다. 설계 재사용이 쉬워집니다.
이 분야 연습하기 분야로 돌아가기

HDL과 검증의 다른 문제

  1. 위 generate문의 동작으로 올바른 것은?
  2. HDL 검증에서 사용되는 Lint 도구의 역할로 올바른 것은?
  3. 논리 합성이나 배치 배선 후의 회로(게이트 레벨 넷리스트)에서 지연 정보를 넣어 시뮬레이션하는 주된 목적은?
  4. 위 기술처럼 플립플롭을 거치지 않고 조합 회로의 출력이 자신의 입력으로 되돌아오는 형태를 무엇이라 하며, 왜 피해야 하는가?
  5. 위 기술을 FPGA용으로 논리 합성하면 일반적으로 어떻게 처리되는가?

이 분야의 비교