data.pl,v #1

  • //
  • guest/
  • robert_yu/
  • autochar-1.5.3/
  • src/
  • RCS/
  • data.pl,v
  • View
  • Commits
  • Open Download .zip Download (21 KB)
head	1.17;
access;
symbols;
locks; strict;
comment	@# @;


1.17
date	99.02.09.13.08.52;	author ryu;	state Exp;
branches;
next	1.16;

1.16
date	99.01.20.07.44.59;	author ryu;	state Exp;
branches;
next	1.15;

1.15
date	99.01.14.10.19.02;	author ryu;	state Exp;
branches;
next	1.14;

1.14
date	99.01.13.07.18.42;	author ryu;	state Exp;
branches;
next	1.13;

1.13
date	98.09.13.14.11.44;	author ryu;	state Exp;
branches;
next	1.12;

1.12
date	98.09.13.11.17.23;	author ryu;	state Exp;
branches;
next	1.11;

1.11
date	98.09.13.11.09.15;	author ryu;	state Exp;
branches;
next	1.10;

1.10
date	98.09.13.04.14.38;	author ryu;	state Exp;
branches;
next	1.9;

1.9
date	98.09.12.19.54.02;	author ryu;	state Exp;
branches;
next	1.8;

1.8
date	98.09.08.13.16.49;	author ryu;	state Exp;
branches;
next	1.7;

1.7
date	98.09.08.07.33.55;	author ryu;	state Exp;
branches;
next	1.6;

1.6
date	98.09.06.20.43.23;	author ryu;	state Exp;
branches;
next	1.5;

1.5
date	98.09.06.04.20.43;	author ryu;	state Exp;
branches;
next	1.4;

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

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

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

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


desc
@split off from model.pl
@


1.17
log
@no need for perl heading
@
text
@#	$Id: data.pl,v 1.16 1999/01/20 07:44:59 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.


#	celldata format:
#
#	    <cellname>:load_delay:
#		load_delay characterization data
#	    <cellname>:input_cap:
#		input_cap characterization data
#	    <cellname>:clock_q:
#		clock_q characterization data
#	    <cellname>:setup_hold:
#		setup_hold characterization data
#	    <cellname>:clock_enable:
#		clock_enable characterization data
#
#	    <cellname>:cellprop:<propname>:
#		cell properties
#	    <cellname>:termprop:<termname>:<propname>
#		term properties


sub read_db {
    my($dbname) = @@_;
    (-e $dbname) || die "ERROR:  Cannot read db file '$dbname'.\n";
    require $dbname;
}


sub write_db {
    my($dbname) = @@_;
    my ($key, $i);

    open(DB, "> $dbname") || die "ERROR:  Cannot create db file '$dbname'.\n";

    #printf DB "#!/usr/local/bin/perl\n\n";
    &print_header (DB, '#');

    foreach $key (sort keys(%celldata)) {
	if ($celldata{$key}[0]) {
	    printf DB "\$celldata{\"$key\"} = [\n";
	    for $i (0 .. $#{@@celldata{$key}}) {
		printf DB "    $celldata{$key}[$i],\n";
	    }
	    printf DB "    ] ;\n";
	} else {
	    printf DB "\$celldata{\"$key\"} = q/$celldata{$key}/ ;\n";
	}
    }
    close(DB);
    printf STDERR "Created '$dbname'.\n";
}

### SAVE DATA #############################################################################

sub ic_save_data {
    my($cellname, $in, $cscaled) = @@_;

    $celldata{"$cellname:input_cap:$in"} = $cscaled;
}


