Home > Community > Forums > Custom IC SKILL > Assura Directory Creation

Email

* 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: *

 Assura Directory Creation 

Last post Wed, Nov 3 2010 12:30 PM by Patrick1982. 5 replies.
Started by Patrick1982 28 Oct 2010 12:33 PM. Topic has 5 replies and 2450 views
Page 1 of 1 (6 items)
Sort Posts:
  • Thu, Oct 28 2010 12:33 PM

    Assura Directory Creation Reply

    Hello,

    I'm new to Assura (in the past I used Hercules) and I have found the form quite annoying, so what I would like to is automatically load the Run Directory, while also create the Run Directory from cadence using the Library name and Cell Name.  So what I was think is creating a bindKey that would take the library and cell name of the current layout and create the verification directories required i.e. ~/verification/libName/cellName/lvs. What is the Cadence command to create a directory in UNIX? OR even better does anyone have something simillar already wrintten?

    Secondly, I would like the assura form automatically open with the current layout Run Directories already loaded?  I have a bindkey to open the form and load the new Run Name (which is the cellName) but I am having trouble trying to automatically load the libName and cellName into the Run Directory path. Does anyone have the command to do this?

     I hope this is clear but please if you have any questions please let me know.

    Thanks very much.

    Filed under: ,
    • Post Points: 20
  • Thu, Oct 28 2010 8:17 PM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,587
    • Points 15,915
    Re: Assura Directory Creation Reply

    Hi Patrick,

    I don't really work with Assura much, but I think that I can answer your first question - it seems that you are asking for a SKILL command to create a directory, if so the answer is simple, the command createDir() is the one that you want.  Just as Derek noted in an earlier (unrelated) post; I found this by typing "dir" into the Find/Search field of the Finder (SKILL Finder, cdsFinder) utility - one of the many results was "createDir" and clicking on it tells you that it creates a directory.  This can be obtained by typing "startFinder()" in the CIW, or by typing "cdsFinder" at the Unix prompt where the Cadence tools are set up to run from.

     

    Finder results:

    createDir(
      S_name
     )
         => t | nil

    Creates a directory.

     

    If I get more time I will look into the other questions.

    I hope this helps!

    Regards,

    Lawrence.

    • Post Points: 20
  • Fri, Oct 29 2010 6:51 AM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,069
    • Points 16,275
    Re: Assura Directory Creation Reply

    Hi Patrick

    I have modified one of my skillscripts to give the output which you have requested. Hope that the script can solve your problem. : )

    Best regards
    Quek

    procedure( vuiUserDefinedSetupCB(formHandle)
       let( (newDir libName cellName runType)
          if(formHandle->layoutSource->value=="DFII" then
             libName=formHandle->layLibrary->value
             cellName=formHandle->layCell->value
          else ;Stream/Oasis input
             libName="streamFiles"
             cellName=formHandle->layCellName->value
          ) ;if
          case( formHandle->hiFormSym
             (vuiLVSForm runType="lvs")
             (vuiDRCForm runType="drc")
             (vuiERCForm runType="erc")
          ) ;case
          unless( isDir("~/verification")
        csh("mkdir ~/verification")
          ) ;unless
          unless( isDir(strcat("~/verification/" libName))
        csh(strcat("mkdir ~/verification/" libName))
          ) ;unless
          unless( isDir(strcat("~/verification/" libName "/" cellName))
        csh(strcat("mkdir ~/verification/" libName "/" cellName))
          ) ;unless
         
          newDir=strcat("~/verification/" libName "/" cellName "/" runType)
          formHandle->runDir->value=newDir
       ) ;let
    ) ;procedure

    • Post Points: 20
  • Tue, Nov 2 2010 12:13 PM

    Re: Assura Directory Creation Reply

    Thanks for your help Quek, however, I am getting the following error:

    *Error* def: function is write protected and cannot be redefined - vuiUserDefinedSetupCB

     And I've edited your code a bit, can you see anything wrong with this?

    procedure( vuiUserDefinedSetupCB(vuiLVSForm)
       let( (newDir libName cellName runType)
          if(vuiLVSForm->layoutSource->value == "DFII" then
             libName = vuiLVSForm->layLibrary->value
             cellName = vuiLVSForm->layCell->value
          ) ;if
          case( vuiLVSForm->runsetField
             (vuiLVSForm runType = "LVS")
          ) ;case
          unless( isDir("/projects/Endeavour/poriorda/Cadence/verification")
        csh("mkdir /projects/Endeavour/poriorda/Cadence/verification")
          ) ;unless
          unless( isDir(strcat("/projects/Endeavour/poriorda/Cadence/verification" libName))
        csh(strcat("mkdir /projects/Endeavour/poriorda/Cadence/verification" libName))
          ) ;unless
          unless( isDir(strcat("/projects/Endeavour/poriorda/Cadence/verification" libName "/" cellName))
        csh(strcat("mkdir /projects/Endeavour/poriorda/Cadence/verification" libName "/" cellName))
          ) ;unless

          newDir = strcat("/projects/Endeavour/poriorda/Cadence/verification" libName "/" cellName "/" runType)
          vuiLVSForm->runsetField->value = newDir
       ) ;let
    ) ;procedure

    Thanks again,

    Patrick.

    • Post Points: 20
  • Tue, Nov 2 2010 6:10 PM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,069
    • Points 16,275
    Re: Assura Directory Creation Reply

    Hi Patrick

    I think perhaps the cmd "sstatus(writeProtect t)" exists somewhere in your setup and hence is preventing a procedure from being redefined. Would you please restart Virtuoso and reload the edited file? It should be fine. The edits look ok

    Best regards
    Quek

    • Post Points: 20
  • Wed, Nov 3 2010 12:30 PM

    Re: Assura Directory Creation Reply

    Thanks very much for your help Quek and Lawrence.

    Here is what I have come with, I've created a skill file for each verification Run and I've assigned each run it's own Bindkey (F4-LVS, F5-DRC, F6-ANTENNA, F7-DENSITY) and the following is the code I've used.  Thanks again for your help.

    ibmPdkRunAssuraLVS()

       let( (libName cellName)
          if(vuiLVSForm->layoutSource->value == "DFII" then
             libName = vuiLVSForm->layLibrary->value
             cellName = vuiLVSForm->layCell->value
          ) ;if
        csh(strcat("mkdir -p /projects/Endeavour/poriorda/Cadence/verification/" libName "/" cellName "/lvs"))

       ) ;let

    hiiSetCurrentForm('vuiLVSForm) vuiLVSForm->runName->value = vuiLVSForm->layCell->value
    hiiSetCurrentForm('vuiLVSForm) vuiLVSForm->runDir->value = "/projects/Endeavour/poriorda/Cadence/verification"
    vuiLVSForm->fileSelector = t   vuiRcxFileSelect(?returnVar vuiLVSForm->runDir->value ?startingDir _vuiGetRunDirBrowsePath(vuiLVSForm) ?mode 'dirs)   vuiLVSForm->fileSelector = nil
    hiiSetCurrentForm('vuiRcxFileSelectForm)
    vuiRcxFileSelectForm->dirList->value = list(vuiLVSForm->layLibrary->value)
    vuiRcxDirDoubleCB(vuiRcxFileSelectForm)
    vuiRcxFileSelectForm->dirList->value = list(vuiLVSForm->layCell->value)
    vuiRcxDirDoubleCB(vuiRcxFileSelectForm)
    vuiRcxFileSelectForm->dirList->value = '("lvs" )
    vuiRcxDirDoubleCB(vuiRcxFileSelectForm)
    hiFormDone(vuiRcxFileSelectForm)

    • Post Points: 5
Page 1 of 1 (6 items)
Sort Posts:
Started by Patrick1982 at 28 Oct 2010 12:33 PM. Topic has 5 replies.