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: # # :load_delay: # load_delay characterization data # :input_cap: # input_cap characterization data # :clock_q: # clock_q characterization data # :setup_hold: # setup_hold characterization data # :clock_enable: # clock_enable characterization data # # :cellprop:: # cell properties # :termprop:: # 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 @