#
#   cq_save_data --
#
sub cq_save_data {
    local($cellname, $clk, $q, $clktype,
	*creal, *clk_q_lh, *clk_q_hl, *risetime, *falltime) = @@_;

    my($risetimea, $risetimeb, $risetimer2);
    my($falltimea, $falltimeb, $falltimer2);
    my($clk_q_lha, $clk_q_lhb, $clk_q_lhr2);
    my($clk_q_hla, $clk_q_hlb, $clk_q_hlr2);

    if ($#clk_q_lh == $#creal) {
	($clk_q_lha, $clk_q_lhb, $clk_q_lhr2) = &svlinreg('lin', \@@creal, \@@clk_q_lh);
    }
    if ($#clk_q_hl == $#creal) {
	($clk_q_hla, $clk_q_hlb, $clk_q_hlr2) = &svlinreg('lin', \@@creal, \@@clk_q_hl);
    }
    if ($#risetime == $#creal) {
	($risetimea, $risetimeb, $risetimer2) = &svlinreg('lin', \@@creal, \@@risetime);
    }
    if ($#falltime == $#creal) {
	($falltimea, $falltimeb, $falltimer2) = &svlinreg('lin', \@@creal, \@@falltime);
    }

    $celldata{"$cellname:clock_q:$clk:$q"} = 1;
    $celldata{"$cellname:clock_q:$clk:$q:clktype"} = $clktype;
    $celldata{"$cellname:clock_q:$clk:$q:clk_q_lha"} = $clk_q_lha; 
    $celldata{"$cellname:clock_q:$clk:$q:clk_q_lhb"} = $clk_q_lhb; 
    $celldata{"$cellname:clock_q:$clk:$q:clk_q_hla"} = $clk_q_hla; 
    $celldata{"$cellname:clock_q:$clk:$q:clk_q_hlb"} = $clk_q_hlb; 
    $celldata{"$cellname:clock_q:$clk:$q:risetimea"} = $risetimea; 
    $celldata{"$cellname:clock_q:$clk:$q:risetimeb"} = $risetimeb; 
    $celldata{"$cellname:clock_q:$clk:$q:falltimea"} = $falltimea; 
    $celldata{"$cellname:clock_q:$clk:$q:falltimeb"} = $falltimeb; 

    # save raw data
    $celldata{"$cellname:clock_q:$clk:$q:lu_table"} = $lu_table_name;
    $celldata{"$cellname:clock_q:$clk:$q:clk_q_lh"} = [ @@clk_q_lh ]; 
    $celldata{"$cellname:clock_q:$clk:$q:clk_q_hl"} = [ @@clk_q_hl ]; 
    $celldata{"$cellname:clock_q:$clk:$q:risetime"} = [ @@risetime ]; 
    $celldata{"$cellname:clock_q:$clk:$q:falltime"} = [ @@falltime ]; 
}


#
#   ld_save_data --
#
sub ld_save_data {
    local ($cellname, $in, $out, *creal,
	*tplh, *tphl, *risetime, *falltime, *inputrise, *inputfall) = @@_;

    my($risetimea, $risetimeb, $risetimer2);
    my($falltimea, $falltimeb, $falltimer2);
    my($tplha, $tplhb, $tplhr2);
    my($tphla, $tphlb, $tphlr2);

    $celldata{"$cellname:load_delay:$in:$out"} = 1;

    if ($#slewrate == -1) {

	# do single value linear regression
	if ($#tplh == $#creal) {
	    ($tplha, $tplhb, $tplhr2) = &svlinreg('lin', \@@creal, \@@tplh);
	}
	if ($#tphl == $#creal) {
	    ($tphla, $tphlb, $tphlr2) = &svlinreg('lin', \@@creal, \@@tphl);
	}
	if ($#risetime == $#creal) {
	    ($risetimea, $risetimeb, $risetimer2) = &svlinreg('lin', \@@creal, \@@risetime);
	}
	if ($#falltime == $#creal) {
	    ($falltimea, $falltimeb, $falltimer2) = &svlinreg('lin', \@@creal, \@@falltime);
	}

	$celldata{"$cellname:load_delay:$in:$out:tplha"} = $tplha; 
	$celldata{"$cellname:load_delay:$in:$out:tplhb"} = $tplhb; 
	$celldata{"$cellname:load_delay:$in:$out:tphla"} = $tphla; 
	$celldata{"$cellname:load_delay:$in:$out:tphlb"} = $tphlb; 
	$celldata{"$cellname:load_delay:$in:$out:risetimea"} = $risetimea; 
	$celldata{"$cellname:load_delay:$in:$out:risetimeb"} = $risetimeb; 
	$celldata{"$cellname:load_delay:$in:$out:falltimea"} = $falltimea; 
	$celldata{"$cellname:load_delay:$in:$out:falltimeb"} = $falltimeb; 

    }

    # always save raw data
    $celldata{"$cellname:load_delay:$in:$out:lu_table"} = $lu_table_name;
    $celldata{"$cellname:load_delay:$in:$out:tplh"} = [ @@tplh ]; 
    $celldata{"$cellname:load_delay:$in:$out:tphl"} = [ @@tphl ]; 
    $celldata{"$cellname:load_delay:$in:$out:risetime"} = [ @@risetime ]; 
    $celldata{"$cellname:load_delay:$in:$out:falltime"} = [ @@falltime ]; 
    $celldata{"$cellname:load_delay:$in:$out:inputrise"} = [ @@inputrise ]; 
    $celldata{"$cellname:load_delay:$in:$out:inputfall"} = [ @@inputfall ]; 
}


