![]() Minimum surround on two opposite sides of the contact. In asymmetric contacts, you also need a larger In symmetric contacts, that is sufficient toĬreate the contact. Both have a minimum via surround requirement in terms of the There are two basic types of contacts: symmetric and asymmetricĬontacts. Have minimum area rules, and contacts might have asymmetric material Not satisfy the design rule constraints, because each material might One of the complexities ofĭrawing contacts is that this minimal amount of material by itself may ![]() Each layer isĭrawn using the minimum via surround rules. When the layout generator draws a contact between two layers, itĬonsists of a via plus the two layers being connected. The illustrations below will follow the convention: Set of parameters are specified within a begin/end section of the ThereĪre several parameters that can be specified, all integers. Layout generator directory, we provide a sample translator that createsĪ magic script which can be used to draw all the generated layoutįor each diffusion type specified in the header, there must be anĮntry that corresponds to the rules used to draw the material. The reasonįor doing this is to have a layout generator whose output file canīe easily converted into an input for any layout editor. The concrete layers can be generated automaticallyįrom the abstract layers using simple mapping rules. Used to map these abstract layers to the correct layer names. Technology file contains information that can be Layer ( m followed by an integer starting from one). In addition, there are built-in names for polysilicon and each metal Types (specified in the diff section) are used in this section. The names used for the different transistor The materials section contains all the information about the materials The names nndiff and ppdiff are used to indicate nplus diffusion and pplus diffusion, and is only used to draw substrate (well) contacts. If there is no well or substrate diffusion, then the empty string can be used. If the colon is omitted, the string corresponds to the well name. For wells, each entry corresponds to the well name followed by a colon, and then followed by the substrate diffusion name. Each following table specifies the names of the layout layers in the order specified by the types table. The types table corresponds to the different types of transistors/diffusion, and hence has to match the dev_flavors table in the global ACT configuration. String_table nfet_well ":ppdiff" # no pwell, but pplus diff exists String_table pfet_well "nwell:nndiff" # well for p-fet, and nplus diff String_table types "svt" # only svt devices The next section specifies the names/types for various types of diffusion, transistors, wells, and substrate diffusion. This specifies that: for widths the overhang is 4 units for widths the overhang is 6 units for all other widths, the overhang is 8 units. The table will be specified with entries b0, c0, b1, c1, b2, c2, etc.įor illustration purposes, we know that in some modern technologies, polysilicon overhang over diffusion can depend on the width of the polysilicon drawn. we assume the ranges cover all possible values of the the 'other dimension.' This means that a0 is implicit-it is the minimum legal value (can be taken as zero if necessary). Tables of this type will have 2n+1 entries, where n is the number ranges to be specified, with the last entry being the value of c for all other ranges. To specify rules of this type, we use integer range tables. ![]() This can be specified by a tuple (a,b,c). More modern technologies have more complex rules, that are of the form: `if some other dimension is in the range, then the minimum width/spacing/overhang is c'. This used to be sufficient for older CMOS technologies. Simple drawing rules for a material can be specified using minimum width and minimum spacing rules. The welltap_adjust is set to the distance the contact for n-type transistor has to be moved down relative to its default location. ![]() The well contact for n-type devices has to be moved down relative to its default generation. Welltap_adjust is a special parameter used in the generation of welltap cells. Additionally, a global parameter that specifies the number of dummy polys needed when drawing transistors is also included in this section. The number of metals is specified in this section as well. The scale factor converts the units in the file to nanometers. Int welltap_adjust 0 # welltap adjustment Real scale 300 # rules use 300nm as one unit Note that the name field should be a string without any whitespace characters. This is a simple information section to provide some information about the design rules and which technology they are for. String date "Created on by Rajit Manohar" ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |