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


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

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.14.10.17.32;	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.5
log
@synopsys support for "section"
@
text
@#	$Id: dff.spec,v 1.4 1999/01/29 07:32:13 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.

#------	CELL DATA --------------------------------------------------------------

$spice_netlist	= $cellname . '.sp';
@@termlist	= &read_spice_terms ($spice_netlist, $cellname);

$celldata{"$cellname:cellprop:area"}			= 0;
$celldata{"$cellname:cellprop:cell_footprint"}		= q/"dff"/;
$celldata{"$cellname:termprop:q:max_capacitance"}	= q/cap_factor * cap_unit * 2/ ;
$celldata{"$cellname:termprop:q:max_fanout"}		= q/max_fanout_num/ ;

# synopsys
$celldata{"$cellname:termprop:q:function"}		= q/"IQ"/ ;
$celldata{"$cellname:termprop:q:internal_node"}		= q/"Q"/ ;
#$celldata{"$cellname:termprop:q_bar:function"}		= q/"IQN"/ ;
#$celldata{"$cellname:termprop:q_bar:internal_node"}	= q/"QN"/ ;

# insert this section for q, q_bar
#$celldata{"$cellname:cellprop:section"}			= q%
#	ff ("IQ","IQN") {
#	    next_state : "d";
#	    clocked_on : "clk";
#	}
#	statetable ( "  d   clk ", " Q  QN") {
#	    table  : "  -   ~R  : - - :  N   N, \
#			H/L  R  : - - : H/L L/H";
#	}% ;

# insert this section for q only
$celldata{"$cellname:cellprop:section"}			= q%
	ff ("IQ") {
	    next_state : "d";
	    clocked_on : "clk";
	}
	statetable ( "  d   clk ", " Q ") {
	    table  : "  -   ~R  : - - :  N, \
			H/L  R  : - - : H/L";
	}% ;


#------	INPUT CAPACITANCE CHARACTERIZATION -------------------------------------

$sim_type		= 'input_cap';
$buffer{'default'}	= 'buffer';
$cstart			= '10fF';
$cmin			= '1fF';
$cmax			= '1pF';
$load{'default'}	= 'none';

&autochar ('.*');


#------ SETUP/HOLD -------------------------------------------------------------

$sim_type		= 'setup_hold';
$buffer{'d'}		= 'ebuffer';
$buffer{'clk'}		= 'ebuffer';
$differential{'clk_n'}	= 'clk';
$load{'default'}	= 'cap:100ff';

$criterion_percent	= 0.8;
$clock_percent		= 0.8;

if ($spice_type eq 'smartspice') {
    $window		= 600;
    $iterations		= 20;
    $resolution		= 5;
    $setup_hold_scale	= '1e-12';
} else {
    $relin		= 0.001;
    $relout		= 0.001;
    @@setup_range	= ('0', '0.5ns');
    @@hold_range		= ('-0.5ns', '0');
}

$lu_table_name		= 'slew';

&autochar ('d',
    'rising', 'clk',
    'non_inverting', 'q',
    'inverting', 'mout');

&copychar('d', 'falling', 'clk_n', 'd', 'clk');


#------	CLOCK->Q LOAD DELAY CHARACTERIZATION -----------------------------------

$sim_type		= 'clock_q';
$load{'default'}	= 'cap:100ff';
$lu_table_name		= 'cload';

&autochar ('d',
    'rising', 'clk',
    'non_inverting', 'q');

&copychar('falling', 'clk_n', 'q', 'clk', 'q');


1;
@


1.4
log
@ce works
@
text
@d1 1
a1 1
#	$Id: dff.spec,v 1.3 1999/01/21 06:35:11 ryu Exp ryu $
d32 28
@


1.3
log
@wip
@
text
@d1 1
a1 1
#	$Id: dff.spec,v 1.2 1999/01/14 10:17:32 ryu Exp ryu $
d50 2
a51 4
$buffer{'ph1'}		= 'ebuffer';
$differential{'ph1_b'}	= 'ph1';
$differential{'ph2'}	= 'ph1';
$equivalent{'ph2_b'}	= 'ph1';
d53 1
a53 2
$relin			= 0.001;
$relout			= 0.001;
d56 13
a68 2
@@setup_range		= ('0', '0.5ns');
@@hold_range		= ('-0.5ns', '0');
d72 1
a72 1
    'rising', 'ph1',
d74 1
a74 2
    'inverting', 'xdffscan7',
    tie_low, 'sbus<1>', 'sbus<3>', 'sbus<5>', 'sbus<7>');
d76 1
a76 1
&copychar('d', 'falling', 'ph1_b', 'd', 'ph1');
d86 2
a87 3
    'rising', 'ph1',
    'non_inverting', 'q',
    tie_low, 'sbus<1>', 'sbus<3>', 'sbus<5>', 'sbus<7>');
d89 1
a89 1
&copychar('falling', 'ph1_b', 'q', 'ph1', 'q');
@


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

#	$Id: dff.spec,v 1.1 1999/01/13 07:14:48 ryu Exp ryu $
d29 1
a29 1
$celldata{"$cellname:cellprop:cell_footprint"}		= q/"S_DFF"/;
d38 1
a38 1
$cstart			= '1pF';
d40 1
a40 1
$cmax			= '12pF';
@


1.1
log
@Initial revision
@
text
@d1 1
a1 1
#! /usr/local/bin/perl
d3 1
a3 1
#	$Id$
@