#######################################################################
# File Code Name    : README
# Date Created      : 07/28/00 
# Author            : 
# Project           : TOPS
#######################################################################
# $Id$
#######################################################################
# Description : TOPS Synthesis README file
#
#######################################################################



########################################################################
## TOPS File Descriptions (tools/syn)
## (This is what comes with your subscription to TOPS)
########################################################################

home.synopsys_dc.setup: sample DC setup script to be copied into user home directory

home.synopsys_pt.setup: sample PT setup script to be copied into user home directory

proj_constraints.tcl: setup a basic set of project constraints

proj_dc_setup.tcl: project-specific Synopsys setup files

proj_interactive.tcl: used by gmake when running dc/dv/pt targets.

proj_library.tcl: project library, handles multiple libraries

proj_main.tcl: main script for project synthesis

proj_procs.tcl: define all project procedures

proj_pt_setup.tcl: project-specific Synopsys setup files

proj_reports.tcl: procedures for project specific reports

report_reports.tcl: global report procedures

syn_Makefile: template for Makefile, used by all unit synthesis

syn_make.rules: common make rules included by all make files (how to make dbs)

synbatch: utility invoked by gmake

tops_setup.csh: CSH script to setup TOPS env & synthesis tools

util_procs.tcl: global utility procedures


########################################################################
## TOPS Setup script jumpstart kit
## (This is what you add to your project setup script)
########################################################################

# Here are some steps required to get started.

########################################################################
# 1. Edit the tops_setup.csh to create a project setup script
#    Modify the following proj & PROJ_ROOT variables
#

set proj = "ADD-PROJECT-NAME-HERE"
setenv PROJ_ROOT "ADD-YOUR-ROOT-LEVEL-DIRECTORY-HERE"
setenv PROJ_LIB $PROJ_ROOT/lib
setenv PROJ_SYN $PROJ_ROOT/tools/syn 
setenv PROJ_NAME ${proj} 

#
########################################################################


########################################################################
# 2. Add the Synopsys setup to tops_setup.csh for your installation
#    TOPS requires 1999.05 or later. Recommended version is 2000.05
#
#
########################################################################


########################################################################
# 3. Manually copy home.synopsys_dc.setup_tcl to ~/.synopsys_dc.setup and
#    Manually copy home.synopsys_pt.setup_tcl to ~/.synopsys_pt.setup.
#    Or you can utilize the 60 lines of code that are provided
#    in the tops_setup.csh to check user's area for a current
#    version of the .synopsys_dc.setup & .synopsys_pt.setup files
#
#
########################################################################


########################################################################
# 4. Edit the proj_library.tcl script to setup the synthesis libraries
#    for your project. Recommend using the global variables that have been
#    provided (or add any additional varas). The default is set to lsi_10k
#    which is available on your Synopsys installation tree.

    # EDIT the following with the Synopsys library variables
    # Default Scan Flop used for drive
    set G_DEFAULT_DRIVING_CELL {FD1S};
    set G_DEFAULT_DRIVING_CELL_PIN {Q};

    # Default nand used for load
    set G_DEFAULT_LOAD_CELL {ND2};
    set G_DEFAULT_LOAD_CELL_PIN {A};

    # This variable is used to normalize to "NAND equivalent gates"
    set G_DEFAULT_NAND_CELL {ND2};
    
    # Set Operating conditions & min/max libraries for synthesis  	
    set G_MAX_LIBRARY ${G_LIBRARY_NAME};
    set G_MIN_LIBRARY ${G_LIBRARY_NAME};
    set G_MAX_OP_CONDITION {WCCOM};
    set G_MIN_OP_CONDITION {BCCOM};
    
    # Setup wireload variables
    set G_DEFAULT_WIRE_LOAD {90x90};
    set G_CWLM_LIBRARY [list ""];

    set target_library [list ${G_MAX_LIBRARY}.db];
    set symbol_library [list lsi_10k.sdb];

    # Synthetic_library is assigned in proj_dc_setup.scr, include * for designs in memory
    set link_library "* $target_library $synthetic_library";

#
########################################################################


########################################################################
# At this point, user can run synthesis.
#
# - source tops_setup.csh
# - change directory to snug/units/cnt_vlog/syn
# - invoke tops in the interactive mode (gmake dc)
#
# Read through presentation for more details, recommend adding clocks
# and constraints as needed to support your target's synthesis.
#
########################################################################


########################################################################
# Final notes:
#
# The tools/syn//synbatch Perl script that Make calls to execute 
# dc_shell-t may need some edits to fit your environment.  Specifically, 
# the perl binary location (default is /usr/local/bin/perl) and the 
# remote shell command you prefer (default is rsh) for the poor-man's
# batching facility.  Change this script as you so desire.
#
########################################################################



########################################################################
# END File Description
########################################################################

#######################################################################
# $Log$
#######################################################################