sub s_save_data {
    local ($cellname, $d, $clk, $clktype, $trans, *value) = @@_;

    $celldata{"$cellname:setup_hold:$d:$clk:lu_table"} = $lu_table_name;
    $celldata{"$cellname:setup_hold:$d:$clk:setup"} = 1;
    $celldata{"$cellname:setup_hold:$d:$clk:clktype"} = $clktype;
    $celldata{"$cellname:setup_hold:$d:$clk:$trans"} = [ @@value ];
}

sub h_save_data {
    local ($cellname, $d, $clk, $clktype, $trans, *value) = @@_;

    $celldata{"$cellname:setup_hold:$d:$clk:lu_table"} = $lu_table_name;
    $celldata{"$cellname:setup_hold:$d:$clk:hold"} = 1;
    $celldata{"$cellname:setup_hold:$d:$clk:clktype"} = $clktype;
    $celldata{"$cellname:setup_hold:$d:$clk:$trans"} = [ @@value ];
}

sub ces_save_data {
    local ($cellname, $ce, $cetype, $clk, $clktype, $trans, *value) = @@_;

    $celldata{"$cellname:clock_enable:$ce:$clk:lu_table"} = $lu_table_name;
    $celldata{"$cellname:clock_enable:$ce:$clk:setup"} = 1;
    $celldata{"$cellname:clock_enable:$ce:$clk:clktype"} = $clktype;
    $celldata{"$cellname:clock_enable:$ce:$clk:cetype"} = $cetype;
    $celldata{"$cellname:clock_enable:$ce:$clk:$trans"} = [ @@value ];
}

sub ceh_save_data {
    local ($cellname, $ce, $cetype, $clk, $clktype, $trans, *value) = @@_;

    $celldata{"$cellname:clock_enable:$ce:$clk:lu_table"} = $lu_table_name;
    $celldata{"$cellname:clock_enable:$ce:$clk:hold"} = 1;
    $celldata{"$cellname:clock_enable:$ce:$clk:clktype"} = $clktype;
    $celldata{"$cellname:clock_enable:$ce:$clk:cetype"} = $cetype;
    $celldata{"$cellname:clock_enable:$ce:$clk:$trans"} = [ @@value ];
}


### COPY DATA #############################################################################

