head	1.4;
access;
symbols;
locks; strict;
comment	@-- @;


1.4
date	99.01.29.07.32.13;	author ryu;	state Exp;
branches;
next	1.3;

1.3
date	99.01.21.06.35.11;	author ryu;	state Exp;
branches;
next	1.2;

1.2
date	99.01.13.18.25.39;	author ryu;	state Exp;
branches;
next	1.1;

1.1
date	99.01.13.07.14.48;	author ryu;	state Exp;
branches;
next	;


desc
@GPL
@


1.4
log
@ce works
@
text
@#	$Id: stdcells.spec,v 1.3 1999/01/21 06:35:11 ryu Exp ryu $

#	Copyright (C) 1999 Robert K. Yu
#	email: robert@@yu.org

#	This file is part of Autochar.

#	Autochar is free software; you can redistribute it and/or modify
#	it under the terms of the GNU General Public License as published by
#	the Free Software Foundation; either version 2, or (at your option)
#	any later version.

#	Autochar is distributed in the hope that it will be useful,
#	but WITHOUT ANY WARRANTY; without even the implied warranty of
#	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#	GNU General Public License for more details.

#	You should have received a copy of the GNU General Public License
#	along with Autochar; see the file COPYING.  If not, write to the
#	Free Software Foundation, Inc., 59 Temple Place - Suite 330,
#	Boston, MA 02111-1307, USA.
#

#	Given a cellname, lookup the spec to use.

$specpath = $ENV{'AUTOCHAR'} . '/example/specs';

%specmap = (
    "and2_1x"		=> "${specpath}/and2.spec",
    "and2_2x"		=> "${specpath}/and2.spec",
    "and2_4x"		=> "${specpath}/and2.spec",
    "and2_6x"		=> "${specpath}/and2.spec",

    "and3_2x"		=> "${specpath}/and3.spec",
    "and3_4x"		=> "${specpath}/and3.spec",

    "and4_2x"		=> "${specpath}/and4.spec",
    "and4_4x"		=> "${specpath}/and4.spec",

    "aoi21_1x"		=> "${specpath}/aoi21.spec",
    "aoi21_2x"		=> "${specpath}/aoi21.spec",
    "aoi21_4x"		=> "${specpath}/aoi21.spec",

    "aoi22_1x"		=> "${specpath}/aoi22.spec",
    "aoi22_2x"		=> "${specpath}/aoi22.spec",
    "aoi22_4x"		=> "${specpath}/aoi22.spec",

    "buf_3x"		=> "${specpath}/buf.spec",
    "buf_4x"		=> "${specpath}/buf.spec",
    "buf_6x"		=> "${specpath}/buf.spec",
    "buf_8x"		=> "${specpath}/buf.spec",
    "buf_10x"		=> "${specpath}/buf.spec",
    "buf_12x"		=> "${specpath}/buf.spec",

    "dff_2x"		=> "${specpath}/dff.spec",
    "dffce_2x"		=> "${specpath}/dffce.spec",

    "inv_1x"		=> "${specpath}/inv.spec",
    "inv_2x"		=> "${specpath}/inv.spec",
    "inv_3x"		=> "${specpath}/inv.spec",
    "inv_4x"		=> "${specpath}/inv.spec",
    "inv_6x"		=> "${specpath}/inv.spec",
    "inv_8x"		=> "${specpath}/inv.spec",
    "inv_10x"		=> "${specpath}/inv.spec",
    "inv_12x"		=> "${specpath}/inv.spec",
    "inv_16x"		=> "${specpath}/inv.spec",
    "inv_18x"		=> "${specpath}/inv.spec",

    "mux2i_2x"		=> "${specpath}/mux2.spec",
    "mux2i_4x"		=> "${specpath}/mux2.spec",
    "mux2i_6x"		=> "${specpath}/mux2.spec",

    "nand2_1x"		=> "${specpath}/nand2.spec",
    "nand2_2x"		=> "${specpath}/nand2.spec",
    "nand2_4x"		=> "${specpath}/nand2.spec",
    "nand2_6x"		=> "${specpath}/nand2.spec",
    "nand2_8x"		=> "${specpath}/nand2.spec",

    "nand3_1x"		=> "${specpath}/nand3.spec",
    "nand3_2x"		=> "${specpath}/nand3.spec",
    "nand3_4x"		=> "${specpath}/nand3.spec",
    "nand3_6x"		=> "${specpath}/nand3.spec",

    "nor2_1x"		=> "${specpath}/nor2.spec",
    "nor2_2x"		=> "${specpath}/nor2.spec",
    "nor2_4x"		=> "${specpath}/nor2.spec",
    "nor2_6x"		=> "${specpath}/nor2.spec",
    "nor2_8x"		=> "${specpath}/nor2.spec",

    "nor3_1x"		=> "${specpath}/nor3.spec",
    "nor3_2x"		=> "${specpath}/nor3.spec",
    "nor3_4x"		=> "${specpath}/nor3.spec",
    "nor3_6x"		=> "${specpath}/nor3.spec",

    "oai21_1x"		=> "${specpath}/oai21.spec",
    "oai21_2x"		=> "${specpath}/oai21.spec",
    "oai21_4x"		=> "${specpath}/oai21.spec",

    "oai22_1x"		=> "${specpath}/oai22.spec",
    "oai22_2x"		=> "${specpath}/oai22.spec",
    "oai22_4x"		=> "${specpath}/oai22.spec",

    "or2_2x"		=> "${specpath}/or2.spec",
    "or2_4x"		=> "${specpath}/or2.spec",
    "or2_6x"		=> "${specpath}/or2.spec",

    "or3_2x"		=> "${specpath}/or3.spec",
    "or3_4x"		=> "${specpath}/or3.spec",
    "or3_6x"		=> "${specpath}/or3.spec",

    "ph1latch_2x"	=> "${specpath}/ph1latch.spec",
    "ph1latch_4x"	=> "${specpath}/ph1latch.spec",
    "ph1latch_6x"	=> "${specpath}/ph1latch_6x.spec",

    "ph2slatch_2x"	=> "${specpath}/ph2slatch.spec",
    "ph2slatch_4x"	=> "${specpath}/ph2slatch.spec",
    "ph2slatch_6x"	=> "${specpath}/ph2slatch.spec",

    "xnor2_2x"		=> "${specpath}/xnor2.spec",
    "xnor2_4x"		=> "${specpath}/xnor2.spec",

    "xor2_2x"		=> "${specpath}/xor2.spec",
    "xor2_4x"		=> "${specpath}/xor2.spec",
    "xor2_6x"		=> "${specpath}/xor2.spec",
);

