2017-01-30 10 views

답변

3

할 수 있습니다 절차 if

if (`BITS > 10) 
     my_reg[31] = 1'b0; 

컴파일러/신디사이저는 상수 식으로 분기 문을 최적화; if 문에 의해 추가 논리가 생성되지 않는다는 것을 의미합니다.

는 아웃 오브 바운드 메시지를 해결하기 위해, 당신은 (상수 여전히) 더 복잡한 표현

my_reg[(`BITS>31) ? 31 : 0] = 1'b0; 
0

1800-2012 LRM, 22.5.1이 필요합니다 은 "`정의 지시어가를 생성 텍스트 대체 매크로. " 예 : 당신이 당신의 필요에 따라 parameter/localparam를 사용해야 수치 매개 변수의

`define D(x,y) initial $display("start", x, y, "end"); 

`D("msg1" , "msg2") // expands to 'initial $display("start", "msg1", "msg2", "end");' 

.