compile.vcs 1.79 KB
#!/usr/bin/perl
###############################################################################
#                                                                             #
# PURPOSE: Compile a list of .v files into a vcs executable (used in con-     #
#          junctions with simulate.vcs).                                      #
#                                                                             #
###############################################################################
#
# vcs release directory
###############################################################################
# $REL_DIR = "/ecad/vcs/vcs_2.1/sgi";
# $REL_DIR = "/ecad/vcs/vcs_2.0.3";
$REL_DIR = "/ecad/vcs/vcs_2.1.1/sgi";

#
# Use /usr/tmp for cc temporary files (/tmp is not big enough in all cases)
###############################################################################
$ENV{'TMPDIR'} = "/usr/tmp";

# set license server environment variable
###############################################################################
#$ENV{'VCS_NETHOST'} = "niger.asd";
$ENV{'VCS_NETHOST'} = "ubangi.asd";
#$ENV{'VCS_NETHOST'} = "nile.asd";

# Remove sgicom if it's not a directory (vcs puts garbage if errors)
###############################################################################
if(! -d "sgicom")
  {
   unlink("sgicom");
  }

# Translate .v files into .c files in directory ./sgicom
###############################################################################
$vcs     = "$REL_DIR/bin/vcs";
$options = "-Xpae=0x1000 +acc -V -C -P /ecad/sgi/lib/pli.tab -Mdir=sgicom -l vcs.log -M -f verilog.cmd";

if(!system("$vcs $options @ARGV"))
  {
   if(! -r "sgicom/vcs.makefile")
     {
      system "cp vcs.makefile sgicom";
     }

   system "cd sgicom; make -f vcs.makefile";
   system "mv simv.daidb sgicom/simv.asd.daidb";
  }