2013-07-13 2 views
1

Verilog에 새로운 브랜드입니다.Verilog에서 0 비트 확장을 서명해야합니까?

간단한 32 비트 레지스터 :

reg32 Reg_32 (
    .in(valueA), // input 32 bits    
    .clock(clk), 
    .reset(rst), 
    .out(valueB) // output 32 bits 

그러나 ValueA는 10 비트 와이어로서 정의된다 [9 : 0].

valueA에 22 개의 확장 된 0 비트가 필요합니까?

즉 :

.in({22b'0,valueA}), // 22 bits of 0 + value of wire [9:0] 

또는 컴파일러와 ModelSim에서이 작업을 수행합니까?

답변

3

나는 그것이 대부분의 경우에 필요하다고 생각하지 않습니다. 그러나 다른 컴파일러로 인해 예기치 않은 동작을 방지하려면 값을 명시 적으로 올바른 너비에 채우는 것이 더 안전합니다. 복제 된 연결을 사용합니다 (예 : IEEE Std 1800-2012에 설명되어 있음).

.in ({ {22{1'b0}}, valueA}),