Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

LVS error on transistor size mismatch

Status
Not open for further replies.

abcyin

Full Member level 4
Joined
Apr 15, 2005
Messages
236
Helped
12
Reputation
24
Reaction score
3
Trophy points
1,298
Activity points
2,855
Hi, all,

I got some error when I run LVS check, the transistor size extracted from layout is very close to the size from the schematic, but they are actually different with number of fractions, as shown in the following figure, could anyone tell me how to solve this problem, thanks in advance!

IMG_20140731_095751[1].jpg
 

Hi abcyin

This can happen under various circumstances most typically when there is a jog on the gate (45deg turns) used in commercial std cells to increase density.

The simplest option is to ignore it or better verify that these little violations are not masking important ones by temporarily increasing the tolerance (see TRACE PROPERTY command in calibre manual)
 
  • Like
Reactions: abcyin

    abcyin

    Points: 2
    Helpful Answer Positive Rating
Hi abcyin

This can happen under various circumstances most typically when there is a jog on the gate (45deg turns) used in commercial std cells to increase density.

The simplest option is to ignore it or better verify that these little violations are not masking important ones by temporarily increasing the tolerance (see TRACE PROPERTY command in calibre manual)

Thanks for your kind reply, the error is actually due to the mosfets in std cells, but could you pls tell me how to increase the tolerance, do you mean I have to modify the rule file, but how to?
 

There are various options to achieve that depending on how the rule file is set up:
- you might simply have to define or redefine an internal calibre variable
- you might have to add SVRF commands in the inlude section
- you might have to change the rule file

In any case you'll have to look that up in Calibre manual under TRACE PROPERTY
 

... could you pls tell me how to increase the tolerance, do you mean I have to modify the rule file, but how to?

You didn't reveal your LVS tool. In diva (resp. assura) special procedures were used, e.g. see below:

Code:
procedure(compareMOS(layMos schMos)
  prog(nil
    unless( and(layMos->w schMos->w layMos->l schMos->l)
      sprintf(errorC
	  "Nil parameter: w:%g l:%g (layout) w:%g l:%g (schematic)"
          layMos->w layMos->l schMos->w schMos->l)
          return(errorC)
    )

    when(abs(layMos->w - schMos->w * schMos->m) > 0.01 * schMos->w * schMos->m
    && abs(layMos->l - schMos->l) > 0.001 * schMos->l
        sprintf(errorwl
	    "Gate w & l mismatch : total w:%g l:%g (layout) w:%g m:%g l:%g (schematic)"
        float(layMos->w) float(layMos->l)
        float(schMos->w) float(schMos->m) float(schMos->l)) 
        return(errorwl)
    )
    when(abs(layMos->w - schMos->w * schMos->m) > 0.01 * schMos->w * schMos->m
        sprintf(errorw "Gate w mismatch: total w:%g (layout) w:%g m:%g (schematic)"
        float(layMos->w) float(schMos->w) float(schMos->m) )
        return(errorw)
    )
    when(abs(layMos->l - schMos->l) > 0.001 * schMos->l
        sprintf(errorl
	"Gate length mismatch: %g layout to %g schematic"
        float(layMos->l) float(schMos->l))
        return(errorl)
    )
    return(nil)
 

Hi erikl

The tool is clearly MGC Calibre

I just cannot solve his problem w/o making sure he owns a manual...
 

There may be (have seen, in other tools' decks) a tolerance you
can specify either globally or per-rule (although you might not
be given access to the run-set, you may be able to edit a copy).

Alternatively, change your schematic to what the layout extract
is claiming to find; if the W:W difference is as trivial as you claim,
then that should not hurt anything.
 
  • Like
Reactions: abcyin

    abcyin

    Points: 2
    Helpful Answer Positive Rating
Thank you all, I solved this problem by changing trace property in the LVS rule.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top