• 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. Allegro X PCB Editor
  3. Compare the database footprint with library footprint -...

Stats

  • Replies 10
  • Subscribers 163
  • Views 10244
  • Members are here 0
More Content

Compare the database footprint with library footprint -Skill

pradeep4321
pradeep4321 over 5 years ago

I would like to generate the comparison report of database footprint with library footprint if any mismatch available.

Is there a way to take if it possible means can anyone please guide me or share me the skill code please.

Thanks,

Pradeep

  • Sign in to reply
  • Cancel
Parents
  • EvanShultz
    EvanShultz over 5 years ago

    I'm also interested in doing this but I don't have the solution either. Not all of it, anyway.

    One way would be to put a property in the library footprint, like "V1.0" which is incremented when the footprint is touched. But that seems like more hassle than it's worth and doesn't guarantee that property is always maintained properly. So my strategy would be to find the date/time the footprint was added to the board and compare with the save date/time of the library footprint.

    One required piece is knowing when a footprint was instantiated in the board. Querying properties of a component, and it's compdef, I don't see anything that reports the timestamp that could help with this task. Sorry.

    The other piece is figuring out the timestamp of the library footprint. This isn't bad. The footprint's DBID gives the package name while the footprint path can be found from axlGetVariable("psmpath"). Don't forget that multiple paths can be given in that env var. From this the absolute path to the library footprint can be built. Be careful to note that the type of footprint changes the file extension (PSM, BSM, etc.). Finally fileTimeModified() gives the library footprint's timestamp. So that piece is relatively easy and gets us halfway there.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • B Bruekers
    B Bruekers over 5 years ago in reply to EvanShultz

    I've ever implemented such timestamp check, but it is far from fail-safe. There are possible differences of 1-10 seconds (PSM filetimestamp =! version_id), and even 3600s if you are lucky. 

    The biggest issue is that when the PSM files are loaded in the a BRD the padstack (and ssm's) are loaded from the external PAD/SSM files. If these files have been changed between DRA release and starting the BRD, the symbol which is actually placed in the BRD file shall not the same as the original DRA. So, the actual padstacks inside the PSM/DRA files are not used (only name,xy,rotation).

    I believe the best way is to make some sort of metadata file of the actual DRA file, pin locations, padstacks, props etc. (do this at the moment of saving the DRA file)

    Then this data can be used to check the placed symbols in a design. Another advantage is that when the symbol has a new savedate your footprint check can still pass.

    If you have time to spare then you can even implement some sort of severity level; change on pin location/padstack = high, assy layer = low. etc.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • B Bruekers
    B Bruekers over 5 years ago in reply to EvanShultz

    I've ever implemented such timestamp check, but it is far from fail-safe. There are possible differences of 1-10 seconds (PSM filetimestamp =! version_id), and even 3600s if you are lucky. 

    The biggest issue is that when the PSM files are loaded in the a BRD the padstack (and ssm's) are loaded from the external PAD/SSM files. If these files have been changed between DRA release and starting the BRD, the symbol which is actually placed in the BRD file shall not the same as the original DRA. So, the actual padstacks inside the PSM/DRA files are not used (only name,xy,rotation).

    I believe the best way is to make some sort of metadata file of the actual DRA file, pin locations, padstacks, props etc. (do this at the moment of saving the DRA file)

    Then this data can be used to check the placed symbols in a design. Another advantage is that when the symbol has a new savedate your footprint check can still pass.

    If you have time to spare then you can even implement some sort of severity level; change on pin location/padstack = high, assy layer = low. etc.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
Cadence 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.

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

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