OpenCores
URL https://opencores.org/ocsvn/sdhc-sc-core/sdhc-sc-core/trunk

Subversion Repositories sdhc-sc-core

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /sdhc-sc-core/trunk/sim
    from Rev 6 to Rev 185
    Reverse comparison

Rev 6 → Rev 185

/sim.tcl
0,0 → 1,169
# SDHC-SC-Core
# Secure Digital High Capacity Self Configuring Core
#
# (C) Copyright 2010, Rainer Kastl
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the <organization> nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# File : sim.tcl
# Owner : Rainer Kastl
# Description : Script for simulation
# Links :
#
 
 
proc compileWithPsl {fname grp en psl} {
upvar $psl mpsl
 
if [info exists mpsl($en)] {
set pslfile "../../../grp$grp/unit$en/src/$mpsl($en).psl"
if [file isfile $pslfile] {
vcom $fname -pslfile $pslfile
} else {
echo "pslfile $pslfile not found"
vcom $fname
}
} else {
vcom $fname
}
};
 
proc compileUnit {grp en arch tpsl} {
upvar $tpsl psl
set prefix ../../../grp$grp/unit$en/src
if [file isfile $prefix/$en-e.vhdl] {
compileWithPsl "$prefix/$en-e.vhdl" $grp $en psl
if [file isfile $prefix/$en-$arch-a.vhdl] {
vcom "$prefix/$en-$arch-a.vhdl"
}
} elseif [file isfile $prefix/$en-$arch-ea.vhdl] {
compileWithPsl "$prefix/$en-$arch-ea.vhdl" $grp $en psl
} else {
echo "Unit $grp $en $arch not found!"
}
};
 
 
proc compileTb {grp en arch} {
set prefix ../../../grp$grp/unit$en/src
if [file isfile $prefix/tb$en-e.vhdl] {
vcom "$prefix/tb$en-e.vhdl"
if [file isfile $prefix/tb$en-$arch-a.vhdl] {
vcom "$prefix/tb$en-$arch-a.vhdl"
}
} elseif [file isfile $prefix/tb$en-$arch-ea.vhdl] {
vcom "$prefix/tb$en-$arch-ea.vhdl"
} else {
echo "Testbench $grp $en $arch not found!"
}
};
 
vlib work
vmap work work
 
if [info exists libs] {
foreach {lib} $libs {
vmap $lib ../../../lib$lib/sim/$lib
}
}
 
if [info exists pkgs] {
foreach {grp pkg} $pkgs {
set fname ../../../grp$grp/pkg$pkg/src/$pkg-p.vhdl
if [file isfile $fname] {
vcom "$fname"
} else {
echo "Pkg $grp $pkg not found!"
}
}
}
 
if [info exists units] {
foreach {grp en arch} $units {
compileUnit $grp $en $arch psl
}
}
 
 
 
if [info exists tbunits] {
foreach {grp en arch} $tbunits {
if ![info exists psl] {
array set psl [list]
}
compileUnit $grp $en $arch psl
}
}
 
if [info exists tb] {
foreach {grp en arch} $tb {
compileTb $grp $en $arch
 
set top tb$en
}
}
 
if [info exists svtb] {
foreach {grp unit} $svtb {
set fname ../../../grp$grp/unit$unit/src/tb$unit.sv
if [file isfile $fname] {
vlog $fname
} else {
echo "Svunit $grp $unit not found! ($fname)"
}
}
}
 
if [info exists svunits] {
foreach {grp unit} $svunits {
set fname ../../../grp$grp/unit$unit/src/$unit.sv
if [file isfile $fname] {
if [info exists sysvlogparams] {
vlog $fname $sysvlogparams
} else {
vlog $arg
}
} else {
echo "Svunit $grp $unit not found! ($fname)"
}
}
}
 
if ([info exists top]) {
if ([info exists vsimargs]) {
vsim $vsimargs $top
} else {
vsim $top
}
 
if [file isfile wave.do] {
do wave.do
}
 
if [info exists simtime] {
run $simtime
} else {
run -all
}
}
/unattended.tcl
0,0 → 1,52
# SDHC-SC-Core
# Secure Digital High Capacity Self Configuring Core
#
# (C) Copyright 2010, Rainer Kastl
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the <organization> nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# File : unattended.tcl
# Owner : Rainer Kastl
# Description : script for running simulations unattended
# Links :
#
 
# Usage: programname
 
# use an error code which is not used by modelsim
set errcode 88
set errors 0
onerror "quit -code $errcode"
onbreak {incr errors; cont}
 
# run the script and exit afterwards
do $script
 
if {$errors == 0} {
exit
} else {
quit -code $errcode
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.