Calibre Newline between statement and its keywords can cause parser error

2024-01-04T10:47:11.000-0500
IC Verification & Signoff

Summary

Even though generally, the placement of statements is flexible, it is important to handle them as a single unit without breaking them across lines when dealing with certain secondary keywords. For example, the newline between "ERC SELECT CHECK" and "ABORT LVS" causes a parser error even though the placement of statements is flexible.


Details

When using secondary keywords, it's important to treat them as a whole unit and avoid breaking them across lines. That is, if a secondary keyword consists of multiple words, it should stay together without line breaks between the words of the secondary keyword.

For example:

In DEVICE command we have secondary keywords/options which is TEXT MODEL LAYER text_layer.

You can use something like :-
DEVICE
TEXT MODEL LAYER text_layer

But not:
DEVICE
TEXT MODEL
LAYER text_layer



In case of "ERC SELECT CHECK" and "ABORT LVS", the "ABORT LVS" is complex in terms of syntax. It's a case where a primary keyword is within a secondary keyword.
In SVRF, primary keywords form the backbone of a statement or operation, essentially defining its name and purpose, such as "Device."
On the other hand, secondary keywords are optional modifiers that refine the functionality of the primary SVRF element and can consist of more than one word, like "YES" or "NO."

But the "ABORT LVS," usually considered a secondary keyword despite being comprised of two words.
To illustrate further, let's take "ERC SELECT CHECK." In this case, "ERC" acts as a primary keyword, establishing the start of an SVRF element name. However, "ABORT LVS," when used as a secondary keyword set, causes the compiler to recognize it as a complete element name.
It's important to note that the handling of "LVS" depends on the context, particularly where the line starts. In some cases, underscores may be used in secondary keyword names to avoid potential parsing issues, although this practice is generally discouraged as it deviates from typical SVRF conventions.

And given that we have so many SVRF commands its quite hard to look at each of them and tell which might support and which not.


Our recommendation is to handle keywords as a single unit without breaking them across lines.

KB Article ID# KB000128958_EN_US

Contents

SummaryDetails

Associated Components

Calibre nmDRC Calibre nmLVS