我可以知道verilog中这个符号>>>是什么吗?我应该什么时候使用它?谢谢!
例如
always @(posedge Clock) begin
if (Clear) begin
a < = c>>>8;
b < = d>>>16;
end
end
Run Code Online (Sandbox Code Playgroud)
它是一个算术右移运算符(请参阅链接的第 19-20 页)。Java 的情况正好相反(Java>>是算术右移,而 Java>>>是逻辑右移)。
算术右移是为了处理右移数字为正/负时的情况:
右移指定位数,如果表达式有符号则填充符号位的值,否则填充零
为了说明这一点,如果您的signed表达式的值为 ,请这样说:
1000 1100
--------- >>> 2
1110 0011 //note the left most bits are 1
Run Code Online (Sandbox Code Playgroud)
但对于unsigned:
1000 1100
--------- >>> 2
0010 0011
Run Code Online (Sandbox Code Playgroud)
最左边将充满0.