• 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 Design
  3. LVS error concerning multiplicity of transistors + IBM ...

Stats

  • Locked Locked
  • Replies 15
  • Subscribers 126
  • Views 20592
  • 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 error concerning multiplicity of transistors + IBM cms9flp

jimito13
jimito13 over 15 years ago

Hello everyone,

I came up with the following LVS error concerning all transistors with multiplicity factor m (NOT with just fingers and no multiplicity factor in contrary) in my design.LVS debug environment details give the following description :

FET1comp has mismatched parameter(s):"w" layout: 1.5e-05 schematic: 7.5e-06

Let me be more specific.For the above description,in my design i have a transistor with Wtotal=15um and multiplicity factor m=2 (thus 2 fets in parallel with 7.5um width each),well,assura can make the correct computation for the layout and it shows the actual Wtotal but it cannot estimate the correct value for the Wtotal for the side of the schematic (it seems considering m=1 always independent from the value i have set in the fet properties).Is there any way to get rid of this error (with some switch under Modify avParameters menu for example) or i should make any change to the compare rules file to the respective funtion?I show you the properties of the nfet :

Width Single Finger : 7.5u
Width All Fingers :7.5u
Fingers :1
Multiplicity :2

Thus,Wtotal=15u as i mentioned earlier.

The following lines contain the part of the compare.vldb file with the respective section for the FET1comp function :

procedure( FET1comp(m1, m2)
let((paraminfolist )
paraminfolist='(
("l" "abs_comp" "if(BentGate<0.5 then hgp else hgp7)")
("w" "abs_comp" "if(BentGate<0.5 then hgp else hgp7)")
)
unless(getValCase(m1 "m") m1->m=1)
unless(getValCase(m2 "m") m2->m=1)
unless(getValCase(m1 "idg") m1->idg=0)
unless(getValCase(m2 "idg") m2->idg=0)
if( (m1->idg && abs_comp(m1->idg 0 0.5)) then
m1->w = getValCase(m1 "w") * getValCase(m1 "m") )
if( (m2->idg && abs_comp(m2->idg 0 0.5)) then
m2->w = getValCase(m2 "w") * getValCase(m2 "m") )
unless(getValCase(m1 "bentgate") m1->bentgate=0)
unless(getValCase(m2 "bentgate") m2->bentgate=0)
BentGate = m1->bentgate + m2->bentgate
genericcomp("FET1comp" m1 m2 paraminfolist)
)
) 

I must say that i use IBM cms9flp pdk finally if somebody didn't notice that on the post subject.Also Cadence IC 6.1.3 under opensuse 11.1 operating system 64-bit.

Can somebody give me a helpful hint how to solve this problem?Changing all transistor to bus will be a painful procedure for me and i want to avoid it if possible.

