Printing from Virtuoso (or printing GDSII)

Discussion in 'Cadence' started by Manuel Koch, Oct 15, 2004.

  1. Manuel Koch

    Manuel Koch Guest

    I have a problem creating good printouts from Virtuso's layouts for
    documentation porposes.

    I want vector graphics output OR high resolution bitmap. The problem
    with Cadence is that their printing service produces a horrible
    mixture of both.
    If you have one of the following outputs set up:

    - postscript (1,2): you get the outlines of polygons as a vector
    graphic and the fill patterns as low-res bitmaps; unfortunately the
    fill patterns are not clipped to their corresponding polygons but
    merged with all layers and cut in ‘larger squares' afterwards. With
    the :residentfonts: option text is preserved as text, but each letter
    as a separate object, so you cannot change the size or shape of text
    afterwards.
    - hpgl: you get only the polygon outlines, no fill patterns;
    unfortunately shapes are merged, clipped and stacking orders do no
    longer correspond to the drawing layers.

    The best way seems to be to export a GDSII stream and use a third
    party utility.


    So far I tried:
    __________
    sfviewer 3.5 http://www.nathaniyer.com
    Does not preserve colour during export or clipboard-copy. No custom
    fill patterns.
    __________
    GDSII Viewer 1.58b ()
    Works fine so far, layer stacking order is messed up though. This
    could be fixed in Adobe Illustrator (or similar) afterwards, but is
    time consuming.
    Perhaps I create a script for that…
    I have no URL, but I can send you that program (+source) on request.
    __________
    SoC GDS Seduction
    http://www.dolphin.fr/medal/socgds/socgds_free_overview.html
    Does not allow you to print or export graphics.




    Do you have any suggestions what else I can try?
     
    Manuel Koch, Oct 15, 2004
    #1
  2. This is an unfortunate aspect of how display stipples are defined. I,
    too, have been less than pleased with the resulting output.

    I can think of a number of fixes, but none are that simple:

    1. Allow the display data to define both a bitmap and a
    Postscript-defined pattern. Then your fill patterns are defined in the
    ideal formats for both screen and paper. Downside: requires more work
    for the user.

    2. Allow the user to specify how much the bitmap is bloated. Downside:
    very hard to make this look right.
    I am seeing some oddities with the way we draw polygons and conics, but
    the resulting output looks correct. Are you seeing the same?

    At any rate, we probably should be clipping the polygons. I'll see if I
    can find out why we're not.
    Hm... this I'm not seeing. I put a label, "This is a label", on my
    layout; I see the following Postscript:

    1 rfta save 0 /Courier findfont
    140 90 0 rfsc
    (This is a label) rft

    (Just to make sure... you've spelled the option as :residentFonts: ?)

    Can you describe how to make a small testcase which exercises this?
    Unfortunately, I have no way of testing HPGL output here in Pittsburgh,
    so I can't comment on this.
    Another route (which I might try out this afternoon) is to write a SKILL
    script which generates Postscript directly from the objects on the
    layout. It's about a week's worth of effort if you're a SKILL and
    Postscript expert, much longer otherwise.

    Anyway, I will ping the CAT folks (who are in charge of plotting
    services) on these issues.

    Thanks,
    Dave
     
    David Cuthbert, Oct 15, 2004
    #2
  3. Manuel Koch

    fogh Guest

    Dave,

    I would like to generate EMF files from (simple) schematics or waveforms. How could I do this in skill ? (I hope it would be cleaner than from eps to emf).
     
    fogh, Oct 15, 2004
    #3
  4. Manuel Koch

    Manuel Koch Guest

    Hi Dave,
    thanks for the detailed reply.
    How exactly would I do this? The documentation of the display resource
    file shows only how to create bitmap patterns.
    Could you please give me an example how to define a postscript fill
    pattern?
    The polygons are correct. But if plot HPGL or remove the fill patterns
    from postscript afterwards it is very time consuming to fill these
    polygons with nice patterns (in Illustrator).
    I didn't actually look into the ps file, I just tried to change the
    text in Illustrator which failed to work. I will have a look at that
    issue again and report back here. Maybe I misspelled the
    resident-fonts option.



    Writing a SKILL tool to export to postscript directly would be nice
    (and much appreciated by many Cadence customers), but I do not have
    any experience with SKILL or postscript.



    The PNG-Output Roger Light suggested works actually quite good. I
    still need to fine-tune the printing resolution and plot-scale (which
    both have an effect on pattern-density)

    regards,
    Manuel
     
    Manuel Koch, Oct 15, 2004
    #4
  5. Hm. Not easily. The problem is that EMF (Windows Enhanced Metafiles)
    is a binary format, and SKILL generally does not handle binary strings
    well (specifically, it won't pass NUL characters through).

    What platform are you running on? Let me see if I can't get something
    written this weekend. There have been more than a few times when I've
    needed to get a picture of a schematic into a paper, and it's always
    been a bit hairy.
     
    David Cuthbert, Oct 15, 2004
    #5
  6. Ah, sorry... I was speculating on how we could fix it (inside Cadence).
    There's no way to do this (as of yet).
    Ok, now I understand the issue here. Basically, because we're not
    outputting something more standard, other tools are having issues
    reading the Postscript.
    It's possible that our resident font code is drawing each character
    individually in order to make the output text roughly the same size as
    the DFII plotter fonts.
    Heh, ok, I hear you guys loud and clear. :)
     
    David Cuthbert, Oct 15, 2004
    #6
  7. Manuel Koch

    gennari Guest

    I wrote a research version of a GDSII viewer that has image capture
    capabilities at:
    http://cuervo.eecs.berkeley.edu

    Click on the "New GDS Viewer by Frank Gennari".

    There are a number of know bugs which may or may not be fixed eventually,
    but it should be able to generate JPEG, RAW, and Windows BMP images of
    arbitrary resolution with stipple patterns, even for large GDSII files.

    Frank
     
    gennari, Oct 15, 2004
    #7
  8. Manuel Koch

    fogh Guest

    :)
    (warning: do not read further unless your immune system can withstand
    repeated evocations of "microsoft" and "windows" )

    I can use HPUX/HPPA, various linuces, various windows, solaris 8. But
    only monday. At home I can use windows XPpro and linux. Concurrently,
    thanks to vmware.

    I suppose you want to use a windows print queue, some service or RPC,
    so that the EMF binary is actually generated by a windows machine. That
    would be a fine solution too. You can find on MSDN how to adress the EMF
    API, for instance this
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/wingdistart_9ezp.asp
     
    fogh, Oct 16, 2004
    #8
  9. Manuel Koch

    fogh Guest

    Frank,

    I can see you are using openGL in a less (ahem...)blunt way than me. I
    was just making C functions call from the SREFs, and that is quite
    annoying if the end-user needs a compiler to just run the gds viewer.
    How did you take advantage of the structures in your viewer ? Using
    openGL's display lists ?
    (BTW: are you going to put yet what can be opened on sourceforge or
    savannah ?)
     
    fogh, Oct 16, 2004
    #9
  10. Manuel Koch

    fogh Guest

    Dave,
    I just had a look in the source of openoffice (v 1.1 ) and found an
    EMF writer class under ./svtools/source/filter.vcl/wmf/ and a GDI
    implementations (if you want to get rid of the need for a windows
    machine) under ./vcl/source/gdi/

    It is a shame there is no documented way to call external C functions
    from skill. Could that EMF writer class be turned into some kind of
    interpreter daemon that waits for skill to send GDI-like commands to it ?
     
    fogh, Oct 16, 2004
    #10
  11. Actually, I would prefer to write out the file directly. It's a bit
    tricky to talk to machines running different operating systems at N
    different sites which all have different IT policies...

    I did find the EMF format documentation, and will take a look at the
    OpenOffice source you pointed to. Thanks.

    Dave
     
    David Cuthbert, Oct 18, 2004
    #11
  12. Right, the C-SKILL interface is internal only -- it would, at present,
    be a maintenance nightmare if arbitrary C libraries were allowed to hook
    in. This is one area I and a number of others in CIC are keenly
    interested in fixing. It will take some time, though.

    Unfortunately, there's no easy way to hook arbitrary components together
    on Unix platforms (ala Windows COM). We are aware of XPCOM, and did
    have an internal project to replicate COM (in the pre-XPCOM days), but
    those efforts have not met with much success/enthusiasm/traction/... .
    As much as I personally dislike Java, this may be a good application for it.
     
    David Cuthbert, Oct 18, 2004
    #12
  13. The layout software package I offer has a printing option. The
    output can be a PNM file. PNM's can be easily
    translated to jpeg if desired. The PNM file is a pure
    fairly high resolution bitmap. (about 3k pixels in each
    direction). If you'd like to give it a try let me
    know & I'll set you up with an eval key.

    Mike Stabenfeldt
    http://www.stabie-soft.com
     
    Mike Stabenfeldt, Oct 19, 2004
    #13
  14. Manuel Koch

    gennari Guest

    My layout viewer is quite complex. It loads the GDSII file into a compressed
    hierarchical database and traverses the hierarchy to find visible cells to
    display. The shapes are all drawn with glVertex calls and consist of
    combinations of points, lines, quads, triangles, triangle strips, and
    triangle fans. The polygons are decomposed into my internal display list
    format, where level-of-detail algorithms are used to render the primitive
    shapes. The screenshot images are generated directly from tiled frame buffer
    images, which are produced by OpenGL typically through some hardware support
    from the video card.

    The source code for the research version is currently available from my
    research group to SRC companies only (since my research was sponsored by
    SRC), and by next summer will be available to non-SRC companies as well. My
    company is currently working on an improved version of this code, but it may
    not be officially released. The source code of the new viewer is part of a
    commercial product that is under development and therefore cannot be
    released.

    Frank
     
    gennari, Oct 22, 2004
    #14
  15. Manuel Koch

    fogh Guest

    Thanks for the background info.
     
    fogh, Oct 25, 2004
    #15
  16. Manuel Koch

    Manuel Koch Guest

    Hi Dave,
    did you mannage to get write skill code for that issue?

    regards,
    Manuel
     
    Manuel Koch, Nov 5, 2004
    #16
  17. Manuel Koch

    jeroen Guest

    With the :residentfonts: option text is preserved as text, but each
    letter
    If you use our ps2vector software to batch convert such PS output to
    EPS or another vector format (e.g. SVG, WMF, CGM, MIF), it will
    automatically merge individual characters into words and words into
    one-line text strings in the output - so you can more easily edit the
    text and its attributes, while saving filesize. Users of Cadence and
    other CAD/EDA systems have used it since 1995 to bring graphics output
    into their documentation and publishing systems in scalable and
    editable vector formats. Available on Windows, Linux and UNIX
    platforms.

    You're welcome to send me a sample (E)PS file to give it a try.

    Jeroen Dekker
     
    jeroen, Jan 13, 2005
    #17
  18. Manuel Koch

    jeroen Guest

    I want vector graphics output OR high resolution bitmap. The problem
    We also have a ps2bitmap module to render the PS file to a TIFF, GIF or
    JPEG raster image file at any dpi resolution or color depth.
    Jeroen Dekker
     
    jeroen, Jan 13, 2005
    #18
  19. Manuel Koch

    jeroen Guest

    I would like to generate EMF files from (simple) schematics or
    Generating EMF straight from GDI is obviously only possible on Windows.

    Have you tried our ps2vector software to convert EPS to EMF? Some
    pretty big electronics manufacturers are pretty happy with it, and
    chose us over open-source alternatives. Curves stay curves, text stays
    text, line styles are preserved, images are preserved, cropping is
    preserved. Since it takes (E)PS as input, it can be used in conjunction
    with Cadence on any platform.
    Something ps2vector can do automatically during conversion. It does
    Neat Tricks, developed for users like y'all.

    Jeroen Dekker
     
    jeroen, Jan 13, 2005
    #19
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.