• 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. How to make modgen always treat parallel transistors as...

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 126
  • Views 14688
  • 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

How to make modgen always treat parallel transistors as m-factor

Grover
Grover over 15 years ago

I'm using Modgen to create neat matched transistor structures, but there's one thing I don't understand about it. In our design kit, the transistors have no m-factor property, so I create multiples by specifying the instance names like "MN1<0:3>". Now when I add a pair of these to the Constraint Manager and run Modgen, then click on the Pattern Editor, the transistors will be displayed in any of three different ways:

A: MN0<0:3> (4)
B: MN1<0:3> (4)

or

A: MN0<0> (1)
B: MN0<1> (1)
C: MN0<2> (1)
D: MN0<3> (1)
E: MN1<0:3> (4)

or

A: MN0<0> (1)
B: MN0<1> (1)
C: MN0<2> (1)
D: MN0<3> (1)
E: MN1<0> (1)
F: MN1<1> (1)
G: MN1<2> (1)
H: MN1<3> (1)

Obviously, I want the first option, but often (usually?) I get the second or third. The only way to get rid of this is to completely delete all constraints, delete the offending transistors, place new ones with different names, and hope that this time it works correctly. Of course I can still make my matched layout if the transistors are not recognized as belonging together, but it's just extremely annoying to figure out what I should write down instead of ABBA-BAAB.

I noticed that there is an entry in Sourcelink that says that this should just work in 6.1.3.500.3 (I'm using 6.1.3.500.13), so could I be doing something wrong here?

  • Cancel
  • Quek
    Quek over 15 years ago

    Hi Grover

    I think perhaps you have not connected the bulk node of your schematic mos devices together. I am using IC614.501 and it works fine for me. I see M1<0:3> instead of M1<0>, etc.

    Best regards
    Quek

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

    Hi Quek, 

    The bulk nodes are connected together, as are the G,D and S. They have to be, because in the circuit there's only one symbol, and I connect only one line to it (not a bus or anyting).

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

    I thought that it might be because you have left it hanging. Would you please give this a try?

    a. Place an nmos instance MN<0:3>
    b. Connect D, G, S, B terminals to a pin each
    c. Now invoke modgen for this instance

    In the pattern editor, do you see MN<0:3> or MN<0>, etc. I did the above test and got the expected results. If you cannot reproduce my results, then it might be due to a bug in your version. Upgrading the version would then be the only choice.

    Please see the uploaded picture for my results.

    Best regards
    Quek
    • mytest (Small).gif
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Grover
    Grover over 15 years ago

    Hi Quek,

    If I follow your exact steps, the modgen works as expected: I get the same results as shown in your picture.

    However, I've also tried this:

    1. Place two transistors MN<0:3> and wire them up like a differential pair
    2. Connect pins to all terminals
    3. Select both transistors and create a modgen
    4. The modgen appears, and works correctly: it shows MN0<0:3> as A and MN1<0:3> as B.
    5. Cancel modgen and delete the constraint
    6. Select the right transistor, including its wires and pins, and drag (stretch) it a bit to the right
    7. Select both transistors and create a modgen again
    8. The modgen appears, and shows an incorrect list, as shown in the picture.

    In a real design, I drag my transistors around all the time, so if the problem is caused by moving transistors, then this would explain why it went wrong in my design.

    [edit] Click the picture to show it entirely, the modgen interface is on the right and gets cut off in the forum display

    • modgen.JPG
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 15 years ago
    Hi Grover

    I did as what you have described ... but I am still getting the expected results. : )  I guess now there is very strong motivation for you to upgrade to IC614 because you can resolve 2 problems with this upgrade.

    Best regards
    Quek
    • 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