URL
https://opencores.org/ocsvn/openmsp430/openmsp430/trunk
Subversion Repositories openmsp430
[/] [openmsp430/] [trunk/] [core/] [sim/] [rtl_sim/] [bin/] [msp430sim] - Rev 180
Go to most recent revision | Compare with Previous | Blame | View Log
#!/bin/bash#------------------------------------------------------------------------------# Copyright (C) 2001 Authors## This source file may be used and distributed without restriction provided# that this copyright statement is not removed from the file and that any# derivative work contains the original copyright notice and the associated# disclaimer.## This source file is free software; you can redistribute it and/or modify# it under the terms of the GNU Lesser General Public License as published# by the Free Software Foundation; either version 2.1 of the License, or# (at your option) any later version.## This source 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 Lesser General Public# License for more details.## You should have received a copy of the GNU Lesser General Public License# along with this source; if not, write to the Free Software Foundation,# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA##------------------------------------------------------------------------------## File Name: msp430sim## Author(s):# - Olivier Girard, olgirard@gmail.com##------------------------------------------------------------------------------# $Rev: 151 $# $LastChangedBy: olivier.girard $# $LastChangedDate: 2012-07-23 00:24:11 +0200 (Mon, 23 Jul 2012) $#------------------------------------------------------------------------------################################################################################ Parameter Check ################################################################################EXPECTED_ARGS=1if [ $# -ne $EXPECTED_ARGS ]; thenecho "ERROR : wrong number of arguments"echo "USAGE : msp430sim <test name>"echo "Example : msp430sim c-jump_jge"echo ""echo "In order to switch the verilog simulator, the OMSP_SIMULATOR environment"echo "variable can be set to the following values:"echo ""echo " - iverilog : Icarus Verilog (default)"echo " - cver : CVer"echo " - verilog : Verilog-XL"echo " - ncverilog : NC-Verilog"echo " - vcs : VCS"echo " - vsim : Modelsim"echo " - isim : Xilinx simulator"echo ""exit 1fi################################################################################ Check if the required files exist ################################################################################asmfile=../src/$1.s43;verfile=../src/$1.v;incfile=../../../rtl/verilog/openMSP430_defines.v;linkfile=../bin/template.x;headfile=../bin/template_defs.asm;submitfile=../src/submit.f;if [ $OMSP_SIMULATOR == "isim" ]; thensubmitfile=../src/submit.prj;fiif [ ! -e $asmfile ]; thenecho "Assembler file $asmfile doesn't exist: $asmfile"exit 1fiif [ ! -e $verfile ]; thenecho "Verilog stimulus file $verfile doesn't exist: $verfile"exit 1fiif [ ! -e $submitfile ]; thenecho "Verilog submit file $submitfile doesn't exist: $submitfile"exit 1fiif [ ! -e $linkfile ]; thenecho "Linker definition file template doesn't exist: $linkfile"exit 1fiif [ ! -e $headfile ]; thenecho "Assembler definition file template doesn't exist: $headfile"exit 1fi################################################################################ Cleanup ################################################################################echo "Cleanup..."rm -rf *.vcdrm -rf *.vpdrm -rf *.trnrm -rf *.dsnrm -rf pmem*rm -rf stimulus.v################################################################################ Run simulation ################################################################################echo " ======================================================="echo "| Start simulation: $1"echo " ======================================================="# Create linksif [ `uname -o` = "Cygwin" ]thencp $asmfile pmem.s43cp $verfile stimulus.velseln -s $asmfile pmem.s43ln -s $verfile stimulus.vfi# Make local copy of the openMSP403 configuration file# and prepare it for MSPGCC preprocessingcp $incfile ./pmem.hsed -i 's/`ifdef/#ifdef/g' ./pmem.hsed -i 's/`else/#else/g' ./pmem.hsed -i 's/`endif/#endif/g' ./pmem.hsed -i 's/`define/#define/g' ./pmem.hsed -i 's/`//g' ./pmem.hsed -i "s/'//g" ./pmem.h# Use MSPGCC preprocessor to extract the Program, Data# and Peripheral memory sizesmsp430-gcc -E -P -x c ../bin/omsp_config.sh > pmem.sh# Source the extracted configuration filesource pmem.sh# Compile assembler codeecho "Compile, link & generate IHEX file (Program Memory: $pmemsize B, Data Memory: $dmemsize B, Peripheral Space: $persize B)..."../bin/asm2ihex.sh pmem pmem.s43 $linkfile $headfile $pmemsize $dmemsize $persize# Generate Program memory fileecho "Convert IHEX file to Verilog MEMH format..."../bin/ihex2mem.tcl -ihex pmem.ihex -out pmem.mem -mem_size $pmemsize# Start verilog simulationecho "Start Verilog simulation..."../bin/rtlsim.sh stimulus.v pmem.mem $submitfile
Go to most recent revision | Compare with Previous | Blame | View Log
