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