2013-05-23 4 views
0

가능한가요?Verilog에서 매개 변수화 된 네트 너비

parameter width; wire[width-1] a_net = (width)'b0;

I는 기본적 오른쪽의 폭을 제어하기 위해 변수가 필요하다. 나는 이것을 parameter width at the beginning of the file을 변경해야하는 테스트 벤치에서 사용할 계획이며,이 매개 변수는 그 밖의 모든 발생에서 넷 너비를 'a_net'으로 설정합니다.

그래도 해결되지 않으면 다른 해결 방법이 있습니까?

덕분에, 예에서 짐

답변

1

난 당신뿐만 아니라 LSB 당신의 와이어 지정할 필요가 있다고 생각 :

parameter WIDTH = 16; 

wire [WIDTH-1:0] a_net = 0; 
4

당신은 일정한 와이어 대신 localparam를 사용할 수 있습니다.

localparam ZERO = 'b0; // Syntax for RHS discussed below. 

RHS (오른쪽) 인수의 경우 복제 연산자를 사용할 수 있습니다.

{ WIDTH {1'b0}}; //Repeats 1'b0 WIDTH times. 

모든 1의

맥스
{ WIDTH {1'b1}}; 

은 Signed (MSB == 0)은 모두 {}

{1'b0, { WIDTH-1 { 1'b1 }} }; 

2012 년의 SystemVerilog가 0에 대한 '0을 사용할 수 있습니다 사용 Concatination 및 복제를 혼합 왼쪽 너비와 같은 너비. '1 모두 1입니다.