printf STDERR "Evaluating $specmap{$cellname} ...\n";
require "${specpath}/common.spec";
require $specmap{$cellname};

# output
&print_model('synopsys', $cellname . '.lib');
&write_db($cellname . '.db');

1;
@


1.3
log
@wip
@
text
@d1 1
a1 1
#	$Id: stdcells.spec,v 1.2 1999/01/13 18:25:39 ryu Exp ryu $
d55 2
a56 3
    "dffscan_2x"	=> "${specpath}/dff.spec",
    "dffscan_4x"	=> "${specpath}/dff.spec",
    "dffscan_6x"	=> "${specpath}/dff.spec",
a117 4

    "regen_2x"		=> "${specpath}/regen.spec",
    "regen_4x"		=> "${specpath}/regen.spec",
    "regen_6x"		=> "${specpath}/regen.spec",
@


1.2
log
@lower case
@
text
@d1 1
a1 1
#	$Id: stdcells.spec,v 1.1 1999/01/13 07:14:48 ryu Exp ryu $
d26 1
a26 1
$specpath = (getenv 'AUTOCHAR') . '/example/specs';
d29 101
a129 111
    "s_and2_1x"		=> "${specpath}/and2.spec",
    "s_and2_2x"		=> "${specpath}/and2.spec",
    "s_and2_4x"		=> "${specpath}/and2.spec",
    "s_and2_6x"		=> "${specpath}/and2.spec",

    "s_and3_2x"		=> "${specpath}/and3.spec",
    "s_and3_4x"		=> "${specpath}/and3.spec",

    "s_and4_2x"		=> "${specpath}/and4.spec",
    "s_and4_4x"		=> "${specpath}/and4.spec",

    "s_aoi21_1p5x"	=> "${specpath}/aoi21.spec",
    "s_aoi21_1x"	=> "${specpath}/aoi21.spec",
    "s_aoi21_2x"	=> "${specpath}/aoi21.spec",
    "s_aoi21_4x"	=> "${specpath}/aoi21.spec",

    "s_aoi22_1p5x"	=> "${specpath}/aoi22.spec",
    "s_aoi22_1x"	=> "${specpath}/aoi22.spec",
    "s_aoi22_2x"	=> "${specpath}/aoi22.spec",
    "s_aoi22_4x"	=> "${specpath}/aoi22.spec",

    "s_buf_10x"		=> "${specpath}/buf.spec",
    "s_buf_12x"		=> "${specpath}/buf.spec",
    "s_buf_3x"		=> "${specpath}/buf.spec",
    "s_buf_4x"		=> "${specpath}/buf.spec",
    "s_buf_6x"		=> "${specpath}/buf.spec",
    "s_buf_8x"		=> "${specpath}/buf.spec",

    "s_dffscan_2x"	=> "${specpath}/dff.spec",
    "s_dffscan_4x"	=> "${specpath}/dff.spec",
    "s_dffscan_6x"	=> "${specpath}/dff.spec",

    "s_inv_10x"		=> "${specpath}/inv.spec",
    "s_inv_12x"		=> "${specpath}/inv.spec",
    "s_inv_16x"		=> "${specpath}/inv.spec",
    "s_inv_18x"		=> "${specpath}/inv.spec",
    "s_inv_1p5x"	=> "${specpath}/inv.spec",
    "s_inv_1x"		=> "${specpath}/inv.spec",
    "s_inv_2p5x"	=> "${specpath}/inv.spec",
    "s_inv_2x"		=> "${specpath}/inv.spec",
    "s_inv_3x"		=> "${specpath}/inv.spec",
    "s_inv_4x"		=> "${specpath}/inv.spec",
    "s_inv_6x"		=> "${specpath}/inv.spec",
    "s_inv_8x"		=> "${specpath}/inv.spec",

    "s_mux2i_2x"	=> "${specpath}/mux2.spec",
    "s_mux2i_4x"	=> "${specpath}/mux2.spec",
    "s_mux2i_6x"	=> "${specpath}/mux2.spec",

    "s_nand2_1p5x"	=> "${specpath}/nand2.spec",
    "s_nand2_1x"	=> "${specpath}/nand2.spec",
    "s_nand2_2x"	=> "${specpath}/nand2.spec",
    "s_nand2_4x"	=> "${specpath}/nand2.spec",
    "s_nand2_6x"	=> "${specpath}/nand2.spec",
    "s_nand2_8x"	=> "${specpath}/nand2.spec",

    "s_nand3_1x"	=> "${specpath}/nand3.spec",
    "s_nand3_2x"	=> "${specpath}/nand3.spec",
    "s_nand3_4x"	=> "${specpath}/nand3.spec",
    "s_nand3_6x"	=> "${specpath}/nand3.spec",

    "s_nor2_1p5x"	=> "${specpath}/nor2.spec",
    "s_nor2_1x"		=> "${specpath}/nor2.spec",
    "s_nor2_2x"		=> "${specpath}/nor2.spec",
    "s_nor2_4x"		=> "${specpath}/nor2.spec",
    "s_nor2_6x"		=> "${specpath}/nor2.spec",
    "s_nor2_8x"		=> "${specpath}/nor2.spec",

    "s_nor3_1x"		=> "${specpath}/nor3.spec",
    "s_nor3_2x"		=> "${specpath}/nor3.spec",
    "s_nor3_4x"		=> "${specpath}/nor3.spec",
    "s_nor3_6x"		=> "${specpath}/nor3.spec",

    "s_oai21_1p5x"	=> "${specpath}/oai21.spec",
    "s_oai21_1x"	=> "${specpath}/oai21.spec",
    "s_oai21_2x"	=> "${specpath}/oai21.spec",
    "s_oai21_4x"	=> "${specpath}/oai21.spec",

    "s_oai22_1p5x"	=> "${specpath}/oai22.spec",
    "s_oai22_1x"	=> "${specpath}/oai22.spec",
    "s_oai22_2x"	=> "${specpath}/oai22.spec",
    "s_oai22_4x"	=> "${specpath}/oai22.spec",

    "s_or2_2x"		=> "${specpath}/or2.spec",
    "s_or2_4x"		=> "${specpath}/or2.spec",
    "s_or2_6x"		=> "${specpath}/or2.spec",

    "s_or3_2x"		=> "${specpath}/or3.spec",
    "s_or3_4x"		=> "${specpath}/or3.spec",
    "s_or3_6x"		=> "${specpath}/or3.spec",

    "s_ph1latch_2x"	=> "${specpath}/ph1latch.spec",
    "s_ph1latch_4x"	=> "${specpath}/ph1latch.spec",
    "s_ph1latch_6x"	=> "${specpath}/ph1latch_6x.spec",

    "s_ph2slatch_2x"	=> "${specpath}/ph2slatch.spec",
    "s_ph2slatch_4x"	=> "${specpath}/ph2slatch.spec",
    "s_ph2slatch_6x"	=> "${specpath}/ph2slatch.spec",

    "s_regen_2x"	=> "${specpath}/regen.spec",
    "s_regen_4x"	=> "${specpath}/regen.spec",
    "s_regen_6x"	=> "${specpath}/regen.spec",

    "s_regki_2x"	=> "${specpath}/regki.spec",

    "s_xnor2_2x"	=> "${specpath}/xnor2.spec",
    "s_xnor2_4x"	=> "${specpath}/xnor2.spec",

    "s_xor2_2x"		=> "${specpath}/xor2.spec",
    "s_xor2_4x"		=> "${specpath}/xor2.spec",
    "s_xor2_6x"		=> "${specpath}/xor2.spec",
@


1.1
log
@Initial revision
@
text
@d1 1
a1 1
#	$Id$
d26 1
a26 1
$specpath = (getenv 'AUTOCHAR') . '/example/SPECS';
@