try
Specman でキーワードが何に使用されているか、特に以下のコード スニペットでの使用法を知りたいです。
try {
unpack(packing.low,lob,pkt);
} else{
message(LOW, “Uh-oh!”){print lob using HEX;};
message(LOW,”bad unpack!!!”);
};
try と if は似ていますが、if は条件が true の場合に true ブロックを実行し、それ以外の場合は false を実行します。true ブロックにエラーがある場合も同様に試して、else ブロックに切り替えます。
try
およびelse
Specman の例外処理構造です。ブロックでエラーが発生すると、ブロックの残りの部分ではなくそのtry
ブロックelse
がただちに実行され、エラーは出力されずtry
に抑制されます。
この場合、「物理フィールド」lob
よりもビット数が多いと、アンパックでエラーが発生します。pkt
その場合、Specman ランタイムはelse
ブロックにジャンプし、元のエラーlob
を出力する代わりにデータ構造を出力します。unpack
「物理フィールド」とは何か、およびそれらがどのように使用されるかについては、ドキュメントを参照してください。これらは、Specman の%
、pack
、およびunpack
構造の動作と特に相互作用する奇妙な構造です。の物理フィールドは、 の「物理フィールド」の前に修飾子pkt
を付けて宣言されます。%
pkt