• 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. Help on pcell code.

Stats

  • Locked Locked
  • Replies 12
  • Subscribers 144
  • Views 18318
  • 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

Help on pcell code.

Sarvani
Sarvani over 13 years ago

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.

  • Cancel
Parents
  • Sarvani
    Sarvani over 13 years ago

     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. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Sarvani
    Sarvani over 13 years ago

     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. 

    • 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