⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 script.h

📁 计算机系统结构的讲义,浓缩了一本一千多页的书.真的是好东西.
💻 H
📖 第 1 页 / 共 5 页
字号:
/*  * 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 + -