Thanks in advance for any helpful answer and if more clues are needed ask me to post them here.

  • Cancel
  • Quek
    Quek over 15 years ago

    Hi jimito

    This indeed seems like a small bug in the compare rules. IBM pdks have long compare rules file and so I think ultimately you might have to request for more support from your local IBM or Cadence support centre.

    Would you please check the cdf info for the cell to see if the multiplicity property is really "m" or some other name (e.g. mfac, mf, etc)?

    In ciw, go to "Tools->CDF->Edit CDF".

    Thanks
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jimito13
    jimito13 over 15 years ago

     I checked the menu you suggested but i didn't find any information...

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 15 years ago

    Hi jimito

    Suppose the multiplicity problem is for a schematic cell named "nfet123" in library "myTechLib". Would you please help to execute the following cmd in ciw and upload the output file "cell.cdf"? Please use the upload function, not cut and paste.

    cdfDump("myTechLib" "cell.cdf" ?cellName "nfet123" ?level 'base)

    Please also provide the following info:
    terminal>assura -W
    terminal>virtuoso -W

    Please also upload the "design.vlr" file in the lvs run directory.

    Thanks
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jimito13
    jimito13 over 15 years ago

     Hello Quek,

     At first thanks for your interest to my problem.I run the command in ciw but the cell.cdf output file is empty(!),so there is no reason to upload.What can we see from this file if it had something in it?

     The file with .vlr extension is IBM confidential and i can't post it or upload it anywhere...Guide me with a similar file that apparently you have as well and i will give you the feedback for the thing that we must know from that file.

     Output from the 2 commands in terminal :

     IC6.1.3.500.13

    3.2_USR2_HF11

    Regards

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 15 years ago

    Hi jimito

    I am trying to find out the actual cdf parameter name for the "multiplicity" parameter in the properties form. Not very sure why your cdfDump is empty. : )  Would you please help to do the following?

    a. In the ciw (this is the first window that shows up when Virtuoso starts up), go to "Tools->CDF->Edit CDF"
    b. Use the "Browse" button and select the transistor that has the problem.
    c. The cdf form shows up
    d. In the top right hand corner, enter a filename and press the "CDF dump"

    Hopefully the gui will be able to help you generate a proper file. Please upload the file.

    Thanks
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jimito13
    jimito13 over 15 years ago

    Quek,

    I did the procedure you mentioned above but at first i am not given the ability from the gui to choose the transistor that has the problem but i can choose the schematic or layout view,so doing this the cell.cdf file has some parameters with "nil".Doing what you suggested for a single nfet of the cms9flp library,the actual cdf parameter name for the "multiplicity" parameter is "m".What is exactly the CDF??

     And a final and a little bit irrelevant question with the above.Virtuoso makes sometimes a sound like a beep.I know how to shut it down,but i want to do it permanently...Do you know a command that i can write in a file (is this file .cdsinit?) to do it?

     Thanks in advance.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tkhan
    tkhan over 15 years ago

    jimito13 said:
    And a final and a little bit irrelevant question with the above.Virtuoso makes sometimes a sound like a beep.I know how to shut it down,but i want to do it permanently...Do you know a command that i can write in a file (is this file .cdsinit?) to do it?

     

    I do this in .cdsenv, but you can easily change the syntax if you want it to be in .cdsinit:

    ui beepVolume int -100
     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 15 years ago

    Hi jimito

    CDF refers to Component Description Format. It contains the parameter that your instances has and controls which parameters go into the netlist. Since "multiplicity" does indeed has parameter name "m", it is not a matter of indentifying a custom mfactor name to Assura. It would be quite tough to debug without a testcase so it would be good if you can contact your local Cadence/IBM support for this problem.

    Best regards
    Quek


    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jimito13
    jimito13 over 15 years ago

    Hello Quek,

    Thank you very much for your effort to help me with this problem.This is the last step,to contact my IBM representative...Hope they have a solution.

    Best Regards,

    Jimito13

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jimito13
    jimito13 over 15 years ago

     Well,i contacted IBM and the first answer was this :

    "In layout, if the pcell has multiplicity parameter set to >1, then there will be a layer called MULTI DEV surrounds the pcell. This will prevent the LVS from combining devices in the layout"

     I replied to them saying that i can't find that layer anywhere and asked them to guide me to find it and the final anwer was this :

    "It appears that in cms9flp Assura VLDB mode LVS does have some problems recognizing multiplicity from the schematic side. Assura CDL mode and Calibre LVS will both recognize multiplicity properly. I will investigate further on the Assura VLDB mode LVS. Please use CDL mode LVS or Calibre LVS if you can"

    The problem is the following,trying to use CDL the error vanishes but others concerning devices and nets come up that don't make sense since my testcase is one nfet so if there was such an error it could be visible easily.Other problem is that we don't have calibre and the time to learn how to use it until the tape-out that is in a few days!

    Finally i decided that i must change to bus mode naming for the transistors and the problem is solved partially since some nets get strange name like net33<0> and i can't even check n' save my schematic...

    I am in desperate condition,please if somebody knows a way to get rid of this damn problem,let him do it,i will appreciate it.

    Thanks in advance.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

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