반응형
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'b00101
stackoverflow에서 가저온 예시인데
간단히 말해서 >>>, <<<는 shift를 할 때 부호를 고려하면서 shift를 한다고 생각하면 되고(<<<는 그냥 0 붙이면서 부호도 밀어버림)
<<, >>은 그냥 0을 채우면서 shift한다고 생각을 하면 됩니다.
'language > Verilog' 카테고리의 다른 글
[verilog] system function list (0) | 2021.02.06 |
---|---|
[systemverilog] enum 사용법 (0) | 2021.02.02 |
[verilog] generate 사용하기 (0) | 2021.01.31 |
[systemverilog] automatic keyword (0) | 2021.01.31 |
[systemverilog] task 와 function (0) | 2021.01.31 |
댓글