System Verilog でアンパックされたベクトルを使用する必要があるのはなぜですか?

StackOverflow https://stackoverflow.com/questions/511542

  •  21-08-2019
  •  | 
  •  

質問

フォローアップ これ SV におけるパックされたベクトルとアンパックされたベクトルの違いについての質問ですが、なぜアンパックされたベクトルを使いたいのでしょうか?
パックされたベクトルには、アンパックされたベクトルにはない次のような利点があります。

  • それらに対してビット単位の操作を実行できます
  • それらに対して算術演算を実行できます
  • スライスして取ることもできます
  • ベクター全体としてコピーできます
  • できることは何でもできる 国連パックされたベクトル (私の知る限り)

パックされていないベクトルには、パックされたベクトルと比べてどのような利点がありますか?

役に立ちましたか?

解決

私はアンパック使用するように別の理由があります。アンパックすると、そこに変数として全体の配列名を処理することのない誘惑(と偶然の可能性は)ありません、と誤った割り当てを行います。そこには、あなたが要素NのBビットにアクセスしている考えるかもしれとき、一つの要素から別のビットは、出血の可能性もありませんが、現実には、あなたは、要素N + -1の要素NとBKビットのKビットにアクセスすることができます。ます。

私の哲学は詰め次元で「情報の単位」として一緒に属している唯一のものを維持することです。アンパック次元で他のすべて。デフォルトの思考をアンパックすること、そしてあなたがする必要がある唯一のものをパックする必要があります。

私は9つのポート、情報の21ビットのそれぞれを持っている場合、例えば、私のようにそれを宣言したいと思います。

input logic [20:0] p1 [9];

20:0部分が割り当てられ、(公称)一緒にサンプリングされた、情報の単位を構成します。離れてこれらのビットを分割すると、プロトコルやポートの文字を破壊します。一方、16、たとえば、9〜ポートの数を変更する、9つのポートは本当に私の心の中で解凍した次元に属しているので、各ポートにおける情報の性質に影響を与えるつもりはないされます。

あなたに沿って考えるパラダイムを与えるかもしれない

希望...このパラダイムでは、

!!充填したどのように多くの物事はあなたがいつも思っていることアンパック現れ始める驚くだろう

他のヒント

アンパックアレイは、いくつかの理由のために存在します。

1)パックアレーは、ビットの連続したシーケンスとしてメモリに格納されています。解凍された配列は、より大きなシミュレーション性能を得ることができ、独立して格納された各要素を有することができます。

2)アンパックアレイは、ビット・ベクトルではないタイプのものであってもよいです。 int型、バイト、イベント、構造体、クラスなどの配列のみを展開することができます。

3)アレイの操作方法のほとんどは、アンパックアレイ上で動作します。

4)おそらく、唯一アンパック配列は、配列リテラルを使用して割り当てることができます。私はわからない。

他の理由があるかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top