# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

export QSYS_ROOTDIR="/home/thuc/Tools/intelFPGA/23.1std/quartus/sopc_builder/bin"

# VLSI-CAD TOOLS
export CDS_LIC_FILE="..."
export MGLS_LICENSE_FILE="..."
export LM_LICENSE_FILE="..."

export SFLM_FLEXLM=1
export CDS_AUTO_64BIT="ALL"
export CDS_Netlisting_Mode="Analog"

export LD_LIBRARY_PATH="/lib:/lib32:/usr/lib:/usr/lib32:/usr/local/lib"

# Cadence bin
export Cadence="/home/thuc/VLSI-CAD/Cadence"
export ASSURA="$Cadence/ASSURA/bin"
export CONFRML="$Cadence/CONFRML/bin"
export GENUS="$Cadence/GENUS/bin"
#export IC="$Cadence/IC23/bin"
#export IC="$Cadence/IC618/bin"
export IC="$Cadence/ICADV/bin"
export INNOVUS="$Cadence/INNOVUS/bin"
export JasperGold="$Cadence/JasperGold/bin"
export LIBERATE="$Cadence/LIBERATE/bin"
export PVS="$Cadence/PVS/bin"
export QUANTUS="$Cadence/QUANTUS/bin"
export SIGRITY="$Cadence/SIGRITY/bin:/$Cadence/SIGRITY/tools/bin"
export SPB="$Cadence/SPB/bin"
export SPECTRE="$Cadence/SPECTRE/bin"
export SSV="$Cadence/SSV/bin"
export STRATUS="$Cadence/STRATUS/bin"
export XCELIUM="$Cadence/XCELIUM/bin:/$Cadence/XCELIUM/tools/bin"
export DDI="$Cadence/DDI/bin"
# Cadence HOME
export OA_HOME="$Cadence/IC23/oa_v22.61.019"
export OA_UNSUPPORTED_PLAT="linux_rhel70_gcc93x"
# Cadence list
export Cadence_tools="$ASSURA:$CONFRML:$GENUS:$IC:$INNOVUS:$JasperGold:$LIBERATE:$PVS:$QUANTUS:$SIGRITY:$SPB:$SPECTRE:$SSV:$STRATUS:$XCELIUM:$DDI"

# Mentor bin
export Mentor="/home/thuc/VLSI-CAD/Mentor"
export ZeroIn="$Mentor/0-in/linux_x86_64/bin"
export AMSV="$Mentor/AMSV/amsv/bin"
export Calibre="$Mentor/Calibre/bin"
export DFT="$Mentor/DFT/bin"
export LeonardSpectrum="$Mentor/LeonardSpectrum/bin/Linux"
export ModelSim="$Mentor/ModelSim/bin"
export Pyxis="$Mentor/Pyxis/bin"
export QuetaSim="$Mentor/QuetaSim/bin"
export Tanner="$Mentor/Tanner/tanner/bin"
# Mentor HOME
export HOME_0IN="$Mentor/0-in"
export AFS_ROOT="$Mentor/AMSV/amsv"
export CALIBRE_HOME="$Mentor/Calibre"
export EXEMPLAR="$Mentor/LeonardSpectrum"
#export MGC_HOME="$Mentor/Pyxis"
export MGC_HOME=$CALIBRE_HOME
# Mentor list
export Mentor_tools="$ZeroIn:$AMSV:$Calibre:$DFT:$LeonardSpectrum:$ModelSim:$Pyxis:$QuetaSim:$Tanner"

