• 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 SKILL
  3. List forming was changed in IC 6.1.5.65?

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 144
  • Views 13915
  • 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

List forming was changed in IC 6.1.5.65?

Slayer
Slayer over 14 years ago

 Hi all!

Could u pls. help me with  one issue. The questionis, that succession of shapes in list is change in IC6.1.5.65. I try to clarify this moment.

In pcell I use some subCells, after that pull up need shepes and forming list formshapes

example:

[CODE]

        shapesToCopy = setof(i car(instances)->master->shapes i->up||i->conn);
        foreach(i if(oddp(ng) cdr(reverse(instances)) instances)
            foreach(s shapesToCopy
                dbCopyFig(s pcCV list(i->xy "R0"));
            );
        );

[/CODE]

after that according to property on shapes I sort it in lists

[CODE] 

         foreach(s setof(i pcCV->shapes i->conn)
            case(s->conn
                ("gTop"
                    gatesTop = cons(s gatesTop);
                )
                ("gBot"
                    gatesBot = cons(s gatesBot);
                )
                ("sub"
                    substrates = cons(s substrates);
                )
            );end case
        );end foreach

[/CODE]

And In cdb version (on this version all works fine)  I have succession of shapes which were builded from left to right, but in IC6.1.5.65 shape which was on first position now on second, wich was on 4 position now on 3 and etc.

What's wrong? What were changed, and how to use pcells which were created under cdb version?

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    What's wrong is your assumption that the database is ordered. It never was in CDB and is not in OA either.

    Whilst empirically you may have observed that the data appeared to be ordered (possibily in the order it was created?) that was never a reasonable assumption - it is not documented as such, and having your code dependent upon some observed behaviour was asking for trouble. The underlying database could have been changed at any time for optimization reasons, and then things would have get messed up. Even doing simple operations on the database (in CDB) can cause the order to change.

    If you want the lists in an order sorted from left to right, use the sort() function to do that, with a comparison function which compares the coordinates. That's the only safe way of doing this.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    What's wrong is your assumption that the database is ordered. It never was in CDB and is not in OA either.

    Whilst empirically you may have observed that the data appeared to be ordered (possibily in the order it was created?) that was never a reasonable assumption - it is not documented as such, and having your code dependent upon some observed behaviour was asking for trouble. The underlying database could have been changed at any time for optimization reasons, and then things would have get messed up. Even doing simple operations on the database (in CDB) can cause the order to change.

    If you want the lists in an order sorted from left to right, use the sort() function to do that, with a comparison function which compares the coordinates. That's the only safe way of doing this.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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