• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. ADE Assembler: variable values with leading zeros interpreted...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 12351
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ADE Assembler: variable values with leading zeros interpreted as octal in ICADVM20.1

dontpanic
dontpanic over 4 years ago

Hi! We recently switched to ICADVM20.1 and started to get weird results in many old testbenches. After a close lookup, it turns out that all the variables with values starting with zero ("0") are being interpreted as octal!

We have lots of testbenches where we use leading zeros as indentation in values to improve clarity, e.g (note leading zeros in front of 503 and 61):

As changing all these existing maestro views would mean a colossal work, we look for a workaround. Will this behavior be corrected in the future (or maybe has been already corrected?)?

Thanks in advance for any help!

KR, Jorge.

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 4 years ago

    Dear dontpanic,

    dontpanic said:
    We recently switched to ICADVM20.1 and started to get weird results in many old testbenches. After a close lookup, it turns out that all the variables with values starting with zero ("0") are being interpreted as octal!

    Yes. It appears this is a known issue as detailed in the On-line support article:

    Virtuoso Known Problems and Solutions
    Product Version ICADVM20.1, March 2021

    at URL:

    support.cadence.com/.../techpubDocViewerPage

    which includes the following:

    Problem: Entering leading zeroes in numeric fields results in octal interpretation

    Description: If a number is immediately preceded by a zero, SKILL interprets this as an octal number.

    Solution: Use the Backspace key to delete the zero before you type a new number.

    I don't think the suggested "Solution"  is to your liking though! I am not privy to any potential date for correcting the behavior nor a release in which the known issue will be corrected - sorry!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to ShawnLogan

    The manual that Shawn mentions isn't strictly speaking related to this issue - it's a general point that numeric fields on forms in Virtuoso will interpret integers as SKILL does, where leading zeros indicate octal. This is not new, and there's nothing that's going to be fixed. In this case, we're talking about global variables in ADE, and the field for these isn't a numeric field, so that manual isn't really relevant here (even though the symptoms are similar).

    The problem in this case is that global variables in ADE Explorer/Assembler (and indeed ADE XL) are first evaluated in SKILL to allow complex functions to be used, before passing to the simulator anything else. There have been some changes to this flow recently to try to preserve parameters within such expressions so that they can be swept within an analysis in Spectre, but it's not that change that causes this problem. I checked, and expressions with numbers starting with 0 in global variables have always been treated as octal since IC617 was first released with Assembler (that's when Assembler was first released). I suspect it goes back even further with ADE XL (I did not check that). So this is not new, and I am surprised that you have existing test benches that weren't broken before (maybe they were run in ADE L before? ADE L didn't evaluate any design variables in SKILL and passed the expressions through to the simulator, so that could well be a difference).

    I haven't spotted any reports of this being an issue with anybody else (and I can understand why it's a pain), but I can't see any plan to alter this behaviour (it would be quite hard). Potentially I can imagine some SKILL code to fix these automatically would be possible...

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to ShawnLogan

    The manual that Shawn mentions isn't strictly speaking related to this issue - it's a general point that numeric fields on forms in Virtuoso will interpret integers as SKILL does, where leading zeros indicate octal. This is not new, and there's nothing that's going to be fixed. In this case, we're talking about global variables in ADE, and the field for these isn't a numeric field, so that manual isn't really relevant here (even though the symptoms are similar).

    The problem in this case is that global variables in ADE Explorer/Assembler (and indeed ADE XL) are first evaluated in SKILL to allow complex functions to be used, before passing to the simulator anything else. There have been some changes to this flow recently to try to preserve parameters within such expressions so that they can be swept within an analysis in Spectre, but it's not that change that causes this problem. I checked, and expressions with numbers starting with 0 in global variables have always been treated as octal since IC617 was first released with Assembler (that's when Assembler was first released). I suspect it goes back even further with ADE XL (I did not check that). So this is not new, and I am surprised that you have existing test benches that weren't broken before (maybe they were run in ADE L before? ADE L didn't evaluate any design variables in SKILL and passed the expressions through to the simulator, so that could well be a difference).

    I haven't spotted any reports of this being an issue with anybody else (and I can understand why it's a pain), but I can't see any plan to alter this behaviour (it would be quite hard). Potentially I can imagine some SKILL code to fix these automatically would be possible...

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Frank Wiedmann
    Frank Wiedmann over 4 years ago in reply to Andrew Beckett

    I remember a similar issue where the ternary operator worked in ADE L, but did not work in ADE XL, Explorer or Assembler. This was fixed eventually, see support.cadence.com/.../ArticleAttachmentPortal

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

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.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information