📄 script.h
字号:
/* * script.h -- * * This file contains string formatted TCL/TK scripts for animating * DLX pipeline configurations. * * This file is part of DLXview. It was written by Yinong Zhang * (yinong@ecn.purdue.edu). * */char mkConfigure_tcl[] = "\proc mkConfigure {{w .configure}} {\n\ global config\n\ global numWords\n\ global configureEnabled\n\ set configOrig $config\n\ set numWordsOrig $numWords\n\ catch {destroy $w}\n\ toplevel $w\n\ wm title $w \"Configure\"\n\ wm iconname $w \"configure\"\n\ wm geometry $w +0+0\n\ set oldFocus [focus]\n\ frame $w.config \n\ frame $w.mem\n\ frame $w.button\n\ pack $w.config $w.mem $w.button \\\n\ -side top \\\n\ -fill x \\\n\ -expand yes\n\ radiobutton $w.config.basicpipe \\\n\ -relief flat \\\n\ -text \"Basic Pipeline\" \\\n\ -variable config \\\n\ -value 0\n\ radiobutton $w.config.tomasulo \\\n\ -relief flat \\\n\ -text \"Tomasulo\" \\\n\ -variable config \\\n\ -value 1\n\ radiobutton $w.config.scoreboarding \\\n\ -relief flat \\\n\ -text \"Scoreboarding\" \\\n\ -variable config \\\n\ -value 2\n\ pack $w.config.basicpipe $w.config.tomasulo $w.config.scoreboarding \\\n\ -side left \\\n\ -fill x \\\n\ -expand yes \\\n\ -padx 5 \\\n\ -pady 2\n\ scale $w.mem.size \\\n\ -label \"memory size (words)\" \\\n\ -from 2048 \\\n\ -to 16384 \\\n\ -tickinterval 14336 \\\n\ -command ShowMemSize\n\ pack $w.mem.size \\\n\ -side left \\\n\ -fill x \\\n\ -expand yes \\\n\ -padx 5 \\\n\ -pady 10\n\ button $w.button.ok \\\n\ -text Ok \\\n\ -state disabled \\\n\ -command \"ConfigureOk $oldFocus\"\n\ button $w.button.cancel \\\n\ -text Cancel \\\n\ -command \"destroy $w\n\ focus $oldFocus\n\ set config $configOrig\n\ set numWords $numWordsOrig\"\n\ pack $w.button.ok $w.button.cancel \\\n\ -side left \\\n\ -fill x \\\n\ -expand yes\n\ trace variable config w SubConfigure\n\ $w.mem.size set $numWords\n\ \n\ if {$configureEnabled == \"0\"} {\n\ $w.mem.size configure -state disabled\n\ $w.mem.size configure -troughcolor lightgrey\n\ $w.mem.size configure -activebackground lightgrey\n\ $w.button.ok configure -state disabled\n\ switch $config {\n\ 0 {\n\ $w.config.tomasulo configure -state disabled\n\ $w.config.scoreboarding configure -state disabled\n\ }\n\ 1 {\n\ $w.config.basicpipe configure -state disabled\n\ $w.config.scoreboarding configure -state disabled\n\ }\n\ 2 {\n\ $w.config.basicpipe configure -state disabled\n\ $w.config.tomasulo configure -state disabled\n\ }\n\ }\n\ }\n\ \n\ grab $w\n\ focus $w\n\}\n\ ";char ShowMemSize_tcl[] = "\proc ShowMemSize {size {w .configure}} {\n\ global numWords\n\ set size [expr ($size + 1024)/2048*2048]\n\ $w.mem.size set $size\n\ set numWords $size\n\}\n\ \n\ ";char SubConfigure_tcl[] = "\proc SubConfigure {name element op} {\n\ global configureEnabled\n\ upvar $name configure\n\ if {[winfo exists .configure]} {\n\ if {$configureEnabled != \"0\" && $configure != \"3\"} {\n\ .configure.button.ok configure -state normal\n\ }\n\ switch $configure {\n\ 0 {\n\ BasConfigure\n\ }\n\ 1 {\n\ TomConfigure\n\ }\n\ 2 {\n\ ScoConfigure\n\ }\n\ 3 {}\n\ }\n\ }\n\}\n\ ";char BasConfigure_tcl[] = "\proc BasConfigure {{w .subconfigure}} {\n\ global num_int_units \n\ global num_add_units fp_add_latency add_ful_pipe\n\ global num_mul_units fp_mul_latency mul_ful_pipe\n\ global num_div_units fp_div_latency div_ful_pipe\n\ global configureEnabled\n\ set num_add_unitsOrig $num_add_units\n\ set fp_add_latencyOrig $fp_add_latency \n\ set num_mul_unitsOrig $num_mul_units\n\ set fp_mul_latencyOrig $fp_mul_latency\n\ set num_div_unitsOrig $num_div_units\n\ set fp_div_latencyOrig $fp_div_latency\n\ catch {destroy $w}\n\ toplevel $w\n\ wm title $w \"Basic Pipeline Configuration\"\n\ wm iconname $w \"subconfigure\"\n\ wm geometry $w +0+0\n\ frame $w.add\n\ frame $w.mul\n\ frame $w.div\n\ frame $w.button \n\ set oldFocus [focus]\n\ if {$configureEnabled} {\n\ set scaletroco skyblue\n\ set scaleactbg MediumOrchid\n\ } else {\n\ set scaletroco lightgrey\n\ set scaleactbg lightgrey\n\ }\n\ pack $w.add $w.mul $w.div $w.button \\\n\ -side top \\\n\ -fill x \\\n\ -expand yes \n\ scale $w.add.number \\\n\ -tickinterval 7 \\\n\ -label \"FP adder number\" \\\n\ -command \"ScaleValue num_add_units\" \\\n\ -troughcolor $scaletroco \\\n\ -activebackground $scaleactbg\n\ scale $w.add.latency \\\n\ -to 5 \\\n\ -tickinterval 4 \\\n\ -label \"FP adder latency (cycles)\" \\\n\ -command \"ScaleValue fp_add_latency\" \\\n\ -troughcolor $scaletroco \\\n\ -activebackground $scaleactbg \n\ radiobutton $w.add.fulpipe \\\n\ -relief flat \\\n\ -text \"fully piped\" \\\n\ -variable add_ful_pipe \\\n\ -value 1 \\\n\ -command \"BasRadioCommand add inactive\"\n\ radiobutton $w.add.notpipe \\\n\ -relief flat \\\n\ -text \"not piped\" \\\n\ -variable add_ful_pipe \\\n\ -value 0 \\\n\ -command \"BasRadioCommand add active\"\n\ pack $w.add.number $w.add.latency $w.add.fulpipe $w.add.notpipe \\\n\ -side left \\\n\ -fill x \\\n\ -expand yes \\\n\ -padx 5 \\\n\ -pady 10\n\ scale $w.mul.number \\\n\ -tickinterval 7 \\\n\ -label \"FP multiplier number\" \\\n\ -command \"ScaleValue num_mul_units\" \\\n\ -troughcolor $scaletroco \\\n\ -activebackground $scaleactbg\n\ scale $w.mul.latency \\\n\ -to 10 \\\n\ -tickinterval 9 \\\n\ -label \"FP multiplier latency (cycles)\" \\\n\ -command \"ScaleValue fp_mul_latency\" \\\n\ -troughcolor $scaletroco \\\n\ -activebackground $scaleactbg\n\ radiobutton $w.mul.fulpipe \\\n\ -relief flat \\\n\ -text \"fully piped\" \\\n\ -variable mul_ful_pipe \\\n\ -value 1 \\\n\ -command \"BasRadioCommand mul inactive\"\n\ radiobutton $w.mul.notpipe \\\n\ -relief flat \\\n\ -text \"not piped\" \\\n\ -variable mul_ful_pipe \\\n\ -value 0 \\\n\ -command \"BasRadioCommand mul active\"\n\ pack $w.mul.number $w.mul.latency $w.mul.fulpipe $w.mul.notpipe\\\n\ -side left \\\n\ -fill x \\\n\ -expand yes \\\n\ -padx 5 \\\n\ -pady 10\n\ scale $w.div.number \\\n\ -from 0 \\\n\ -tickinterval 8 \\\n\ -label \"FP divider number\" \\\n\ -command \"ScaleValue num_div_units\" \\\n\ -troughcolor $scaletroco \\\n\ -activebackground $scaleactbg\n\ scale $w.div.latency \\\n\ -to 50 \\\n\ -tickinterval 49 \\\n\ -label \"FP divider latency (cycles)\" \\\n\ -command \"ScaleValue fp_div_latency\" \\\n\ -troughcolor $scaletroco \\\n\ -activebackground $scaleactbg\n\ radiobutton $w.div.fulpipe \\\n\ -relief flat \\\n\ -text \"fully piped\" \\\n\ -variable div_ful_pipe \\\n\ -value 1 \\\n\ -command \"BasRadioCommand div inactive\"\n\ radiobutton $w.div.notpipe \\\n\ -relief flat \\\n\ -text \"not piped\" \\\n\ -variable div_ful_pipe \\\n\ -value 0 \\\n\ -command \"BasRadioCommand div active\"\n\ pack $w.div.number $w.div.latency $w.div.fulpipe $w.div.notpipe \\\n\ -side left \\\n\ -fill x \\\n\ -expand yes \\\n\ -padx 5 \\\n\ -pady 10\n\ button $w.button.ok \\\n\ -text Ok \\\n\ -command \"SubConfigureOk \n\ destroy $w\n\ focus $oldFocus\"\n\ button $w.button.cancel \\\n\ -text Cancel \\\n\ -command \" set num_add_units $num_add_unitsOrig\n\ set fp_add_latency $fp_add_latencyOrig \n\ set num_mul_units $num_mul_unitsOrig\n\ set fp_mul_latency $fp_mul_latencyOrig\n\ set num_div_units $num_div_unitsOrig\n\ set fp_div_latency $fp_div_latencyOrig\n\ destroy $w\n\ focus $oldFocus\"\n\ pack $w.button.ok $w.button.cancel\\\n\ -side left \\\n\ -fill x \\\n\ -expand yes\n\ $w.add.number set $num_add_units\n\ $w.add.latency set $fp_add_latency\n\ $w.mul.number set $num_mul_units\n\ $w.mul.latency set $fp_mul_latency\n\ $w.div.number set $num_div_units\n\ $w.div.latency set $fp_div_latency\n\ if {$configureEnabled == \"0\"} {\n\ $w.button.ok configure -state disabled\n\ $w.add.number configure -state disabled\n\ $w.add.latency configure -state disabled\n\ $w.add.fulpipe configure -state disabled\n\ $w.add.notpipe configure -state disabled\n\ $w.mul.number configure -state disabled\n\ $w.mul.latency configure -state disabled\n\ $w.mul.fulpipe configure -state disabled\n\ $w.mul.notpipe configure -state disabled\n\ $w.div.number configure -state disabled\n\ $w.div.latency configure -state disabled\n\ $w.div.fulpipe configure -state disabled\n\ $w.div.notpipe configure -state disabled\n\ }\n\ if {$add_ful_pipe} {\n\ $w.add.fulpipe invoke\n\ } else {\n\ $w.add.notpipe invoke\n\ }\n\ if {$mul_ful_pipe} {\n\ $w.mul.fulpipe invoke\n\ } else {\n\ $w.mul.notpipe invoke\n\ }\n\ if {$div_ful_pipe} {\n\ $w.div.fulpipe invoke\n\ } else {\n\ $w.div.notpipe invoke\n\ }\n\ tkwait visibility $w\n\ grab $w\n\ focus $w\n\}\n\ ";char TomConfigure_tcl[] = "\proc TomConfigure {{w .subconfigure}} {\n\ global num_int_units int_latency\n\ global num_add_units fp_add_latency\n\ global num_mul_units fp_mul_latency\n\ global num_div_units fp_div_latency\n\ global num_load_bufs load_buf_latency\n\ global num_store_bufs store_buf_latency\n\ global ld_st_exist fp_div_exist\n\ global configureEnabled\n\ set num_int_unitsOrig $num_int_units\n\ set int_latencyOrig $int_latency\n\ set num_add_unitsOrig $num_add_units\n\ set fp_add_latencyOrig $fp_add_latency \n\ set num_mul_unitsOrig $num_mul_units\n\ set fp_mul_latencyOrig $fp_mul_latency\n\ set num_div_unitsOrig $num_div_units\n\ set fp_div_latencyOrig $fp_div_latency\n\ set num_load_bufsOrig $num_load_bufs\n\ set load_buf_latencyOrig $load_buf_latency\n\ set num_store_bufsOrig $num_store_bufs\n\ set store_buf_latencyOrig $store_buf_latency\n\ catch {destroy $w}\n\ toplevel $w\n\ wm title $w \"Tomasulo Algorithm Configuration\"\n\ wm iconname $w \"subconfigure\"\n\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -