AUTOMATIC LAYOUT

Viewpoints

This tutorial requires the creation of the following viewpoints:

  1. a viewpoint of your 8-bit multiplexer component for QuicksimII using the script:

      ~cs755-1/public/html/mentor/qsim_prep

    This will create a viewpoint called qsim.vp.

  2. another viewpoint of the 8-bit multiplexer component for the IC Blocks place-and-route tool using the script:

      ~cs755-1/public/html/mentor/auto_prep

    This will create a viewpoint called auto.vp.

  3. and still another viewpoint of the 8-bit multiplexer component for the IC Trace Layout-Versus-Schematic tool using the script:

      ~cs755-1/public/html/mentor/lvs_prep

    This will create a viewpoint called lvs.vp.

AutoFloorplan, AutoPlace and AutoRoute

We will now use IC Blocks to automatically place and route the 8-bit mux design. Note that as you work through this part of the tutorial there are many options that you may choose along the way to layout completion. This exercise will walk you through a relatively simple, direct path to an automatically placed and routed layout. You are encouraged to explore the tool and experiment further as you approach larger layout tasks.

The IC Graph tool is the main entry point in the IC Station environment. To invoke IC Station from the unix command prompt, simply type ic.

  1. You first have to select the Process and the Design Rules that will be used in the layout. From the menu at the top of the screen, select File->Process->Load. In the form that will appear, type $MGC_HEP/technology/ic/scmos and the SCMOS process will be specified. Then, select File->Load Rules, and type $MGC_HEP/technology/ic/scmos.rules in the form that will appear. This loads the corresponding set of Design Rules that we will use in this class.

  2. Select MGC->LocationMap->SetWorkingDirectory and specify a working directory for the layout design process. Note that this process generates multiple report files, and it is usually a good practice to have a separate directory for each layout design.

  3. Select Cell -> Create from the menu on the right hand side of the screen. A window titled "CREATE CELL" will appear. Enter the following and then click OK:

    Cell Name : mux8_layout (a new cell name for the layout)
    Attach Library : $PROJ_PARTS_cs755/stdcells_lib (the standard cells library)
    Angle Mode : Ninety
    Connectivity?: With connectivity
    Logic Source Type : Eddm (schematic in mentor database format)
    Eddm Schematic Viewpoint : auto.vp (the IC Blocks viewpoint)
    Press the "Logic Loading Options" button. From the pop-up window select Logic Loading: Flat and then press OK.

    All other options should be left at default values. Press OK and a cell window will appear having the name that you selected. If you do not see a message such as "Logic loading successfully completed. Check the file logic_load.rpt" at the bottom of the window, there is some problem in the mapping of your logic design to layout.

  4. Select Place & Route from the IC Palette at the right menu. Then choose Autofp , which stands for Auto-Floorplan. Let all options to default by clicking OK in the Autofloorplan Options form. Use View -> All from the top menu bar to see the automatically generated floorplan. You will see a series of boxes enclosed by solid bars along each edge. The boxes indicate the rows into which cells will be organized. The solid bars indicate edges of the cells along which physical ports will be placed. Example.

  5. Select Autoplc->StdCel from the Place & Route palette. Click OK in the form that will appear, once again allowing all options to default. You will now see the standard cells placed in the floorplan boxes. Cell locations are determined by their interconnectivity. Cells which share connections are placed near one another. You may wish to experiment with the results obtained thus far by selecting different Autofloorplan and Autoplace options. It is hard to see clearly each cell's name because they overlap. One way to see the name for a particular cell is to select it. Since each "bounding rectangle" overlaps possibly with more cells you have to press F3 (cycle selection) a few times until the cell that you are interested in is only selected. Example.

  6. Now select Autoplc->Ports from the Place & Route palette. You can allow the options to default for now, but you may wish to experiment with them later also. You will see lightly shaded areas along the port bars at the edge of the layout. By clicking on these shaded areas you get a message with the name of that particular port. Alternatively, after you first place the ports automatically, you can select some of them and place them individually at the location that you prefer.

  7. At this point, it is assumed that you have arrived at a satisfactory initial placement for all the cells of the layout. Prior to autorouting the interconnect, you may wish to observe a "rats nest" view of the signals connecting the various cells. This is sometimes useful to the layout technician for determining sources of routing congestion. To observe a rats nest of signal connections, select Connectivity -> Net -> Restructure -> All signal from the top menu bar. It may look a little messy, but keep in mind that it doesn't change the layout whatsoever.

  8. Now select Autorou->All from the Place & Route palette. Click OK to accept the defaults. This should route all connections in the mux design. You will see the cell rows move apart and additional metal runs appear in the channels between rows. Note that one metal layer (m1) is used largely for horizontal runs and the other (m2) for vertical runs. By clicking on individual lines you get a message with the name of the net that corresponds to each line. Example.

  9. The autorouter's objective is to complete as many connections in the design as is possible, without regard for wasted area. For this reason, a layout compactor is available which "squashes" things together where there is any little bit of unused space. To take advantage of this tool, select PR Edit->Compct from the Place & Route palette. We want to compact in both the horizontal and vertical dimensions, so do this twice: once down and then again in the left direction. Do not do this more than once along a given axis. Not only does it rarely result in improvement, it can lead to layout errors in some versions of the compactor.

  10. Save the layout by selecting File -> Cell -> Save Cell -> Current Context. You may save the layout and exit the IC Graph session at any time. To re-load the layout later, choose open from the IC Station palette. If you wish to make changes to the cell, you must also select File -> Cell -> Reserve Cell -> Current Context.

At this point, you have completed the automatic layout of your multiplexer. Many options for viewing the results of this process exist. Among them:

  1. Double click middle mouse button to pan view
  2. "Z" stroke from top to bottom to zoom out, from bottom to top to zoom in
  3. view->all from the top menu bar to fill the screen with the design

You are encouraged to create the layout of this design using different options for the floorplanning, placement, routing, and compaction. As you will see, the resulting layout can be quite different in terms of area consumption. For example, the following two layouts were produces using different IC Blocks options: Example1, Example2.

Layout Verification

Although the automatic tools performed the layout in the Correct-by-Construction mode, it is always a good practice to verify the layout for correctness in terms of both layout design rules and connectivity, in order to insure consistency between the various tools used. This establishes a system of "checks and balances" that increases our overall confidence in the design. We will first check for layout design rule errors using IC Rules, and then verify the layout by double checking it against the logic level representation of the mux logic diagram.

  1. To return to the main IC Station palette press the right mouse button in the right side bar and then select root. Now click on the IC Rules tool and select Check from the IC Rules palette. A prompt box will appear at the lower left of the screen. Just click on OK to proceed with the check.

  2. When the check is complete, design rule errors which exist in the layout will be reported in the message bar at the bottom of the IC Station window. You can start with the first one by clicking on first in the palette, then scroll through the rest by clicking on next. At this point you may get design rule errors of the type:

      Overlap of N+ and P+ not allowed.

    The design rule checker is complaining about p-select and n-select mask layers being too close. This error is an artifact of how the cell library was generated. Just ignore it for now. Also, the tool may report that the p-substrate that we use does not have any substrate contacts. You can ignore this too at this point.

  3. Next, verify the layout for consistency with the logic-level schematic of your design. Do this by returning to the main IC Station palette and selecting the IC Trace(M) (mask-LVS) option. Click on LVS in the IC Trace(M) palette and in the form which appears enter the path of the "lvs.vp" viewpoint in the "Source Name" field. Then click on the Setup LVS button. In the Setup LVS form, enter:

    Ground Names : VSS GND

    Press OK in both forms.

  4. When the check is complete, the bottom message bar will read Mask results database loaded and to view the results, you can select Report -> LVS from the palette. Look for that magic smiley face. If you get that big nasty X instead, go back and make certain that you have properly set up the LVS viewpoint and followed the above procedure precisely. When doing so, look for potential sources of discrepancies between your schematic and how the layout is generated.

Backannotation and post-layout Quicksim Simulations

You will now backannotate the Quicksim viewpoint with post-layout capacitive parasitics. The resulting Quicksim simulations will be more realistic, since they will be modeling interconnect capacitances.

  1. Return to the main IC Station palette and select the IC Extract(M) (mask level LVS) option. Click on Lumped for lumped modeling of the parasitics.

    Select "Yes" to specify the schematic source. The "Source name" should be the viewpoint that you created for IC Trace ("lvs.vp"). Note that you have to specify the complete path of that viewpoint. Select "Yes" in the Backannotate button and specify a name for the backannotation file (select the binary backannotation file). Click OK and the extraction process will be run. The backannotation file will be saved in the same directory as the IC Trace viewpoint.

  2. Now we have to open the Design View Editor to connect the backannotation to the Quicksim viewpoint. Invoke it by cd'ing to the directory that contains your "qsim.vp" viewpoint, and type:

      dve qsim.vp

  3. Push the button CONNECT BA and specify the name of the backannotation file that you created with IC Extract.

  4. Now, push the Open Sheet button. You will see a lot of red numbers associated with each pin of the schematic. These numbers represent the parasitic capacitances (in picofarads) that are associated with the layout interconnections. You can now save and close the viewpoint and DVE.

  5. At this point you can invoke Quicksim and simulate the backannotated viewpoint (see Tutorial 2). Notice that these simulations will be more realistic since they take into account both the cell and the interconnect parasitics. For relatively small circuits, however, the timing differences between the pre-layout and post-layout simulations can be too small for Quicksim to produce any different results. Example.

Before you close IC Station save your completed layout cell by selecting File -> Cell -> Save Cell -> Current Context.