layoutXL vs. mosaics

Discussion in 'Cadence' started by danmc, Oct 12, 2005.

  1. danmc

    danmc Guest


    I have a problem which I've run into a few times in the past.

    I have a cell which is a very big MOS capacitor. In the schematic it
    is a single NMOS with W=100um, L=5um, Fingers=10, Multiplicity=200

    So when I fire up layoutXL, I end up with 200 devices which are 100/5
    and each of the devices is fingered into 10 fingers. My problem now is
    that is is a major pain to line them all up nicely in an array because
    even with the 'align' function, I have 200 transistors to click on and
    if I decide to change the spacing between cells, it gets all messy.

    My question is then, is there a way to get layoutXL to create a 10x20
    mosaic of these transistors which I can move around as a single object
    and easily change the spacing on?

    I haven't figured out how to keep layoutXL happy in terms of device
    correspondence when I try to use a mosaic.

    danmc, Oct 12, 2005
    1. Advertisements

  2. The problem is that mosaics don't have instTerms - and so the connectivity
    to each member of the mosaic can't be maintained. I expect you could do it as a
    one off, and then flatten the mosaic - but that probably doesn't help you here.

    Or you could write a pcell which takes care of the stepping and repeating inside
    and has the rows, cols, spacing as parameters. But then you'd have to get
    the correspondence tying up, and you'd probably want the extractor depth set to
    1 or more.

    None of which are particularly satisfactory solutions. I wonder whether NeoCell
    would help here (I'm not sufficiently knowledgeable with NeoCell to be able to
    give you an answer here - perhaps somebody else in the news group is?)


    Andrew Beckett, Oct 17, 2005
    1. Advertisements

  3. The lack of connectivity information in mosaic makes them difficult to
    use in VXL and I assume here that it prevents to use
    Connectivity|Update|Device Correspondance. Wrapping the mosaic in a
    normal CV with the external connectivity should do the trick. In your
    capacitor case, that should not be difficult. You could even define a
    PCELL for that and make VXL use it automatically (BTW, there is
    perhaps already a QCELL).

    Jean-Marc Bourguet, Oct 18, 2005
  4. danmc

    Tim Guest

    The only way I have been able to do this is to create a cell that
    contains the mosaic and add the correct pins to it. I replace the
    pcells that XL placed with the new cell. This works until it is ECO
    time then you just have to ignore/delete the new components XL places
    for that one.

    Tim, Oct 18, 2005
  5. danmc

    fogh Guest

    Hi Dan,

    you also have an option of grouping without using a mosaic. Look for
    fogh, Nov 6, 2005
  6. And you can also use rodAlign() for more flexible level-0 alignments. But would
    need SKILL code to create the alignments. The trouble then is changing the
    spacing - what you would do is to take all the aligned objects and recreate the
    alignments again with different separations (again with SKILL). Not as efficient
    as a mosaic, but it does have the benefit of being individual devices with usual

    Andrew Beckett, Nov 9, 2005
  7. danmc


    Jun 4, 2021
    Likes Received:
    what is this mosaic function ???
    vasu, Jun 4, 2021
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.