• 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. LVS not running

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 144
  • Views 17267
  • 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

LVS not running

Sarvani
Sarvani over 13 years ago

Hi all,

1)         I got following error in log file when I run LVS. Is there any need of schematic change or Compare rule file change.

         ** Parallel MOS combined:
  1st MOS: L = 3e-08 W = 4e-07 m = 1
  2nd MOS: L = 3e-08 W = 2e-07 m = 1
  Resulting: L = 3e-08 W = 6e-07 m = 1
*Error* times: can't handle ("1" * 6e-07)
*ERROR* User supplied SKILL routine failed: '(compareMOS)'. SKILL interpreter could not execute this SKILL function.
    Probably usage of the function is not correct. Try to revise the syntax:
    (compareMOS('(nil l 3e-08 w 6e-07 m 1) '(nil m "1" l 3e-08 w 6e-07)))


*****  nvn fork terminated abnormally  *****\

In compare rule file for comparision of mos devices:

  procedure( compareMOS( layPlist, schPlist )
    prog( (missingLay missingSch)

; IF m (m factor) IS MISSING, SET IT TO 1

      when( !layPlist->m  layPlist->m = float(1) )
      when( !schPlist->m  schPlist->m = float(1) )

; IF W or L IS MISSING GENERATE A PARAMETER MISMATCH
            
      foreach( prop '( w l )
        unless( get( layPlist prop )
          missingLay = cons( prop missingLay )
        ) ;unless
        unless( get( schPlist prop )
          missingSch = cons( prop missingSch )
        ) ;unless
      ) ;foreach

; REPORT ALL MISSING PARAMETERS

      when( ( missingLay || missingSch )
    when( missingSch
       sprintf( msg1 "Sch MOS missing parameters: %s"
             buildString( missingSch ","))
    ) ;when
    when( !missingSch
       sprintf( msg1 "Sch MOS W/L/m %g %g %g"
     float(schPlist->w) float(schPlist->l) float(schPlist->m) )
    ) ;when
    when( missingLay
       sprintf( msg2 "Lay MOS missing parameters: %s"
         buildString( missingLay ",") )
    ) ;when
    when( !missingLay
       sprintf( msg2 "Lay MOS W/L/m %g %g %g"
     float(layPlist->w) float(layPlist->l) float(layPlist->m) )
    ) ;when
    sprintf( msg "Err: %s ; %s" msg1 msg2 )
    return( msg )
      ) ;when
 
;  SETTING VARIABLES

      layM = layPlist->m
      layW = float( layM * layPlist->w )
      layL = float( layPlist->l )
      schM = schPlist->m
      schW = float( schM * schPlist->w )
      schL = float( schPlist->l )
      
      diffW = 100 * (abs( layW - schW ) / schW )
      diffL = 100 * (abs( layL - schL ) / schL )
      Werr  = nil
      Lerr  = nil
      
      when( diffW > mosW_lvsTol Werr = t )
      when( diffL > mosL_lvsTol Lerr = t )

; IF NO ERRORS RETURN NIL

      when( !Werr && !Lerr  return(nil) )
         sprintf( msg "Err: MOS Sch L/W %g %g; Lay L/W %g %g"
          schL schW layL layW  )
        return( msg )

   ) ; end prog
  ) ; end compareMOS


; ************************************************************************

 

2) I need virtual connection set up when I run LVS. I mean when we add same labels or pins for two nets in layout then it will automatically take that as same net.

 

Thank you,

sarvani.

 

  • Cancel
Parents
  • Quek
    Quek over 13 years ago

    Hi Sarvani

    One more point, this question should be posted to the CIC forum and not this SKILL forum. : )

    Best regards
    Quek

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

    Hi Sarvani

    One more point, this question should be posted to the CIC forum and not this SKILL forum. : )

    Best regards
    Quek

    • 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