2013-02-01 2 views
0

Verilog에서 할당 할 때 매개 변수 값을 사용할 수 있습니까? 어떻게 든 매개 변수 변수의 너비를 정의 할 수 있습니까?Verilog에서 매개 변수를 연속적으로 사용 하시겠습니까?

예 :

module mymodule #(parameter type =2) 
    (... 
    output [(3+type)-1:0] out); 
    wire [2:0] rate; 
    ... 
    assign out = {rate, {1'b0{type}} }; 
endmodule 

그냥 수 있습니다 유형은 = 2를 말한다. 그렇다면 비트 길이 5가되기를 원할 것입니다. 비율은 여전히 ​​비트 길이 3입니다 (3'b100이라고 말하면 됨). 내가 100 000이 되길 원합니다.

마찬가지로 type = 6. 그러면 비트 길이 9가되기를 원할 것입니다. 비율은 비트 길이 3입니다. (다시 3'b100이라고 말하면됩니다.) 100000000이 되길 원합니다.

나는 ' 어떤 구문 오류가 발생하지만 나는 그것을 얻으려고 할 때 : "오류 : 연결 피연산자"유형이 "한정된 폭을 가짐"

어떻게 이런 식으로 디자인 문제에 접근하겠습니까?

답변

4

반복 연산자가 뒤로 있습니다.

{type{1'b0}}

하지 {1'b0{type}}

난 당신이 그에서 구문 오류가 표시되지 놀랐다을해야합니다.