我想知道关键字try在 Specman 中的用途,尤其是它在下面给出的代码片段中的用法:
try {
unpack(packing.low,lob,pkt);
} else{
message(LOW, “Uh-oh!”){print lob using HEX;};
message(LOW,”bad unpack!!!”);
};
try 和 if 类似,如果条件为真时执行真块,否则执行假。同样尝试如果 true 块中存在错误,它会切换到 else 块。
try并且else是 Specman 的异常处理结构。try 如果在块中创建了错误,则else立即执行该块而不是该块的其余部分,try并且该错误被抑制而不打印输出。
在这种情况下,如果lob位数多于pkt“物理字段”,则解包将产生错误。如果发生这种情况,Specman 运行时将跳转到该else块并打印出lob数据结构,而不是打印原始unpack错误。查看文档以了解“物理场”是什么以及如何使用它们。它们是一个奇怪的构造,专门与 Specman 的 、 和 构造的%行为pack交互unpack。的物理场pkt将在%的“物理场”之前使用修饰符声明pkt。