下で、配列CとDは、アンパック配列です。Cの宣言と似ていますね。2次元のパック配列です。Cは、2次元のパック配列を要素を4個持った1次元のアンパックド配列になります。いう風に表現しましたが、これは、1次元のパックド配列を1024個持った1次元のアンパック配列と見ることもできます。配列の順序は、最初にアンパックの方が先に来てその後にパック配列の修飾になります。下の図を見ると分かりやすいでしょう。C[3][0][7:0]パック次元まで修飾すれば、上で説明したように内部的にはベクタそのものになりますから、自由に演算ができますが、アンパックの次元では、ビットが連続していないために、演算は極めて限定的なものしか許されません。これを例で見ていきましょう。下で最初のC[0]に対する代入は、C[0]とすることで、一つのパック配列を限定できるので自由な演算(定数や、変数の演算)が可能です。D=C;は、パック配列をまたぐものなので、限定的な演算しか許されません。この場合、DもCも同じlタイプのlogicで、同じ次元の配列ですから、問題ありません。HDLでは、この演算は許されませんでした。C!=Dも同様ですが、。アンパック配列間で可能な演算は、比較演算のみです。C=0;あるいは、C=D+1等は、NGです。+:4]);endendmoduleこのベンチの結果です。continueアンパック配列では、代入も同じタイプの同じ配列次元の同じスライス幅のみ可能です。(通ってしまう処理系もありますが、厳密にはキャスト(後述)が必要です。