📄 xlcosim_dac_test_modelsim.tcl
字号:
proc openClient {} {
set find_spare 0
set port 1301
set cid [socket localhost $port]
echo Connected to Xilinx System Generator Block {}
fileevent $cid readable "event_handler $cid"
fconfigure $cid -buffering line
return $cid
}
proc openWave {} {
global vsim_version
destroy .wave
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -height 30 -divider { Block : "dac_test_black_box" }
add wave -label " din" sim:/xlcosim_dac_test_modelsim/dac_test_black_box_din
add wave -label " fltsel" sim:/xlcosim_dac_test_modelsim/dac_test_black_box_fltsel
add wave -label " rstn" sim:/xlcosim_dac_test_modelsim/dac_test_black_box_rstn
add wave -noupdate -height 11 -divider { }
add wave -label " dout" sim:/xlcosim_dac_test_modelsim/dac_test_black_box_dout
add wave -noupdate -height 50 -divider {Clock Signals}
add wave -label " clk" sim:/xlcosim_dac_test_modelsim/clock_driver/clk
add wave -label " ce_1" sim:/xlcosim_dac_test_modelsim/clock_driver/ce_1
add wave -label " ce_2" sim:/xlcosim_dac_test_modelsim/clock_driver/ce_2
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {0.100000000000 sec}
WaveRestoreZoom {0 sec} {0.333333333333 sec}
configure wave -justifyvalue right
if [expr $vsim_version>2002.11] then {view wave -title {System Generator Co-Simulation (from block "")} -x {51} -width {921}} else {view wave -x {51} -width {921}}
}
proc event_handler {cid} {
set request ""
if {[eof $cid]} {
# If the socket is closed for any reason, the
# handler will get called with eof.
echo System Generator has closed its connection.
close $cid
} else {
gets $cid message
scan $message "%s" request
if {$request == "f"} {
scan $message "%s %s %s %s" request dac_test_black_box_din dac_test_black_box_fltsel dac_test_black_box_rstn
onerror { puts $cid 9 ; flush $cid}
force dac_test_black_box_din $dac_test_black_box_din
force dac_test_black_box_fltsel $dac_test_black_box_fltsel
force dac_test_black_box_rstn $dac_test_black_box_rstn
if [llength [find signal dac_test_black_box_din]] {puts $cid 2} else {puts $cid 9}
flush $cid
}
if {$request == "r"} {
scan $message "%s %s" request delta_t
onerror { puts $cid 9 ; flush $cid }
run $delta_t sec
if [llength [find signal dac_test_black_box_din]] {puts $cid 3} else {puts $cid 9}
flush $cid
}
if {$request == "e"} {
set valMsg [examine dac_test_black_box_dout]
puts $cid $valMsg
flush $cid
}
if {$request == "quit"} {
quit -sim
echo simstats:
simstats
}
if {$request == "die"} {
close $cid
quit -f
}
if {$request == "detach"} {
echo simstats:
simstats
close $cid
}
if {$request == "offerExit"} {
_add_menu main controls right SystemMenu SystemWindowFrame {Exit this Sysgen Co-Simulation Engine} {quit -force}
}
}
}
set cid [openClient]
global xlcosim_stat
global xlcosim_is_mxe
global vsim_version
set xlcosim_stat 0
set xlcosim_is_mxe 0
if ([info exists vsim_version]==0) {
set xlcosim_is_mxe 1
set vsim_version 2003.3
}
puts $cid $xlcosim_is_mxe
flush $cid
set UserTimeUnit sec
.main clear
onerror { global xlcosim_stat ; set xlcosim_stat 9 ; resume }
vlib work
if {$xlcosim_stat==0} {
onerror { global xlcosim_stat ; set xlcosim_stat 9; resume }
vlog -93 iir_filter.v
update
puts $cid 3
flush $cid
}
if {$xlcosim_stat==0} {
onerror { global xlcosim_stat ; set xlcosim_stat 9; resume }
vlog -93 iir_6_filter.v
update
puts $cid 3
flush $cid
}
if {$xlcosim_stat==0} {
onerror { global xlcosim_stat ; set xlcosim_stat 9; resume }
vlog -93 dac_test_black_box_wrapper.v
update
puts $cid 3
flush $cid
}
if {$xlcosim_stat==0} {
onerror { global xlcosim_stat ; set xlcosim_stat 9; resume }
vcom -93 xlcosim_dac_test_modelsim_clk_drvr.vhd
update
puts $cid 3
flush $cid
}
if {$xlcosim_stat==0} {
onerror { global xlcosim_stat ; set xlcosim_stat 9; resume }
if {$xlcosim_is_mxe==1} {
vcom -93 xlcosim_dac_test_modelsim.vhd
} else {
vcom -93 xlcosim_dac_test_modelsimf.vhd
}
}
if {$xlcosim_stat==0} {
onerror { global xlcosim_stat ; set xlcosim_stat 9; resume }
onElabError { global xlcosim_stat ; set xlcosim_stat 9; resume }
vsim work.xlcosim_dac_test_modelsim -title {System Generator Co-Simulation (from block "")}
update
if {$xlcosim_stat==0} {
onerror { global xlcosim_stat ; set xlcosim_stat 9; resume }
if [llength [find signal dac_test_black_box_din]] {} else {global xlcosim_stat ; set xlcosim_stat 9 }
}
}
puts $cid $xlcosim_stat
flush $cid
if {$xlcosim_stat!=0} {
close $cid
}
if (($xlcosim_stat==0)&&($xlcosim_is_mxe==0)) {
run -all
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -