Home > Community > Blogs > Digital Implementation > sometimes it s the little things working with square brackets in encounter
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more convenient.

Register | Membership benefits
Get email delivery of the Digital Implementation blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

Sometimes It's The Little Things: Working With Square Brackets in Encounter

Comments(2)Filed under: Encounter Digital Implementation System 8.1, Ease of Use

Good news! A long-standing source of irritation for Encounter users has been addressed in our 8.1.USR1 release.  You might not have noticed it if you've grown accustomed to backslash-escaping square brackets in object names.

For example:
selectNet DTMF_INST/RESULTS_CONV_INST/nbus_544[0]

In 7.1, if you tried to select a net with this syntax you'd get the following as the TCL interpreter treated the contents within the square bracket as an executable command:
encounter 1> selectNet DTMF_INST/RESULTS_CONV_INST/nbus_544[0]
invalid command name "0"

As a workaround, you needed to either escape each square bracket -or- enclose the entire string within squiggly braces:
encounter 2> selectNet DTMF_INST/RESULTS_CONV_INST/nbus_544\[0\]
encounter 3> selectNet {DTMF_INST/RESULTS_CONV_INST/nbus_544[0]}

This was cumbersome to work with, especially for users who spend a lot of time querying the database and timing from the command line.  In 8.1.USR1 the tool has been enhanced to handle square brackets automatically without needing to escape them.  When the contents within square braces are anything other than an Encounter command, they're treated as bus bits.  The nice thing about the way this has been implemented, is that it applies to all commands in the system rather than on a command-by-command basis.

In other words, any of the following also work:
report_timing -through DTMF_INST/RESULTS_CONV_INST/nbus_544[0]
dbGet top.nets.name DTMF_INST/RESULTS_CONV_INST/nbus_544[0]
get_nets DTMF_INST/RESULTS_CONV_INST/nbus_544[0]

I hope this little enhancement is useful.

Question of the Day:
Is there something similar to this- a little thing that's bothering you about Encounter you'd like us to improve?  Let us know in the comments area and we'll see what we can do.

-Bob Dwyer


By Stephane A on February 9, 2010
Dear Bob,
Multi-line commands in SOC: When you type a long report_timing for instance, and you recover a long one from the history and that you want to edit it, the command is sometimes displayed only on one line whereas it should be displayed on two lines. A part of the command is hidden. This is not user friendly.
Best regards.

By BobD on February 11, 2010
Thanks for the comment Stéphane!
I think I know what you're talking about and agree it can be cumbersome to deal with.  If I follow correctly, you're referring to when you "arrow-up" to retrieve a previously executed command and if that command is longer than the width of the Encounter console the wrapping of that line is malformed.  You can't get to the portion of the command after the line break to alter it.
A workaround I've used in this area is to use the "ctrl-a"/"ctrl-e" to navigate the cursor to the beginning/end of the line to alter portions of the command that are inaccessable due to this issue.
I'll bring this to R&D's attention to see if there's something we can do to improve the situation.  Great suggestion!  It's exactly the kind of thing I'm looking for.
Anyone else have suggestions or requests?

Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.