Home > Community > Forums > Custom IC SKILL > Help on pcell code.

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

 Help on pcell code. 

Last post Thu, Jun 21 2012 9:52 PM by Sarvani. 12 replies.
Started by Sarvani 04 Jun 2012 01:49 AM. Topic has 12 replies and 2964 views
Page 1 of 1 (13 items)
Sort Posts:
  • Mon, Jun 4 2012 1:49 AM

    • Sarvani
    • Top 75 Contributor
    • Joined on Mon, Mar 12 2012
    • VIZAG, Andhra Pradesh
    • Posts 112
    • Points 1,920
    Help on pcell code. Reply

    hi all,

            I created pcell using the code specified in rod objects in my install directory. To achieve it entered following code in my CIW and created pcells. My version is 6.1.

    setSkillPath(cons(prependInstallPath("samples/ROD/rodPcells")
    getSkillPath()))
    load("install/spcLoadInstall.il")
    spcInstall()

             Pcell working fine without any errors. Then I created a schematic with all options(fingers, multipliers....) and get all devices in layout by doing Gen From source. When I overlap two pcells then it automatically adjusts side by side by merging drains and taps. Now I need control of that adjustments because I didn't get minspacing at drain/source merging. 

     

    Thank you.

    • Post Points: 5
  • Fri, Jun 8 2012 2:08 AM

    • Sarvani
    • Top 75 Contributor
    • Joined on Mon, Mar 12 2012
    • VIZAG, Andhra Pradesh
    • Posts 112
    • Points 1,920
    Re: Help on pcell code. Reply

     Is there any command in techfile to specify instance to instance space when they are overlapped in VXL mode. Generally When we overlap  two instances in VXL then it automatically adjusts the instances. But in my VXL while merging two instances it takes more space than minimum space.

    Thank you.

     

    • Post Points: 20
  • Fri, Jun 8 2012 2:17 AM

    Re: Help on pcell code. Reply

    It's not a "techfile" function. If you have an abutFunction to control auto-abutment, the abutFunction can return the offset. Search for "abutFunction" in the documentation - there's an explanation of it there. In the sample pcell code, it's in components/mos/mos.il (function is called spcMosAbutFunction)

    Andrew.

    • Post Points: 20
  • Fri, Jun 8 2012 6:27 AM

    • Sarvani
    • Top 75 Contributor
    • Joined on Mon, Mar 12 2012
    • VIZAG, Andhra Pradesh
    • Posts 112
    • Points 1,920
    Re: Help on pcell code. Reply

     Hi Andrew,

                       Thankyou very much. Now it works superbly. But I have a problem when running LVS. I have pcells spcnmos, spcpmos(layout,symbol,auLvs,ivpcell...) in library.  I created one inverter(layout and schematic)by using that pcells. It oparates well in VXL mode. While doing LVS it shows following error. 

    1 0 ((L "Y")((1 "spcnmos" ( "D" "G" "S" "B"))(1 "spcpmos" ( "D" "G" "S" "B")))(S "Y")((1 "car" ( "D" "G" "S" "B"))(1 "car\" ( "D" "G" "S" "B"))))

    ^

    SYNTAX ERROR found at line 1 column 129 of file *string*

    In LVS extractfile.rul file I wrote this for device recognition, parameter extraction.

       extractMOS(
        "spcnmos"  spcnmos
        cpoly("G") ndiff("S" "D") psub("B")
        spiceModel( "spcnmos" )
        flagMalformed
        cellView( "spcnmos ivpcell" )
      ); end extractMOS

        l_NMOS = measureParameter( length ( spcnmos inside cpoly ) 0.5u )
        w_NMOS = measureParameter( length ( spcnmos coincident cpoly ) 0.5u )

        nameParameter( l_NMOS "l" )
        nameParameter( w_NMOS "w" )
        nameParameter( w_NMOS "effW" ); REQUIRED FOR SPECTRE
        
        
    /* 1v pmos */

      extractMOS(
        "spcpmos" spcpmos
        cpoly("G") pdiff("S" "D") nwell("B")
        spiceModel( "spcpmos" )
        flagMalformed
        cellView( "spcpmos ivpcell" )
      ); end extractMOS

        l_PMOS = measureParameter( length ( spcpmos inside cpoly ) 0.5u )
        w_PMOS = measureParameter( length ( spcpmos  coincident cpoly ) 0.5u )

        nameParameter( l_PMOS "l" )
        nameParameter( w_PMOS "w" )
        nameParameter( w_PMOS "effW" ); REQUIRED FOR SPECTRE

     

    Thankyou.

    • Post Points: 5
  • Mon, Jun 11 2012 6:18 AM

    • Sarvani
    • Top 75 Contributor
    • Joined on Mon, Mar 12 2012
    • VIZAG, Andhra Pradesh
    • Posts 112
    • Points 1,920
    Re: Help on LVS rule files Reply

     Hi,

         My LVS is not running perfectly. Actually in this technology we have only caliber rulefiles. So I wrote layer derivations, definitions, extract devices in extract.rul file. I got following warnings in LVS.wrn file. Please Solve this if you have Idea about verification codes.

     This LVS is for INVERTER

     Assura Errors & Warnings Search (PLEASE CAREFULLY REVIEW THESE MESSAGES)
    ================================================================================
    WARNINGS & ERRORS found in Assura NVN Run Log file
    --------------------------------------------------------------------------------
     WARNING (AVLVSNN-10050) : mosDevice - cell 'spcnmos' not found.
     WARNING (AVLVSNN-10050) : mosDevice - cell 'spcpmos' not found.
    *ERROR* Device 'car(BJT)' on Schematic is unbound to any Layout device.
    *ERROR* Device 'spcnmos(MOS)' on Layout is unbound to any Schematic device.
    *ERROR* Device 'spcpmos(MOS)' on Layout is unbound to any Schematic device.

         Here spcnmos,spcpmos are pcells. In extract.rule file I defined layer defitions and derivations. For extraction of MOS is like this.

       npod      = geomAnd( nimp diff )
      ntox      = geomAndNot( npod nwelli )

    spcnmos    = geomAndNot( geomAnd( ntox poly ) capdmy )

       ppod      = geomAnd( pimp diff)
      ptox      = geomAnd( ppod nwelli )

     spcpmos    = geomAnd(geomAndNot( geomAnd( ptox poly ) capdmy ) pm)

      extractMOS(
        "spcnmos"  spcnmos
        cpoly("G") ndiff("S" "D") psub("Sub")
        spiceModel( "spcnmos" )
        flagMalformed
        cellView( "spcnmos ivpcell" )
      ); end extractMOS

        l_NMOS = measureParameter( length ( spcnmos inside cpoly ) 0.5u )
        w_NMOS = measureParameter( length ( spcnmos coincident cpoly ) 0.5u )

        nameParameter( l_NMOS "l" )
        nameParameter( w_NMOS "w" )
        nameParameter( w_NMOS "effW" ); REQUIRED FOR SPECTRE
        
        


      extractMOS(
        "spcpmos" spcpmos
        cpoly("G") pdiff("S" "D") nwell("Sub")
        spiceModel( "spcpmos" )
        flagMalformed
        cellView( "spcpmos ivpcell" )
      ); end extractMOS

        l_PMOS = measureParameter( length ( spcpmos inside cpoly ) 0.5u )
        w_PMOS = measureParameter( length ( spcpmos  coincident cpoly ) 0.5u )

        nameParameter( l_PMOS "l" )
        nameParameter( w_PMOS "w" )
        nameParameter( w_PMOS "effW" ); REQUIRED FOR SPECTRE

     In compare rule:

    I didn't edit parallelmerge, seriesmerge, compare  checkings. After these I wrote Like this

    schematic(
        genericDevice( emptySubckt )

        mosDevice( "spcpmos" ( "D" "G" "S" "Sub" ) "w" "l" )
        mosDevice( "spcnmos" ( "D" "G" "S" "Sub" ) "w" "l" )
     

        )

      layout(
        mosDevice( "spcpmos" ( "D" "G" "S" "Sub" ) "w" "l" )
        mosDevice( "spcnmos" ( "D" "G" "S" "Sub"  ) "w" "l" )


        )
      mergeParallel( "spcpmos" merge parallelMOS )
      mergeParallel( "spcnmos" merge parallelMOS )
      mergeSeries( "spcpmos" noMerge )
      mergeSeries( "spcnmos" noMerge )


     compareParameter( "spcpmos" compareMOS )
      compareParameter( "spcnmos" compareMOS )

    ) ;end avCompareRules

    I got 4 nets and 4 devices errors for INVERTER. And parameters errors are not showing in errors report but in layout parameter are diferent from schematic. 

    • Post Points: 20
  • Tue, Jun 12 2012 5:21 PM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,051
    • Points 15,990
    Re: Help on LVS rule files Reply

    Hi Sarvani

    Would you please start a new thread for your LVS issue? It would help all our forum readers in differentiating the various issues which you are having. : )


    Thanks
    Quek

    • Post Points: 20
  • Wed, Jun 13 2012 3:55 AM

    • Sarvani
    • Top 75 Contributor
    • Joined on Mon, Mar 12 2012
    • VIZAG, Andhra Pradesh
    • Posts 112
    • Points 1,920
    Re: Help on pcell code Reply

     Hi all,

             I got solution for LVS problem from Quek. And thank you once again Quek. And I have another doubt on pcell. I have different pcells with different options. Can I saw the code for constructing that pcells? If possible how.

    Thank you.

    • Post Points: 20
  • Wed, Jun 13 2012 4:37 AM

    Re: Help on pcell code Reply

    I have no idea what you're asking. If these are pcells which you created yourself (e.g. from the sample pcells), then yes, you have the code. Or if you wrote them yourself. But if they are from a foundry PDK, almost certainly you can't see the code.

    Your question is extremely unclear as to what the problem actually is, or what you're trying to do.

    Andrew.

    • Post Points: 20
  • Wed, Jun 13 2012 10:18 PM

    • Sarvani
    • Top 75 Contributor
    • Joined on Mon, Mar 12 2012
    • VIZAG, Andhra Pradesh
    • Posts 112
    • Points 1,920
    Re: Help on pcell code Reply

    I mean code for pcells which are from foundary PDK.  And is there any document in install directory which tells about construction of PDK

    • Post Points: 20
  • Mon, Jun 18 2012 3:58 AM

    Re: Help on pcell code Reply

    You won't be able to see the foundry's pcell code unless they choose to let you see it. You could always ask them...

    For your second question,

    http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=dt;q=cic_pdks/PRD_Methodology_Guide_version_2.pdf
    • Post Points: 20
  • Tue, Jun 19 2012 9:47 PM

    • Sarvani
    • Top 75 Contributor
    • Joined on Mon, Mar 12 2012
    • VIZAG, Andhra Pradesh
    • Posts 112
    • Points 1,920
    Re: Help on pcell code Reply

     Thankyou Andrew,

                                  My source link ID is expired. I didn't able to go with grace period also.. Is the documentation present in my install directory?

    Thankyou,

    sarvani

     

    • Post Points: 20
  • Wed, Jun 20 2012 2:19 AM

    Re: Help on pcell code Reply

    Sarvani,

    No, it's only on Cadence Online Support.

    Andrew.

    • Post Points: 20
  • Thu, Jun 21 2012 9:52 PM

    • Sarvani
    • Top 75 Contributor
    • Joined on Mon, Mar 12 2012
    • VIZAG, Andhra Pradesh
    • Posts 112
    • Points 1,920
    Re: Help on pcell code Reply

     Thank you verymuch Andrew.

    • Post Points: 5
Page 1 of 1 (13 items)
Sort Posts:
Started by Sarvani at 04 Jun 2012 01:49 AM. Topic has 12 replies.