| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- #!/bin/bash -f
- #*********************************************************************************************************
- # Vivado (TM) v2020.2 (64-bit)
- #
- # Filename : MeasDataFifo.sh
- # Simulator : Synopsys Verilog Compiler Simulator
- # Description : Simulation script for compiling, elaborating and verifying the project source files.
- # The script will automatically create the design libraries sub-directories in the run
- # directory, add the library logical mappings in the simulator setup file, create default
- # 'do/prj' file, execute compilation, elaboration and simulation steps.
- #
- # Generated by Vivado on Wed May 03 12:25:18 +0700 2023
- # SW Build 3064766 on Wed Nov 18 09:12:45 MST 2020
- #
- # Copyright 1986-2020 Xilinx, Inc. All Rights Reserved.
- #
- # usage: MeasDataFifo.sh [-help]
- # usage: MeasDataFifo.sh [-lib_map_path]
- # usage: MeasDataFifo.sh [-noclean_files]
- # usage: MeasDataFifo.sh [-reset_run]
- #
- # Prerequisite:- To compile and run simulation, you must compile the Xilinx simulation libraries using the
- # 'compile_simlib' TCL command. For more information about this command, run 'compile_simlib -help' in the
- # Vivado Tcl Shell. Once the libraries have been compiled successfully, specify the -lib_map_path switch
- # that points to these libraries and rerun export_simulation. For more information about this switch please
- # type 'export_simulation -help' in the Tcl shell.
- #
- # You can also point to the simulation libraries by either replacing the <SPECIFY_COMPILED_LIB_PATH> in this
- # script with the compiled library directory path or specify this path with the '-lib_map_path' switch when
- # executing this script. Please type 'MeasDataFifo.sh -help' for more information.
- #
- # Additional references - 'Xilinx Vivado Design Suite User Guide:Logic simulation (UG900)'
- #
- #*********************************************************************************************************
- # Directory path for design sources and include directories (if any) wrt this path
- ref_dir="."
- # Override directory with 'export_sim_ref_dir' env path value if set in the shell
- if [[ (! -z "$export_sim_ref_dir") && ($export_sim_ref_dir != "") ]]; then
- ref_dir="$export_sim_ref_dir"
- fi
- # Command line options
- vlogan_opts="-full64"
- vhdlan_opts="-full64"
- vcs_elab_opts="-full64 -debug_pp -t ps -licqueue -l elaborate.log"
- vcs_sim_opts="-ucli -licqueue -l simulate.log"
- # Design libraries
- design_libs=(xpm xil_defaultlib)
- # Simulation root library directory
- sim_lib_dir="vcs_lib"
- # Script info
- echo -e "MeasDataFifo.sh - Script generated by export_simulation (Vivado v2020.2 (64-bit)-id)\n"
- # Main steps
- run()
- {
- check_args $# $1
- setup $1 $2
- compile
- elaborate
- simulate
- }
- # RUN_STEP: <compile>
- compile()
- {
- # Compile design files
- vlogan -work xpm $vlogan_opts -sverilog \
- "C:/Xilinx/Vivado/2020.2/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv" \
- "C:/Xilinx/Vivado/2020.2/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv" \
- 2>&1 | tee -a vlogan.log
- vhdlan -work xpm $vhdlan_opts \
- "C:/Xilinx/Vivado/2020.2/data/ip/xpm/xpm_VCOMP.vhd" \
- 2>&1 | tee -a vhdlan.log
- vlogan -work xil_defaultlib $vlogan_opts +v2k \
- "$ref_dir/../../../../S5443.srcs/sources_1/ip/MeasDataFifo/MeasDataFifo_sim_netlist.v" \
- 2>&1 | tee -a vlogan.log
- vlogan -work xil_defaultlib $vlogan_opts +v2k \
- glbl.v \
- 2>&1 | tee -a vlogan.log
- }
- # RUN_STEP: <elaborate>
- elaborate()
- {
- vcs $vcs_elab_opts xil_defaultlib.MeasDataFifo xil_defaultlib.glbl -o MeasDataFifo_simv
- }
- # RUN_STEP: <simulate>
- simulate()
- {
- ./MeasDataFifo_simv $vcs_sim_opts -do simulate.do
- }
- # STEP: setup
- setup()
- {
- case $1 in
- "-lib_map_path" )
- if [[ ($2 == "") ]]; then
- echo -e "ERROR: Simulation library directory path not specified (type \"./MeasDataFifo.sh -help\" for more information)\n"
- exit 1
- fi
- create_lib_mappings $2
- ;;
- "-reset_run" )
- reset_run
- echo -e "INFO: Simulation run files deleted.\n"
- exit 0
- ;;
- "-noclean_files" )
- # do not remove previous data
- ;;
- * )
- create_lib_mappings $2
- esac
- create_lib_dir
- # Add any setup/initialization commands here:-
- # <user specific commands>
- }
- # Define design library mappings
- create_lib_mappings()
- {
- file="synopsys_sim.setup"
- if [[ -e $file ]]; then
- if [[ ($1 == "") ]]; then
- return
- else
- rm -rf $file
- fi
- fi
- touch $file
- lib_map_path=""
- if [[ ($1 != "") ]]; then
- lib_map_path="$1"
- fi
- for (( i=0; i<${#design_libs[*]}; i++ )); do
- lib="${design_libs[i]}"
- mapping="$lib:$sim_lib_dir/$lib"
- echo $mapping >> $file
- done
- if [[ ($lib_map_path != "") ]]; then
- incl_ref="OTHERS=$lib_map_path/synopsys_sim.setup"
- echo $incl_ref >> $file
- fi
- }
- # Create design library directory paths
- create_lib_dir()
- {
- if [[ -e $sim_lib_dir ]]; then
- rm -rf $sim_lib_dir
- fi
- for (( i=0; i<${#design_libs[*]}; i++ )); do
- lib="${design_libs[i]}"
- lib_dir="$sim_lib_dir/$lib"
- if [[ ! -e $lib_dir ]]; then
- mkdir -p $lib_dir
- fi
- done
- }
- # Delete generated data from the previous run
- reset_run()
- {
- files_to_remove=(ucli.key MeasDataFifo_simv vlogan.log vhdlan.log compile.log elaborate.log simulate.log .vlogansetup.env .vlogansetup.args .vcs_lib_lock scirocco_command.log 64 AN.DB csrc MeasDataFifo_simv.daidir)
- for (( i=0; i<${#files_to_remove[*]}; i++ )); do
- file="${files_to_remove[i]}"
- if [[ -e $file ]]; then
- rm -rf $file
- fi
- done
- create_lib_dir
- }
- # Check command line arguments
- check_args()
- {
- if [[ ($1 == 1 ) && ($2 != "-lib_map_path" && $2 != "-noclean_files" && $2 != "-reset_run" && $2 != "-help" && $2 != "-h") ]]; then
- echo -e "ERROR: Unknown option specified '$2' (type \"./MeasDataFifo.sh -help\" for more information)\n"
- exit 1
- fi
- if [[ ($2 == "-help" || $2 == "-h") ]]; then
- usage
- fi
- }
- # Script usage
- usage()
- {
- msg="Usage: MeasDataFifo.sh [-help]\n\
- Usage: MeasDataFifo.sh [-lib_map_path]\n\
- Usage: MeasDataFifo.sh [-reset_run]\n\
- Usage: MeasDataFifo.sh [-noclean_files]\n\n\
- [-help] -- Print help information for this script\n\n\
- [-lib_map_path <path>] -- Compiled simulation library directory path. The simulation library is compiled\n\
- using the compile_simlib tcl command. Please see 'compile_simlib -help' for more information.\n\n\
- [-reset_run] -- Recreate simulator setup files and library mappings for a clean run. The generated files\n\
- from the previous run will be removed. If you don't want to remove the simulator generated files, use the\n\
- -noclean_files switch.\n\n\
- [-noclean_files] -- Reset previous run, but do not remove simulator generated files from the previous run.\n\n"
- echo -e $msg
- exit 1
- }
- # Launch script
- run $1 $2
|