Search

'Parameter'에 해당되는 글 1건

  1. 2010/01/22 verilog 2001의 유용한 문법

verilog 2001의 유용한 문법

설계 2010/01/22 10:47 Posted by 영고니짱
그동안은 verilog module 을 설계할 때
`define DATA_WIDTH 32

module test (
    input [`DATA_WIDTH -1:0]  d_in
);

위와 같은 방식으로 코딩을 하였다.

이런 방식의 문제는 상위 블록을 씌우거나 Test bench 를 작성할 때 instance를 위해 상위에도
같은 define을 적용해야 하는것인데, 이게 bit-width를 변경할 때마다 매번 수정하는 불편함이 있었다.

module test (
    d_in
);
parameter DATA_WIDTH = 32;

input [DATA_WIDTH -1 : 0] d_in;

그래서 위와 같은 방식을 사용하려 했으나 이것도 2번이나 port를 선언해야 하는 귀찮음이 있다.
verilog 2001에는 변경된 방식이 존재하는데
module test #(
    parameter DATA_WIDTH=32
)(
    input [DATA_WIDTH -1:0] d_int
);

이러한 코딩이 가능하다. 상위에서 instance를 부를때에도 쉽게 변경 및 적용이 가능하다.

역시 나말고도 귀찮은걸 싫어 하는 사람이 많이 있었나보다.
저작자 표시 비영리