Keywords

Keywords enable you to filter out any unwanted paths or instances, making it easier to view critical paths in the design and limiting the paths displayed for a particular set. The use of keywords is only supported for pin-to-pin delay families.

Use keywords to create custom sets for Timer’s Paths tab screen.  

The use of keywords is only supported for pin-to-pin delay families (for an explanation of pin-to-pin and input-to-input delay families, see Delays, PLLs, RAMs, and FIFOs). Use keywords to create custom sets for Timer’s Paths tab screen. Refer to Adding/Removing sets with keywords for details on how to enter keywords.

Keywords enable you to filter out any unwanted paths or instances, making it easier to view critical paths in the design and limiting the paths displayed for a particular set. Timer uses two types of keywords, first- and second-level.

Levels of Keywords

The first-level keywords enable access to the main objects of the design, such as registers, while the second-level keywords enable access to a sub-list of these main objects. For instance, $registers() is a first-level keyword that enables access to all the registers of the design. This list includes clock pins, data pins, enable pins and, asynchronous pins.

If the $registers() keyword is combined with the second-level keyword $datapins(), the related command is applied only to the data pins of the registers. You can use a second-level keyword only with a first-level; second-level keywords may not be used alone. In Timer, only the first-level keyword $registers() may be combined with the second-level keywords. Use the colon “:” without any spaces to combine first- and second level keywords. Keywords and filters are case insensitive.

Filtering

Filter keywords with brackets [ ]. The filter is a string that is used as an identifier (it may contain wild cards). [ ] with an empty string is not accepted in the macro language. The user can enter $registers(), $registers()[filterString], but not $registers()[ ].

Functions

Sometimes you may want to locate objects of the design by defining or identifying other objects. For instance, you might want to analyze delays of all the registers driven by a specific primary clock. Functions can help you locate the registers (objects) by defining the primary clock (identifier).

To use functions, the identifier of the object has to be reported between parentheses ( ). This identifier may contain wild cards and can also be another keyword. For example:

$registers(clock1)

returns all the registers driven by the primary clock “clock1”

Supported Keywords

Timer supports the keywords listed below.

First-Level Keywords

Second-Level Keywords

$registers()

$inputs()

$outputs()

$clocks()

$ports

$datapins()

$clockpins()

$asyncpins()

$enablepins()

$outputpins()

$inputpins

$allpins

First-Level Keywords

Each keyword has two identifiers, a long version and a short version. They both have exactly the same function. The first-level keywords are defined below.

$registers(ClockName) or $reg(ClockName)

The keyword above only displays the registers (edge-triggered flip-flops and level-sensitive latches) controlled by the clock ClockName. If no ClockName is specified, this keyword will cause all the registers of the design to be displayed.

$inputs() or $in()

This keyword only displays all the primary inputs of the design.

$outputs() or $out()

This keyword only displays all the primary outputs of the design.

“$Clocks()” or “$CK()” only displays the primary clocks of the design.

$ports(InstanceName) or $po(InstanceName)

This macro replaces all the primary inputs and outputs of the design.

Second-Level Keywords

While first-level keywords allow access to the main objects of the design, such as registers, second-level keywords give access to a sub-list of these main objects.

Currently, second-level keywords can only be used with the first-level keyword $registers(). A first-level keyword is separated from a second-level keyword with the colon “:” character, without any spaces.

As with first-level keywords, most second-level keyword have two identifiers, a long version and a short version. Each has the exact same function. In the following examples, it is assumed that the notion of event and pin are implicit.

“$DataPins()” or “$dp ()” indicates all the data pins of a register. For example:

$registers(CLK):$dp()

Displays the data pins of all the  registers controlled by CLK

“$OutputPins()” or “$qp()” indicates all the output pins of a register. For example:.

$registers(CLK):$qp()

Displays the output pins of all the registers controlled by the primary clock CLK

“$ClockPins()” or “$cp()” indicates all the clock pins of a register. For example:.

$registers(CLK):$clockpins()

Displays the clock pins of all the registers controlled by the primary clock CLK.

“$AsyncPins()” or “$ap()” indicates all the asynchronous pins of a register (preset and clear).

“$EnablePins()” or “$ep()” indicates all the enable pins of a register. For example:

$registers(CLK):$ep()

Displays the enable pins of all the registers controlled by the primary clock CLK.

$inputpins() or $ip() indicates all the input pins of a register. For example:.

$reg(CLK):$inputpins()

Displays the input pins of all the registers controlled by the CLK

$allpins() indicates all the pins of a register. For example:.

$registers(CLK):$all­pins()

Displays the pins of all the registers controlled by the CLK

Second-Level Exceptions

In order to provide more flexibility, the second level keywords can be coupled with exceptions. For instance, if you want to select all the input pins of the registers except the clock pins, you can use the following macro:

$registers(clk):$inputpins(TmacEx_CLOCKPINS)

The available exceptions are listed in the following table:

Exception

Result

TmacEX_CLOCKPINS

The clock pins will not be returned from the pins indicated by the 2nd level macro.

TmacEX_DATAPINS

The data pins will not be returned from the pins indicated by the 2nd level macro.

TmacEX_ASYNCPINS

The asynchronous pins will not be returned from the pins indicated by the 2nd level macro.

TmacEX_INPUTPINS

The input pins will not be returned from the pins indicated by the 2nd level macro.

TmacEX_ENABLEPINS

The enable pins will not be returned from the pins indicated by the 2nd level macro.

TmacEX_OUTPUTPINS

The output pins will not be returned from the pins indicated by the 2nd level macro.