#!/bin/sh # the next line restarts using wish\ exec wish "$0" "$@" if {![info exists vTcl(sourcing)]} { package require Tk switch $tcl_platform(platform) { windows { option add *Button.padY 0 } default { option add *Scrollbar.width 10 option add *Scrollbar.highlightThickness 0 option add *Scrollbar.elementBorderWidth 2 option add *Scrollbar.borderWidth 2 } } } ############################################################################# # Visual Tcl v1.60 Project # ################################# # VTCL LIBRARY PROCEDURES # if {![info exists vTcl(sourcing)]} { ############################################################################# ## Library Procedure: Window proc ::Window {args} { ## This procedure may be used free of restrictions. ## Exception added by Christian Gavin on 08/08/02. ## Other packages and widget toolkits have different licensing requirements. ## Please read their license agreements for details. global vTcl foreach {cmd name newname} [lrange $args 0 2] {} set rest [lrange $args 3 end] if {$name == "" || $cmd == ""} { return } if {$newname == ""} { set newname $name } if {$name == "."} { wm withdraw $name; return } set exists [winfo exists $newname] switch $cmd { show { if {$exists} { wm deiconify $newname } elseif {[info procs vTclWindow$name] != ""} { eval "vTclWindow$name $newname $rest" } if {[winfo exists $newname] && [wm state $newname] == "normal"} { vTcl:FireEvent $newname <> } } hide { if {$exists} { wm withdraw $newname vTcl:FireEvent $newname <> return} } iconify { if $exists {wm iconify $newname; return} } destroy { if $exists {destroy $newname; return} } } } ############################################################################# ## Library Procedure: vTcl:DefineAlias proc ::vTcl:DefineAlias {target alias widgetProc top_or_alias cmdalias} { ## This procedure may be used free of restrictions. ## Exception added by Christian Gavin on 08/08/02. ## Other packages and widget toolkits have different licensing requirements. ## Please read their license agreements for details. global widget set widget($alias) $target set widget(rev,$target) $alias if {$cmdalias} { interp alias {} $alias {} $widgetProc $target } if {$top_or_alias != ""} { set widget($top_or_alias,$alias) $target if {$cmdalias} { interp alias {} $top_or_alias.$alias {} $widgetProc $target } } } ############################################################################# ## Library Procedure: vTcl:DoCmdOption proc ::vTcl:DoCmdOption {target cmd} { ## This procedure may be used free of restrictions. ## Exception added by Christian Gavin on 08/08/02. ## Other packages and widget toolkits have different licensing requirements. ## Please read their license agreements for details. ## menus are considered toplevel windows set parent $target while {[winfo class $parent] == "Menu"} { set parent [winfo parent $parent] } regsub -all {\%widget} $cmd $target cmd regsub -all {\%top} $cmd [winfo toplevel $parent] cmd uplevel #0 [list eval $cmd] } ############################################################################# ## Library Procedure: vTcl:FireEvent proc ::vTcl:FireEvent {target event {params {}}} { ## This procedure may be used free of restrictions. ## Exception added by Christian Gavin on 08/08/02. ## Other packages and widget toolkits have different licensing requirements. ## Please read their license agreements for details. ## The window may have disappeared if {![winfo exists $target]} return ## Process each binding tag, looking for the event foreach bindtag [bindtags $target] { set tag_events [bind $bindtag] set stop_processing 0 foreach tag_event $tag_events { if {$tag_event == $event} { set bind_code [bind $bindtag $tag_event] foreach rep "\{%W $target\} $params" { regsub -all [lindex $rep 0] $bind_code [lindex $rep 1] bind_code } set result [catch {uplevel #0 $bind_code} errortext] if {$result == 3} { ## break exception, stop processing set stop_processing 1 } elseif {$result != 0} { bgerror $errortext } break } } if {$stop_processing} {break} } } ############################################################################# ## Library Procedure: vTcl:Toplevel:WidgetProc proc ::vTcl:Toplevel:WidgetProc {w args} { ## This procedure may be used free of restrictions. ## Exception added by Christian Gavin on 08/08/02. ## Other packages and widget toolkits have different licensing requirements. ## Please read their license agreements for details. if {[llength $args] == 0} { ## If no arguments, returns the path the alias points to return $w } set command [lindex $args 0] set args [lrange $args 1 end] switch -- [string tolower $command] { "setvar" { foreach {varname value} $args {} if {$value == ""} { return [set ::${w}::${varname}] } else { return [set ::${w}::${varname} $value] } } "hide" - "show" { Window [string tolower $command] $w } "showmodal" { ## modal dialog ends when window is destroyed Window show $w; raise $w grab $w; tkwait window $w; grab release $w } "startmodal" { ## ends when endmodal called Window show $w; raise $w set ::${w}::_modal 1 grab $w; tkwait variable ::${w}::_modal; grab release $w } "endmodal" { ## ends modal dialog started with startmodal, argument is var name set ::${w}::_modal 0 Window hide $w } default { uplevel $w $command $args } } } ############################################################################# ## Library Procedure: vTcl:WidgetProc proc ::vTcl:WidgetProc {w args} { ## This procedure may be used free of restrictions. ## Exception added by Christian Gavin on 08/08/02. ## Other packages and widget toolkits have different licensing requirements. ## Please read their license agreements for details. if {[llength $args] == 0} { ## If no arguments, returns the path the alias points to return $w } set command [lindex $args 0] set args [lrange $args 1 end] uplevel $w $command $args } ############################################################################# ## Library Procedure: vTcl:toplevel proc ::vTcl:toplevel {args} { ## This procedure may be used free of restrictions. ## Exception added by Christian Gavin on 08/08/02. ## Other packages and widget toolkits have different licensing requirements. ## Please read their license agreements for details. uplevel #0 eval toplevel $args set target [lindex $args 0] namespace eval ::$target {set _modal 0} } } if {[info exists vTcl(sourcing)]} { proc vTcl:project:info {} { set base .top60 namespace eval ::widgets::$base { set set,origin 1 set set,size 1 set runvisible 1 } namespace eval ::widgets::$base.m78 { array set save {-tearoff 1} namespace eval subOptions { array set save {-command 1 -label 1 -menu 1} } } set site_3_0 $base.m78 namespace eval ::widgets::$site_3_0.men79 { array set save {-tearoff 1} namespace eval subOptions { array set save {-accelerator 1 -command 1 -label 1 -menu 1} } } namespace eval ::widgets::$base.cpd86 { array set save {-borderwidth 1} } set site_3_0 $base.cpd86 namespace eval ::widgets::$site_3_0.01 { array set save {-borderwidth 1 -height 1 -relief 1 -width 1} } set site_4_0 $site_3_0.01 namespace eval ::widgets::$site_4_0.fra82 { array set save {-borderwidth 1 -height 1} } namespace eval ::widgets::$site_4_0.cpd88 { array set save {-height 1 -width 1} } set site_5_0 $site_4_0.cpd88 namespace eval ::widgets::$site_5_0.01 { array set save {-command 1 -orient 1} } namespace eval ::widgets::$site_5_0.02 { array set save {-command 1} } namespace eval ::widgets::$site_5_0.03 { array set save {-font 1 -height 1 -width 1 -xscrollcommand 1 -yscrollcommand 1} } namespace eval ::widgets::$site_3_0.02 { array set save {-borderwidth 1 -text 1} } namespace eval ::widgets::$base.but65 { array set save {-command 1 -foreground 1 -text 1} } namespace eval ::widgets::$base.lab61 { array set save {-foreground 1 -highlightcolor 1 -text 1} } set site_3_0 $base.lab61 namespace eval ::widgets::$site_3_0.but62 { array set save {-command 1 -foreground 1 -text 1} } namespace eval ::widgets::$site_3_0.men63 { array set save {-menu 1 -padx 1 -pady 1 -relief 1 -text 1 -textvariable 1} } namespace eval ::widgets::$site_3_0.men63.m { array set save {-tearoff 1} namespace eval subOptions { array set save {-command 1 -label 1} } } namespace eval ::widgets::$site_3_0.but74 { array set save {-_tooltip 1 -command 1 -compound 1 -default 1 -foreground 1 -height 1 -text 1} } namespace eval ::widgets::$site_3_0.che62 { array set save {-disabledforeground 1 -text 1 -variable 1} } namespace eval ::widgets::$site_3_0.but63 { array set save {-_tooltip 1 -command 1 -text 1} } namespace eval ::widgets::$base.lab67 { array set save {-foreground 1 -highlightcolor 1 -text 1} } set site_3_0 $base.lab67 namespace eval ::widgets::$site_3_0.men68 { array set save {-menu 1 -padx 1 -pady 1 -relief 1 -text 1 -textvariable 1} } namespace eval ::widgets::$site_3_0.men68.m { array set save {-tearoff 1} namespace eval subOptions { array set save {-command 1 -label 1} } } namespace eval ::widgets::$site_3_0.but69 { array set save {-command 1 -foreground 1 -text 1} } namespace eval ::widgets::$site_3_0.che70 { array set save {-text 1 -variable 1} } namespace eval ::widgets::$site_3_0.but61 { array set save {-_tooltip 1 -command 1 -text 1} } namespace eval ::widgets::$base.lab71 { array set save {-foreground 1 -highlightcolor 1 -text 1} } set site_3_0 $base.lab71 namespace eval ::widgets::$site_3_0.men72 { array set save {-menu 1 -padx 1 -pady 1 -relief 1 -text 1 -textvariable 1} } namespace eval ::widgets::$site_3_0.men72.m { array set save {-tearoff 1} namespace eval subOptions { array set save {-command 1 -label 1} } } namespace eval ::widgets::$site_3_0.but73 { array set save {-command 1 -foreground 1 -text 1} } namespace eval ::widgets::$site_3_0.che75 { array set save {-text 1 -variable 1} } namespace eval ::widgets::$site_3_0.but60 { array set save {-_tooltip 1 -command 1 -text 1} } namespace eval ::widgets::$base.cpd77 { array set save {-borderwidth 1 -height 1} } set site_3_0 $base.cpd77 namespace eval ::widgets::$site_3_0.01 { array set save {-anchor 1 -text 1} } namespace eval ::widgets::$site_3_0.02 { array set save {-cursor 1 -state 1 -textvariable 1} } namespace eval ::widgets::$base.cpd78 { array set save {-borderwidth 1 -height 1} } set site_3_0 $base.cpd78 namespace eval ::widgets::$site_3_0.01 { array set save {-anchor 1 -text 1} } namespace eval ::widgets::$site_3_0.02 { array set save {-cursor 1 -state 1 -textvariable 1} } namespace eval ::widgets::$base.cpd79 { array set save {-borderwidth 1 -height 1} } set site_3_0 $base.cpd79 namespace eval ::widgets::$site_3_0.01 { array set save {-anchor 1 -text 1} } namespace eval ::widgets::$site_3_0.02 { array set save {-cursor 1 -state 1 -textvariable 1} } namespace eval ::widgets::$base.cpd80 { array set save {-borderwidth 1 -height 1} } set site_3_0 $base.cpd80 namespace eval ::widgets::$site_3_0.01 { array set save {-anchor 1 -text 1} } namespace eval ::widgets::$site_3_0.02 { array set save {-cursor 1 -state 1 -textvariable 1} } namespace eval ::widgets::$base.cpd60 { array set save {-_tooltip 1 -command 1 -text 1} } namespace eval ::widgets::$base.but60 { array set save {-_tooltip 1 -command 1 -text 1} } namespace eval ::widgets::$base.but61 { array set save {-_tooltip 1 -command 1 -text 1} } namespace eval ::widgets::$base.but62 { array set save {-_tooltip 1 -command 1 -text 1} } namespace eval ::widgets::$base.but64 { array set save {-command 1 -text 1} } namespace eval ::widgets_bindings { set tagslist {_TopLevel _vTclBalloon} } namespace eval ::vTcl::modules::main { set procs { init main _act:log lls docmd runsyn runflow runpr runsim simbuild simclean synclean prclean } set compounds { } set projectType single } } } ################################# # USER DEFINED PROCEDURES # ############################################################################# ## Procedure: main proc ::main {argc argv} { global grproject project_name synbatch prbatch simprog simmenu global simbatch syntool synmenu prmenu prtool prbatch global board tech device set grproject [lindex $argv 0] set tech [lindex $argv 1] set device [lindex $argv 2] set board [lindex $argv 3] set project_name $grproject set synbatch 0 set syntool "synplify" set synmenu "Synplify" set prbatch 0 set simprog "vsim" set simmenu "Modelsim" set simbatch 0 set prbatch 0 set prmenu "None" set prtool "none" } ############################################################################# ## Procedure: _act:log proc ::_act:log {} { global widget global input run_next_cmd if [eof $input] { catch [close $input] set run_next_cmd 1 } else { gets $input line Text2 insert end $line\n Text2 see end } } ############################################################################# ## Procedure: lls proc ::lls {} { global widget global input run_next_cmd variable command "ls -l" if [catch {open "|$command "} input] { Text2 insert end "Can't find the executable.\n" } else { set run_next_cmd 0 fileevent $input readable {_act:log} Text2 insert end $command\n vwait run_next_cmd } } ############################################################################# ## Procedure: docmd proc ::docmd {cmd} { global widget global input run_next_cmd variable command $cmd if [catch {open "|$command "} input] { Text2 insert end "Can't find the executable.\n" } else { set run_next_cmd 0 fileevent $input readable {_act:log} Text2 insert end $command\n vwait run_next_cmd } } ############################################################################# ## Procedure: runsyn proc ::runsyn {} { global widget grproject syntool synbatch if {$synbatch == "0"} { docmd "make $syntool-launch" } else { docmd "make $syntool-map" } } ############################################################################# ## Procedure: runflow proc ::runflow {} { global widget grproject syntool synbatch prtool switch $syntool { "synplify" { switch $prtool { "none" {docmd "make synplify"} "designer" {docmd "fpgaax"} "quartus" {docmd "make fpgaq"} "ise" {docmd "make fpgasynp"} } } "xst" { switch $prtool { "none" {docmd "make xst"} "ise" {docmd "make fpgaxst"} default {} } } default {} } } ############################################################################# ## Procedure: runpr proc ::runpr {} { global widget grproject syntool prbatch prtool if {$prbatch == "0"} { switch $prtool { "actel" { docmd "make actel-launch"} "quartus" { if {$syntool == "synplify"} {docmd "make quartus-launch-synp"} if {$syntool == "quartus"} {docmd "make quartus-launch"} } "ise" { if {$syntool == "synplify"} {docmd "make ise-launch-synp"} if {$syntool == "xst"} {docmd "make ise-launch"} } } } if {$prbatch != "0"} { switch $prtool { "actel" { docmd "make actel"} "quartus" { if {$syntool == "synplify"} {docmd "make quartus-synp"} if {$syntool == "quartus"} {docmd "make quartus-route"} } "ise" { if {$syntool == "synplify"} {docmd "make ise-synp"} if {$syntool == "xst"} {docmd "make ise"} } } } } ############################################################################# ## Procedure: runsim proc ::runsim {} { global widget grproject simprog simbatch if {$simbatch == "0"} { docmd "make $simprog-launch" } else { docmd "make $simprog-run" } } ############################################################################# ## Procedure: simbuild proc ::simbuild {} { global widget grproject simprog simbatch docmd "make $simprog" } ############################################################################# ## Procedure: simclean proc ::simclean {} { global widget grproject simprog simbatch docmd "make $simprog-clean" } ############################################################################# ## Procedure: synclean proc ::synclean {} { global widget grproject syntool synbatch docmd "make $syntool-clean" } ############################################################################# ## Procedure: prclean proc ::prclean {} { global widget grproject prtool synbatch docmd "make $prtool-clean" } ############################################################################# ## Initialization Procedure: init proc ::init {argc argv} { global input run_next_cmd grproject set run_next_cmd 1 } init $argc $argv ################################# # VTCL GENERATED GUI PROCEDURES # proc vTclWindow. {base} { if {$base == ""} { set base . } ################### # CREATING WIDGETS ################### wm focusmodel $top passive wm geometry $top 1x1+0+0; update wm maxsize $top 1265 994 wm minsize $top 1 1 wm overrideredirect $top 0 wm resizable $top 1 1 wm withdraw $top wm title $top "vtcl.tcl" bindtags $top "$top Vtcl.tcl all" vTcl:FireEvent $top <> wm protocol $top WM_DELETE_WINDOW "vTcl:FireEvent $top <>" ################### # SETTING GEOMETRY ################### vTcl:FireEvent $base <> } proc vTclWindow.top60 {base} { if {$base == ""} { set base .top60 } if {[winfo exists $base]} { wm deiconify $base; return } set top $base ################### # CREATING WIDGETS ################### vTcl:toplevel $top -class Toplevel \ -menu "$top.m78" -highlightcolor black wm focusmodel $top passive wm geometry $top 609x477+358+121; update wm maxsize $top 1009 738 wm minsize $top 1 1 wm overrideredirect $top 0 wm resizable $top 1 1 wm deiconify $top wm title $top "GRLIB Implementation Tool" vTcl:DefineAlias "$top" "Toplevel1" vTcl:Toplevel:WidgetProc "" 1 bindtags $top "$top Toplevel all _TopLevel" vTcl:FireEvent $top <> wm protocol $top WM_DELETE_WINDOW "vTcl:FireEvent $top <>" menu $top.m78 \ -tearoff 1 $top.m78 add cascade \ -menu "$top.m78.men79" -command {} -label File set site_3_0 $top.m78 menu $site_3_0.men79 \ -tearoff 0 $site_3_0.men79 add command \ -accelerator Ctrl-Q -command exit -label Quit frame $top.cpd86 \ -borderwidth 2 vTcl:DefineAlias "$top.cpd86" "Frame3" vTcl:WidgetProc "Toplevel1" 1 set site_3_0 $top.cpd86 frame $site_3_0.01 \ -borderwidth 2 -relief groove -height 98 -width 125 vTcl:DefineAlias "$site_3_0.01" "Frame4" vTcl:WidgetProc "Toplevel1" 1 set site_4_0 $site_3_0.01 frame $site_4_0.fra82 \ -borderwidth 2 -height 10 vTcl:DefineAlias "$site_4_0.fra82" "Frame5" vTcl:WidgetProc "Toplevel1" 1 frame $site_4_0.cpd88 \ -height 219 -width 584 vTcl:DefineAlias "$site_4_0.cpd88" "Frame7" vTcl:WidgetProc "Toplevel1" 1 set site_5_0 $site_4_0.cpd88 scrollbar $site_5_0.01 \ -command "$site_5_0.03 xview" -orient horizontal vTcl:DefineAlias "$site_5_0.01" "Scrollbar3" vTcl:WidgetProc "Toplevel1" 1 scrollbar $site_5_0.02 \ -command "$site_5_0.03 yview" vTcl:DefineAlias "$site_5_0.02" "Scrollbar4" vTcl:WidgetProc "Toplevel1" 1 text $site_5_0.03 \ -font {Courier -12} -height 14 -width 80 \ -xscrollcommand "$site_5_0.01 set" -yscrollcommand "$site_5_0.02 set" vTcl:DefineAlias "$site_5_0.03" "Text2" vTcl:WidgetProc "Toplevel1" 1 grid $site_5_0.01 \ -in $site_5_0 -column 0 -row 1 -columnspan 1 -rowspan 1 -sticky ew grid $site_5_0.02 \ -in $site_5_0 -column 1 -row 0 -columnspan 1 -rowspan 1 -sticky ns grid $site_5_0.03 \ -in $site_5_0 -column 0 -row 0 -columnspan 1 -rowspan 1 -sticky nesw pack $site_4_0.fra82 \ -in $site_4_0 -anchor center -expand 0 -fill none -side top place $site_4_0.cpd88 \ -in $site_4_0 -x 9 -y 14 -width 584 -height 219 -anchor nw \ -bordermode inside label $site_3_0.02 \ -borderwidth 1 -text Console vTcl:DefineAlias "$site_3_0.02" "Label3" vTcl:WidgetProc "Toplevel1" 1 pack $site_3_0.01 \ -in $site_3_0 -anchor center -expand 1 -fill both -padx 5 -pady 5 \ -side top place $site_3_0.02 \ -in $site_3_0 -x 15 -y 0 -anchor nw -bordermode ignore button $top.but65 \ -command exit -foreground #ff0000 -text Quit vTcl:DefineAlias "$top.but65" "Button3" vTcl:WidgetProc "Toplevel1" 1 labelframe $top.lab61 \ -foreground black -text Simulation -highlightcolor black vTcl:DefineAlias "$top.lab61" "Labelframe1" vTcl:WidgetProc "Toplevel1" 1 set site_3_0 $top.lab61 button $site_3_0.but62 \ -command runsim -foreground #0000ff -text Run vTcl:DefineAlias "$site_3_0.but62" "Button5" vTcl:WidgetProc "Toplevel1" 1 menubutton $site_3_0.men63 \ -menu "$site_3_0.men63.m" -padx 5 -pady 4 -relief raised \ -text Modelsim -textvariable simmenu vTcl:DefineAlias "$site_3_0.men63" "Menubutton1" vTcl:WidgetProc "Toplevel1" 1 menu $site_3_0.men63.m \ -tearoff 0 $site_3_0.men63.m add command \ \ -command {global simprog simmenu set simprog "vsim" set simmenu "Modelsim"} \ -label Modelsim $site_3_0.men63.m add command \ \ -command {global simprog simmenu set simprog "ncsim" set simmenu "Ncsim"} \ -label Ncsim $site_3_0.men63.m add command \ \ -command {global simprog simmenu set simprog "ghdl" set simmenu "GHDL"} \ -label GHDL $site_3_0.men63.m add command \ \ -command {global simprog simmenu set simprog "libero" set simmenu "Libero"} \ -label Libero $site_3_0.men63.m add command \ \ -command {global simprog simmenu set simprog "riviera" set simmenu "Riviera"} \ -label Riviera $site_3_0.men63.m add command \ \ -command {global simprog simmenu set simprog "avhdl" set simmenu "Active-HDL GUI"} \ -label {Active-HDL GUI} $site_3_0.men63.m add command \ \ -command {global simprog simmenu set simprog "vsimsa" set simmenu "Active-HDL batch"} \ -label {Active-HDL batch} $site_3_0.men63.m add command \ \ -command {# TODO: Your menu handler hereglobal simprog simmenu set simprog "sonata" set simmenu "Sonata"} \ -label Sonata button $site_3_0.but74 \ -command simbuild -compound none -default disabled \ -foreground #009900 -height 26 -text Build vTcl:DefineAlias "$site_3_0.but74" "Button8" vTcl:WidgetProc "Toplevel1" 1 bindtags $site_3_0.but74 "$site_3_0.but74 Button $top all _vTclBalloon" bind $site_3_0.but74 <> { set ::vTcl::balloon::%W {compile grlib and local design} } checkbutton $site_3_0.che62 \ -disabledforeground #a3a3a3 -text Batch -variable simbatch vTcl:DefineAlias "$site_3_0.che62" "Checkbutton1" vTcl:WidgetProc "Toplevel1" 1 button $site_3_0.but63 \ -command simclean -text Clean vTcl:DefineAlias "$site_3_0.but63" "Button9" vTcl:WidgetProc "Toplevel1" 1 bindtags $site_3_0.but63 "$site_3_0.but63 Button $top all _vTclBalloon" bind $site_3_0.but63 <> { set ::vTcl::balloon::%W {remove generated files for selected tool} } place $site_3_0.but62 \ -in $site_3_0 -x 125 -y 20 -width 49 -height 26 -anchor nw \ -bordermode ignore place $site_3_0.men63 \ -in $site_3_0 -x 10 -y 20 -width 101 -height 26 -anchor nw \ -bordermode ignore place $site_3_0.but74 \ -in $site_3_0 -x 331 -y 20 -width 50 -height 26 -anchor nw \ -bordermode ignore place $site_3_0.che62 \ -in $site_3_0 -x 189 -y 22 -width 61 -height 22 -anchor nw \ -bordermode ignore place $site_3_0.but63 \ -in $site_3_0 -x 261 -y 20 -width 58 -height 26 -anchor nw \ -bordermode ignore labelframe $top.lab67 \ -foreground black -text {Place & route} -highlightcolor black vTcl:DefineAlias "$top.lab67" "Labelframe2" vTcl:WidgetProc "Toplevel1" 1 set site_3_0 $top.lab67 menubutton $site_3_0.men68 \ -menu "$site_3_0.men68.m" -padx 5 -pady 4 -relief raised -text None \ -textvariable prmenu vTcl:DefineAlias "$site_3_0.men68" "Menubutton3" vTcl:WidgetProc "Toplevel1" 1 menu $site_3_0.men68.m \ -tearoff 0 $site_3_0.men68.m add command \ -command {global prmenu prtool set prmenu "None" set prtool "none"} \ -label None $site_3_0.men68.m add command \ \ -command {global prmenu prtool set prmenu "Actel Designer" set prtool "actel"} \ -label {Actel Designer} $site_3_0.men68.m add command \ \ -command {global prmenu prtool set prmenu "Quartus" set prtool "quartus"} \ -label Quartus $site_3_0.men68.m add command \ \ -command {global prmenu prtool set prmenu "Xilinx ISE" set prtool "ise"} \ -label {Xilinx ISE} button $site_3_0.but69 \ -command runpr -foreground #0000ff -text Run vTcl:DefineAlias "$site_3_0.but69" "Button6" vTcl:WidgetProc "Toplevel1" 1 checkbutton $site_3_0.che70 \ -text Batch -variable prbatch vTcl:DefineAlias "$site_3_0.che70" "Checkbutton2" vTcl:WidgetProc "Toplevel1" 1 button $site_3_0.but61 \ -command prclean -text Clean vTcl:DefineAlias "$site_3_0.but61" "Button2" vTcl:WidgetProc "Toplevel1" 1 bindtags $site_3_0.but61 "$site_3_0.but61 Button $top all _vTclBalloon" bind $site_3_0.but61 <> { set ::vTcl::balloon::%W {remove generated files for selected tool} } place $site_3_0.men68 \ -in $site_3_0 -x 10 -y 20 -width 101 -height 26 -anchor nw \ -bordermode ignore place $site_3_0.but69 \ -in $site_3_0 -x 125 -y 20 -width 49 -height 26 -anchor nw \ -bordermode ignore place $site_3_0.che70 \ -in $site_3_0 -x 185 -y 20 -width 61 -height 22 -anchor nw \ -bordermode ignore place $site_3_0.but61 \ -in $site_3_0 -x 261 -y 20 -width 58 -height 26 -anchor nw \ -bordermode ignore labelframe $top.lab71 \ -foreground black -text Synthesis -highlightcolor black vTcl:DefineAlias "$top.lab71" "Labelframe3" vTcl:WidgetProc "Toplevel1" 1 set site_3_0 $top.lab71 menubutton $site_3_0.men72 \ -menu "$site_3_0.men72.m" -padx 5 -pady 4 -relief raised \ -text Synplify -textvariable synmenu vTcl:DefineAlias "$site_3_0.men72" "Menubutton2" vTcl:WidgetProc "Toplevel1" 1 menu $site_3_0.men72.m \ -tearoff 0 $site_3_0.men72.m add command \ \ -command {global synmenu syntool set synmenu "Synplify" set syntool "synplify"} \ -label Synplify $site_3_0.men72.m add command \ \ -command {global synmenu syntool set synmenu "Quartus" set syntool "quartus"} \ -label Quartus $site_3_0.men72.m add command \ \ -command {global synmenu syntool set synmenu "Xilinx ISE" set syntool "xst"} \ -label {Xilinx ISE} $site_3_0.men72.m add command \ \ -command {global synmenu syntool set synmenu "Precision" set syntool "precision"} \ -label Precision $site_3_0.men72.m add command \ \ -command {global synmenu syntool set synmenu "Libero" set syntool "libero"} \ -label Libero button $site_3_0.but73 \ -command runsyn -foreground #0000ff -text Run vTcl:DefineAlias "$site_3_0.but73" "Button7" vTcl:WidgetProc "Toplevel1" 1 checkbutton $site_3_0.che75 \ -text Batch -variable synbatch vTcl:DefineAlias "$site_3_0.che75" "Checkbutton3" vTcl:WidgetProc "Toplevel1" 1 button $site_3_0.but60 \ -command synclean -text Clean vTcl:DefineAlias "$site_3_0.but60" "Button1" vTcl:WidgetProc "Toplevel1" 1 bindtags $site_3_0.but60 "$site_3_0.but60 Button $top all _vTclBalloon" bind $site_3_0.but60 <> { set ::vTcl::balloon::%W {remove generated files for selected tool} } place $site_3_0.men72 \ -in $site_3_0 -x 10 -y 20 -width 101 -height 26 -anchor nw \ -bordermode ignore place $site_3_0.but73 \ -in $site_3_0 -x 125 -y 20 -width 49 -height 26 -anchor nw \ -bordermode ignore place $site_3_0.che75 \ -in $site_3_0 -x 187 -y 21 -width 61 -height 22 -anchor nw \ -bordermode ignore place $site_3_0.but60 \ -in $site_3_0 -x 261 -y 20 -width 58 -height 26 -anchor nw \ -bordermode ignore frame $top.cpd77 \ -borderwidth 1 -height 30 vTcl:DefineAlias "$top.cpd77" "Frame6" vTcl:WidgetProc "Toplevel1" 1 set site_3_0 $top.cpd77 label $site_3_0.01 \ -anchor w -text Tech: vTcl:DefineAlias "$site_3_0.01" "Label2" vTcl:WidgetProc "Toplevel1" 1 entry $site_3_0.02 \ -cursor {} -state readonly -textvariable tech vTcl:DefineAlias "$site_3_0.02" "Entry2" vTcl:WidgetProc "Toplevel1" 1 pack $site_3_0.01 \ -in $site_3_0 -anchor center -expand 0 -fill none -padx 2 -pady 2 \ -side left pack $site_3_0.02 \ -in $site_3_0 -anchor center -expand 1 -fill x -padx 2 -pady 2 \ -side right frame $top.cpd78 \ -borderwidth 1 -height 30 vTcl:DefineAlias "$top.cpd78" "Frame8" vTcl:WidgetProc "Toplevel1" 1 set site_3_0 $top.cpd78 label $site_3_0.01 \ -anchor w -text Device: vTcl:DefineAlias "$site_3_0.01" "Label4" vTcl:WidgetProc "Toplevel1" 1 entry $site_3_0.02 \ -cursor {} -state readonly -textvariable device vTcl:DefineAlias "$site_3_0.02" "Entry3" vTcl:WidgetProc "Toplevel1" 1 pack $site_3_0.01 \ -in $site_3_0 -anchor center -expand 0 -fill none -padx 2 -pady 2 \ -side left pack $site_3_0.02 \ -in $site_3_0 -anchor center -expand 1 -fill x -padx 2 -pady 2 \ -side right frame $top.cpd79 \ -borderwidth 1 -height 30 vTcl:DefineAlias "$top.cpd79" "Frame9" vTcl:WidgetProc "Toplevel1" 1 set site_3_0 $top.cpd79 label $site_3_0.01 \ -anchor w -text Board: vTcl:DefineAlias "$site_3_0.01" "Label6" vTcl:WidgetProc "Toplevel1" 1 entry $site_3_0.02 \ -cursor {} -state readonly -textvariable board vTcl:DefineAlias "$site_3_0.02" "Entry4" vTcl:WidgetProc "Toplevel1" 1 pack $site_3_0.01 \ -in $site_3_0 -anchor center -expand 0 -fill none -padx 2 -pady 2 \ -side left pack $site_3_0.02 \ -in $site_3_0 -anchor center -expand 1 -fill x -padx 2 -pady 2 \ -side right frame $top.cpd80 \ -borderwidth 1 -height 30 vTcl:DefineAlias "$top.cpd80" "Frame10" vTcl:WidgetProc "Toplevel1" 1 set site_3_0 $top.cpd80 label $site_3_0.01 \ -anchor w -text Project: vTcl:DefineAlias "$site_3_0.01" "Label5" vTcl:WidgetProc "Toplevel1" 1 entry $site_3_0.02 \ -cursor {} -state readonly -textvariable project_name vTcl:DefineAlias "$site_3_0.02" "Entry1" vTcl:WidgetProc "Toplevel1" 1 pack $site_3_0.01 \ -in $site_3_0 -anchor center -expand 0 -fill none -padx 2 -pady 2 \ -side left pack $site_3_0.02 \ -in $site_3_0 -anchor center -expand 1 -fill x -padx 2 -pady 2 \ -side right button $top.cpd60 \ -command {docmd "make xconfig"} -text xconfig vTcl:DefineAlias "$top.cpd60" "Button4" vTcl:WidgetProc "Toplevel1" 1 bindtags $top.cpd60 "$top.cpd60 Button $top all _vTclBalloon" bind $top.cpd60 <> { set ::vTcl::balloon::%W {run grlib/leon3 configuration tool} } button $top.but60 \ -command {docmd "make ise-prog-prom"} -text {prog prom} vTcl:DefineAlias "$top.but60" "buildvermod" vTcl:WidgetProc "Toplevel1" 1 bindtags $top.but60 "$top.but60 Button $top all _vTclBalloon" bind $top.but60 <> { set ::vTcl::balloon::%W {Program FPGA prom} } button $top.but61 \ -command {docmd "make clean"} -text {clean all} vTcl:DefineAlias "$top.but61" "Button10" vTcl:WidgetProc "Toplevel1" 1 bindtags $top.but61 "$top.but61 Button $top all _vTclBalloon" bind $top.but61 <> { set ::vTcl::balloon::%W {remove all generated files except compile scripts} } button $top.but62 \ -command {docmd "make distclean"} -text distclean vTcl:DefineAlias "$top.but62" "Button11" vTcl:WidgetProc "Toplevel1" 1 bindtags $top.but62 "$top.but62 Button $top all _vTclBalloon" bind $top.but62 <> { set ::vTcl::balloon::%W {remove all generated file} } button $top.but64 \ -command {docmd "make scripts"} -text scripts vTcl:DefineAlias "$top.but64" "Button12" vTcl:WidgetProc "Toplevel1" 1 ################### # SETTING GEOMETRY ################### place $top.cpd86 \ -in $top -x 0 -y 220 -width 612 -height 254 -anchor nw \ -bordermode inside place $top.but65 \ -in $top -x 528 -y 60 -width 66 -height 26 -anchor nw \ -bordermode ignore place $top.lab61 \ -in $top -x 20 -y 10 -width 396 -height 56 -anchor nw \ -bordermode ignore place $top.lab67 \ -in $top -x 20 -y 150 -width 336 -height 56 -anchor nw \ -bordermode ignore place $top.lab71 \ -in $top -x 20 -y 80 -width 336 -height 56 -anchor nw \ -bordermode ignore place $top.cpd77 \ -in $top -x 404 -y 133 -width 197 -height 28 -anchor nw \ -bordermode ignore place $top.cpd78 \ -in $top -x 392 -y 161 -width 209 -height 28 -anchor nw \ -bordermode ignore place $top.cpd79 \ -in $top -x 398 -y 189 -width 203 -height 28 -anchor nw \ -bordermode ignore place $top.cpd80 \ -in $top -x 391 -y 105 -width 210 -height 28 -anchor nw \ -bordermode ignore place $top.cpd60 \ -in $top -x 528 -y 10 -width 66 -height 26 -anchor nw \ -bordermode ignore place $top.but60 \ -in $top -x 450 -y 10 -width 79 -height 26 -anchor nw \ -bordermode ignore place $top.but61 \ -in $top -x 450 -y 35 -width 79 -height 26 -anchor nw \ -bordermode ignore place $top.but62 \ -in $top -x 450 -y 60 -width 79 -height 26 -anchor nw \ -bordermode ignore place $top.but64 \ -in $top -x 528 -y 35 -width 66 -height 26 -anchor nw \ -bordermode ignore vTcl:FireEvent $base <> } ############################################################################# ## Binding tag: _TopLevel bind "_TopLevel" <> { if {![info exists _topcount]} {set _topcount 0}; incr _topcount } bind "_TopLevel" <> { if {[set ::%W::_modal]} { vTcl:Toplevel:WidgetProc %W endmodal } else { destroy %W; if {$_topcount == 0} {exit} } } bind "_TopLevel" { if {[winfo toplevel %W] == "%W"} {incr _topcount -1} } ############################################################################# ## Binding tag: _vTclBalloon if {![info exists vTcl(sourcing)]} { bind "_vTclBalloon" <> { namespace eval ::vTcl::balloon { after cancel $id if {[winfo exists .vTcl.balloon]} { destroy .vTcl.balloon } set set 0 } } bind "_vTclBalloon" <> { if {$::vTcl::balloon::first != 1} {break} namespace eval ::vTcl::balloon { set first 2 if {![winfo exists .vTcl]} { toplevel .vTcl; wm withdraw .vTcl } if {![winfo exists .vTcl.balloon]} { toplevel .vTcl.balloon -bg black } wm overrideredirect .vTcl.balloon 1 label .vTcl.balloon.l -text ${%W} -relief flat -bg #ffffaa -fg black -padx 2 -pady 0 -anchor w pack .vTcl.balloon.l -side left -padx 1 -pady 1 wm geometry .vTcl.balloon +[expr {[winfo rootx %W]+[winfo width %W]/2}]+[expr {[winfo rooty %W]+[winfo height %W]+4}] set set 1 } } bind "_vTclBalloon"