Specman-e использование try {}; - PullRequest
1 голос
/ 07 января 2012

Я хотел бы знать, для чего используется ключевое слово try в Specman, и особенно его использование в приведенном ниже фрагменте кода:

try {
    unpack(packing.low,lob,pkt);
} else{
    message(LOW, “Uh-oh!”){print lob using HEX;};
    message(LOW,”bad unpack!!!”);
};

Ответы [ 2 ]

1 голос
/ 05 марта 2012

try и if аналогичны где if выполняет блок true, когда условие истинно и еще он выполняет ложное. Аналогичным образом попробуйте также, если есть ошибка в блоке true, он переключается на блок else.

0 голосов
/ 09 января 2012

try и else являются конструкциями обработки исключений .Если в блоке try создается ошибка, тогда вместо остальной части блока try выполняется блок else, и ошибка подавляется с помощью no printout .

В этом случае, если lob имеет больше битов, чем pkt имеет "физические поля", то при распаковке возникнет ошибка.Если это произойдет, среда выполнения Specman перейдет к блоку else и распечатает структуру данных lob вместо печати исходной ошибки unpack.Посмотрите в документах, что такое «физические поля» и как они используются.Это странная конструкция, которая специфически взаимодействует с поведением конструкций Specman %, pack и unpack.Физические поля pkt будут объявлены с модификатором %, предшествующим "физическим полям" pkt.

...