sub ld_copy_data {
    my($cellname, $in, $out, $refin, $refout) = @@_;

    if ($celldata{"$cellname:load_delay:$refin:$refout"}) {

	$celldata{"$cellname:load_delay:$in:$out"} = 1;

	if ($#slewrate == -1) {
	    $celldata{"$cellname:load_delay:$in:$out:tplha"} =
		$celldata{"$cellname:load_delay:$refin:$refout:tplha"};
	    $celldata{"$cellname:load_delay:$in:$out:tplhb"} =
		$celldata{"$cellname:load_delay:$refin:$refout:tplhb"};
	    $celldata{"$cellname:load_delay:$in:$out:tphla"} =
		$celldata{"$cellname:load_delay:$refin:$refout:tphla"};
	    $celldata{"$cellname:load_delay:$in:$out:tphlb"} =
		$celldata{"$cellname:load_delay:$refin:$refout:tphlb"};
	    $celldata{"$cellname:load_delay:$in:$out:risetimea"} =
		$celldata{"$cellname:load_delay:$refin:$refout:risetimea"};
	    $celldata{"$cellname:load_delay:$in:$out:risetimeb"} =
		$celldata{"$cellname:load_delay:$refin:$refout:risetimeb"};
	    $celldata{"$cellname:load_delay:$in:$out:falltimea"} =
		$celldata{"$cellname:load_delay:$refin:$refout:falltimea"};
	    $celldata{"$cellname:load_delay:$in:$out:falltimeb"} =
		$celldata{"$cellname:load_delay:$refin:$refout:falltimeb"};
	}

	$celldata{"$cellname:load_delay:$in:$out:lu_table"} =
	    $celldata{"$cellname:load_delay:$refin:$refout:lu_table"};
	$celldata{"$cellname:load_delay:$in:$out:tplh"} =
	    $celldata{"$cellname:load_delay:$refin:$refout:tplh"};
	$celldata{"$cellname:load_delay:$in:$out:tplh"} =
	    $celldata{"$cellname:load_delay:$refin:$refout:tplh"};
	$celldata{"$cellname:load_delay:$in:$out:tphl"} =
	    $celldata{"$cellname:load_delay:$refin:$refout:tphl"};
	$celldata{"$cellname:load_delay:$in:$out:risetime"} =
	    $celldata{"$cellname:load_delay:$refin:$refout:risetime"};
	$celldata{"$cellname:load_delay:$in:$out:falltime"} =
	    $celldata{"$cellname:load_delay:$refin:$refout:falltime"};
	$celldata{"$cellname:load_delay:$in:$out:inputrise"} =
	    $celldata{"$cellname:load_delay:$refin:$refout:inputrise"};
	$celldata{"$cellname:load_delay:$in:$out:inputfall"} =
	    $celldata{"$cellname:load_delay:$refin:$refout:inputfall"};

    } else {
	printf STDERR "WARNING: No load_delay data associated with \"$refin\" to \"$refout\".\n";
    }
}


sub ic_copy_data {
    my($cellname, $in, $refin) = @@_;

    $celldata{"$cellname:input_cap:$in"} =
	$celldata{"$cellname:input_cap:$refin"};
}