# Synopsys bin
export Synopsys="/home/thuc/VLSI-CAD/Synopsys"
export CustomCompiler="$Synopsys/customcompiler/W-2024.09/bin"
export FineSim="$Synopsys/finesim/Q-2020.03-SP1/bin"
export Formality="$Synopsys/formality/W-2024.09/bin"
export FPGA="$Synopsys/fpga/U-2023.03/bin"
export FusionCompiler="$Synopsys/fusioncompiler/W-2024.09/bin"
export Hercules="$Synopsys/hercules/B-2008.09-SP5-1/bin/amd64"
export Hsim="$Synopsys/hsim/Q-2020.03-SP2/hsimplus/bin"
export Hspice="$Synopsys/hspice/W-2024.09-1/hspice/bin"
export ICC="$Synopsys/icc/W-2024.09/bin"
export ICC2="$Synopsys/icc2/W-2024.09/bin"
export ICV="$Synopsys/icv_workbench/V-2023.09-SP2/bin/linux64"
export ICvalidator="$Synopsys/icvalidator/W-2024.09-2/bin"
export Idq="$Synopsys/idq/R-2020.09-SP4/linux64/iddq/bin"
export LibraryCompiler="$Synopsys/library_compiler/W-2024.09/bin"
export Milkyway="$Synopsys/milkyway/W-2024.09/bin/linux64"
export Nanotime="$Synopsys/nanotime/V-2023.12-SP5/bin"
export PrimeLib="$Synopsys/primelib/T-2022.03-1/bin"
export PrimeRail="$Synopsys/primerail/M-2017.06-SP3/bin"
export PrimeSim="$Synopsys/primesim/T-2022.06-SP2-2/bin"
export PrimeTime="$Synopsys/primetime/U-2022.12-SP5-4/bin"
export PrimeWave="$Synopsys/primewave/W-2024.09/bin"
export PrimeWaveRely="$Synopsys/primewavereliability/W-2024.09/bin"
export QuantumAtk="$Synopsys/quantumatk/W-2024.09-SP1/bin"
export QuickCap="$Synopsys/quickcap/W-2024.09/bin"
export Raphael="$Synopsys/raphael/T-2022.03/bin"
export RaphaelFX="$Synopsys/raphael_fx/T-2022.03-SP1/bin"
export RTLA="$Synopsys/rtl_architect/T-2022.03-SP1/bin"
export Sentaurus="$Synopsys/sentaurus/W-2024.09/bin"
export SentaurusExp="$Synopsys/sentaurus_explorer/W-2024.09/bin"
export Slitho="$Synopsys/slitho/U-2022.12/bin"
export SlithoPWA="$Synopsys/slitho_pwa/U-2022.12/bin"
export SpxViewer="$Synopsys/spxviewer/W-2024.09/bin"
export SpyGlass="$Synopsys/spyglass/V-2023.12/SPYGLASS_HOME/bin"
export StarRC="$Synopsys/starrc/V-2023.12-SP5/bin"
export Syn="$Synopsys/syn/W-2024.09/bin"
export Taurus="$Synopsys/taurus/S_2021.06/bin"
export TetraMax="$Synopsys/tetramax/R-2020.09-SP4/bin"
export VCS="$Synopsys/vcs/W-2024.09/bin"
export VCStatic="$Synopsys/vc_static/S-2021.09-SP2-4/bin"
export Verdi="$Synopsys/verdi/T-2022.06-SP1-1/bin"
export WaveView="$Synopsys/waveview/W-2024.09-2/bin"
export Xa="$Synopsys/xa/W-2024.09-1/bin"
# Synopsys HOME
export SPYGLASS_HOME="$Synopsys/spyglass/V-2023.12/SPYGLASS_HOME"
export VCS_HOME="$Synopsys/vcs/W-2024.09"
export VC_STATIC_HOME="$Synopsys/vc_static/S-2021.09-SP2-4"
# Synopsys list
export Synopsys_tools="$CustomCompiler:$FineSim:$Formality:$FPGA:$Hercules:$Hsim:$Hspice:$ICC:$ICC2:$ICV:$ICvalidator:$Idq:$LibraryCompiler:$Milkyway:$Nanotime:$PrimeLib:$PrimeRail:$PrimeSim:$PrimeTime:$PrimeWave:$PrimeWaveRely:$QuantumAtk:$QuickCap:$Raphael:$RaphaelFX:$RTLA:$Sentaurus:$SentaurusExp:$Slitho:$SlithoPWA:$SpxViewer:$SpyGlass:$StarRC:$Syn:$Taurus:$TetraMax:$VCS:$VCStatic:$Verdi:$WaveView:$Xa:$FusionCompiler"

# Join PATH
export PATH="$PATH:$Cadence_tools:$Mentor_tools:$Synopsys_tools"

