SCLIB(5)

NAME

sclib
     - a portable CMOS Standard Cell Library

SYNOPSIS

The library directory is defined by the environment variable MBK_CATA_LIB.

DESCRIPTION
 The symbolic layout approach is used for cell layout in order to provide process independance. The mapping to a specific process CIF or GDS2 layout is performed by s2r tool.
 Four files are attached to each cell :
- layout    cellname.ap
- transistor net-list    cellname.al
- VHDL behaviour    cellname.vbe
- postscript doc    cellname.ps
For each cell, you can get detailed information using "man cellname".
At the moment, sclib contains standard cells that have been developped at UPMC-ASIM/LIP6.
It is possible to add new cells in the library just by providing the 3 files .ap, .al and .vbe in the standard cell directory.
The layout view can be created with the symbolic editor graal.
The topological constraints for the standard cell router scr are the abutment box size (height = 42 , width = 6 x n ), the metal1 VDD and VSS lines, the N well abutment, and I/Os in metal2 on south and north sides.
The net-list view can be automatically generated with the lynx extractor
The behavioural view can be checked with the yagle functional abstractor. The file must contain the generic fields in order to be used by the logic synthesis tools and the I/Os terminals must be in the same order in the .vbe and .al files.
If you develop new cells, please send the corresponding files to alliance-support@asim.lip6.fr List of cells :
-------------------------------------------------------------------------------------------------------
|    Description    Fanout    Name            |
-------------------------------------------------------------------------------------------------------
    => AND
      (A.B)    (drive=1)    a2_y
      (A.B)    (drive=2)    a2p_y
      (A.B.C)    (drive=1)    a3_y
      (A.B.C)    (drive=2)    a3p_y
      (A.B.C.D)    (drive=1)    a4_y
      (A.B.C.D)    (drive=2)    a4p_y
      /(A.B)    (drive=1)    na2_y
      /(A.B)    (drive=2)    na2p_y
      /(A.B.C)    (drive=1)    na3_y
      /(A.B.C)    (drive=2)    na3p_y
      /(A.B.C.D)    (drive=1)    na4_y
    => OR
       (A+B)    (drive=1)    o2_y
       (A+B)    (drive=2)    op2_y
       (A+B+C)    (drive=1)    o3_y
       (A+B+C)    (drive=2)    op3_y
       /(A+B)    (drive=1)    no2_y
       /(A+B)    (drive=2)    nop2_y
       /(A+B+C)    (drive=1)    no3_y
       /(A+B+C)    (drive=2)    nop3_y
    =>INV/BUF/DELAY
       inv    (drive=1)    n1_y
       inv    (drive=2)    np1_y
       inv    (drive=4)    ndrv_y
       buf    (drive=2)    p1_y
       buf    (drive=4)    b1_y
       delay    (drive=1)    d1_y
    => T STATE
       3-state-inv    (drive=1)    tsn_y
       3-state-buf    (drive=1)    ts_y
       3-state-buf    (drive=2)    tsp_y
    => XOR
       xor    (drive=1)    xr2_y
       nxor    (drive=1)    nxr2_y
    => COMPLEX
       /(AB+CD)    (drive=1)    nmx2_y
       /(A+B)(C+D)    (drive=1)    annup_y
       /((A+B)C)    (drive=1)    noa3_y
       /(AB+C)    (drive=1)    nao3_y
       /(ABC+D)    (drive=1)    nao4_y
       /(A.B.(C+D))    (drive=1)    noue4_y
       /(A.(B+C+D))    (drive=1)    noa4_y
    => LATCH
       latch one input (Q,QN)    (drive=1)    lx_y
       latch one input (Q)    (drive=2)    l1_y
       latch one input (QN)    (drive=1)    l1n_y
       latch two inputs (Q)    (drive=2)    l2_y
       latch two inputs (QN)    (drive=1)    l2n_y
       latch three inputs (Q)    (drive=1)    l3_y
       latch two inputs with reset (Q)    (drive=1)    l3r_y
       latch two inputs with set (Q)    (drive=1)    l3s_y
       latch four inputs (Q)    (drive=1)    l4_y
       latch three inputs with reset (Q)    (drive=1)    l4r_y
       latch three inputs with set (Q)    (drive=1)    l4s_y
       latch five inputs (Q)    (drive=1)    l5_y
       latch four inputs with reset (Q)    (drive=1)    l5r_y
       latch four inputs with set (Q)    (drive=1)    l5s_y
       latch five inputs with reset (Q)    (drive=1)    l6r_y
       latch five inputs with set (Q)    (drive=1)    l6s_y
    =>FF
       master-slave (Q,QN)    (drive=1)    msx_y
       master-slave (Q)    (drive=1)    ms_y
       master-slave (QN)    (drive=1)    msn_y
       master-slave with set (Q,QN)    (drive=1)    mssx_y
       master-slave with reset (Q,QN)    (drive=1)    msrx_y
       scannable master-slave (Q)    (drive=1)    ms2_y
       scannable master-slave(QN)    (drive=1)    ms2n_y
       scannable master-slave (Q,QN)    (drive=1)    ms2x_y
       scannable master-slave with set (Q,QN)    (drive=1)    ms2sx_y
       scannable master-slave with reset (Q,QN)    (drive=1)    ms2rx_y
    =>BUS
       bus hold (inverted)    (drive=1)    zbli_y
       pull-up    one_y
       pull-down    zero_y
       feed-through    tie_y
    =>MUX
       mux 2 to 1 (two controls)    (drive=1)    mx2_y
       mux 2 to 1 (two controls)    (drive=2)    mx2p_y
       mux 2 to 1 (one control)    (drive=1)    cmx2_y
       mux 3 to 1 (three controls)    (drive=1)    mx3_y
       mux 4 to 1 (four controls)    (drive=1)    mx4_y
    =>SPECIAL
       full-adder (sum)    (drive=1)    sum_y
       full-adder (carry)    (drive=1)    cry_y

SEE ALSO
MBK_CATA_LIB(1), catal(1), scr(1), lynx(1), bop(1), glop(1), scmap(1), c4map(1), yagle(1), genlib(1), ap(1), al(1), vbe(1),