sub cq_copy_data {
    local($cellname, $clktype, $clk, $q, $refclk, $refq) = @@_;

    if ($celldata{"$cellname:clock_q:$refclk:$refq"}) {
	$celldata{"$cellname:clock_q:$clk:$q"} = 1;
	$celldata{"$cellname:clock_q:$clk:$q:clktype"} = $clktype;
	$celldata{"$cellname:clock_q:$clk:$q:clk_q_lha"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:clk_q_lha"};
	$celldata{"$cellname:clock_q:$clk:$q:clk_q_lhb"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:clk_q_lhb"};
	$celldata{"$cellname:clock_q:$clk:$q:clk_q_hla"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:clk_q_hla"};
	$celldata{"$cellname:clock_q:$clk:$q:clk_q_hlb"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:clk_q_hlb"};
	$celldata{"$cellname:clock_q:$clk:$q:risetimea"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:risetimea"};
	$celldata{"$cellname:clock_q:$clk:$q:risetimea"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:risetimea"};
	$celldata{"$cellname:clock_q:$clk:$q:risetimeb"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:risetimeb"};
	$celldata{"$cellname:clock_q:$clk:$q:falltimea"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:falltimea"};
	$celldata{"$cellname:clock_q:$clk:$q:falltimeb"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:falltimeb"};

	$celldata{"$cellname:clock_q:$clk:$q:lu_table"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:lu_table"};
	$celldata{"$cellname:clock_q:$clk:$q:clk_q_lh"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:clk_q_lh"};
	$celldata{"$cellname:clock_q:$clk:$q:clk_q_hl"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:clk_q_hl"};
	$celldata{"$cellname:clock_q:$clk:$q:risetime"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:risetime"};
	$celldata{"$cellname:clock_q:$clk:$q:falltime"} =
	    $celldata{"$cellname:clock_q:$refclk:$refq:falltime"};

    } else {
	printf STDERR "WARNING: No clock-Q data associated with \"$refclk\" to \"$refq\".\n";
    }
}


sub sh_copy_data {
    my ($cellname, $d, $clktype, $clk, $refd, $refclk) = @@_;

    $celldata{"$cellname:setup_hold:$d:$clk:setup"} = 1;
    $celldata{"$cellname:setup_hold:$d:$clk:hold"} = 1;
    $celldata{"$cellname:setup_hold:$d:$clk:clktype"} = $clktype;
    $celldata{"$cellname:setup_hold:$d:$clk:lu_table"} =
	$celldata{"$cellname:setup_hold:$refd:$refclk:lu_table"};

    $celldata{"$cellname:setup_hold:$d:$clk:setup_lh"} =
	$celldata{"$cellname:setup_hold:$refd:$refclk:setup_lh"};
    $celldata{"$cellname:setup_hold:$d:$clk:setup_hl"} =
	$celldata{"$cellname:setup_hold:$refd:$refclk:setup_hl"};

    $celldata{"$cellname:setup_hold:$d:$clk:hold_lh"} =
	$celldata{"$cellname:setup_hold:$refd:$refclk:hold_lh"};
    $celldata{"$cellname:setup_hold:$d:$clk:hold_hl"} =
	$celldata{"$cellname:setup_hold:$refd:$refclk:hold_hl"};
}

sub ce_copy_data {
    my ($cellname, $cetype, $ce, $clktype, $clk, $refce, $refclk) = @@_;

    $celldata{"$cellname:clock_enable:$ce:$clk:setup"} = 1;
    $celldata{"$cellname:clock_enable:$ce:$clk:hold"} = 1;
    $celldata{"$cellname:clock_enable:$ce:$clk:clktype"} = $clktype;
    $celldata{"$cellname:clock_enable:$ce:$clk:cetype"} = $cetype;
    $celldata{"$cellname:clock_enable:$ce:$clk:lu_table"} =
	$celldata{"$cellname:clock_enable:$refce:$refclk:lu_table"};

    $celldata{"$cellname:clock_enable:$ce:$clk:setup_lh"} =
	$celldata{"$cellname:clock_enable:$refce:$refclk:setup_lh"};
    $celldata{"$cellname:clock_enable:$ce:$clk:setup_hl"} =
	$celldata{"$cellname:clock_enable:$refce:$refclk:setup_hl"};

    $celldata{"$cellname:clock_enable:$ce:$clk:hold_lh"} =
	$celldata{"$cellname:clock_enable:$refce:$refclk:hold_lh"};
    $celldata{"$cellname:clock_enable:$ce:$clk:hold_hl"} =
	$celldata{"$cellname:clock_enable:$refce:$refclk:hold_hl"};
}


1;

@


1.16
log
@No perl header
@
text
@d1 1
a1 1
#	$Id: data.pl,v 1.15 1999/01/14 10:19:02 ryu Exp ryu $
d56 1
a56 1
    printf DB "#!/usr/local/bin/perl\n\n";
@


1.15
log
@Using /usr/bin/perl
@
text
@d1 1
a1 3
#! /usr/bin/perl

#	$Id: data.pl,v 1.14 1999/01/13 07:18:42 ryu Exp ryu $
@


1.14
log
@GPL
@
text
@d1 1
a1 1
#! /usr/local/bin/perl
d3 1
a3 1
#	$Id$
@


1.13
log
@typo
@
text
@d3 22
a24 9
#	Copyright (c) 1998-2001, Robert K. Yu.  All Rights Reserved.
#
#	No part of this program may be used, reproduced, stored in a 
#	retrieval system, or transmitted in any form or by any 
#	means without the prior permission of the author.

#	$Id: data.pl,v 1.12 1998/09/13 11:17:23 ryu Exp ryu $
#	Write different models.
#	Author: Robert K. Yu
@


1.12
log
@wip
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.11 1998/09/13 11:09:15 ryu Exp ryu $
d316 1
a316 1
	$celldata{"$cellname:setup_hold:$d:$refclk:lu_table"};
@


1.11
log
@wip
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.10 1998/09/13 04:14:38 ryu Exp ryu $
d109 1
d159 1
d172 1
d181 1
d190 1
d200 1
d236 4
d292 2
d315 2
d336 2
@


1.10
log
@Added slew rate check on clock enable
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.9 1998/09/12 19:54:02 ryu Exp ryu $
d168 1
a168 1
    my ($cellname, $d, $clk, $clktype, $trans, *value) = @@_;
d176 1
a176 1
    my ($cellname, $d, $clk, $clktype, $trans, *value) = @@_;
d184 1
a184 1
    my ($cellname, $ce, $cetype, $clk, $clktype, $trans, *value) = @@_;
d193 1
a193 1
    my ($cellname, $ce, $cetype, $clk, $clktype, $trans, *value) = @@_;
@


1.9
log
@Added slew-rate to setup and hold; support for non-linear models for clock-q
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.8 1998/09/08 13:16:49 ryu Exp ryu $
d168 1
a168 1
    my ($cellname, $d, $clk, $clktype, $trans, $value) = @@_;
d172 1
a172 1
    $celldata{"$cellname:setup_hold:$d:$clk:$trans"} = $value;
d176 1
a176 1
    my ($cellname, $d, $clk, $clktype, $trans, $value) = @@_;
d180 1
a180 1
    $celldata{"$cellname:setup_hold:$d:$clk:$trans"} = $value;
d184 1
a184 1
    my ($cellname, $ce, $cetype, $clk, $clktype, $trans, $value) = @@_;
d189 1
a189 1
    $celldata{"$cellname:clock_enable:$ce:$clk:$trans"} = $value;
d193 1
a193 1
    my ($cellname, $ce, $cetype, $clk, $clktype, $trans, $value) = @@_;
d198 1
a198 1
    $celldata{"$cellname:clock_enable:$ce:$clk:$trans"} = $value;
@


1.8
log
@slew rate at the clock input of setup_hold (wip)
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.7 1998/09/08 07:33:55 ryu Exp ryu $
d230 12
a241 12
	$celldata{"$cellname:load_delay:$refin:$refout:tplh"} =
	    [ @@celldata{"$cellname:load_delay:$in:$out:tplh"} ];
	$celldata{"$cellname:load_delay:$refin:$refout:tphl"} =
	    [ @@celldata{"$cellname:load_delay:$in:$out:tphl"} ];
	$celldata{"$cellname:load_delay:$refin:$refout:risetime"} =
	    [ @@celldata{"$cellname:load_delay:$in:$out:risetime"} ];
	$celldata{"$cellname:load_delay:$refin:$refout:falltime"} =
	    [ @@celldata{"$cellname:load_delay:$in:$out:falltime"} ];
	$celldata{"$cellname:load_delay:$refin:$refout:inputrise"} =
	    [ @@celldata{"$cellname:load_delay:$in:$out:inputrise"} ];
	$celldata{"$cellname:load_delay:$refin:$refout:inputfall"} =
	    [ @@celldata{"$cellname:load_delay:$in:$out:inputfall"} ];
d283 1
a283 1
	    [ @@celldata{"$cellname:clock_q:$refclk:$refq:clk_q_lh"} ];
d285 1
a285 1
	    [ @@celldata{"$cellname:clock_q:$refclk:$refq:clk_q_hl"} ];
d287 1
a287 3
	    [ @@celldata{"$cellname:clock_q:$refclk:$refq:risetime"} ];
	$celldata{"$cellname:clock_q:$clk:$q:risetime"} =
	    [ @@celldata{"$cellname:clock_q:$refclk:$refq:risetime"} ];
d289 1
a289 1
	    [ @@celldata{"$cellname:clock_q:$refclk:$refq:falltime"} ];
@


1.7
log
@save raw data
@
text
@d3 1
a3 1
#	Copyright (c) 1998, Robert K. Yu.  All Rights Reserved.
d9 1
a9 1
#	$Id: data.pl,v 1.6 1998/09/06 20:43:23 ryu Exp ryu $
@


1.6
log
@clock enable
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.5 1998/09/06 04:20:43 ryu Exp ryu $
d63 1
d77 1
a77 1
	*creal, *clk_q_lh, $clk_q_hl, *risetime, *falltime) = @@_;
d107 6
d155 1
a155 1
    } else {
d157 7
a163 9
	# just save it for now; do least square error later (?)
	$celldata{"$cellname:load_delay:$in:$out:tplh"} = [ @@tplh ]; 
	$celldata{"$cellname:load_delay:$in:$out:tphl"} = [ @@tphl ]; 
	$celldata{"$cellname:load_delay:$in:$out:risetime"} = [ @@risetime ]; 
	$celldata{"$cellname:load_delay:$in:$out:falltime"} = [ @@falltime ]; 
	$celldata{"$cellname:load_delay:$in:$out:inputrise"} = [ @@inputrise ]; 
	$celldata{"$cellname:load_delay:$in:$out:inputfall"} = [ @@inputfall ]; 

    }
d201 3
a227 13
	} else {
	    $celldata{"$cellname:load_delay:$refin:$refout:tplh"} =
		[ @@celldata{"$cellname:load_delay:$in:$out:tplh"} ];
	    $celldata{"$cellname:load_delay:$refin:$refout:tphl"} =
		[ @@celldata{"$cellname:load_delay:$in:$out:tphl"} ];
	    $celldata{"$cellname:load_delay:$refin:$refout:risetime"} =
		[ @@celldata{"$cellname:load_delay:$in:$out:risetime"} ];
	    $celldata{"$cellname:load_delay:$refin:$refout:falltime"} =
		[ @@celldata{"$cellname:load_delay:$in:$out:falltime"} ];
	    $celldata{"$cellname:load_delay:$refin:$refout:inputrise"} =
		[ @@celldata{"$cellname:load_delay:$in:$out:inputrise"} ];
	    $celldata{"$cellname:load_delay:$refin:$refout:inputfall"} =
		[ @@celldata{"$cellname:load_delay:$in:$out:inputfall"} ];
d230 13
d281 12
@


1.5
log
@Added ce_copy_data
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.4 1998/09/06 04:18:52 ryu Exp ryu $
d14 1
d23 3
d179 1
a179 1
    my ($cellname, $ce, $clk, $clktype, $trans, $value) = @@_;
d183 1
d188 1
a188 1
    my ($cellname, $ce, $clk, $clktype, $trans, $value) = @@_;
d192 1
d283 1
d285 1
a290 2
    $celldata{"$cellname:setup_hold:$d:$clk:hold"} = 1;
    $celldata{"$cellname:setup_hold:$d:$clk:clktype"} = $clktype;
d298 1
a298 1
    my ($cellname, $ce, $clktype, $clk, $refce, $refclk) = @@_;
d301 1
d303 2
d306 1
a306 1
	$celldata{"$cellname:clock_enable:$refd:$refclk:setup_lh"};
d308 1
a308 1
	$celldata{"$cellname:clock_enable:$refd:$refclk:setup_hl"};
a309 2
    $celldata{"$cellname:clock_enable:$ce:$clk:hold"} = 1;
    $celldata{"$cellname:clock_enable:$ce:$clk:clktype"} = $clktype;
d311 1
a311 1
	$celldata{"$cellname:clock_enable:$refd:$refclk:hold_lh"};
d313 1
a313 1
	$celldata{"$cellname:clock_enable:$refd:$refclk:hold_hl"};
@


1.4
log
@Added clock enable functions
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.3 1998/08/30 20:53:36 ryu Exp ryu $
d289 18
@


1.3
log
@quote
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.2 1998/08/30 19:24:00 ryu Exp ryu $
a165 1

d174 15
@


1.2
log
@Using term instead of port; extract all cell and terminal properties into synopsys model.
@
text
@d9 1
a9 1
#	$Id: data.pl,v 1.1 1998/08/29 17:23:56 ryu Exp ryu $
d52 1
a52 1
	    printf DB "\$celldata{\"$key\"} = '$celldata{$key}' ;\n";
@


1.1
log
@Initial revision
@
text
@d9 1
a9 1
#	$Id: model.pl,v 1.9 1998/08/28 09:58:27 ryu Exp ryu $
d12 14
@
# Change User Description Committed
#1 6489 robert_yu Saved here.