4
Verilogでこのシンボルが何であるかわかりますか?それはいつ使うべきですか?ありがとう!Verilogでは>>> symbolとは何ですか?
例えば
always @(posedge Clock) begin
if (Clear) begin
a < = c>>>8;
b < = d>>>16;
end
end
Verilogでこのシンボルが何であるかわかりますか?それはいつ使うべきですか?ありがとう!Verilogでは>>> symbolとは何ですか?
例えば
always @(posedge Clock) begin
if (Clear) begin
a < = c>>>8;
b < = d>>>16;
end
end
それは、arithmetic right shift operator(リンクのページ19-20を参照)です。 Javaとは逆のケースです(Java >>
は算術右シフトですが、>>>
は論理右シフトです)。
算術右シフトは右シフト数はこの現象と負/正である場合を取り扱うことである:ビット
右シフト指定された数、 発現が署名されている場合、符号ビットの値で埋め、
:othewiseあなたがの価値を持つ1000 1100 --------- >>> 2 1110 0011 //note the left most bits are 1
signed
表現を持っている場合は、次のように言って、説明するためにゼロ
で埋めます
しかしunsigned
のために:
1000 1100
--------- >>> 2
0010 0011
左が最も0
で満たされます。
こんにちはイアン、私は2ビットシフトするときに私はあなたに尋ねることができます私は4を分割していると言って正しいです。同様に、私は8ビットをシフトするとき私は256で割っていますか?ありがとう! – user292965
@ user292965こんにちは、もう一度あなたです。 ;)あなたは近づいています*そのように見えます*右にシフトされたビットが数値に変換されると元の半分になります。しかし、算術的なシフトを仮定する...シフトは、例えば、負の数の「論理右シフト」の場合のように、分割と等しくない場合がある。 – Ian
私はそれを試しました:)。ラウンドアップまたはラウンドダウンした後の最終結果がわかっていますか?あなたの例から、それは丸められるように見えます。 – user292965