$size
verilogのと演算子の違いは何$bits
ですか?変数が[9:0]a
ある場合、、、。[6:0]b
[31:0]c
c <= [($size(a)+$size(b)-1]-:$bits(b)];
上記の式からの「c」での出力はどうなりますか?
$size
verilogのと演算子の違いは何$bits
ですか?変数が[9:0]a
ある場合、、、。[6:0]b
[31:0]c
c <= [($size(a)+$size(b)-1]-:$bits(b)];
上記の式からの「c」での出力はどうなりますか?
$size()
1次元のビット数を示します。$bits()
変数を完全に表すビット数を示します。
例えば:
reg [9:0] a;
reg [9:0] b [5:0];
initial begin
$display("a Size ", $size(a));
$display("a Bits ", $bits(a));
$display("b Size ", $size(b));
$display("b Bits ", $bits(b)) ;
end
与える:
a Size 10
a Bits 10
b Size 6 // Depth of memory
b Bits 60 // Width * Depth
あなたの場合、あなたはただ一次元配列を持っていて、記憶や構造体ではないので$size()
、$bits()
同じことになるでしょう。
$size
ディメンション内の要素の数を返します。これは。と同等$high - $low + 1
です。これは、ビット数だけでなく、ディメンションに関連しています。タイプが1Dパック配列または積分タイプの場合、はに等しくなり$bits
ます。
$bits
システム関数は、式をビットストリームとして保持するために必要なビット数を返します。
$bits ( [expression|type_identifier] )
現在空の動的サイズの型で呼び出されると、0を返します。$bits
動的なサイズの型識別子を使用してシステム関数を直接使用するとエラーになります。
私はあなたの質問について知りません、c <= [($size(a)+$size(b)-1]-:$bits(b)];
。それはRHSで有効な表現ですか?配列範囲式について話しているのですか、[n +: m]
それとも[n -: m]
?