Import a layout using Encounter

Discussion in 'Cadence' started by Konx, Jul 21, 2009.

  1. Konx

    Konx Guest

    Hi all.

    I have the following problem:

    I have a full-tested design (called Pixel) in schematic version. After
    various simulations (with cadence Virtuoso) using testbenches, I am
    able to extract the verilog netlist of the Pixel. With this netlist, I
    run Encounter and I can import the design (basically, I import the
    netlist and a floorplan) and obtain the layout of this Pixel.

    Now, I have a "block" called 'Oscillator' that is NOT in the verilog
    netlist. This oscillator has is own schematic and his own layout, but
    in Cadence Virtuoso.

    The oscillator has to be connected with the Pixel. Obviously, it is
    simple to do this thing in a schematic.

    The question is: is it possible to import the layout of the oscillator
    in Encounter and connect it properly with the layout of the pixel? The
    point is that I can't use a schematic with Pixel and oscillator
    connected and then extract a netlist, because we want to use the
    Oscillator layout that we already have.

    I tried to read the encounter manual, and it seems to me that I have
    to import the Oscillator as a 'module', but the process is not clear.

    Someone know how to do? :)

    Thanks for help!

    Francesco.
     
    Konx, Jul 21, 2009
    #1
  2. Konx

    I-F AB Guest

    Hmm,

    I think you'd want to create a lef from the oscillator layout (it's
    somewhere in the docs, I haven't time to check - define blockage, pin,
    etc. ), layer mapping... & maybe a verilog file (or whatever netlist -
    I haven't come across any schematic to verilog work yet) from the
    schematic.
    Usually I hear the work being done is the other way round - Encounter
    design to Virtuoso.

    Best regards,
    I-FAB.
     
    I-F AB, Jul 21, 2009
    #2
  3. Konx

    Konx Guest

    Thanks for the answer!

    I think you're right, it should be simpler to export from Encounter to
    Virtuoso;

    the LEF file generation doesn't seem a simple process. I'll study both
    methods and see which is the best :)

    Francesco.
     
    Konx, Jul 21, 2009
    #3
  4. Konx

    Tim Guest

    Hi Francesco,

    I did this on a schematic block that contained 3 analog blocks laid
    out using VXL and 1 digital block that wasn't laid out. I Created
    abstract views of the 3 analog blocks using the Abstract Generator.
    One the abstract view is created you can then output a LEF file of the
    block. I then created a verilog netlist of the schematic the contained
    all 4 blocks. When I imported into Encounter I included the LEF files
    of the 3 analog blocks along with the standard digital library LEF. In
    the floorplan stage I moved the 3 analog blocks where I wanted them
    placed around the digital reference. Encounter placed the digital
    block standard cells and routed all their connections and the
    connections to the analog blocks.

    Note: The digital block was a transistor level schematic.

    Tim
     
    Tim, Jul 21, 2009
    #4
  5. Konx

    ilhan Guest

    Hi Francesco,

    First you need to generate a LEF file of the oscillator block, as
    other have also stated.

    Second, you need to write a new Verilog netlist in which you describe
    the connections between the oscillator and the rest of the design
    (=Pixel). This will be your top-level netlist. Naturally to do that,
    you need a simple Verilog netlist of the oscillator block, basically
    describing the input/output pins.

    Assuming that you don't worry about timing for now, you should then
    feed all these files to Encounter.

    Hope it helps.

    /Ilhan
     
    ilhan, Jul 22, 2009
    #5
  6. Konx

    Konx Guest

    [cut]

    Hi!

    At the end, I've been able to solve in a simple way the previous
    problem (just to explain: I reserved the correct space for the
    oscillator block in Encounter using the createObstruct command...so, I
    simply skipped the problem of importing the layout of the oscillator
    to encounter :D)

    Obviously, now I have another problem related to this ^^

    I have a complete design in Encounter of the Pixel block, and I want
    to export it to cadence virtuoso. Reading on internet and the help,
    I've seen that I have to export a GDSII file (basically, I can produce
    2 file: the outputStream called pixel_output_stream and the Map file
    streamOut.map).

    Now, I'm trying to import these file using File --> Import --> Stream
    in the CIW window of cadence.

    In the Stream File field I specify the path to pixel_output_stream,
    while I use the map file in the Layer tab that I can find clicking on
    option (here I can upload the map file).

    Obviously I specify even the tech library (cmrf8sf, Arti2009DM and
    others).

    then, I click Translate (I think this command generates the layout),
    and I receive an error (no write permission)

    Is the process correct? Am I missing something important?

    And, as a general question: the OpenAccess way to save the design,
    could be used to do the export-import process from Encounter to
    Virtuoso?

    Thanks in advance

    Francesco.
     
    Konx, Jul 31, 2009
    #6
  7. Konx

    Konx Guest

    Ok, let's be more specific now that I've tried some different things:

    I can import the design in Virtuoso, but still the final result is not
    correct; I have this error:

    ERROR (58): Failed to create the new layer purpose pair 'DIEAREA:ALL'.
    It will be skipped and all the shapes on this LPP will be dropped.

    I have this error 163 times, exactly the number of the Stream layer
    that I can see when I upload the streamOut.map file.

    The final result (in Virtuoso) is a design with correct shape and with
    all the cells (flip-flop, etc...), but with no routing between cells
    (but I did it in Encounter) and without supply and ground rings
    (again, I did it in Encounter).

    Suggestions?

    Francesco.
     
    Konx, Jul 31, 2009
    #7
  8. Konx

    I-F AB Guest

    Hi Francesco,
    Are you using OA (OpenAccess)? If so, I bellieve you don't need to
    stream out GDS (I haven't used OA yet).

    If you're using cdb (Cadence DataBase), you need to have 2 mapping
    files: 1 to stream out from Encounter & the other to stream in to
    Virtuoso.

    I suspect your having problem with the streaming part since only cells
    are shown but not routing layers (cell gds should already have
    diffusion, etc.).

    E.g. of stream out file:
    --------------------------------------------------------------------------------------------------------------------------------------------------------------
    METAL1 NET 1 0
    METAL1 SPNET 2 0
    METAL1 PIN 3 0
    METAL1 LEFPIN 4 0
    METAL1 FILL 5 0
    METAL1 VIA 6 0
    METAL1 VIAFILL 7 0
    METAL1 LEFOBS 8 0
    NAME METAL1/NET 9 0
    NAME METAL1/SPNET 10 0
    NAME METAL1/PIN 11 0
    NAME METAL1/LEFPIN 12 0
    VIA12 FILL 13 0
    VIA12 VIA 14 0
    VIA12 VIAFILL 15 0
    --------------------------------------------------------------------------------------------------------------------------------------------------------------

    E.g. of stream in file:
    --------------------------------------------------------------------------------------------------------------------------------------------------------------
    #Cadence Layer(M*foundry*) Layer Purpose Encounter Stream layer
    Stream Datatype
    viap1 drawing 1,2,3 0
    met1 drawing 4,5,6,7,8,9,10 0
    met1I drawing 11 0
    met1T drawing 12,13,14,15 0
    viam1 drawing 16,17,18 0
    --------------------------------------------------------------------------------------------------------------------------------------------------------------

    As you can see, some layers from Encounter were merged so they lose
    functionality in Virtuoso.
    BTW, these were from 2+ years ago when we were doing a quick fix. I
    don't think they've changed the format though.

    Best regards,
    I-FAB
     
    I-F AB, Aug 3, 2009
    #8
  9. Konx

    Konx Guest

    Hi.

    Thanks for your answer.

    I haven't tried the OpenAccess yet, maybe I'll try to see what happen
    using it.

    [cut]



    Ok, this streamOut file is generated by Encounter (I checked the file,
    and it looks like the one in your example).

    [cut]

    The problem is with this file. Do you know if I can find it somewhere?
    I mean, is it a file that is provided with the technology libraries,
    is something that should be generated by Encounter or Virtuoso, or is
    something that I have to generate by myself following some rules?

    Moreover: if I have these 2 map files, what file I need to specify in
    XStream? If you go to CIW --> File --> Import --> Stream and click on
    Option and then select tha Layout tab, here you can specify a map
    file. At the moment I'm uploading the streamOut.map generated by
    Encounter. Do I have to specify the other one (supposing I'll be able
    to find it out)?

    Sorry if these are stupid questions, but for me these are all new
    things :)

    Anyway, thanks again for help!

    Francesco.
     
    Konx, Aug 3, 2009
    #9
  10. Konx

    I-F AB Guest

    Hi Francesco,

    These files were 'hand-made' text files. Both mapping files needed as
    far as I know.
    :)
    There's documentation somewhere (look for mapping & streaming).
    Gotta go, so afraid can't help you for now.

    Best regards,
    I-FAB
     
    I-F AB, Aug 3, 2009
    #10
  11. Konx

    Tim Guest

    We stopped using the gds out from Encounter and streamin to Vituoso.
    We are now using DEF out from Encounter and Import DEF into Virtuoso.
    This works well as long as your standard cell library has abstract
    views. You just need to select all the cells and switch the views to
    layout once in Virtuoso. This also creates the pins for you and if you
    write a macro that loops through the cells and adds the | character to
    the front of the instance name it also makes the cell VXL compliant.
    Minor changes can now be made easier by using VXL.

    Tim
     
    Tim, Aug 3, 2009
    #11
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.