-
shift 연산자 (>>>, <<<, <<, >>)SystemVerilog 2023. 8. 8. 22:35
verilog에서 사용하는 shift 연산자는 크게 >>, << 와 같은 논리 shift 연산자와
>>>, <<< 같은 산술 shift 연산자가 있습니다
두개가 어떻게 다른지는 아래의 예를 기준으로 설명 합니다
a = 5'b10100;
b = a <<< 2; //b == 5'b10000
c = a >>> 2; //c == 5'b11101
d = a << 2; //d == 5'b10000
e = a >> 2; //e == 5'b00101stackoverflow에서 가저온 예시인데
간단히 말해서 >>>, <<<는 shift를 할 때 부호를 고려하면서 shift를 한다고 생각하면 되고(<<<는 그냥 0 붙이면서 부호도 밀어버림)
<<, >>은 그냥 0을 채우면서 shift한다고 생각을 하면 됩니다.
'SystemVerilog' 카테고리의 다른 글
2's complement 비교하기 (0) 2024.09.13 systemverilog 인자의 갯수를 variable 하게 넣는 방법. (0) 2023.12.14 assert와 property (0) 2023.08.08 pass by reference (0) 2023.08.08 비트를 enum 으로 형변환 해서, 보기 편하게 (0) 2023.07.24