• 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. DesignSync relavent functions in Cadence

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 143
  • Views 17331
  • 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

DesignSync relavent functions in Cadence

Derek WANG
Derek WANG over 10 years ago

Hi All

I am not sure whether I post this issue at the right place, but I almost find nothing via google about the DesignSync relavent functions in Cadence. I hope someone here may give me a hint.

the story behind is that:

I try to write a skill script to record the current version of each schematic through the hierarchy. Unfortunately, I do not find the corresponding document either in DesignSync or Cadence.

by looking at the log file of Cadence, I notice that designSync would create a form named "dssViewVHForm". I can change the setup for such form follow the syntax of SKILL, like: dssViewVHForm->libName->value = "myLib". by doing this, I can point the cellview I want to visit. And when I close such Form via "hiFormDone(dssViewVHForm)", a popup window would show the version history of such cellview. Of course, the current version is shown. but this is not what I want.

On the other hand, through trying this, I think there is a callback function has been defined and linked with "dssViewVHForm", but I do not know what it is. And probably what I want might be a function which has been used in the callback function to retrieve the "current version" of specified cellview. Is there a way to log all the used functions when I execute "hiFormDone(dssViewVHForm)", then probably I can find the fucntion I need.

and it would be perfect if someone can tell which function is used to retrieve the current version of specified cellview. I assume it may look like: dssCurrentVersion(myLib myCell myView) => f_versionNumber.

Best Regards

Yi

  • Cancel
Parents
  • Derek WANG
    Derek WANG over 10 years ago

    Hi All

    I do not know how, but I open one of the DesSync functions (), and luckily find the folder which contains all the functions.

    In my server, the function folder is:

    /home/cadgrp/hbg/ictools/designsync/V6R2013X/cds/skill.

    by looking the code, I take part of them to form the function I want.

    the porpers of the CCScurrentVersion() is to return the design version of given cellview.

    the code is taken from the "dssViewGUI.il" and "ddsRevCntl.il" file.

    this code cannot work alone, it still depends on some other designsync functions.

    I will optimize this function when I have time later on.

    below is the code:

    ---------------------------------------------------------------------------------------------------------------------

    procedure(
        CCSviewCurrentVersion(libName cellName viewName)     
        let((all lastVersions branch descendants lastBranches maxTag mode curVersion

        );local variables
        all = nil
        lastVersions = nil
           branch = ""
           descendants = nil
           lastBranches = nil
        maxTags = "all"
        mode = "W"
        
        
           when(dssCheckViewVerHistArgs(
                        libName cellName viewName "" nil
                        all branch lastVersions lastBranches descendants
                        maxTags mode
                    )

                    ;-------------------------------------------------------
                    ; Now call the internal processing routine.
                    ;-------------------------------------------------------
                curVersion =CCSreportVHistory(libName cellName viewName dssVHBuildCmdOptions( all branch lastVersions lastBranches descendants maxTags mode )                   
             );CCSreportVHistory            
                
                ) ; when
            
            curVersion
        ) ; let
        
        
    )

    procedure(
        CCSreportVHistory(
            libName cellName viewName @optional opts memberVault
        )

        let((path ddObj data isModule curVersion)
        
            if(!cellName || (ddObj = ddGetObj(libName cellName viewName)) then
                path = if(cellName dssGetddCV(ddObj) libName)
                unless(dssModsFindDirModules(path)
                    memberVault = nil
                )
                isModule = dssFindModule(path)
            data =
                    dssCmd(
                        "dssVhistory %s %L %s %s %L"
                        dssWrapName(path) opts if(memberVault "1" "0")
                        if(isModule "1" "0")
                        if(boundp('dssVhistoryOptions) dssVhistoryOptions "")
                        ?dssData t
                    )   
                     
        )
        
        curVersion = nth(2, parseString(car(data) " "))
        curVersion = substring(curVersion 1 strlen(curVersion)-1)
        curVersion
        ) ; let
        
    )

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Derek WANG
    Derek WANG over 10 years ago

    Hi All

    I do not know how, but I open one of the DesSync functions (), and luckily find the folder which contains all the functions.

    In my server, the function folder is:

    /home/cadgrp/hbg/ictools/designsync/V6R2013X/cds/skill.

    by looking the code, I take part of them to form the function I want.

    the porpers of the CCScurrentVersion() is to return the design version of given cellview.

    the code is taken from the "dssViewGUI.il" and "ddsRevCntl.il" file.

    this code cannot work alone, it still depends on some other designsync functions.

    I will optimize this function when I have time later on.

    below is the code:

    ---------------------------------------------------------------------------------------------------------------------

    procedure(
        CCSviewCurrentVersion(libName cellName viewName)     
        let((all lastVersions branch descendants lastBranches maxTag mode curVersion

        );local variables
        all = nil
        lastVersions = nil
           branch = ""
           descendants = nil
           lastBranches = nil
        maxTags = "all"
        mode = "W"
        
        
           when(dssCheckViewVerHistArgs(
                        libName cellName viewName "" nil
                        all branch lastVersions lastBranches descendants
                        maxTags mode
                    )

                    ;-------------------------------------------------------
                    ; Now call the internal processing routine.
                    ;-------------------------------------------------------
                curVersion =CCSreportVHistory(libName cellName viewName dssVHBuildCmdOptions( all branch lastVersions lastBranches descendants maxTags mode )                   
             );CCSreportVHistory            
                
                ) ; when
            
            curVersion
        ) ; let
        
        
    )

    procedure(
        CCSreportVHistory(
            libName cellName viewName @optional opts memberVault
        )

        let((path ddObj data isModule curVersion)
        
            if(!cellName || (ddObj = ddGetObj(libName cellName viewName)) then
                path = if(cellName dssGetddCV(ddObj) libName)
                unless(dssModsFindDirModules(path)
                    memberVault = nil
                )
                isModule = dssFindModule(path)
            data =
                    dssCmd(
                        "dssVhistory %s %L %s %s %L"
                        dssWrapName(path) opts if(memberVault "1" "0")
                        if(isModule "1" "0")
                        if(boundp('dssVhistoryOptions) dssVhistoryOptions "")
                        ?dssData t
                    )   
                     
        )
        
        curVersion = nth(2, parseString(car(data) " "))
        curVersion = substring(curVersion 1 strlen(curVersion)-1)
        curVersion
        ) ; let
        
    )

    • 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