Home > Community > Forums > Custom IC SKILL > CDL extraction

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

 CDL extraction 

Last post Mon, Jul 8 2013 7:04 AM by theopaone. 1 replies.
Started by Hith 04 Jul 2013 02:26 AM. Topic has 1 replies and 579 views
Page 1 of 1 (2 items)
Sort Posts:
  • Thu, Jul 4 2013 2:26 AM

    • Hith
    • Not Ranked
    • Joined on Thu, Jul 4 2013
    • Posts 1
    • Points 20
    CDL extraction Reply

    hi,

     

    We have the skill to  extract multiple cells from the celllist from the shell. We need to export its cdl from the corresponding schematics. Is there any way to put this extraction on queue.We get only first cell of the cell list is exported. Before the previous cell is extracted the cdl export of next cell is commenced.

     

    i am posting my skill below

    procedure(CDLOutData()

    let((cv)

    cv = ""

     inPort = infile( "~/SKILL/celllist" )

    when( inPort

    while( gets( nextLine inPort )

    lineData = parseString(nextLine "\n")

     Data=car( lineData)

     if( Data != nil

    then

    cv=dbOpenCellViewByType("LIB" Data "schematic")

    if(cv == nil

    then

                 printf(Data)

    print( "No cdl" )

     else

      printf(Data)

    print( "cdl is present" )

    CdlOut_Assign(cv)

    ) )

    )

    close( inPort )

    )

     );let

    );procedure

    procedure( CdlOut_Assign(cv)

    hiFormDone(transCdlOutForm)

     let((cdl_path cdl_name cdl_value)

    cdl_name = cv->cellName

    cdl_value = buildString(list(cdl_name "cdl") ".")

    out_file = outfile("output.il")

    fprintf(out_file "cdlOutKeys = list(nil\n'simLibName \"%s\" \n'simCellName \"%s\" \n'simViewName \"%s\" \n'cdlSimViewList \"auCdl schematic\" \n'cdlSimStopList \"auCdl\" \n'simRunDir \"%s\" \n'hnlNetlistFileName \"%s\" \n'cdsNetlistingMode \"Analog\" \n'shortRES 0.0 \n'resistorModel \"\" \n'setEQUIV \"\" \n'incFILE \"/~/source.added\" \n'globalPowerSig \"\" \n'globalGndSig \"\" \n'resistorCheck \"value\" \n'capacitorCheck \"value\" \n'pinMAP t \n'shrinkFACTOR 0.0 \n'diodeCheck \"both\" \n'checkScale \"meter\" \n'displayPININFO nil \n'checkLDD t\n )" cv->libName cv->cellName cv->viewName cdl_outForm~>CDLPath~>value cdl_value)

    close(out_file)

    transCdlOutGetProps("output.il")

    );let

    );procedure

    string_v = nil

    InputField=hiCreateStringField(

    ?name 'CDLPath

    ?prompt "CDL Path :"

    ?value ""

    ?defValue ""

    ?callback ""

    )

    hiCreateAppForm( ?name 'cdl_outForm

    ?formTitle "CDL Path"

    ?callback "assignment_cdl()"

    ?fields list( InputField )

    )

    status = hiDisplayForm( cdl_outForm )

    procedure(assignment_cdl()

    string_v=cdl_outForm~>CDLPath~>value

    if( string_v != nil

    then

    CDLOutData()

    )

    )

     

    • Post Points: 20
  • Mon, Jul 8 2013 7:04 AM

    • theopaone
    • Top 100 Contributor
    • Joined on Tue, Feb 12 2013
    • Cedar Park, TX
    • Posts 77
    • Points 1,160
    Re: CDL extraction Reply

     I don't have access to test your program but you are opening and closing the same file output.il in the subroutine CdlOut_Assign. Each time you open the file with outfile(...) it creates a new version of the file, overwriting the existing one. You need to open the file in append mode or open the file once in the calling function and pass the file handle in as an argument.

     

    Ted

    • Post Points: 5
Page 1 of 1 (2 items)
Sort Posts:
Started by Hith at 04 Jul 2013 02:26 AM. Topic has 1 replies.