$sizeverilogのと演算子の違いは何$bitsですか?変数が[9:0]aある場合、、、。[6:0]b[31:0]c
c <= [($size(a)+$size(b)-1]-:$bits(b)];
上記の式からの「c」での出力はどうなりますか?
$sizeverilogのと演算子の違いは何$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]?