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
@