OpenCores
URL https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [designs/] [leon3-ge-hpe-mini/] [lconfig.tk] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
# FILE: header.tk
2
# This file is boilerplate TCL/TK function definitions for 'make xconfig'.
3
#
4
# CHANGES
5
# =======
6
#
7
# 8 January 1999, Michael Elizabeth Chastain, 
8
# - Remove unused do_cmd function (part of the 2.0 sound support).
9
# - Arrange buttons in three columns for better screen fitting.
10
# - Add CONSTANT_Y, CONSTANT_M, CONSTANT_N for commands like:
11
#     dep_tristate 'foo' CONFIG_FOO m
12
#
13
# 23 January 1999, Michael Elizabeth Chastain, 
14
# - Shut vfix the hell up.
15
#
16
# 24 January 1999, Michael Elizabeth Chastain, 
17
# - Improve the exit message (Jeff Ronne).
18
 
19
#
20
# This is a handy replacement for ".widget cget" that requires neither tk4
21
# nor additional source code uglification.
22
#
23
proc cget { w option } {
24
        return "[lindex [$w configure $option] 4]"
25
}
26
 
27
#
28
# Function to compensate for broken config.in scripts like the sound driver,
29
# which make dependencies on variables that are never even conditionally
30
# defined.
31
#
32
proc vfix { var } {
33
        global $var
34
        if [ catch {eval concat $$var} ] {
35
                set $var 4
36
        }
37
}
38
 
39
#
40
# Constant values used by certain dep_tristate commands.
41
#
42
set CONSTANT_Y 1
43
set CONSTANT_M 2
44
set CONSTANT_N 0
45
set CONSTANT_E 4
46
 
47
#
48
# Create a "reference" object to steal colors from.
49
#
50
button .ref
51
 
52
#
53
# On monochrome displays, -disabledforeground is blank by default; that's
54
# bad.  Fill it with -foreground instead.
55
#
56
if { [cget .ref -disabledforeground] == "" } {
57
        .ref configure -disabledforeground [cget .ref -foreground]
58
}
59
 
60
 
61
#
62
# Define some macros we will need to parse the config.in file.
63
#
64
 
65
proc mainmenu_name { text } {
66
        wm title . "$text"
67
}
68
 
69
proc menu_option { w menu_num text } {
70
        global menus_per_column
71
        global processed_top_level
72
        set processed_top_level [expr $processed_top_level + 1]
73
        if { $processed_top_level <= $menus_per_column } then {
74
            set myframe left
75
        } elseif { $processed_top_level <= [expr 2 * $menus_per_column] } then {
76
            set myframe middle
77
        } else {
78
            set myframe right
79
        }
80
        button .f0.x$menu_num -anchor w -text "$text" \
81
            -command "$w .$w \"$text\""
82
        pack .f0.x$menu_num -pady 0 -side top -fill x -in .f0.$myframe
83
}
84
 
85
proc load_configfile { w title func } {
86
        catch {destroy $w}
87
        toplevel $w -class Dialog
88
        global loadfile
89
        frame $w.x
90
        label $w.bm -bitmap questhead
91
        pack  $w.bm -pady 10 -side top -padx 10
92
        label $w.x.l -text "Enter filename:" -relief raised
93
        entry $w.x.x -width 35 -relief sunken -borderwidth 2 \
94
                -textvariable loadfile
95
        pack $w.x.l $w.x.x -anchor w -side left
96
        pack $w.x -side top -pady 10
97
        wm title $w "$title"
98
 
99
        set oldFocus [focus]
100
        frame $w.f
101
        button $w.f.back -text "OK" -width 20 \
102
                -command "destroy $w; focus $oldFocus;$func .fileio"
103
        button $w.f.canc -text "Cancel" \
104
                -width 20 -command "destroy $w; focus $oldFocus"
105
        pack $w.f.back $w.f.canc -side left -pady 10 -padx 45
106
        pack $w.f -pady 10 -side bottom -padx 10 -anchor w
107
        focus $w
108
        global winx; global winy
109
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
110
        wm geometry $w +$winx+$winy
111
}
112
 
113
bind all  {maybe_exit .maybe}
114
 
115
proc maybe_exit { w } {
116
        catch {destroy $w}
117
        toplevel $w -class Dialog
118
        label $w.bm -bitmap questhead
119
        pack  $w.bm -pady 10 -side top -padx 10
120
        message $w.m -width 400 -aspect 300 \
121
                -text "Changes will be lost.  Are you sure?" -relief flat
122
        pack  $w.m -pady 10 -side top -padx 10
123
        wm title $w "Are you sure?"
124
 
125
        set oldFocus [focus]
126
        frame $w.f
127
        button $w.f.back -text "OK" -width 20 \
128
                -command "exit 1"
129
        button $w.f.canc -text "Cancel" \
130
                -width 20 -command "destroy $w; focus $oldFocus"
131
        pack $w.f.back $w.f.canc -side left -pady 10 -padx 45
132
        pack $w.f -pady 10 -side bottom -padx 10 -anchor w
133
        bind $w  "exit 1"
134
        bind $w  "destroy $w; focus $oldFocus"
135
        focus $w
136
        global winx; global winy
137
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
138
        wm geometry $w +$winx+$winy
139
}
140
 
141
proc read_config_file { w } {
142
        global loadfile
143
        if { [string length $loadfile] != 0 && [file readable $loadfile] == 1 } then {
144
                read_config $loadfile
145
        } else {
146
                catch {destroy $w}
147
                toplevel $w -class Dialog
148
                message $w.m -width 400 -aspect 300 -text \
149
                        "Unable to read file $loadfile" \
150
                         -relief raised
151
                label $w.bm -bitmap error
152
                pack $w.bm $w.m -pady 10 -side top -padx 10
153
                wm title $w "Xconfig Internal Error"
154
 
155
                set oldFocus [focus]
156
                frame $w.f
157
                button $w.f.back -text "Bummer" \
158
                        -width 10 -command "destroy $w; focus $oldFocus"
159
                pack $w.f.back -side bottom -pady 10 -anchor s
160
                pack $w.f -pady 10 -side top -padx 10 -anchor s
161
                focus $w
162
                global winx; global winy
163
                set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
164
                wm geometry $w +$winx+$winy
165
        }
166
}
167
 
168
proc write_config_file  { w } {
169
        global loadfile
170
        if { [string length $loadfile] != 0
171
                && ([file writable $loadfile] == 1 || ([file exists $loadfile] == 0 && [file writable [file dirname $loadfile]] == 1)) } then {
172
                writeconfig $loadfile .null
173
        } else {
174
                catch {destroy $w}
175
                toplevel $w -class Dialog
176
                message $w.m -width 400 -aspect 300 -text \
177
                        "Unable to write file $loadfile" \
178
                         -relief raised
179
                label $w.bm -bitmap error
180
                pack $w.bm $w.m -pady 10 -side top -padx 10
181
                wm title $w "Xconfig Internal Error"
182
 
183
                set oldFocus [focus]
184
                frame $w.f
185
                button $w.f.back -text "OK" \
186
                        -width 10 -command "destroy $w; focus $oldFocus"
187
                pack $w.f.back -side bottom -pady 10 -anchor s
188
                pack $w.f -pady 10 -side top -padx 10 -anchor s
189
                focus $w
190
                global winx; global winy
191
                set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
192
                wm geometry $w +$winx+$winy
193
        }
194
}
195
 
196
proc read_config { filename } {
197
        set file1 [open $filename r]
198
        clear_choices
199
        while { [gets $file1 line] >= 0} {
200
                if [regexp {([0-9A-Za-z_]+)=([ynm])} $line foo var value] {
201
                        if { $value == "y" } then { set cmd "global $var; set $var 1" }
202
                        if { $value == "n" } then { set cmd "global $var; set $var 0" }
203
                        if { $value == "m" } then { set cmd "global $var; set $var 2" }
204
                        eval $cmd
205
                }
206
                if [regexp {# ([0-9A-Za-z_]+) is not set} $line foo var] {
207
                        set cmd "global $var; set $var 0"
208
                        eval $cmd
209
                }
210
                if [regexp {([0-9A-Za-z_]+)=([0-9A-Fa-f]+)} $line foo var value] {
211
                        set cmd "global $var; set $var $value"
212
                        eval $cmd
213
                }
214
                if [regexp {([0-9A-Za-z_]+)="([^"]*)"} $line foo var value] {
215
                        set cmd "global $var; set $var \"$value\""
216
                        eval $cmd
217
                }
218
        }
219
        close $file1
220
        update_choices
221
        update_mainmenu
222
}
223
proc write_comment { file1 file2 text } {
224
        puts $file1 ""
225
        puts $file1 "#"
226
        puts $file1 "# $text"
227
        puts $file1 "#"
228
        puts $file2 "/*"
229
        puts $file2 " * $text"
230
        puts $file2 " */"
231
}
232
 
233
proc effective_dep { deplist } {
234
        global CONFIG_MODULES
235
        set depend 1
236
        foreach i $deplist {
237
                if {$i == 0} then {set depend 0}
238
                if {$i == 2 && $depend == 1} then {set depend 2}
239
        }
240
        if {$depend == 2 && $CONFIG_MODULES == 0} then {set depend 0}
241
        return $depend
242
}
243
 
244
proc sync_tristate { var dep } {
245
        global CONFIG_MODULES
246
        if {$dep == 0 && ($var == 1 || $var == 2)} then {
247
                set var 0
248
        } elseif {$dep == 2 && $var == 1} then {
249
                set var 2
250
        } elseif {$var == 2 && $CONFIG_MODULES == 0} then {
251
                if {$dep == 1} then {set var 1} else {set var 0}
252
        }
253
        return $var
254
}
255
 
256
proc sync_bool { var dep modset } {
257
        set var [sync_tristate $var $dep]
258
        if {$dep == 2 && $var == 2} then {
259
                set var $modset
260
        }
261
        return $var
262
}
263
 
264
proc write_tristate { file1 file2 varname variable deplist modset } {
265
        set variable [sync_tristate $variable [effective_dep $deplist]]
266
        if { $variable == 2 } \
267
                then { set variable $modset }
268
        if { $variable == 1 } \
269
                then { puts $file1 "$varname=y"; \
270
                       puts $file2 "#define $varname 1" } \
271
        elseif { $variable == 2 } \
272
                then { puts $file1 "$varname=m"; \
273
                       puts $file2 "#undef  $varname"; \
274
                       puts $file2 "#define ${varname}_MODULE 1" } \
275
        elseif { $variable == 0 } \
276
                then { puts $file1 "# $varname is not set"; \
277
                       puts $file2 "#undef  $varname"} \
278
        else { \
279
            puts stdout "ERROR - Attempting to write value for unconfigured variable ($varname)." \
280
        }
281
}
282
 
283
proc write_int { file1 file2 varname variable dep } {
284
        if { $dep == 0 } \
285
                then { puts $file1 "# $varname is not set"; \
286
                       puts $file2 "#undef  $varname"} \
287
        else {
288
                puts $file1 "$varname=$variable"; \
289
                puts $file2 "#define $varname ($variable)"; \
290
        }
291
}
292
 
293
proc write_hex { file1 file2 varname variable dep } {
294
        if { $dep == 0 } \
295
                then { puts $file1 "# $varname is not set"; \
296
                       puts $file2 "#undef  $varname"} \
297
        else {
298
                puts $file1 "$varname=$variable"; \
299
                puts -nonewline $file2 "#define $varname "; \
300
                puts $file2 [exec echo $variable | sed s/^0\[xX\]//]; \
301
        }
302
}
303
 
304
proc write_string { file1 file2 varname variable dep } {
305
        if { $dep == 0 } \
306
                then { puts $file1 "# $varname is not set"; \
307
                       puts $file2 "#undef  $varname"} \
308
        else {
309
                puts $file1 "$varname=\"$variable\""; \
310
                puts $file2 "#define $varname \"$variable\""; \
311
        }
312
}
313
 
314
proc option_name {w mnum line text helpidx} {
315
        button $w.x$line.l -text "$text" -relief groove -anchor w
316
        $w.x$line.l configure -activefore [cget $w.x$line.l -fg] \
317
                                -activeback [cget $w.x$line.l -bg]
318
        button $w.x$line.help -text "Help" -relief raised \
319
                -command "dohelp .dohelp $helpidx .menu$mnum"
320
        pack $w.x$line.help -side right -fill y
321
        pack $w.x$line.l -side right -fill both -expand on
322
}
323
 
324
proc toggle_switch2 {w mnum line text variable} {
325
        frame $w.x$line -relief sunken
326
        radiobutton $w.x$line.y -text "y" -variable $variable -value 1 \
327
                -relief groove -width 2 -command "update_active"
328
#       radiobutton $w.x$line.m -text "-"  -variable $variable -value 2 \
329
#               -relief groove -width 2 -command "update_active"
330
        radiobutton $w.x$line.n -text "n"  -variable $variable -value 0 \
331
                -relief groove -width 2 -command "update_active"
332
 
333
        option_name $w $mnum $line $text $variable
334
 
335
        pack $w.x$line.n $w.x$line.y -side right -fill y
336
}
337
 
338
proc toggle_switch3 {w mnum line text variable} {
339
        frame $w.x$line -relief sunken
340
        radiobutton $w.x$line.y -text "y" -variable $variable -value 1 \
341
                -relief groove -width 2 -command "update_active"
342
        radiobutton $w.x$line.m -text "m"  -variable $variable -value 2 \
343
                -relief groove -width 2 -command "update_active"
344
        radiobutton $w.x$line.n -text "n"  -variable $variable -value 0 \
345
                -relief groove -width 2 -command "update_active"
346
 
347
        option_name $w $mnum $line $text $variable
348
 
349
        global CONFIG_MODULES
350
        if {($CONFIG_MODULES == 0)} then {
351
                $w.x$line.m configure -state disabled
352
        }
353
        pack $w.x$line.n $w.x$line.m $w.x$line.y -side right -fill y
354
}
355
 
356
proc bool {w mnum line text variable} {
357
        toggle_switch2 $w $mnum $line $text $variable
358
#       $w.x$line.m configure -state disabled
359
        pack $w.x$line -anchor w -fill both -expand on
360
}
361
 
362
proc tristate {w mnum line text variable } {
363
        toggle_switch3 $w $mnum $line $text $variable
364
        pack $w.x$line -anchor w -fill both -expand on
365
}
366
 
367
proc dep_tristate {w mnum line text variable } {
368
        tristate $w $mnum $line $text $variable
369
}
370
 
371
proc dep_bool {w mnum line text variable } {
372
        bool $w $mnum $line $text $variable
373
}
374
 
375
proc int { w mnum line text variable } {
376
        frame $w.x$line
377
        entry $w.x$line.x -width 11 -relief sunken -borderwidth 2 \
378
                -textvariable $variable
379
        option_name $w $mnum $line $text $variable
380
        pack $w.x$line.x -anchor w -side right -fill y
381
        pack $w.x$line -anchor w -fill both -expand on
382
}
383
 
384
proc hex { w mnum line text variable } {
385
        int $w $mnum $line $text $variable
386
}
387
 
388
proc istring { w mnum line text variable } {
389
        frame $w.x$line
390
        entry $w.x$line.x -width 18 -relief sunken -borderwidth 2 \
391
                -textvariable $variable
392
        option_name $w $mnum $line $text $variable
393
        pack $w.x$line.x -anchor w -side right -fill y
394
        pack $w.x$line -anchor w -fill both -expand on
395
}
396
 
397
proc minimenu { w mnum line text variable helpidx } {
398
        frame $w.x$line
399
        menubutton $w.x$line.x -textvariable $variable -menu \
400
                $w.x$line.x.menu -relief raised \
401
                -anchor w
402
        option_name $w $mnum $line $text $helpidx
403
        pack $w.x$line.x -anchor w -side right -fill y
404
        pack $w.x$line -anchor w -fill both -expand on
405
}
406
 
407
proc menusplit {w m n} {
408
        if { $n > 2 } then {
409
                update idletasks
410
                set menuoptsize [expr [$m yposition 2] - [$m yposition 1]]
411
                set maxsize [winfo screenheight $w]
412
                set splitpoint [expr $maxsize * 4 / 5 / $menuoptsize - 1]
413
                for {set i [expr $splitpoint + 1]} {$i <= $n} {incr i $splitpoint} {
414
                        $m entryconfigure $i -columnbreak 1
415
                }
416
        }
417
}
418
 
419
proc menutitle {text menu w} {
420
        wm title $w "$text"
421
}
422
 
423
proc submenu { w mnum line text subnum } {
424
        frame $w.x$line
425
        button $w.x$line.l -text "" -width 9 -relief groove
426
        $w.x$line.l configure -activefore [cget $w.x$line.l -fg] \
427
                -activeback [cget $w.x$line.l -bg] -state disabled
428
        button $w.x$line.m -text "$text" -relief raised -anchor w \
429
                -command "catch {destroy .menu$subnum}; menu$subnum .menu$subnum \"$text\""
430
        pack $w.x$line.l -side left -fill both
431
        pack $w.x$line.m -anchor w -side right -fill both -expand on
432
        pack $w.x$line -anchor w -fill both -expand on
433
}
434
 
435
proc comment {w mnum line text } {
436
        frame $w.x$line
437
        button $w.x$line.l -text "" -width 15 -relief groove
438
        $w.x$line.l configure -activefore [cget $w.x$line.l -fg] \
439
                -activeback [cget $w.x$line.l -bg] -state disabled
440
        button $w.x$line.m -text "$text" -relief groove -anchor w
441
        $w.x$line.m configure -activefore [cget $w.x$line.m -fg] \
442
                -activeback [cget $w.x$line.m -bg]
443
        pack $w.x$line.l -side left -fill both
444
        pack $w.x$line.m -anchor w -side right -fill both -expand on
445
        pack $w.x$line -anchor w -fill both -expand on
446
}
447
 
448
proc readhelp {tag fn}  {
449
        set message ""
450
        set b 0
451
        if { [file readable $fn] == 1} then {
452
                set fhandle [open $fn r]
453
                while {[gets $fhandle inline] >= 0} {
454
                        if { $b == 0 } {
455
                                if { [regexp $tag $inline ] } {
456
                                        set b 1
457
                                        set message "$inline:\n"
458
                                }
459
                        } else {
460
                                if { [regexp {^[^ \t]} $inline]} {
461
                                        break
462
                                }
463
                                set message "$message\n$inline"
464
                        }
465
                }
466
                close $fhandle
467
        }
468
        return $message
469
}
470
 
471
proc dohelp {w var parent}  {
472
        catch {destroy $w}
473
        toplevel $w -class Dialog
474
 
475
        set filefound 0
476
        set found 0
477
        set lineno 0
478
 
479
        if { [file readable config.help] == 1} then {
480
                set filefound 1
481
                # First escape sed regexp special characters in var:
482
                set var [exec echo "$var" | sed s/\[\]\[\/.^$*\]/\\\\&/g]
483
                # Now pick out right help text:
484
                set message [readhelp $var config.help]
485
                set found [expr [string length "$message"] > 0]
486
        }
487
 
488
        frame $w.f1
489
        pack $w.f1 -fill both -expand on
490
 
491
        # Do the OK button
492
        #
493
        set oldFocus [focus]
494
        frame $w.f2
495
        button $w.f2.ok -text "OK" \
496
                -width 10 -command "destroy $w; catch {focus $oldFocus}"
497
        pack $w.f2.ok -side bottom -pady 6 -anchor n
498
        pack $w.f2 -side bottom -padx 10 -anchor s
499
 
500
        scrollbar $w.f1.vscroll -command "$w.f1.canvas yview"
501
        pack $w.f1.vscroll -side right -fill y
502
 
503
        canvas $w.f1.canvas -relief flat -borderwidth 0 \
504
                -yscrollcommand "$w.f1.vscroll set"
505
        frame $w.f1.f
506
        pack $w.f1.canvas -side right -fill y -expand on
507
 
508
        if { $found == 0 } then {
509
                if { $filefound == 0 } then {
510
                message $w.f1.f.m -width 750 -aspect 300 -relief flat -text \
511
                        "No help available - unable to open file config.help."
512
                } else {
513
                message $w.f1.f.m -width 400 -aspect 300 -relief flat -text \
514
                        "No help available for $var"
515
                }
516
                label $w.f1.bm -bitmap error
517
                wm title $w "RTFM"
518
        } else {
519
                text $w.f1.f.m -width 73 -relief flat -wrap word
520
                $w.f1.f.m insert 0.0 $message
521
                $w.f1.f.m conf -state disabled -height [$w.f1.f.m index end]
522
 
523
                label $w.f1.bm -bitmap info
524
                wm title $w "Configuration help"
525
        }
526
        pack $w.f1.f.m -side left
527
        pack $w.f1.bm $w.f1.f -side left -padx 10
528
 
529
        focus $w
530
        set winx [expr [winfo x $parent]+20]
531
        set winy [expr [winfo y $parent]+20]
532
        wm geometry $w +$winx+$winy
533
        set sizok [expr [winfo reqheight $w.f2.ok] + 12]
534
        set maxy [expr [winfo screenheight .] * 3 / 4]
535
        set canvtotal [winfo reqheight $w.f1.f.m]
536
        if [expr $sizok + $canvtotal < $maxy] {
537
                set sizy $canvtotal
538
        } else {
539
                set sizy [expr $maxy - $sizok]
540
        }
541
        $w.f1.canvas configure -height $sizy -width [winfo reqwidth $w.f1.f.m] \
542
                -scrollregion "0 0 [winfo reqwidth $w.f1.f.m] \
543
                        [winfo reqheight $w.f1.f.m]"
544
        $w.f1.canvas create window 0 0 -anchor nw -window $w.f1.f
545
        update idletasks
546
 
547
        set maxy [winfo screenheight .]
548
        if [expr $sizok + $canvtotal < $maxy] {
549
                set sizy [expr $sizok + $canvtotal]
550
        } else {
551
                set sizy $maxy
552
        }
553
        wm maxsize $w [winfo width $w] $sizy
554
}
555
 
556
bind all  { catch {exec cp -f .config .config.old}; \
557
                writeconfig .config config.h; wrapup .wrap }
558
 
559
proc wrapup {w }  {
560
        catch {destroy $w}
561
        toplevel $w -class Dialog
562
 
563
        global CONFIG_MODVERSIONS; vfix CONFIG_MODVERSIONS
564
        message $w.m -width 460 -aspect 300 -relief raised -text \
565
                "End of design configuration. "
566
        label $w.bm -bitmap info
567
        pack $w.bm $w.m -pady 10 -side top -padx 10
568
        wm title $w "LEON build instructions"
569
 
570
        set oldFocus [focus]
571
        frame $w.f
572
        button $w.f.back -text "OK" \
573
                -width 10 -command "exit 2"
574
        pack $w.f.back -side bottom -pady 10 -anchor s
575
        pack $w.f -pady 10 -side top -padx 10 -anchor s
576
        focus $w
577
        bind $w  "exit 2"
578
        global winx; global winy
579
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
580
        wm geometry $w +$winx+$winy
581
 
582
}
583
 
584
proc unregister_active {num} {
585
        global active_menus
586
        set index [lsearch -exact $active_menus $num]
587
        if {$index != -1} then {set active_menus [lreplace $active_menus $index $index]}
588
}
589
 
590
proc update_active {} {
591
        global active_menus total_menus
592
        set max 0
593
        if {[llength $active_menus] > 0} then {
594
                set max [lindex $active_menus end]
595
                update_define [toplevel_menu [lindex $active_menus 0]] $max 0
596
        }
597
        foreach i $active_menus {
598
                if {[winfo exists .menu$i] == 0} then {
599
                        unregister_active $i
600
                } else {
601
                        update_menu$i
602
                }
603
        }
604
        update_define [expr $max + 1] $total_menus 1
605
        update_mainmenu
606
}
607
 
608
proc configure_entry {w option items} {
609
        foreach i $items {
610
                $w.$i configure -state $option
611
        }
612
}
613
 
614
proc validate_int {name val default} {
615
        if {([exec echo $val | sed s/^-//g | tr -d \[:digit:\] ] != "")} then {
616
                global $name; set $name $default
617
        }
618
}
619
 
620
proc validate_hex {name val default} {
621
        if {([exec echo $val | tr -d \[:xdigit:\] ] != "")} then {
622
                global $name; set $name $default
623
        }
624
}
625
 
626
proc update_define {first last allow_update} {
627
        for {set i $first} {$i <= $last} {incr i} {
628
                update_define_menu$i
629
                if {$allow_update == 1} then update
630
        }
631
}
632
 
633
#
634
# Next set up the particulars for the top level menu, and define a few
635
# buttons which we will stick down at the bottom.
636
#
637
 
638
frame .f0
639
frame .f0.left
640
frame .f0.middle
641
frame .f0.right
642
 
643
set active_menus [list]
644
set processed_top_level 0
645
set ARCH sparc
646
set menus_per_column 4
647
set total_menus 23
648
 
649
proc toplevel_menu {num} {
650
        if {$num == 4} then {return 3}
651
        if {$num == 5} then {return 3}
652
        if {$num == 6} then {return 3}
653
        if {$num == 7} then {return 3}
654
        if {$num == 8} then {return 3}
655
        if {$num == 9} then {return 3}
656
        if {$num == 10} then {return 3}
657
        if {$num == 14} then {return 13}
658
        if {$num == 15} then {return 14}
659
        if {$num == 16} then {return 14}
660
        if {$num == 17} then {return 13}
661
        if {$num == 18} then {return 13}
662
        if {$num == 19} then {return 13}
663
        if {$num == 20} then {return 13}
664
        if {$num == 21} then {return 13}
665
        return $num
666
}
667
 
668
mainmenu_name "LEON3MINI Design Configuration"
669
menu_option menu1 1 "Synthesis      "
670
proc menu1 {w title} {
671
        set oldFocus [focus]
672
        catch {destroy $w; unregister_active 1}
673
        toplevel $w -class Dialog
674
        wm withdraw $w
675
        global active_menus
676
        set active_menus [lsort -integer [linsert $active_menus end 1]]
677
        message $w.m -width 400 -aspect 300 -text \
678
                "Synthesis      "  -relief raised
679
        pack $w.m -pady 10 -side top -padx 10
680
        wm title $w "Synthesis      "
681
 
682
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 1; break"
683
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 1; menu2 .menu2 \"$title\""
684
        frame $w.f
685
        button $w.f.back -text "Main Menu" \
686
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 1"
687
        button $w.f.next -text "Next" -underline 0\
688
                -width 15 -command $nextscript
689
        bind all  $nextscript
690
        button $w.f.prev -text "Prev" -underline 0\
691
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 1; menu0 .menu0 \"$title\""
692
        $w.f.prev configure -state disabled
693
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
694
        pack $w.f -pady 10 -side bottom -anchor w -fill x
695
        frame $w.topline -relief ridge -borderwidth 2 -height 2
696
        pack $w.topline -side top -fill x
697
 
698
        frame $w.botline -relief ridge -borderwidth 2 -height 2
699
        pack $w.botline -side bottom -fill x
700
 
701
        frame $w.config
702
        pack $w.config -fill y -expand on
703
 
704
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
705
        pack $w.config.vscroll -side right -fill y
706
 
707
        canvas $w.config.canvas -height 1\
708
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
709
                -width [expr [winfo screenwidth .] * 1 / 2]
710
        frame $w.config.f
711
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
712
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
713
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
714
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
715
        bind $w  "$w.config.canvas yview moveto 0;break;"
716
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
717
        pack $w.config.canvas -side right -fill y
718
 
719
 
720
        global tmpvar_0
721
        minimenu $w.config.f 1 0 "Target technology                           " tmpvar_0 CONFIG_SYN_INFERRED
722
        menu $w.config.f.x0.x.menu -tearoffcommand "menutitle \"Target technology                           \""
723
        $w.config.f.x0.x.menu add radiobutton -label "Inferred" -variable tmpvar_0 -value "Inferred" -command "update_active"
724
        $w.config.f.x0.x.menu add radiobutton -label "Altera-Stratix" -variable tmpvar_0 -value "Altera-Stratix" -command "update_active"
725
        $w.config.f.x0.x.menu add radiobutton -label "Altera-StratixII" -variable tmpvar_0 -value "Altera-StratixII" -command "update_active"
726
        $w.config.f.x0.x.menu add radiobutton -label "Altera-StratixIII" -variable tmpvar_0 -value "Altera-StratixIII" -command "update_active"
727
        $w.config.f.x0.x.menu add radiobutton -label "Altera-CycloneIII" -variable tmpvar_0 -value "Altera-CycloneIII" -command "update_active"
728
        $w.config.f.x0.x.menu add radiobutton -label "Altera-Others" -variable tmpvar_0 -value "Altera-Others" -command "update_active"
729
        $w.config.f.x0.x.menu add radiobutton -label "Actel-Axcelerator" -variable tmpvar_0 -value "Actel-Axcelerator" -command "update_active"
730
        $w.config.f.x0.x.menu add radiobutton -label "Actel-Proasic" -variable tmpvar_0 -value "Actel-Proasic" -command "update_active"
731
        $w.config.f.x0.x.menu add radiobutton -label "Actel-ProasicPlus" -variable tmpvar_0 -value "Actel-ProasicPlus" -command "update_active"
732
        $w.config.f.x0.x.menu add radiobutton -label "Actel-Proasic3" -variable tmpvar_0 -value "Actel-Proasic3" -command "update_active"
733
        $w.config.f.x0.x.menu add radiobutton -label "Aeroflex-UT025CRH" -variable tmpvar_0 -value "Aeroflex-UT025CRH" -command "update_active"
734
        $w.config.f.x0.x.menu add radiobutton -label "Atmel-ATC18" -variable tmpvar_0 -value "Atmel-ATC18" -command "update_active"
735
        $w.config.f.x0.x.menu add radiobutton -label "Custom1" -variable tmpvar_0 -value "Custom1" -command "update_active"
736
        $w.config.f.x0.x.menu add radiobutton -label "eASIC90" -variable tmpvar_0 -value "eASIC90" -command "update_active"
737
        $w.config.f.x0.x.menu add radiobutton -label "IHP25" -variable tmpvar_0 -value "IHP25" -command "update_active"
738
        $w.config.f.x0.x.menu add radiobutton -label "IHP25RH" -variable tmpvar_0 -value "IHP25RH" -command "update_active"
739
        $w.config.f.x0.x.menu add radiobutton -label "Lattice-EC/ECP/XP" -variable tmpvar_0 -value "Lattice-EC/ECP/XP" -command "update_active"
740
        $w.config.f.x0.x.menu add radiobutton -label "Quicklogic-Eclipse" -variable tmpvar_0 -value "Quicklogic-Eclipse" -command "update_active"
741
        $w.config.f.x0.x.menu add radiobutton -label "Peregrine" -variable tmpvar_0 -value "Peregrine" -command "update_active"
742
        $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T" -variable tmpvar_0 -value "RH-LIB18T" -command "update_active"
743
        $w.config.f.x0.x.menu add radiobutton -label "RH-UMC" -variable tmpvar_0 -value "RH-UMC" -command "update_active"
744
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active"
745
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active"
746
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active"
747
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex" -variable tmpvar_0 -value "Xilinx-Virtex" -command "update_active"
748
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-VirtexE" -variable tmpvar_0 -value "Xilinx-VirtexE" -command "update_active"
749
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex2" -variable tmpvar_0 -value "Xilinx-Virtex2" -command "update_active"
750
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active"
751
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active"
752
        $w.config.f.x0.x.menu add radiobutton -label "UMC18" -variable tmpvar_0 -value "UMC18" -command "update_active"
753
        $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active"
754
        menusplit $w $w.config.f.x0.x.menu 31
755
        global tmpvar_1
756
        minimenu $w.config.f 1 1 "Memory Library                           " tmpvar_1 CONFIG_MEM_INFERRED
757
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library                           \""
758
        $w.config.f.x1.x.menu add radiobutton -label "Inferred" -variable tmpvar_1 -value "Inferred" -command "update_active"
759
        $w.config.f.x1.x.menu add radiobutton -label "UMC18" -variable tmpvar_1 -value "UMC18" -command "update_active"
760
        $w.config.f.x1.x.menu add radiobutton -label "RH-UMC" -variable tmpvar_1 -value "RH-UMC" -command "update_active"
761
        $w.config.f.x1.x.menu add radiobutton -label "Artisan" -variable tmpvar_1 -value "Artisan" -command "update_active"
762
        $w.config.f.x1.x.menu add radiobutton -label "Custom1" -variable tmpvar_1 -value "Custom1" -command "update_active"
763
        $w.config.f.x1.x.menu add radiobutton -label "Virage" -variable tmpvar_1 -value "Virage" -command "update_active"
764
        $w.config.f.x1.x.menu add radiobutton -label "Virage-TSMC90" -variable tmpvar_1 -value "Virage-TSMC90" -command "update_active"
765
        menusplit $w $w.config.f.x1.x.menu 7
766
        bool $w.config.f 1 2 "Infer RAM" CONFIG_SYN_INFER_RAM
767
        bool $w.config.f 1 3 "Infer pads" CONFIG_SYN_INFER_PADS
768
        bool $w.config.f 1 4 "Disable asynchronous reset" CONFIG_SYN_NO_ASYNC
769
        bool $w.config.f 1 5 "Enable scan support       " CONFIG_SYN_SCAN
770
 
771
 
772
 
773
        focus $w
774
        update_active
775
        global winx; global winy
776
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
777
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
778
        update idletasks
779
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
780
 
781
        $w.config.canvas configure \
782
                -width [expr [winfo reqwidth $w.config.f] + 1]\
783
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
784
                         [expr [winfo reqheight $w.config.f] + 1]"
785
 
786
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
787
        set scry [expr [winfo screenh $w] / 2]
788
        set maxy [expr [winfo screenh $w] * 3 / 4]
789
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
790
        if [expr $winy + $canvtotal < $maxy] {
791
                $w.config.canvas configure -height $canvtotal
792
        } else {
793
                $w.config.canvas configure -height [expr $scry - $winy]
794
                }
795
        }
796
        update idletasks
797
        if {[winfo exists $w]} then {
798
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
799
        wm minsize $w [winfo width $w] 100
800
 
801
        wm deiconify $w
802
}
803
}
804
 
805
proc update_menu1 {} {
806
        global CONFIG_SYN_INFERRED
807
        global CONFIG_SYN_CUSTOM1
808
        global CONFIG_SYN_ATC18
809
        global CONFIG_SYN_TSMC90
810
        global CONFIG_SYN_UMC
811
        global CONFIG_SYN_RHUMC
812
        global CONFIG_SYN_ARTISAN
813
        if {($CONFIG_SYN_INFERRED == 1 || $CONFIG_SYN_CUSTOM1 == 1 || $CONFIG_SYN_ATC18 == 1 || $CONFIG_SYN_TSMC90 == 1 || $CONFIG_SYN_UMC == 1 || $CONFIG_SYN_RHUMC == 1 || $CONFIG_SYN_ARTISAN == 1)} then {configure_entry .menu1.config.f.x1 normal {x l}} else {configure_entry .menu1.config.f.x1 disabled {x l}}
814
        global CONFIG_SYN_INFER_RAM
815
        if {($CONFIG_SYN_INFERRED != 1)} then {
816
        configure_entry .menu1.config.f.x2 normal {n l y}} else {configure_entry .menu1.config.f.x2 disabled {y n l}}
817
        global CONFIG_SYN_INFER_PADS
818
        if {($CONFIG_SYN_INFERRED != 1)} then {
819
        configure_entry .menu1.config.f.x3 normal {n l y}} else {configure_entry .menu1.config.f.x3 disabled {y n l}}
820
}
821
 
822
 
823
proc update_define_menu1 {} {
824
        update_define_mainmenu
825
        global CONFIG_MODULES
826
        global tmpvar_0
827
        global CONFIG_SYN_INFERRED
828
        if {$tmpvar_0 == "Inferred"} then {set CONFIG_SYN_INFERRED 1} else {set CONFIG_SYN_INFERRED 0}
829
        global CONFIG_SYN_STRATIX
830
        if {$tmpvar_0 == "Altera-Stratix"} then {set CONFIG_SYN_STRATIX 1} else {set CONFIG_SYN_STRATIX 0}
831
        global CONFIG_SYN_STRATIXII
832
        if {$tmpvar_0 == "Altera-StratixII"} then {set CONFIG_SYN_STRATIXII 1} else {set CONFIG_SYN_STRATIXII 0}
833
        global CONFIG_SYN_STRATIXIII
834
        if {$tmpvar_0 == "Altera-StratixIII"} then {set CONFIG_SYN_STRATIXIII 1} else {set CONFIG_SYN_STRATIXIII 0}
835
        global CONFIG_SYN_CYCLONEIII
836
        if {$tmpvar_0 == "Altera-CycloneIII"} then {set CONFIG_SYN_CYCLONEIII 1} else {set CONFIG_SYN_CYCLONEIII 0}
837
        global CONFIG_SYN_ALTERA
838
        if {$tmpvar_0 == "Altera-Others"} then {set CONFIG_SYN_ALTERA 1} else {set CONFIG_SYN_ALTERA 0}
839
        global CONFIG_SYN_AXCEL
840
        if {$tmpvar_0 == "Actel-Axcelerator"} then {set CONFIG_SYN_AXCEL 1} else {set CONFIG_SYN_AXCEL 0}
841
        global CONFIG_SYN_PROASIC
842
        if {$tmpvar_0 == "Actel-Proasic"} then {set CONFIG_SYN_PROASIC 1} else {set CONFIG_SYN_PROASIC 0}
843
        global CONFIG_SYN_PROASICPLUS
844
        if {$tmpvar_0 == "Actel-ProasicPlus"} then {set CONFIG_SYN_PROASICPLUS 1} else {set CONFIG_SYN_PROASICPLUS 0}
845
        global CONFIG_SYN_PROASIC3
846
        if {$tmpvar_0 == "Actel-Proasic3"} then {set CONFIG_SYN_PROASIC3 1} else {set CONFIG_SYN_PROASIC3 0}
847
        global CONFIG_SYN_UT025CRH
848
        if {$tmpvar_0 == "Aeroflex-UT025CRH"} then {set CONFIG_SYN_UT025CRH 1} else {set CONFIG_SYN_UT025CRH 0}
849
        global CONFIG_SYN_ATC18
850
        if {$tmpvar_0 == "Atmel-ATC18"} then {set CONFIG_SYN_ATC18 1} else {set CONFIG_SYN_ATC18 0}
851
        global CONFIG_SYN_CUSTOM1
852
        if {$tmpvar_0 == "Custom1"} then {set CONFIG_SYN_CUSTOM1 1} else {set CONFIG_SYN_CUSTOM1 0}
853
        global CONFIG_SYN_EASIC90
854
        if {$tmpvar_0 == "eASIC90"} then {set CONFIG_SYN_EASIC90 1} else {set CONFIG_SYN_EASIC90 0}
855
        global CONFIG_SYN_IHP25
856
        if {$tmpvar_0 == "IHP25"} then {set CONFIG_SYN_IHP25 1} else {set CONFIG_SYN_IHP25 0}
857
        global CONFIG_SYN_IHP25RH
858
        if {$tmpvar_0 == "IHP25RH"} then {set CONFIG_SYN_IHP25RH 1} else {set CONFIG_SYN_IHP25RH 0}
859
        global CONFIG_SYN_LATTICE
860
        if {$tmpvar_0 == "Lattice-EC/ECP/XP"} then {set CONFIG_SYN_LATTICE 1} else {set CONFIG_SYN_LATTICE 0}
861
        global CONFIG_SYN_ECLIPSE
862
        if {$tmpvar_0 == "Quicklogic-Eclipse"} then {set CONFIG_SYN_ECLIPSE 1} else {set CONFIG_SYN_ECLIPSE 0}
863
        global CONFIG_SYN_PEREGRINE
864
        if {$tmpvar_0 == "Peregrine"} then {set CONFIG_SYN_PEREGRINE 1} else {set CONFIG_SYN_PEREGRINE 0}
865
        global CONFIG_SYN_RH_LIB18T
866
        if {$tmpvar_0 == "RH-LIB18T"} then {set CONFIG_SYN_RH_LIB18T 1} else {set CONFIG_SYN_RH_LIB18T 0}
867
        global CONFIG_SYN_RHUMC
868
        if {$tmpvar_0 == "RH-UMC"} then {set CONFIG_SYN_RHUMC 1} else {set CONFIG_SYN_RHUMC 0}
869
        global CONFIG_SYN_SPARTAN2
870
        if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0}
871
        global CONFIG_SYN_SPARTAN3
872
        if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0}
873
        global CONFIG_SYN_SPARTAN3E
874
        if {$tmpvar_0 == "Xilinx-Spartan3E"} then {set CONFIG_SYN_SPARTAN3E 1} else {set CONFIG_SYN_SPARTAN3E 0}
875
        global CONFIG_SYN_VIRTEX
876
        if {$tmpvar_0 == "Xilinx-Virtex"} then {set CONFIG_SYN_VIRTEX 1} else {set CONFIG_SYN_VIRTEX 0}
877
        global CONFIG_SYN_VIRTEXE
878
        if {$tmpvar_0 == "Xilinx-VirtexE"} then {set CONFIG_SYN_VIRTEXE 1} else {set CONFIG_SYN_VIRTEXE 0}
879
        global CONFIG_SYN_VIRTEX2
880
        if {$tmpvar_0 == "Xilinx-Virtex2"} then {set CONFIG_SYN_VIRTEX2 1} else {set CONFIG_SYN_VIRTEX2 0}
881
        global CONFIG_SYN_VIRTEX4
882
        if {$tmpvar_0 == "Xilinx-Virtex4"} then {set CONFIG_SYN_VIRTEX4 1} else {set CONFIG_SYN_VIRTEX4 0}
883
        global CONFIG_SYN_VIRTEX5
884
        if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0}
885
        global CONFIG_SYN_UMC
886
        if {$tmpvar_0 == "UMC18"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0}
887
        global CONFIG_SYN_TSMC90
888
        if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0}
889
        global tmpvar_1
890
        global CONFIG_MEM_INFERRED
891
        if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0}
892
        global CONFIG_MEM_UMC
893
        if {$tmpvar_1 == "UMC18"} then {set CONFIG_MEM_UMC 1} else {set CONFIG_MEM_UMC 0}
894
        global CONFIG_MEM_RHUMC
895
        if {$tmpvar_1 == "RH-UMC"} then {set CONFIG_MEM_RHUMC 1} else {set CONFIG_MEM_RHUMC 0}
896
        global CONFIG_MEM_ARTISAN
897
        if {$tmpvar_1 == "Artisan"} then {set CONFIG_MEM_ARTISAN 1} else {set CONFIG_MEM_ARTISAN 0}
898
        global CONFIG_MEM_CUSTOM1
899
        if {$tmpvar_1 == "Custom1"} then {set CONFIG_MEM_CUSTOM1 1} else {set CONFIG_MEM_CUSTOM1 0}
900
        global CONFIG_MEM_VIRAGE
901
        if {$tmpvar_1 == "Virage"} then {set CONFIG_MEM_VIRAGE 1} else {set CONFIG_MEM_VIRAGE 0}
902
        global CONFIG_MEM_VIRAGE90
903
        if {$tmpvar_1 == "Virage-TSMC90"} then {set CONFIG_MEM_VIRAGE90 1} else {set CONFIG_MEM_VIRAGE90 0}
904
        global CONFIG_SYN_INFER_RAM
905
        if {($CONFIG_SYN_INFERRED != 1)} then {
906
        set CONFIG_SYN_INFER_RAM [expr $CONFIG_SYN_INFER_RAM&15]} else {set CONFIG_SYN_INFER_RAM [expr $CONFIG_SYN_INFER_RAM|16]}
907
        global CONFIG_SYN_INFER_PADS
908
        if {($CONFIG_SYN_INFERRED != 1)} then {
909
        set CONFIG_SYN_INFER_PADS [expr $CONFIG_SYN_INFER_PADS&15]} else {set CONFIG_SYN_INFER_PADS [expr $CONFIG_SYN_INFER_PADS|16]}
910
}
911
 
912
 
913
menu_option menu2 2 "Clock generation"
914
proc menu2 {w title} {
915
        set oldFocus [focus]
916
        catch {destroy $w; unregister_active 2}
917
        toplevel $w -class Dialog
918
        wm withdraw $w
919
        global active_menus
920
        set active_menus [lsort -integer [linsert $active_menus end 2]]
921
        message $w.m -width 400 -aspect 300 -text \
922
                "Clock generation"  -relief raised
923
        pack $w.m -pady 10 -side top -padx 10
924
        wm title $w "Clock generation"
925
 
926
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 2; break"
927
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu3 .menu3 \"$title\""
928
        frame $w.f
929
        button $w.f.back -text "Main Menu" \
930
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 2"
931
        button $w.f.next -text "Next" -underline 0\
932
                -width 15 -command $nextscript
933
        bind all  $nextscript
934
        button $w.f.prev -text "Prev" -underline 0\
935
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu1 .menu1 \"$title\""
936
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu1 .menu1 \"$title\";break"
937
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
938
        pack $w.f -pady 10 -side bottom -anchor w -fill x
939
        frame $w.topline -relief ridge -borderwidth 2 -height 2
940
        pack $w.topline -side top -fill x
941
 
942
        frame $w.botline -relief ridge -borderwidth 2 -height 2
943
        pack $w.botline -side bottom -fill x
944
 
945
        frame $w.config
946
        pack $w.config -fill y -expand on
947
 
948
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
949
        pack $w.config.vscroll -side right -fill y
950
 
951
        canvas $w.config.canvas -height 1\
952
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
953
                -width [expr [winfo screenwidth .] * 1 / 2]
954
        frame $w.config.f
955
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
956
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
957
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
958
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
959
        bind $w  "$w.config.canvas yview moveto 0;break;"
960
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
961
        pack $w.config.canvas -side right -fill y
962
 
963
 
964
        global tmpvar_2
965
        minimenu $w.config.f 2 0 "Clock generator                     " tmpvar_2 CONFIG_CLK_INFERRED
966
        menu $w.config.f.x0.x.menu -tearoffcommand "menutitle \"Clock generator                     \""
967
        $w.config.f.x0.x.menu add radiobutton -label "Inferred" -variable tmpvar_2 -value "Inferred" -command "update_active"
968
        $w.config.f.x0.x.menu add radiobutton -label "Actel-HCLKBUF" -variable tmpvar_2 -value "Actel-HCLKBUF" -command "update_active"
969
        $w.config.f.x0.x.menu add radiobutton -label "Altera-ALTPLL" -variable tmpvar_2 -value "Altera-ALTPLL" -command "update_active"
970
        $w.config.f.x0.x.menu add radiobutton -label "Lattice-EXPLL" -variable tmpvar_2 -value "Lattice-EXPLL" -command "update_active"
971
        $w.config.f.x0.x.menu add radiobutton -label "Proasic3-PLLL" -variable tmpvar_2 -value "Proasic3-PLLL" -command "update_active"
972
        $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active"
973
        $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active"
974
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active"
975
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active"
976
        menusplit $w $w.config.f.x0.x.menu 9
977
        int $w.config.f 2 1 "Clock multiplication factor (2 - 32)" CONFIG_CLK_MUL
978
        int $w.config.f 2 2 "Clock division factor (2 - 32)" CONFIG_CLK_DIV
979
        int $w.config.f 2 3 "Outout division factor (2 - 32)" CONFIG_OCLK_DIV
980
        bool $w.config.f 2 4 "Enable Xilinx CLKDLL for PCI clock" CONFIG_PCI_CLKDLL
981
        bool $w.config.f 2 5 "Disable external feedback for SDRAM clock" CONFIG_CLK_NOFB
982
        bool $w.config.f 2 6 "Use PCI clock as system clock" CONFIG_PCI_SYSCLK
983
 
984
 
985
 
986
        focus $w
987
        update_active
988
        global winx; global winy
989
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
990
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
991
        update idletasks
992
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
993
 
994
        $w.config.canvas configure \
995
                -width [expr [winfo reqwidth $w.config.f] + 1]\
996
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
997
                         [expr [winfo reqheight $w.config.f] + 1]"
998
 
999
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1000
        set scry [expr [winfo screenh $w] / 2]
1001
        set maxy [expr [winfo screenh $w] * 3 / 4]
1002
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1003
        if [expr $winy + $canvtotal < $maxy] {
1004
                $w.config.canvas configure -height $canvtotal
1005
        } else {
1006
                $w.config.canvas configure -height [expr $scry - $winy]
1007
                }
1008
        }
1009
        update idletasks
1010
        if {[winfo exists $w]} then {
1011
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1012
        wm minsize $w [winfo width $w] 100
1013
 
1014
        wm deiconify $w
1015
}
1016
}
1017
 
1018
proc update_menu2 {} {
1019
        global CONFIG_CLK_DCM
1020
        global CONFIG_CLK_ALTDLL
1021
        global CONFIG_CLK_LATDLL
1022
        global CONFIG_CLK_PRO3PLL
1023
        global CONFIG_CLK_CLKDLL
1024
        global CONFIG_CLK_LIB18T
1025
        global CONFIG_CLK_MUL
1026
        if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1)} then {.menu2.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x1.l configure -state normal; } else {.menu2.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x1.l configure -state disabled}
1027
        global CONFIG_CLK_DIV
1028
        if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1)} then {.menu2.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x2.l configure -state normal; } else {.menu2.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x2.l configure -state disabled}
1029
        global CONFIG_OCLK_DIV
1030
        if {($CONFIG_CLK_PRO3PLL == 1)} then {.menu2.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x3.l configure -state normal; } else {.menu2.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x3.l configure -state disabled}
1031
        global CONFIG_PCI_CLKDLL
1032
        if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then {
1033
        configure_entry .menu2.config.f.x4 normal {n l y}} else {configure_entry .menu2.config.f.x4 disabled {y n l}}
1034
        global CONFIG_CLK_NOFB
1035
        if {($CONFIG_CLK_DCM == 1)} then {
1036
        configure_entry .menu2.config.f.x5 normal {n l y}} else {configure_entry .menu2.config.f.x5 disabled {y n l}}
1037
        global CONFIG_PCI_ENABLE
1038
        global CONFIG_PCI_SYSCLK
1039
        if {($CONFIG_PCI_ENABLE != 1)} then {
1040
        configure_entry .menu2.config.f.x6 normal {n l y}} else {configure_entry .menu2.config.f.x6 disabled {y n l}}
1041
}
1042
 
1043
 
1044
proc update_define_menu2 {} {
1045
        update_define_mainmenu
1046
        global CONFIG_MODULES
1047
        global tmpvar_2
1048
        global CONFIG_CLK_INFERRED
1049
        if {$tmpvar_2 == "Inferred"} then {set CONFIG_CLK_INFERRED 1} else {set CONFIG_CLK_INFERRED 0}
1050
        global CONFIG_CLK_HCLKBUF
1051
        if {$tmpvar_2 == "Actel-HCLKBUF"} then {set CONFIG_CLK_HCLKBUF 1} else {set CONFIG_CLK_HCLKBUF 0}
1052
        global CONFIG_CLK_ALTDLL
1053
        if {$tmpvar_2 == "Altera-ALTPLL"} then {set CONFIG_CLK_ALTDLL 1} else {set CONFIG_CLK_ALTDLL 0}
1054
        global CONFIG_CLK_LATDLL
1055
        if {$tmpvar_2 == "Lattice-EXPLL"} then {set CONFIG_CLK_LATDLL 1} else {set CONFIG_CLK_LATDLL 0}
1056
        global CONFIG_CLK_PRO3PLL
1057
        if {$tmpvar_2 == "Proasic3-PLLL"} then {set CONFIG_CLK_PRO3PLL 1} else {set CONFIG_CLK_PRO3PLL 0}
1058
        global CONFIG_CLK_LIB18T
1059
        if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0}
1060
        global CONFIG_CLK_RHUMC
1061
        if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0}
1062
        global CONFIG_CLK_CLKDLL
1063
        if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0}
1064
        global CONFIG_CLK_DCM
1065
        if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0}
1066
        global CONFIG_CLK_MUL
1067
        if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2}
1068
        global CONFIG_CLK_DIV
1069
        if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2}
1070
        global CONFIG_OCLK_DIV
1071
        if {($CONFIG_CLK_PRO3PLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 2}
1072
        global CONFIG_PCI_CLKDLL
1073
        if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then {
1074
        set CONFIG_PCI_CLKDLL [expr $CONFIG_PCI_CLKDLL&15]} else {set CONFIG_PCI_CLKDLL [expr $CONFIG_PCI_CLKDLL|16]}
1075
        global CONFIG_CLK_NOFB
1076
        if {($CONFIG_CLK_DCM == 1)} then {
1077
        set CONFIG_CLK_NOFB [expr $CONFIG_CLK_NOFB&15]} else {set CONFIG_CLK_NOFB [expr $CONFIG_CLK_NOFB|16]}
1078
        global CONFIG_PCI_ENABLE
1079
        global CONFIG_PCI_SYSCLK
1080
        if {($CONFIG_PCI_ENABLE != 1)} then {
1081
        set CONFIG_PCI_SYSCLK [expr $CONFIG_PCI_SYSCLK&15]} else {set CONFIG_PCI_SYSCLK [expr $CONFIG_PCI_SYSCLK|16]}
1082
}
1083
 
1084
 
1085
menu_option menu3 3 "Processor            "
1086
proc menu3 {w title} {
1087
        set oldFocus [focus]
1088
        catch {destroy $w; unregister_active 3}
1089
        toplevel $w -class Dialog
1090
        wm withdraw $w
1091
        global active_menus
1092
        set active_menus [lsort -integer [linsert $active_menus end 3]]
1093
        message $w.m -width 400 -aspect 300 -text \
1094
                "Processor            "  -relief raised
1095
        pack $w.m -pady 10 -side top -padx 10
1096
        wm title $w "Processor            "
1097
 
1098
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 3; break"
1099
        set nextscript "catch {focus $oldFocus}; menu4 .menu4 \"$title\""
1100
        frame $w.f
1101
        button $w.f.back -text "Main Menu" \
1102
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 3"
1103
        button $w.f.next -text "Next" -underline 0\
1104
                -width 15 -command $nextscript
1105
        bind all  $nextscript
1106
        button $w.f.prev -text "Prev" -underline 0\
1107
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 3; menu2 .menu2 \"$title\""
1108
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 3; menu2 .menu2 \"$title\";break"
1109
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1110
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1111
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1112
        pack $w.topline -side top -fill x
1113
 
1114
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1115
        pack $w.botline -side bottom -fill x
1116
 
1117
        frame $w.config
1118
        pack $w.config -fill y -expand on
1119
 
1120
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1121
        pack $w.config.vscroll -side right -fill y
1122
 
1123
        canvas $w.config.canvas -height 1\
1124
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1125
                -width [expr [winfo screenwidth .] * 1 / 2]
1126
        frame $w.config.f
1127
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1128
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1129
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1130
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1131
        bind $w  "$w.config.canvas yview moveto 0;break;"
1132
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1133
        pack $w.config.canvas -side right -fill y
1134
 
1135
 
1136
        bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3
1137
        int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM
1138
        submenu $w.config.f 3 2 "Integer unit                                           " 4
1139
        submenu $w.config.f 3 3 "Floating-point unit" 5
1140
        submenu $w.config.f 3 4 "Cache system" 6
1141
        submenu $w.config.f 3 5 "MMU" 7
1142
        submenu $w.config.f 3 6 "Debug Support Unit        " 8
1143
        submenu $w.config.f 3 7 "Fault-tolerance  " 9
1144
        submenu $w.config.f 3 8 "VHDL debug settings       " 10
1145
 
1146
 
1147
 
1148
        focus $w
1149
        update_active
1150
        global winx; global winy
1151
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
1152
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
1153
        update idletasks
1154
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
1155
 
1156
        $w.config.canvas configure \
1157
                -width [expr [winfo reqwidth $w.config.f] + 1]\
1158
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
1159
                         [expr [winfo reqheight $w.config.f] + 1]"
1160
 
1161
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1162
        set scry [expr [winfo screenh $w] / 2]
1163
        set maxy [expr [winfo screenh $w] * 3 / 4]
1164
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1165
        if [expr $winy + $canvtotal < $maxy] {
1166
                $w.config.canvas configure -height $canvtotal
1167
        } else {
1168
                $w.config.canvas configure -height [expr $scry - $winy]
1169
                }
1170
        }
1171
        update idletasks
1172
        if {[winfo exists $w]} then {
1173
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1174
        wm minsize $w [winfo width $w] 100
1175
 
1176
        wm deiconify $w
1177
}
1178
}
1179
 
1180
proc update_menu3 {} {
1181
        global CONFIG_LEON3
1182
        global CONFIG_PROC_NUM
1183
        if {($CONFIG_LEON3 == 1)} then {.menu3.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x1.l configure -state normal; } else {.menu3.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x1.l configure -state disabled}
1184
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}}
1185
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}}
1186
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}}
1187
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}}
1188
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}}
1189
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}}
1190
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}}
1191
}
1192
 
1193
 
1194
proc update_define_menu3 {} {
1195
        update_define_mainmenu
1196
        global CONFIG_MODULES
1197
        global CONFIG_LEON3
1198
        global CONFIG_PROC_NUM
1199
        if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1}
1200
}
1201
 
1202
 
1203
proc menu4 {w title} {
1204
        set oldFocus [focus]
1205
        catch {focus .menu3}
1206
        catch {destroy $w; unregister_active 4}
1207
        toplevel $w -class Dialog
1208
        wm withdraw $w
1209
        global active_menus
1210
        set active_menus [lsort -integer [linsert $active_menus end 4]]
1211
        message $w.m -width 400 -aspect 300 -text \
1212
                "Integer unit                                           "  -relief raised
1213
        pack $w.m -pady 10 -side top -padx 10
1214
        wm title $w "Integer unit                                           "
1215
 
1216
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 4; break"
1217
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu5 .menu5 \"$title\""
1218
        frame $w.f
1219
        button $w.f.back -text "OK" \
1220
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 4"
1221
        button $w.f.next -text "Next" -underline 0\
1222
                -width 15 -command $nextscript
1223
        bind all  $nextscript
1224
        button $w.f.prev -text "Prev" -underline 0\
1225
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu3 .menu3 \"$title\""
1226
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu3 .menu3 \"$title\";break"
1227
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1228
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1229
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1230
        pack $w.topline -side top -fill x
1231
 
1232
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1233
        pack $w.botline -side bottom -fill x
1234
 
1235
        frame $w.config
1236
        pack $w.config -fill y -expand on
1237
 
1238
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1239
        pack $w.config.vscroll -side right -fill y
1240
 
1241
        canvas $w.config.canvas -height 1\
1242
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1243
                -width [expr [winfo screenwidth .] * 1 / 2]
1244
        frame $w.config.f
1245
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1246
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1247
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1248
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1249
        bind $w  "$w.config.canvas yview moveto 0;break;"
1250
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1251
        pack $w.config.canvas -side right -fill y
1252
 
1253
 
1254
        int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS
1255
        bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV
1256
        global tmpvar_3
1257
        minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_4
1258
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\""
1259
        $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active"
1260
        $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active"
1261
        menusplit $w $w.config.f.x2.x.menu 2
1262
        bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions     " CONFIG_IU_MUL_MAC
1263
        bool $w.config.f 4 4 "Single-vector trapping" CONFIG_IU_SVT
1264
        int $w.config.f 4 5 "Load delay" CONFIG_IU_LDELAY
1265
        int $w.config.f 4 6 "Hardware watchpoints" CONFIG_IU_WATCHPOINTS
1266
        bool $w.config.f 4 7 "Enable power-down mode " CONFIG_PWD
1267
        hex $w.config.f 4 8 " Reset start address (addr\[31:12\]) " CONFIG_IU_RSTADDR
1268
 
1269
 
1270
 
1271
        focus $w
1272
        update_active
1273
        global winx; global winy
1274
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
1275
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
1276
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
1277
        update idletasks
1278
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
1279
 
1280
        $w.config.canvas configure \
1281
                -width [expr [winfo reqwidth $w.config.f] + 1]\
1282
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
1283
                         [expr [winfo reqheight $w.config.f] + 1]"
1284
 
1285
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1286
        set scry [expr [winfo screenh $w] / 2]
1287
        set maxy [expr [winfo screenh $w] * 3 / 4]
1288
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1289
        if [expr $winy + $canvtotal < $maxy] {
1290
                $w.config.canvas configure -height $canvtotal
1291
        } else {
1292
                $w.config.canvas configure -height [expr $scry - $winy]
1293
                }
1294
        }
1295
        update idletasks
1296
        if {[winfo exists $w]} then {
1297
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1298
        wm minsize $w [winfo width $w] 100
1299
 
1300
        wm deiconify $w
1301
}
1302
}
1303
 
1304
proc update_menu4 {} {
1305
        global CONFIG_LEON3
1306
        global CONFIG_IU_NWINDOWS
1307
        if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x0.l configure -state normal; } else {.menu4.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x0.l configure -state disabled}
1308
        global CONFIG_IU_V8MULDIV
1309
        if {($CONFIG_LEON3 == 1)} then {
1310
        configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}}
1311
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x2 normal {x l}} else {configure_entry .menu4.config.f.x2 disabled {x l}}
1312
        global CONFIG_IU_MUL_MAC
1313
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {
1314
        configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}}
1315
        global CONFIG_IU_SVT
1316
        if {($CONFIG_LEON3 == 1)} then {
1317
        configure_entry .menu4.config.f.x4 normal {n l y}} else {configure_entry .menu4.config.f.x4 disabled {y n l}}
1318
        global CONFIG_IU_LDELAY
1319
        if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x5.l configure -state normal; } else {.menu4.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x5.l configure -state disabled}
1320
        global CONFIG_IU_WATCHPOINTS
1321
        if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x6.l configure -state normal; } else {.menu4.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x6.l configure -state disabled}
1322
        global CONFIG_PWD
1323
        if {($CONFIG_LEON3 == 1)} then {
1324
        configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}}
1325
        global CONFIG_IU_RSTADDR
1326
        if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x8.l configure -state normal; } else {.menu4.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x8.l configure -state disabled}
1327
}
1328
 
1329
 
1330
proc update_define_menu4 {} {
1331
        update_define_mainmenu
1332
        global CONFIG_MODULES
1333
        global CONFIG_LEON3
1334
        global CONFIG_IU_NWINDOWS
1335
        if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8}
1336
        global CONFIG_IU_V8MULDIV
1337
        if {($CONFIG_LEON3 == 1)} then {
1338
        set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]}
1339
        global tmpvar_3
1340
        global CONFIG_IU_MUL_LATENCY_4
1341
        if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0}
1342
        global CONFIG_IU_MUL_LATENCY_5
1343
        if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0}
1344
        global CONFIG_IU_MUL_MAC
1345
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {
1346
        set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]}
1347
        global CONFIG_IU_SVT
1348
        if {($CONFIG_LEON3 == 1)} then {
1349
        set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]}
1350
        global CONFIG_IU_LDELAY
1351
        if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1}
1352
        global CONFIG_IU_WATCHPOINTS
1353
        if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0}
1354
        global CONFIG_PWD
1355
        if {($CONFIG_LEON3 == 1)} then {
1356
        set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]}
1357
        global CONFIG_IU_RSTADDR
1358
        if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000}
1359
}
1360
 
1361
 
1362
proc menu5 {w title} {
1363
        set oldFocus [focus]
1364
        catch {focus .menu3}
1365
        catch {destroy $w; unregister_active 5}
1366
        toplevel $w -class Dialog
1367
        wm withdraw $w
1368
        global active_menus
1369
        set active_menus [lsort -integer [linsert $active_menus end 5]]
1370
        message $w.m -width 400 -aspect 300 -text \
1371
                "Floating-point unit"  -relief raised
1372
        pack $w.m -pady 10 -side top -padx 10
1373
        wm title $w "Floating-point unit"
1374
 
1375
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 5; break"
1376
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu6 .menu6 \"$title\""
1377
        frame $w.f
1378
        button $w.f.back -text "OK" \
1379
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 5"
1380
        button $w.f.next -text "Next" -underline 0\
1381
                -width 15 -command $nextscript
1382
        bind all  $nextscript
1383
        button $w.f.prev -text "Prev" -underline 0\
1384
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu4 .menu4 \"$title\""
1385
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu4 .menu4 \"$title\";break"
1386
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1387
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1388
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1389
        pack $w.topline -side top -fill x
1390
 
1391
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1392
        pack $w.botline -side bottom -fill x
1393
 
1394
        frame $w.config
1395
        pack $w.config -fill y -expand on
1396
 
1397
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1398
        pack $w.config.vscroll -side right -fill y
1399
 
1400
        canvas $w.config.canvas -height 1\
1401
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1402
                -width [expr [winfo screenwidth .] * 1 / 2]
1403
        frame $w.config.f
1404
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1405
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1406
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1407
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1408
        bind $w  "$w.config.canvas yview moveto 0;break;"
1409
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1410
        pack $w.config.canvas -side right -fill y
1411
 
1412
 
1413
        bool $w.config.f 5 0 "Enable FPU                             " CONFIG_FPU_ENABLE
1414
        global tmpvar_4
1415
        minimenu $w.config.f 5 1 "FPU core" tmpvar_4 CONFIG_FPU_GRFPU
1416
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\""
1417
        $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_4 -value "GRFPU" -command "update_active"
1418
        $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_4 -value "GRFPU-LITE" -command "update_active"
1419
        $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_4 -value "Meiko" -command "update_active"
1420
        menusplit $w $w.config.f.x1.x.menu 3
1421
        global tmpvar_5
1422
        minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_5 CONFIG_FPU_GRFPU_INFMUL
1423
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\""
1424
        $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active"
1425
        $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_5 -value "DW" -command "update_active"
1426
        $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_5 -value "ModGen" -command "update_active"
1427
        menusplit $w $w.config.f.x2.x.menu 3
1428
        global tmpvar_6
1429
        minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_6 CONFIG_FPU_GRFPC0
1430
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\""
1431
        $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_6 -value "Simple" -command "update_active"
1432
        $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_6 -value "Data-forwarding" -command "update_active"
1433
        $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_6 -value "Non-blocking" -command "update_active"
1434
        menusplit $w $w.config.f.x3.x.menu 3
1435
        bool $w.config.f 5 4 "Use VHDL netlist          " CONFIG_FPU_NETLIST
1436
 
1437
 
1438
 
1439
        focus $w
1440
        update_active
1441
        global winx; global winy
1442
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
1443
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
1444
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
1445
        update idletasks
1446
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
1447
 
1448
        $w.config.canvas configure \
1449
                -width [expr [winfo reqwidth $w.config.f] + 1]\
1450
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
1451
                         [expr [winfo reqheight $w.config.f] + 1]"
1452
 
1453
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1454
        set scry [expr [winfo screenh $w] / 2]
1455
        set maxy [expr [winfo screenh $w] * 3 / 4]
1456
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1457
        if [expr $winy + $canvtotal < $maxy] {
1458
                $w.config.canvas configure -height $canvtotal
1459
        } else {
1460
                $w.config.canvas configure -height [expr $scry - $winy]
1461
                }
1462
        }
1463
        update idletasks
1464
        if {[winfo exists $w]} then {
1465
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1466
        wm minsize $w [winfo width $w] 100
1467
 
1468
        wm deiconify $w
1469
}
1470
}
1471
 
1472
proc update_menu5 {} {
1473
        global CONFIG_LEON3
1474
        global CONFIG_FPU_ENABLE
1475
        if {($CONFIG_LEON3 == 1)} then {
1476
        configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}}
1477
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu5.config.f.x1 normal {x l}} else {configure_entry .menu5.config.f.x1 disabled {x l}}
1478
        global CONFIG_FPU_GRFPU
1479
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}}
1480
        global CONFIG_FPU_GRFPULITE
1481
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x3 normal {x l}} else {configure_entry .menu5.config.f.x3 disabled {x l}}
1482
        global CONFIG_FPU_NETLIST
1483
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {
1484
        configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}}
1485
}
1486
 
1487
 
1488
proc update_define_menu5 {} {
1489
        update_define_mainmenu
1490
        global CONFIG_MODULES
1491
        global CONFIG_LEON3
1492
        global CONFIG_FPU_ENABLE
1493
        if {($CONFIG_LEON3 == 1)} then {
1494
        set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]}
1495
        global tmpvar_4
1496
        global CONFIG_FPU_GRFPU
1497
        if {$tmpvar_4 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0}
1498
        global CONFIG_FPU_GRFPULITE
1499
        if {$tmpvar_4 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0}
1500
        global CONFIG_FPU_MEIKO
1501
        if {$tmpvar_4 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0}
1502
        global tmpvar_5
1503
        global CONFIG_FPU_GRFPU_INFMUL
1504
        if {$tmpvar_5 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0}
1505
        global CONFIG_FPU_GRFPU_DWMUL
1506
        if {$tmpvar_5 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0}
1507
        global CONFIG_FPU_GRFPU_MODGEN
1508
        if {$tmpvar_5 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0}
1509
        global tmpvar_6
1510
        global CONFIG_FPU_GRFPC0
1511
        if {$tmpvar_6 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0}
1512
        global CONFIG_FPU_GRFPC1
1513
        if {$tmpvar_6 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0}
1514
        global CONFIG_FPU_GRFPC2
1515
        if {$tmpvar_6 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0}
1516
        global CONFIG_FPU_NETLIST
1517
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {
1518
        set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]}
1519
}
1520
 
1521
 
1522
proc menu6 {w title} {
1523
        set oldFocus [focus]
1524
        catch {focus .menu3}
1525
        catch {destroy $w; unregister_active 6}
1526
        toplevel $w -class Dialog
1527
        wm withdraw $w
1528
        global active_menus
1529
        set active_menus [lsort -integer [linsert $active_menus end 6]]
1530
        message $w.m -width 400 -aspect 300 -text \
1531
                "Cache system"  -relief raised
1532
        pack $w.m -pady 10 -side top -padx 10
1533
        wm title $w "Cache system"
1534
 
1535
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 6; break"
1536
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu7 .menu7 \"$title\""
1537
        frame $w.f
1538
        button $w.f.back -text "OK" \
1539
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 6"
1540
        button $w.f.next -text "Next" -underline 0\
1541
                -width 15 -command $nextscript
1542
        bind all  $nextscript
1543
        button $w.f.prev -text "Prev" -underline 0\
1544
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu5 .menu5 \"$title\""
1545
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu5 .menu5 \"$title\";break"
1546
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1547
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1548
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1549
        pack $w.topline -side top -fill x
1550
 
1551
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1552
        pack $w.botline -side bottom -fill x
1553
 
1554
        frame $w.config
1555
        pack $w.config -fill y -expand on
1556
 
1557
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1558
        pack $w.config.vscroll -side right -fill y
1559
 
1560
        canvas $w.config.canvas -height 1\
1561
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1562
                -width [expr [winfo screenwidth .] * 1 / 2]
1563
        frame $w.config.f
1564
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1565
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1566
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1567
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1568
        bind $w  "$w.config.canvas yview moveto 0;break;"
1569
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1570
        pack $w.config.canvas -side right -fill y
1571
 
1572
 
1573
        bool $w.config.f 6 0 "Enable instruction cache       " CONFIG_ICACHE_ENABLE
1574
        global tmpvar_7
1575
        minimenu $w.config.f 6 1 "Associativity (sets)            " tmpvar_7 CONFIG_ICACHE_ASSO1
1576
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets)            \""
1577
        $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_7 -value "1" -command "update_active"
1578
        $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_7 -value "2" -command "update_active"
1579
        $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_7 -value "3" -command "update_active"
1580
        $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_7 -value "4" -command "update_active"
1581
        menusplit $w $w.config.f.x1.x.menu 4
1582
        global tmpvar_8
1583
        minimenu $w.config.f 6 2 "Set size (kbytes/set)" tmpvar_8 CONFIG_ICACHE_SZ1
1584
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\""
1585
        $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active"
1586
        $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active"
1587
        $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active"
1588
        $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_8 -value "8" -command "update_active"
1589
        $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_8 -value "16" -command "update_active"
1590
        $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_8 -value "32" -command "update_active"
1591
        $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_8 -value "64" -command "update_active"
1592
        $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_8 -value "128" -command "update_active"
1593
        $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_8 -value "256" -command "update_active"
1594
        menusplit $w $w.config.f.x2.x.menu 9
1595
        global tmpvar_9
1596
        minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_9 CONFIG_ICACHE_LZ16
1597
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\""
1598
        $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active"
1599
        $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active"
1600
        menusplit $w $w.config.f.x3.x.menu 2
1601
        global tmpvar_10
1602
        minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_10 CONFIG_ICACHE_ALGORND
1603
        menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\""
1604
        $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_10 -value "Random" -command "update_active"
1605
        $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_10 -value "LRR" -command "update_active"
1606
        $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_10 -value "LRU" -command "update_active"
1607
        menusplit $w $w.config.f.x4.x.menu 3
1608
        bool $w.config.f 6 5 "Cache locking      " CONFIG_ICACHE_LOCK
1609
        bool $w.config.f 6 6 "Enable local instruction RAM            " CONFIG_ICACHE_LRAM
1610
        global tmpvar_11
1611
        minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_11 CONFIG_ICACHE_LRAM_SZ1
1612
        menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\""
1613
        $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active"
1614
        $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active"
1615
        $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active"
1616
        $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active"
1617
        $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active"
1618
        $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active"
1619
        $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active"
1620
        $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active"
1621
        $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active"
1622
        menusplit $w $w.config.f.x7.x.menu 9
1623
        hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART
1624
        bool $w.config.f 6 9 "Enable data cache       " CONFIG_DCACHE_ENABLE
1625
        global tmpvar_12
1626
        minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_12 CONFIG_DCACHE_ASSO1
1627
        menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\""
1628
        $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active"
1629
        $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active"
1630
        $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_12 -value "3" -command "update_active"
1631
        $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active"
1632
        menusplit $w $w.config.f.x10.x.menu 4
1633
        global tmpvar_13
1634
        minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_13 CONFIG_DCACHE_SZ1
1635
        menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\""
1636
        $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active"
1637
        $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active"
1638
        $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active"
1639
        $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active"
1640
        $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active"
1641
        $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active"
1642
        $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active"
1643
        $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active"
1644
        $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active"
1645
        menusplit $w $w.config.f.x11.x.menu 9
1646
        global tmpvar_14
1647
        minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_14 CONFIG_DCACHE_LZ16
1648
        menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\""
1649
        $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active"
1650
        $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active"
1651
        menusplit $w $w.config.f.x12.x.menu 2
1652
        global tmpvar_15
1653
        minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_15 CONFIG_DCACHE_ALGORND
1654
        menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\""
1655
        $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_15 -value "Random" -command "update_active"
1656
        $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_15 -value "LRR" -command "update_active"
1657
        $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_15 -value "LRU" -command "update_active"
1658
        menusplit $w $w.config.f.x13.x.menu 3
1659
        bool $w.config.f 6 14 "Cache locking      " CONFIG_DCACHE_LOCK
1660
        bool $w.config.f 6 15 "AHB snooping       " CONFIG_DCACHE_SNOOP
1661
        bool $w.config.f 6 16 "Fast snooping       " CONFIG_DCACHE_SNOOP_FAST
1662
        bool $w.config.f 6 17 "Separate snoop tags  " CONFIG_DCACHE_SNOOP_SEPTAG
1663
        hex $w.config.f 6 18 "Fixed cacheability map  " CONFIG_CACHE_FIXED
1664
        bool $w.config.f 6 19 "Enable local data RAM            " CONFIG_DCACHE_LRAM
1665
        global tmpvar_16
1666
        minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_16 CONFIG_DCACHE_LRAM_SZ1
1667
        menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\""
1668
        $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_16 -value "1" -command "update_active"
1669
        $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_16 -value "2" -command "update_active"
1670
        $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_16 -value "4" -command "update_active"
1671
        $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_16 -value "8" -command "update_active"
1672
        $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active"
1673
        $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active"
1674
        $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_16 -value "64" -command "update_active"
1675
        $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_16 -value "128" -command "update_active"
1676
        $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_16 -value "256" -command "update_active"
1677
        menusplit $w $w.config.f.x20.x.menu 9
1678
        hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART
1679
 
1680
 
1681
 
1682
        focus $w
1683
        update_active
1684
        global winx; global winy
1685
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
1686
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
1687
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
1688
        update idletasks
1689
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
1690
 
1691
        $w.config.canvas configure \
1692
                -width [expr [winfo reqwidth $w.config.f] + 1]\
1693
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
1694
                         [expr [winfo reqheight $w.config.f] + 1]"
1695
 
1696
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1697
        set scry [expr [winfo screenh $w] / 2]
1698
        set maxy [expr [winfo screenh $w] * 3 / 4]
1699
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1700
        if [expr $winy + $canvtotal < $maxy] {
1701
                $w.config.canvas configure -height $canvtotal
1702
        } else {
1703
                $w.config.canvas configure -height [expr $scry - $winy]
1704
                }
1705
        }
1706
        update idletasks
1707
        if {[winfo exists $w]} then {
1708
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1709
        wm minsize $w [winfo width $w] 100
1710
 
1711
        wm deiconify $w
1712
}
1713
}
1714
 
1715
proc update_menu6 {} {
1716
        global CONFIG_LEON3
1717
        global CONFIG_ICACHE_ENABLE
1718
        if {($CONFIG_LEON3 == 1)} then {
1719
        configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}}
1720
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}}
1721
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}}
1722
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}}
1723
        global CONFIG_ICACHE_ASSO1
1724
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu6.config.f.x4 normal {x l}} else {configure_entry .menu6.config.f.x4 disabled {x l}}
1725
        global CONFIG_ICACHE_LOCK
1726
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {
1727
        configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}}
1728
        global CONFIG_MMU_ENABLE
1729
        global CONFIG_ICACHE_LRAM
1730
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {
1731
        configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}}
1732
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu6.config.f.x7 normal {x l}} else {configure_entry .menu6.config.f.x7 disabled {x l}}
1733
        global CONFIG_ICACHE_LRSTART
1734
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu6.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu6.config.f.x8.l configure -state normal; } else {.menu6.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu6.config.f.x8.l configure -state disabled}
1735
        global CONFIG_DCACHE_ENABLE
1736
        if {($CONFIG_LEON3 == 1)} then {
1737
        configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}}
1738
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu6.config.f.x10 normal {x l}} else {configure_entry .menu6.config.f.x10 disabled {x l}}
1739
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu6.config.f.x11 normal {x l}} else {configure_entry .menu6.config.f.x11 disabled {x l}}
1740
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu6.config.f.x12 normal {x l}} else {configure_entry .menu6.config.f.x12 disabled {x l}}
1741
        global CONFIG_DCACHE_ASSO1
1742
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu6.config.f.x13 normal {x l}} else {configure_entry .menu6.config.f.x13 disabled {x l}}
1743
        global CONFIG_DCACHE_LOCK
1744
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {
1745
        configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}}
1746
        global CONFIG_DCACHE_SNOOP
1747
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
1748
        configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}}
1749
        global CONFIG_DCACHE_SNOOP_FAST
1750
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {
1751
        configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}}
1752
        global CONFIG_DCACHE_SNOOP_SEPTAG
1753
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {
1754
        configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}}
1755
        global CONFIG_CACHE_FIXED
1756
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu6.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu6.config.f.x18.l configure -state normal; } else {.menu6.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu6.config.f.x18.l configure -state disabled}
1757
        global CONFIG_DCACHE_LRAM
1758
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {
1759
        configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}}
1760
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu6.config.f.x20 normal {x l}} else {configure_entry .menu6.config.f.x20 disabled {x l}}
1761
        global CONFIG_DCACHE_LRSTART
1762
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu6.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu6.config.f.x21.l configure -state normal; } else {.menu6.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu6.config.f.x21.l configure -state disabled}
1763
}
1764
 
1765
 
1766
proc update_define_menu6 {} {
1767
        update_define_mainmenu
1768
        global CONFIG_MODULES
1769
        global CONFIG_LEON3
1770
        global CONFIG_ICACHE_ENABLE
1771
        if {($CONFIG_LEON3 == 1)} then {
1772
        set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]}
1773
        global tmpvar_7
1774
        global CONFIG_ICACHE_ASSO1
1775
        if {$tmpvar_7 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0}
1776
        global CONFIG_ICACHE_ASSO2
1777
        if {$tmpvar_7 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0}
1778
        global CONFIG_ICACHE_ASSO3
1779
        if {$tmpvar_7 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0}
1780
        global CONFIG_ICACHE_ASSO4
1781
        if {$tmpvar_7 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0}
1782
        global tmpvar_8
1783
        global CONFIG_ICACHE_SZ1
1784
        if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0}
1785
        global CONFIG_ICACHE_SZ2
1786
        if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0}
1787
        global CONFIG_ICACHE_SZ4
1788
        if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0}
1789
        global CONFIG_ICACHE_SZ8
1790
        if {$tmpvar_8 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0}
1791
        global CONFIG_ICACHE_SZ16
1792
        if {$tmpvar_8 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0}
1793
        global CONFIG_ICACHE_SZ32
1794
        if {$tmpvar_8 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0}
1795
        global CONFIG_ICACHE_SZ64
1796
        if {$tmpvar_8 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0}
1797
        global CONFIG_ICACHE_SZ128
1798
        if {$tmpvar_8 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0}
1799
        global CONFIG_ICACHE_SZ256
1800
        if {$tmpvar_8 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0}
1801
        global tmpvar_9
1802
        global CONFIG_ICACHE_LZ16
1803
        if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0}
1804
        global CONFIG_ICACHE_LZ32
1805
        if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0}
1806
        global tmpvar_10
1807
        global CONFIG_ICACHE_ALGORND
1808
        if {$tmpvar_10 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0}
1809
        global CONFIG_ICACHE_ALGOLRR
1810
        if {$tmpvar_10 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0}
1811
        global CONFIG_ICACHE_ALGOLRU
1812
        if {$tmpvar_10 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0}
1813
        global CONFIG_ICACHE_LOCK
1814
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {
1815
        set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]}
1816
        global CONFIG_MMU_ENABLE
1817
        global CONFIG_ICACHE_LRAM
1818
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {
1819
        set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]}
1820
        global tmpvar_11
1821
        global CONFIG_ICACHE_LRAM_SZ1
1822
        if {$tmpvar_11 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0}
1823
        global CONFIG_ICACHE_LRAM_SZ2
1824
        if {$tmpvar_11 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0}
1825
        global CONFIG_ICACHE_LRAM_SZ4
1826
        if {$tmpvar_11 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0}
1827
        global CONFIG_ICACHE_LRAM_SZ8
1828
        if {$tmpvar_11 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0}
1829
        global CONFIG_ICACHE_LRAM_SZ16
1830
        if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0}
1831
        global CONFIG_ICACHE_LRAM_SZ32
1832
        if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0}
1833
        global CONFIG_ICACHE_LRAM_SZ64
1834
        if {$tmpvar_11 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0}
1835
        global CONFIG_ICACHE_LRAM_SZ128
1836
        if {$tmpvar_11 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0}
1837
        global CONFIG_ICACHE_LRAM_SZ256
1838
        if {$tmpvar_11 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0}
1839
        global CONFIG_ICACHE_LRSTART
1840
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e}
1841
        global CONFIG_DCACHE_ENABLE
1842
        if {($CONFIG_LEON3 == 1)} then {
1843
        set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]}
1844
        global tmpvar_12
1845
        global CONFIG_DCACHE_ASSO1
1846
        if {$tmpvar_12 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0}
1847
        global CONFIG_DCACHE_ASSO2
1848
        if {$tmpvar_12 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0}
1849
        global CONFIG_DCACHE_ASSO3
1850
        if {$tmpvar_12 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0}
1851
        global CONFIG_DCACHE_ASSO4
1852
        if {$tmpvar_12 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0}
1853
        global tmpvar_13
1854
        global CONFIG_DCACHE_SZ1
1855
        if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0}
1856
        global CONFIG_DCACHE_SZ2
1857
        if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0}
1858
        global CONFIG_DCACHE_SZ4
1859
        if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0}
1860
        global CONFIG_DCACHE_SZ8
1861
        if {$tmpvar_13 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0}
1862
        global CONFIG_DCACHE_SZ16
1863
        if {$tmpvar_13 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0}
1864
        global CONFIG_DCACHE_SZ32
1865
        if {$tmpvar_13 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0}
1866
        global CONFIG_DCACHE_SZ64
1867
        if {$tmpvar_13 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0}
1868
        global CONFIG_DCACHE_SZ128
1869
        if {$tmpvar_13 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0}
1870
        global CONFIG_DCACHE_SZ256
1871
        if {$tmpvar_13 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0}
1872
        global tmpvar_14
1873
        global CONFIG_DCACHE_LZ16
1874
        if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0}
1875
        global CONFIG_DCACHE_LZ32
1876
        if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0}
1877
        global tmpvar_15
1878
        global CONFIG_DCACHE_ALGORND
1879
        if {$tmpvar_15 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0}
1880
        global CONFIG_DCACHE_ALGOLRR
1881
        if {$tmpvar_15 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0}
1882
        global CONFIG_DCACHE_ALGOLRU
1883
        if {$tmpvar_15 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0}
1884
        global CONFIG_DCACHE_LOCK
1885
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {
1886
        set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]}
1887
        global CONFIG_DCACHE_SNOOP
1888
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
1889
        set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]}
1890
        global CONFIG_DCACHE_SNOOP_FAST
1891
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {
1892
        set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]}
1893
        global CONFIG_DCACHE_SNOOP_SEPTAG
1894
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {
1895
        set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]}
1896
        global CONFIG_CACHE_FIXED
1897
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0}
1898
        global CONFIG_DCACHE_LRAM
1899
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {
1900
        set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]}
1901
        global tmpvar_16
1902
        global CONFIG_DCACHE_LRAM_SZ1
1903
        if {$tmpvar_16 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0}
1904
        global CONFIG_DCACHE_LRAM_SZ2
1905
        if {$tmpvar_16 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0}
1906
        global CONFIG_DCACHE_LRAM_SZ4
1907
        if {$tmpvar_16 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0}
1908
        global CONFIG_DCACHE_LRAM_SZ8
1909
        if {$tmpvar_16 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0}
1910
        global CONFIG_DCACHE_LRAM_SZ16
1911
        if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0}
1912
        global CONFIG_DCACHE_LRAM_SZ32
1913
        if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0}
1914
        global CONFIG_DCACHE_LRAM_SZ64
1915
        if {$tmpvar_16 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0}
1916
        global CONFIG_DCACHE_LRAM_SZ128
1917
        if {$tmpvar_16 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0}
1918
        global CONFIG_DCACHE_LRAM_SZ256
1919
        if {$tmpvar_16 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0}
1920
        global CONFIG_DCACHE_LRSTART
1921
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f}
1922
}
1923
 
1924
 
1925
proc menu7 {w title} {
1926
        set oldFocus [focus]
1927
        catch {focus .menu3}
1928
        catch {destroy $w; unregister_active 7}
1929
        toplevel $w -class Dialog
1930
        wm withdraw $w
1931
        global active_menus
1932
        set active_menus [lsort -integer [linsert $active_menus end 7]]
1933
        message $w.m -width 400 -aspect 300 -text \
1934
                "MMU"  -relief raised
1935
        pack $w.m -pady 10 -side top -padx 10
1936
        wm title $w "MMU"
1937
 
1938
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 7; break"
1939
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu8 .menu8 \"$title\""
1940
        frame $w.f
1941
        button $w.f.back -text "OK" \
1942
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 7"
1943
        button $w.f.next -text "Next" -underline 0\
1944
                -width 15 -command $nextscript
1945
        bind all  $nextscript
1946
        button $w.f.prev -text "Prev" -underline 0\
1947
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu6 .menu6 \"$title\""
1948
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu6 .menu6 \"$title\";break"
1949
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1950
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1951
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1952
        pack $w.topline -side top -fill x
1953
 
1954
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1955
        pack $w.botline -side bottom -fill x
1956
 
1957
        frame $w.config
1958
        pack $w.config -fill y -expand on
1959
 
1960
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1961
        pack $w.config.vscroll -side right -fill y
1962
 
1963
        canvas $w.config.canvas -height 1\
1964
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1965
                -width [expr [winfo screenwidth .] * 1 / 2]
1966
        frame $w.config.f
1967
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1968
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1969
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1970
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1971
        bind $w  "$w.config.canvas yview moveto 0;break;"
1972
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1973
        pack $w.config.canvas -side right -fill y
1974
 
1975
 
1976
        bool $w.config.f 7 0 "Enable MMU       " CONFIG_MMU_ENABLE
1977
        global tmpvar_17
1978
        minimenu $w.config.f 7 1 "MMU type              " tmpvar_17 CONFIG_MMU_COMBINED
1979
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type              \""
1980
        $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_17 -value "combined" -command "update_active"
1981
        $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_17 -value "split" -command "update_active"
1982
        menusplit $w $w.config.f.x1.x.menu 2
1983
        global tmpvar_18
1984
        minimenu $w.config.f 7 2 "TLB replacement sheme              " tmpvar_18 CONFIG_MMU_REPARRAY
1985
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme              \""
1986
        $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_18 -value "LRU" -command "update_active"
1987
        $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_18 -value "Increment" -command "update_active"
1988
        menusplit $w $w.config.f.x2.x.menu 2
1989
        global tmpvar_19
1990
        minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_19 CONFIG_MMU_I2
1991
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\""
1992
        $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_19 -value "2" -command "update_active"
1993
        $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_19 -value "4" -command "update_active"
1994
        $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_19 -value "8" -command "update_active"
1995
        $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_19 -value "16" -command "update_active"
1996
        $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_19 -value "32" -command "update_active"
1997
        menusplit $w $w.config.f.x3.x.menu 5
1998
        global tmpvar_20
1999
        minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_20 CONFIG_MMU_D2
2000
        menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\""
2001
        $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active"
2002
        $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active"
2003
        $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active"
2004
        $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active"
2005
        $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active"
2006
        menusplit $w $w.config.f.x4.x.menu 5
2007
        bool $w.config.f 7 5 "Fast writebuffer       " CONFIG_MMU_FASTWB
2008
 
2009
 
2010
 
2011
        focus $w
2012
        update_active
2013
        global winx; global winy
2014
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
2015
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
2016
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2017
        update idletasks
2018
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2019
 
2020
        $w.config.canvas configure \
2021
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2022
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2023
                         [expr [winfo reqheight $w.config.f] + 1]"
2024
 
2025
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2026
        set scry [expr [winfo screenh $w] / 2]
2027
        set maxy [expr [winfo screenh $w] * 3 / 4]
2028
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2029
        if [expr $winy + $canvtotal < $maxy] {
2030
                $w.config.canvas configure -height $canvtotal
2031
        } else {
2032
                $w.config.canvas configure -height [expr $scry - $winy]
2033
                }
2034
        }
2035
        update idletasks
2036
        if {[winfo exists $w]} then {
2037
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2038
        wm minsize $w [winfo width $w] 100
2039
 
2040
        wm deiconify $w
2041
}
2042
}
2043
 
2044
proc update_menu7 {} {
2045
        global CONFIG_LEON3
2046
        global CONFIG_MMU_ENABLE
2047
        if {($CONFIG_LEON3 == 1)} then {
2048
        configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}}
2049
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}}
2050
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}}
2051
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}}
2052
        global CONFIG_MMU_SPLIT
2053
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}}
2054
        global CONFIG_MMU_FASTWB
2055
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {
2056
        configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}}
2057
}
2058
 
2059
 
2060
proc update_define_menu7 {} {
2061
        update_define_mainmenu
2062
        global CONFIG_MODULES
2063
        global CONFIG_LEON3
2064
        global CONFIG_MMU_ENABLE
2065
        if {($CONFIG_LEON3 == 1)} then {
2066
        set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]}
2067
        global tmpvar_17
2068
        global CONFIG_MMU_COMBINED
2069
        if {$tmpvar_17 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0}
2070
        global CONFIG_MMU_SPLIT
2071
        if {$tmpvar_17 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0}
2072
        global tmpvar_18
2073
        global CONFIG_MMU_REPARRAY
2074
        if {$tmpvar_18 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0}
2075
        global CONFIG_MMU_REPINCREMENT
2076
        if {$tmpvar_18 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0}
2077
        global tmpvar_19
2078
        global CONFIG_MMU_I2
2079
        if {$tmpvar_19 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0}
2080
        global CONFIG_MMU_I4
2081
        if {$tmpvar_19 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0}
2082
        global CONFIG_MMU_I8
2083
        if {$tmpvar_19 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0}
2084
        global CONFIG_MMU_I16
2085
        if {$tmpvar_19 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0}
2086
        global CONFIG_MMU_I32
2087
        if {$tmpvar_19 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0}
2088
        global tmpvar_20
2089
        global CONFIG_MMU_D2
2090
        if {$tmpvar_20 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0}
2091
        global CONFIG_MMU_D4
2092
        if {$tmpvar_20 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0}
2093
        global CONFIG_MMU_D8
2094
        if {$tmpvar_20 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0}
2095
        global CONFIG_MMU_D16
2096
        if {$tmpvar_20 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0}
2097
        global CONFIG_MMU_D32
2098
        if {$tmpvar_20 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0}
2099
        global CONFIG_MMU_FASTWB
2100
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {
2101
        set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]}
2102
}
2103
 
2104
 
2105
proc menu8 {w title} {
2106
        set oldFocus [focus]
2107
        catch {focus .menu3}
2108
        catch {destroy $w; unregister_active 8}
2109
        toplevel $w -class Dialog
2110
        wm withdraw $w
2111
        global active_menus
2112
        set active_menus [lsort -integer [linsert $active_menus end 8]]
2113
        message $w.m -width 400 -aspect 300 -text \
2114
                "Debug Support Unit        "  -relief raised
2115
        pack $w.m -pady 10 -side top -padx 10
2116
        wm title $w "Debug Support Unit        "
2117
 
2118
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 8; break"
2119
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu9 .menu9 \"$title\""
2120
        frame $w.f
2121
        button $w.f.back -text "OK" \
2122
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 8"
2123
        button $w.f.next -text "Next" -underline 0\
2124
                -width 15 -command $nextscript
2125
        bind all  $nextscript
2126
        button $w.f.prev -text "Prev" -underline 0\
2127
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu7 .menu7 \"$title\""
2128
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu7 .menu7 \"$title\";break"
2129
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2130
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2131
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2132
        pack $w.topline -side top -fill x
2133
 
2134
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2135
        pack $w.botline -side bottom -fill x
2136
 
2137
        frame $w.config
2138
        pack $w.config -fill y -expand on
2139
 
2140
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2141
        pack $w.config.vscroll -side right -fill y
2142
 
2143
        canvas $w.config.canvas -height 1\
2144
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2145
                -width [expr [winfo screenwidth .] * 1 / 2]
2146
        frame $w.config.f
2147
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2148
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2149
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2150
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2151
        bind $w  "$w.config.canvas yview moveto 0;break;"
2152
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2153
        pack $w.config.canvas -side right -fill y
2154
 
2155
 
2156
        bool $w.config.f 8 0 "Enable LEON3 Debug support unit    " CONFIG_DSU_ENABLE
2157
        bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE
2158
        global tmpvar_21
2159
        minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_21 CONFIG_DSU_ITRACESZ1
2160
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\""
2161
        $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_21 -value "1" -command "update_active"
2162
        $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active"
2163
        $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active"
2164
        $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active"
2165
        $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active"
2166
        menusplit $w $w.config.f.x2.x.menu 5
2167
        bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE
2168
        global tmpvar_22
2169
        minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_22 CONFIG_DSU_ATRACESZ1
2170
        menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\""
2171
        $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_22 -value "1" -command "update_active"
2172
        $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active"
2173
        $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active"
2174
        $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active"
2175
        $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active"
2176
        menusplit $w $w.config.f.x4.x.menu 5
2177
 
2178
 
2179
 
2180
        focus $w
2181
        update_active
2182
        global winx; global winy
2183
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
2184
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
2185
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2186
        update idletasks
2187
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2188
 
2189
        $w.config.canvas configure \
2190
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2191
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2192
                         [expr [winfo reqheight $w.config.f] + 1]"
2193
 
2194
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2195
        set scry [expr [winfo screenh $w] / 2]
2196
        set maxy [expr [winfo screenh $w] * 3 / 4]
2197
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2198
        if [expr $winy + $canvtotal < $maxy] {
2199
                $w.config.canvas configure -height $canvtotal
2200
        } else {
2201
                $w.config.canvas configure -height [expr $scry - $winy]
2202
                }
2203
        }
2204
        update idletasks
2205
        if {[winfo exists $w]} then {
2206
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2207
        wm minsize $w [winfo width $w] 100
2208
 
2209
        wm deiconify $w
2210
}
2211
}
2212
 
2213
proc update_menu8 {} {
2214
        global CONFIG_LEON3
2215
        global CONFIG_DSU_ENABLE
2216
        if {($CONFIG_LEON3 == 1)} then {
2217
        configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}}
2218
        global CONFIG_DSU_ITRACE
2219
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {
2220
        configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}}
2221
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}}
2222
        global CONFIG_DSU_ATRACE
2223
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {
2224
        configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}}
2225
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}}
2226
}
2227
 
2228
 
2229
proc update_define_menu8 {} {
2230
        update_define_mainmenu
2231
        global CONFIG_MODULES
2232
        global CONFIG_LEON3
2233
        global CONFIG_DSU_ENABLE
2234
        if {($CONFIG_LEON3 == 1)} then {
2235
        set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]}
2236
        global CONFIG_DSU_ITRACE
2237
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {
2238
        set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]}
2239
        global tmpvar_21
2240
        global CONFIG_DSU_ITRACESZ1
2241
        if {$tmpvar_21 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0}
2242
        global CONFIG_DSU_ITRACESZ2
2243
        if {$tmpvar_21 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0}
2244
        global CONFIG_DSU_ITRACESZ4
2245
        if {$tmpvar_21 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0}
2246
        global CONFIG_DSU_ITRACESZ8
2247
        if {$tmpvar_21 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0}
2248
        global CONFIG_DSU_ITRACESZ16
2249
        if {$tmpvar_21 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0}
2250
        global CONFIG_DSU_ATRACE
2251
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {
2252
        set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]}
2253
        global tmpvar_22
2254
        global CONFIG_DSU_ATRACESZ1
2255
        if {$tmpvar_22 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0}
2256
        global CONFIG_DSU_ATRACESZ2
2257
        if {$tmpvar_22 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0}
2258
        global CONFIG_DSU_ATRACESZ4
2259
        if {$tmpvar_22 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0}
2260
        global CONFIG_DSU_ATRACESZ8
2261
        if {$tmpvar_22 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0}
2262
        global CONFIG_DSU_ATRACESZ16
2263
        if {$tmpvar_22 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0}
2264
}
2265
 
2266
 
2267
proc menu9 {w title} {
2268
        set oldFocus [focus]
2269
        catch {focus .menu3}
2270
        catch {destroy $w; unregister_active 9}
2271
        toplevel $w -class Dialog
2272
        wm withdraw $w
2273
        global active_menus
2274
        set active_menus [lsort -integer [linsert $active_menus end 9]]
2275
        message $w.m -width 400 -aspect 300 -text \
2276
                "Fault-tolerance  "  -relief raised
2277
        pack $w.m -pady 10 -side top -padx 10
2278
        wm title $w "Fault-tolerance  "
2279
 
2280
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 9; break"
2281
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu10 .menu10 \"$title\""
2282
        frame $w.f
2283
        button $w.f.back -text "OK" \
2284
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 9"
2285
        button $w.f.next -text "Next" -underline 0\
2286
                -width 15 -command $nextscript
2287
        bind all  $nextscript
2288
        button $w.f.prev -text "Prev" -underline 0\
2289
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu8 .menu8 \"$title\""
2290
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu8 .menu8 \"$title\";break"
2291
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2292
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2293
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2294
        pack $w.topline -side top -fill x
2295
 
2296
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2297
        pack $w.botline -side bottom -fill x
2298
 
2299
        frame $w.config
2300
        pack $w.config -fill y -expand on
2301
 
2302
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2303
        pack $w.config.vscroll -side right -fill y
2304
 
2305
        canvas $w.config.canvas -height 1\
2306
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2307
                -width [expr [winfo screenwidth .] * 1 / 2]
2308
        frame $w.config.f
2309
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2310
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2311
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2312
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2313
        bind $w  "$w.config.canvas yview moveto 0;break;"
2314
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2315
        pack $w.config.canvas -side right -fill y
2316
 
2317
 
2318
 
2319
 
2320
 
2321
        focus $w
2322
        update_active
2323
        global winx; global winy
2324
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
2325
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
2326
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2327
        update idletasks
2328
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2329
 
2330
        $w.config.canvas configure \
2331
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2332
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2333
                         [expr [winfo reqheight $w.config.f] + 1]"
2334
 
2335
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2336
        set scry [expr [winfo screenh $w] / 2]
2337
        set maxy [expr [winfo screenh $w] * 3 / 4]
2338
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2339
        if [expr $winy + $canvtotal < $maxy] {
2340
                $w.config.canvas configure -height $canvtotal
2341
        } else {
2342
                $w.config.canvas configure -height [expr $scry - $winy]
2343
                }
2344
        }
2345
        update idletasks
2346
        if {[winfo exists $w]} then {
2347
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2348
        wm minsize $w [winfo width $w] 100
2349
 
2350
        wm deiconify $w
2351
}
2352
}
2353
 
2354
proc update_menu9 {} {
2355
}
2356
 
2357
 
2358
proc update_define_menu9 {} {
2359
        update_define_mainmenu
2360
        global CONFIG_MODULES
2361
}
2362
 
2363
 
2364
proc menu10 {w title} {
2365
        set oldFocus [focus]
2366
        catch {focus .menu3}
2367
        catch {destroy $w; unregister_active 10}
2368
        toplevel $w -class Dialog
2369
        wm withdraw $w
2370
        global active_menus
2371
        set active_menus [lsort -integer [linsert $active_menus end 10]]
2372
        message $w.m -width 400 -aspect 300 -text \
2373
                "VHDL debug settings       "  -relief raised
2374
        pack $w.m -pady 10 -side top -padx 10
2375
        wm title $w "VHDL debug settings       "
2376
 
2377
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 10; break"
2378
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 10; catch {destroy .menu3}; unregister_active 3; menu11 .menu11 \"$title\""
2379
        frame $w.f
2380
        button $w.f.back -text "OK" \
2381
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 10"
2382
        button $w.f.next -text "Next" -underline 0\
2383
                -width 15 -command $nextscript
2384
        bind all  $nextscript
2385
        button $w.f.prev -text "Prev" -underline 0\
2386
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 10; menu9 .menu9 \"$title\""
2387
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 10; menu9 .menu9 \"$title\";break"
2388
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2389
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2390
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2391
        pack $w.topline -side top -fill x
2392
 
2393
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2394
        pack $w.botline -side bottom -fill x
2395
 
2396
        frame $w.config
2397
        pack $w.config -fill y -expand on
2398
 
2399
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2400
        pack $w.config.vscroll -side right -fill y
2401
 
2402
        canvas $w.config.canvas -height 1\
2403
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2404
                -width [expr [winfo screenwidth .] * 1 / 2]
2405
        frame $w.config.f
2406
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2407
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2408
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2409
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2410
        bind $w  "$w.config.canvas yview moveto 0;break;"
2411
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2412
        pack $w.config.canvas -side right -fill y
2413
 
2414
 
2415
        bool $w.config.f 10 0 "Processor disassembly to console         " CONFIG_IU_DISAS
2416
        bool $w.config.f 10 1 "Processor disassembly in netlist         " CONFIG_IU_DISAS_NET
2417
        bool $w.config.f 10 2 "32-bit program counters       " CONFIG_DEBUG_PC32
2418
 
2419
 
2420
 
2421
        focus $w
2422
        update_active
2423
        global winx; global winy
2424
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
2425
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
2426
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2427
        update idletasks
2428
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2429
 
2430
        $w.config.canvas configure \
2431
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2432
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2433
                         [expr [winfo reqheight $w.config.f] + 1]"
2434
 
2435
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2436
        set scry [expr [winfo screenh $w] / 2]
2437
        set maxy [expr [winfo screenh $w] * 3 / 4]
2438
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2439
        if [expr $winy + $canvtotal < $maxy] {
2440
                $w.config.canvas configure -height $canvtotal
2441
        } else {
2442
                $w.config.canvas configure -height [expr $scry - $winy]
2443
                }
2444
        }
2445
        update idletasks
2446
        if {[winfo exists $w]} then {
2447
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2448
        wm minsize $w [winfo width $w] 100
2449
 
2450
        wm deiconify $w
2451
}
2452
}
2453
 
2454
proc update_menu10 {} {
2455
        global CONFIG_LEON3
2456
        global CONFIG_IU_DISAS
2457
        if {($CONFIG_LEON3 == 1)} then {
2458
        configure_entry .menu10.config.f.x0 normal {n l y}} else {configure_entry .menu10.config.f.x0 disabled {y n l}}
2459
        global CONFIG_IU_DISAS_NET
2460
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then {
2461
        configure_entry .menu10.config.f.x1 normal {n l y}} else {configure_entry .menu10.config.f.x1 disabled {y n l}}
2462
        global CONFIG_DEBUG_PC32
2463
        if {($CONFIG_LEON3 == 1)} then {
2464
        configure_entry .menu10.config.f.x2 normal {n l y}} else {configure_entry .menu10.config.f.x2 disabled {y n l}}
2465
}
2466
 
2467
 
2468
proc update_define_menu10 {} {
2469
        update_define_mainmenu
2470
        global CONFIG_MODULES
2471
        global CONFIG_LEON3
2472
        global CONFIG_IU_DISAS
2473
        if {($CONFIG_LEON3 == 1)} then {
2474
        set CONFIG_IU_DISAS [expr $CONFIG_IU_DISAS&15]} else {set CONFIG_IU_DISAS [expr $CONFIG_IU_DISAS|16]}
2475
        global CONFIG_IU_DISAS_NET
2476
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then {
2477
        set CONFIG_IU_DISAS_NET [expr $CONFIG_IU_DISAS_NET&15]} else {set CONFIG_IU_DISAS_NET [expr $CONFIG_IU_DISAS_NET|16]}
2478
        global CONFIG_DEBUG_PC32
2479
        if {($CONFIG_LEON3 == 1)} then {
2480
        set CONFIG_DEBUG_PC32 [expr $CONFIG_DEBUG_PC32&15]} else {set CONFIG_DEBUG_PC32 [expr $CONFIG_DEBUG_PC32|16]}
2481
}
2482
 
2483
 
2484
menu_option menu11 11 "AMBA configuration"
2485
proc menu11 {w title} {
2486
        set oldFocus [focus]
2487
        catch {destroy $w; unregister_active 11}
2488
        toplevel $w -class Dialog
2489
        wm withdraw $w
2490
        global active_menus
2491
        set active_menus [lsort -integer [linsert $active_menus end 11]]
2492
        message $w.m -width 400 -aspect 300 -text \
2493
                "AMBA configuration"  -relief raised
2494
        pack $w.m -pady 10 -side top -padx 10
2495
        wm title $w "AMBA configuration"
2496
 
2497
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 11; break"
2498
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 11; menu12 .menu12 \"$title\""
2499
        frame $w.f
2500
        button $w.f.back -text "Main Menu" \
2501
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 11"
2502
        button $w.f.next -text "Next" -underline 0\
2503
                -width 15 -command $nextscript
2504
        bind all  $nextscript
2505
        button $w.f.prev -text "Prev" -underline 0\
2506
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 11; menu10 .menu10 \"$title\""
2507
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 11; menu10 .menu10 \"$title\";break"
2508
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2509
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2510
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2511
        pack $w.topline -side top -fill x
2512
 
2513
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2514
        pack $w.botline -side bottom -fill x
2515
 
2516
        frame $w.config
2517
        pack $w.config -fill y -expand on
2518
 
2519
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2520
        pack $w.config.vscroll -side right -fill y
2521
 
2522
        canvas $w.config.canvas -height 1\
2523
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2524
                -width [expr [winfo screenwidth .] * 1 / 2]
2525
        frame $w.config.f
2526
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2527
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2528
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2529
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2530
        bind $w  "$w.config.canvas yview moveto 0;break;"
2531
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2532
        pack $w.config.canvas -side right -fill y
2533
 
2534
 
2535
        int $w.config.f 11 0 "Default AHB master" CONFIG_AHB_DEFMST
2536
        bool $w.config.f 11 1 "Round-robin arbiter                       " CONFIG_AHB_RROBIN
2537
        bool $w.config.f 11 2 "AHB split-transaction support             " CONFIG_AHB_SPLIT
2538
        hex $w.config.f 11 3 "I/O area start address (haddr\[31:20\]) " CONFIG_AHB_IOADDR
2539
        hex $w.config.f 11 4 "AHB/APB bridge address (haddr\[31:20\]) " CONFIG_APB_HADDR
2540
        bool $w.config.f 11 5 "Enable AMBA AHB monitor              " CONFIG_AHB_MON
2541
        bool $w.config.f 11 6 "Report AHB errors                  " CONFIG_AHB_MONERR
2542
        bool $w.config.f 11 7 "Report AHB warings                 " CONFIG_AHB_MONWAR
2543
 
2544
 
2545
 
2546
        focus $w
2547
        update_active
2548
        global winx; global winy
2549
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
2550
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2551
        update idletasks
2552
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2553
 
2554
        $w.config.canvas configure \
2555
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2556
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2557
                         [expr [winfo reqheight $w.config.f] + 1]"
2558
 
2559
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2560
        set scry [expr [winfo screenh $w] / 2]
2561
        set maxy [expr [winfo screenh $w] * 3 / 4]
2562
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2563
        if [expr $winy + $canvtotal < $maxy] {
2564
                $w.config.canvas configure -height $canvtotal
2565
        } else {
2566
                $w.config.canvas configure -height [expr $scry - $winy]
2567
                }
2568
        }
2569
        update idletasks
2570
        if {[winfo exists $w]} then {
2571
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2572
        wm minsize $w [winfo width $w] 100
2573
 
2574
        wm deiconify $w
2575
}
2576
}
2577
 
2578
proc update_menu11 {} {
2579
        global CONFIG_AHB_MON
2580
        global CONFIG_AHB_MONERR
2581
        if {($CONFIG_AHB_MON == 1)} then {
2582
        configure_entry .menu11.config.f.x6 normal {n l y}} else {configure_entry .menu11.config.f.x6 disabled {y n l}}
2583
        global CONFIG_AHB_MONWAR
2584
        if {($CONFIG_AHB_MON == 1)} then {
2585
        configure_entry .menu11.config.f.x7 normal {n l y}} else {configure_entry .menu11.config.f.x7 disabled {y n l}}
2586
}
2587
 
2588
 
2589
proc update_define_menu11 {} {
2590
        update_define_mainmenu
2591
        global CONFIG_MODULES
2592
        global CONFIG_AHB_MON
2593
        global CONFIG_AHB_MONERR
2594
        if {($CONFIG_AHB_MON == 1)} then {
2595
        set CONFIG_AHB_MONERR [expr $CONFIG_AHB_MONERR&15]} else {set CONFIG_AHB_MONERR [expr $CONFIG_AHB_MONERR|16]}
2596
        global CONFIG_AHB_MONWAR
2597
        if {($CONFIG_AHB_MON == 1)} then {
2598
        set CONFIG_AHB_MONWAR [expr $CONFIG_AHB_MONWAR&15]} else {set CONFIG_AHB_MONWAR [expr $CONFIG_AHB_MONWAR|16]}
2599
}
2600
 
2601
 
2602
menu_option menu12 12 "Debug Link           "
2603
proc menu12 {w title} {
2604
        set oldFocus [focus]
2605
        catch {destroy $w; unregister_active 12}
2606
        toplevel $w -class Dialog
2607
        wm withdraw $w
2608
        global active_menus
2609
        set active_menus [lsort -integer [linsert $active_menus end 12]]
2610
        message $w.m -width 400 -aspect 300 -text \
2611
                "Debug Link           "  -relief raised
2612
        pack $w.m -pady 10 -side top -padx 10
2613
        wm title $w "Debug Link           "
2614
 
2615
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 12; break"
2616
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 12; menu13 .menu13 \"$title\""
2617
        frame $w.f
2618
        button $w.f.back -text "Main Menu" \
2619
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 12"
2620
        button $w.f.next -text "Next" -underline 0\
2621
                -width 15 -command $nextscript
2622
        bind all  $nextscript
2623
        button $w.f.prev -text "Prev" -underline 0\
2624
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 12; menu11 .menu11 \"$title\""
2625
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 12; menu11 .menu11 \"$title\";break"
2626
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2627
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2628
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2629
        pack $w.topline -side top -fill x
2630
 
2631
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2632
        pack $w.botline -side bottom -fill x
2633
 
2634
        frame $w.config
2635
        pack $w.config -fill y -expand on
2636
 
2637
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2638
        pack $w.config.vscroll -side right -fill y
2639
 
2640
        canvas $w.config.canvas -height 1\
2641
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2642
                -width [expr [winfo screenwidth .] * 1 / 2]
2643
        frame $w.config.f
2644
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2645
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2646
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2647
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2648
        bind $w  "$w.config.canvas yview moveto 0;break;"
2649
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2650
        pack $w.config.canvas -side right -fill y
2651
 
2652
 
2653
        bool $w.config.f 12 0 "Serial Debug Link (RS232)                " CONFIG_DSU_UART
2654
        bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG
2655
        bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH
2656
        global tmpvar_24
2657
        minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ETHSZ1
2658
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\""
2659
        $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active"
2660
        $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active"
2661
        $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active"
2662
        $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active"
2663
        $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active"
2664
        menusplit $w $w.config.f.x3.x.menu 5
2665
        hex $w.config.f 12 4 "MSB 16 bits of IP address (hex)       " CONFIG_DSU_IPMSB
2666
        hex $w.config.f 12 5 "LSB 16 bits of IP address (hex)       " CONFIG_DSU_IPLSB
2667
        hex $w.config.f 12 6 "MSB 24 bits of ethern number (hex)    " CONFIG_DSU_ETHMSB
2668
        hex $w.config.f 12 7 "LSB 24 bits of ethern number (hex)    " CONFIG_DSU_ETHLSB
2669
        bool $w.config.f 12 8 "Programmable 4-bit LSB of MAC/IP address" CONFIG_DSU_ETH_PROG
2670
 
2671
 
2672
 
2673
        focus $w
2674
        update_active
2675
        global winx; global winy
2676
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
2677
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2678
        update idletasks
2679
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2680
 
2681
        $w.config.canvas configure \
2682
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2683
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2684
                         [expr [winfo reqheight $w.config.f] + 1]"
2685
 
2686
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2687
        set scry [expr [winfo screenh $w] / 2]
2688
        set maxy [expr [winfo screenh $w] * 3 / 4]
2689
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2690
        if [expr $winy + $canvtotal < $maxy] {
2691
                $w.config.canvas configure -height $canvtotal
2692
        } else {
2693
                $w.config.canvas configure -height [expr $scry - $winy]
2694
                }
2695
        }
2696
        update idletasks
2697
        if {[winfo exists $w]} then {
2698
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2699
        wm minsize $w [winfo width $w] 100
2700
 
2701
        wm deiconify $w
2702
}
2703
}
2704
 
2705
proc update_menu12 {} {
2706
        global CONFIG_GRETH_ENABLE
2707
        global CONFIG_DSU_ETH
2708
        if {($CONFIG_GRETH_ENABLE == 1)} then {
2709
        configure_entry .menu12.config.f.x2 normal {n l y}} else {configure_entry .menu12.config.f.x2 disabled {y n l}}
2710
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {configure_entry .menu12.config.f.x3 normal {x l}} else {configure_entry .menu12.config.f.x3 disabled {x l}}
2711
        global CONFIG_DSU_IPMSB
2712
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {.menu12.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu12.config.f.x4.l configure -state normal; } else {.menu12.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu12.config.f.x4.l configure -state disabled}
2713
        global CONFIG_DSU_IPLSB
2714
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {.menu12.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu12.config.f.x5.l configure -state normal; } else {.menu12.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu12.config.f.x5.l configure -state disabled}
2715
        global CONFIG_DSU_ETHMSB
2716
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {.menu12.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu12.config.f.x6.l configure -state normal; } else {.menu12.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu12.config.f.x6.l configure -state disabled}
2717
        global CONFIG_DSU_ETHLSB
2718
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {.menu12.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu12.config.f.x7.l configure -state normal; } else {.menu12.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu12.config.f.x7.l configure -state disabled}
2719
        global CONFIG_GRETH_GIGA
2720
        global CONFIG_DSU_ETH_PROG
2721
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then {
2722
        configure_entry .menu12.config.f.x8 normal {n l y}} else {configure_entry .menu12.config.f.x8 disabled {y n l}}
2723
}
2724
 
2725
 
2726
proc update_define_menu12 {} {
2727
        update_define_mainmenu
2728
        global CONFIG_MODULES
2729
        global CONFIG_GRETH_ENABLE
2730
        global CONFIG_DSU_ETH
2731
        if {($CONFIG_GRETH_ENABLE == 1)} then {
2732
        set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]}
2733
        global tmpvar_24
2734
        global CONFIG_DSU_ETHSZ1
2735
        if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0}
2736
        global CONFIG_DSU_ETHSZ2
2737
        if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0}
2738
        global CONFIG_DSU_ETHSZ4
2739
        if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0}
2740
        global CONFIG_DSU_ETHSZ8
2741
        if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0}
2742
        global CONFIG_DSU_ETHSZ16
2743
        if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0}
2744
        global CONFIG_DSU_IPMSB
2745
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8}
2746
        global CONFIG_DSU_IPLSB
2747
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPLSB "$CONFIG_DSU_IPLSB" 0033}
2748
        global CONFIG_DSU_ETHMSB
2749
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_ETHMSB "$CONFIG_DSU_ETHMSB" 00007A}
2750
        global CONFIG_DSU_ETHLSB
2751
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_ETHLSB "$CONFIG_DSU_ETHLSB" CC0001}
2752
        global CONFIG_GRETH_GIGA
2753
        global CONFIG_DSU_ETH_PROG
2754
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then {
2755
        set CONFIG_DSU_ETH_PROG [expr $CONFIG_DSU_ETH_PROG&15]} else {set CONFIG_DSU_ETH_PROG [expr $CONFIG_DSU_ETH_PROG|16]}
2756
}
2757
 
2758
 
2759
menu_option menu13 13 "Peripherals             "
2760
proc menu13 {w title} {
2761
        set oldFocus [focus]
2762
        catch {destroy $w; unregister_active 13}
2763
        toplevel $w -class Dialog
2764
        wm withdraw $w
2765
        global active_menus
2766
        set active_menus [lsort -integer [linsert $active_menus end 13]]
2767
        message $w.m -width 400 -aspect 300 -text \
2768
                "Peripherals             "  -relief raised
2769
        pack $w.m -pady 10 -side top -padx 10
2770
        wm title $w "Peripherals             "
2771
 
2772
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 13; break"
2773
        set nextscript "catch {focus $oldFocus}; menu14 .menu14 \"$title\""
2774
        frame $w.f
2775
        button $w.f.back -text "Main Menu" \
2776
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 13"
2777
        button $w.f.next -text "Next" -underline 0\
2778
                -width 15 -command $nextscript
2779
        bind all  $nextscript
2780
        button $w.f.prev -text "Prev" -underline 0\
2781
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 13; menu12 .menu12 \"$title\""
2782
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 13; menu12 .menu12 \"$title\";break"
2783
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2784
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2785
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2786
        pack $w.topline -side top -fill x
2787
 
2788
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2789
        pack $w.botline -side bottom -fill x
2790
 
2791
        frame $w.config
2792
        pack $w.config -fill y -expand on
2793
 
2794
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2795
        pack $w.config.vscroll -side right -fill y
2796
 
2797
        canvas $w.config.canvas -height 1\
2798
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2799
                -width [expr [winfo screenwidth .] * 1 / 2]
2800
        frame $w.config.f
2801
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2802
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2803
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2804
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2805
        bind $w  "$w.config.canvas yview moveto 0;break;"
2806
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2807
        pack $w.config.canvas -side right -fill y
2808
 
2809
 
2810
        submenu $w.config.f 13 0 "Memory controllers             " 14
2811
        submenu $w.config.f 13 1 "On-chip RAM/ROM                 " 17
2812
        submenu $w.config.f 13 2 "Ethernet             " 18
2813
        submenu $w.config.f 13 3 "UARTs, timers and irq control         " 19
2814
        submenu $w.config.f 13 4 "ATA Controller" 20
2815
        submenu $w.config.f 13 5 "Keybord and VGA interface" 21
2816
 
2817
 
2818
 
2819
        focus $w
2820
        update_active
2821
        global winx; global winy
2822
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
2823
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2824
        update idletasks
2825
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2826
 
2827
        $w.config.canvas configure \
2828
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2829
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2830
                         [expr [winfo reqheight $w.config.f] + 1]"
2831
 
2832
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2833
        set scry [expr [winfo screenh $w] / 2]
2834
        set maxy [expr [winfo screenh $w] * 3 / 4]
2835
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2836
        if [expr $winy + $canvtotal < $maxy] {
2837
                $w.config.canvas configure -height $canvtotal
2838
        } else {
2839
                $w.config.canvas configure -height [expr $scry - $winy]
2840
                }
2841
        }
2842
        update idletasks
2843
        if {[winfo exists $w]} then {
2844
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2845
        wm minsize $w [winfo width $w] 100
2846
 
2847
        wm deiconify $w
2848
}
2849
}
2850
 
2851
proc update_menu13 {} {
2852
}
2853
 
2854
 
2855
proc update_define_menu13 {} {
2856
        update_define_mainmenu
2857
        global CONFIG_MODULES
2858
}
2859
 
2860
 
2861
proc menu14 {w title} {
2862
        set oldFocus [focus]
2863
        catch {focus .menu13}
2864
        catch {destroy $w; unregister_active 14}
2865
        toplevel $w -class Dialog
2866
        wm withdraw $w
2867
        global active_menus
2868
        set active_menus [lsort -integer [linsert $active_menus end 14]]
2869
        message $w.m -width 400 -aspect 300 -text \
2870
                "Memory controllers             "  -relief raised
2871
        pack $w.m -pady 10 -side top -padx 10
2872
        wm title $w "Memory controllers             "
2873
 
2874
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 14; break"
2875
        set nextscript "catch {focus $oldFocus}; menu15 .menu15 \"$title\""
2876
        frame $w.f
2877
        button $w.f.back -text "OK" \
2878
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 14"
2879
        button $w.f.next -text "Next" -underline 0\
2880
                -width 15 -command $nextscript
2881
        bind all  $nextscript
2882
        button $w.f.prev -text "Prev" -underline 0\
2883
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 14; menu13 .menu13 \"$title\""
2884
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 14; menu13 .menu13 \"$title\";break"
2885
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2886
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2887
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2888
        pack $w.topline -side top -fill x
2889
 
2890
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2891
        pack $w.botline -side bottom -fill x
2892
 
2893
        frame $w.config
2894
        pack $w.config -fill y -expand on
2895
 
2896
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2897
        pack $w.config.vscroll -side right -fill y
2898
 
2899
        canvas $w.config.canvas -height 1\
2900
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2901
                -width [expr [winfo screenwidth .] * 1 / 2]
2902
        frame $w.config.f
2903
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2904
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2905
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2906
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2907
        bind $w  "$w.config.canvas yview moveto 0;break;"
2908
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2909
        pack $w.config.canvas -side right -fill y
2910
 
2911
 
2912
        submenu $w.config.f 14 0 "8/32-bit PROM/SRAM controller " 15
2913
        submenu $w.config.f 14 1 "Leon2 memory controller        " 16
2914
 
2915
 
2916
 
2917
        focus $w
2918
        update_active
2919
        global winx; global winy
2920
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
2921
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
2922
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2923
        update idletasks
2924
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2925
 
2926
        $w.config.canvas configure \
2927
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2928
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2929
                         [expr [winfo reqheight $w.config.f] + 1]"
2930
 
2931
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2932
        set scry [expr [winfo screenh $w] / 2]
2933
        set maxy [expr [winfo screenh $w] * 3 / 4]
2934
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2935
        if [expr $winy + $canvtotal < $maxy] {
2936
                $w.config.canvas configure -height $canvtotal
2937
        } else {
2938
                $w.config.canvas configure -height [expr $scry - $winy]
2939
                }
2940
        }
2941
        update idletasks
2942
        if {[winfo exists $w]} then {
2943
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2944
        wm minsize $w [winfo width $w] 100
2945
 
2946
        wm deiconify $w
2947
}
2948
}
2949
 
2950
proc update_menu14 {} {
2951
}
2952
 
2953
 
2954
proc update_define_menu14 {} {
2955
        update_define_mainmenu
2956
        global CONFIG_MODULES
2957
}
2958
 
2959
 
2960
proc menu15 {w title} {
2961
        set oldFocus [focus]
2962
        catch {focus .menu14}
2963
        catch {destroy $w; unregister_active 15}
2964
        toplevel $w -class Dialog
2965
        wm withdraw $w
2966
        global active_menus
2967
        set active_menus [lsort -integer [linsert $active_menus end 15]]
2968
        message $w.m -width 400 -aspect 300 -text \
2969
                "8/32-bit PROM/SRAM controller "  -relief raised
2970
        pack $w.m -pady 10 -side top -padx 10
2971
        wm title $w "8/32-bit PROM/SRAM controller "
2972
 
2973
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 15; break"
2974
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu16 .menu16 \"$title\""
2975
        frame $w.f
2976
        button $w.f.back -text "OK" \
2977
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 15"
2978
        button $w.f.next -text "Next" -underline 0\
2979
                -width 15 -command $nextscript
2980
        bind all  $nextscript
2981
        button $w.f.prev -text "Prev" -underline 0\
2982
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu14 .menu14 \"$title\""
2983
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu14 .menu14 \"$title\";break"
2984
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2985
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2986
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2987
        pack $w.topline -side top -fill x
2988
 
2989
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2990
        pack $w.botline -side bottom -fill x
2991
 
2992
        frame $w.config
2993
        pack $w.config -fill y -expand on
2994
 
2995
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2996
        pack $w.config.vscroll -side right -fill y
2997
 
2998
        canvas $w.config.canvas -height 1\
2999
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3000
                -width [expr [winfo screenwidth .] * 1 / 2]
3001
        frame $w.config.f
3002
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3003
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3004
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3005
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3006
        bind $w  "$w.config.canvas yview moveto 0;break;"
3007
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3008
        pack $w.config.canvas -side right -fill y
3009
 
3010
 
3011
        bool $w.config.f 15 0 "Enable 8/32-bit PROM/SRAM controller    " CONFIG_SRCTRL
3012
        bool $w.config.f 15 1 "8-bit PROM interface " CONFIG_SRCTRL_8BIT
3013
        int $w.config.f 15 2 "PROM waitstates" CONFIG_SRCTRL_PROMWS
3014
        int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS
3015
        int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS
3016
        bool $w.config.f 15 5 "Use read-modify-write for sub-word writes  " CONFIG_SRCTRL_RMW
3017
        global tmpvar_25
3018
        minimenu $w.config.f 15 6 "SRAM banks" tmpvar_25 CONFIG_SRCTRL_SRBANKS1
3019
        menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\""
3020
        $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active"
3021
        $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active"
3022
        $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_25 -value "3" -command "update_active"
3023
        $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active"
3024
        $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_25 -value "5" -command "update_active"
3025
        menusplit $w $w.config.f.x6.x.menu 5
3026
        global tmpvar_26
3027
        minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_26 CONFIG_SRCTRL_BANKSZ0
3028
        menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\""
3029
        $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active"
3030
        $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active"
3031
        $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_26 -value "32" -command "update_active"
3032
        $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_26 -value "64" -command "update_active"
3033
        $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_26 -value "128" -command "update_active"
3034
        $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_26 -value "256" -command "update_active"
3035
        $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_26 -value "512" -command "update_active"
3036
        $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_26 -value "1024" -command "update_active"
3037
        $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_26 -value "2048" -command "update_active"
3038
        $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_26 -value "4096" -command "update_active"
3039
        $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_26 -value "8192" -command "update_active"
3040
        $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_26 -value "16384" -command "update_active"
3041
        $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_26 -value "32768" -command "update_active"
3042
        $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_26 -value "65536" -command "update_active"
3043
        menusplit $w $w.config.f.x7.x.menu 14
3044
        int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL
3045
 
3046
 
3047
 
3048
        focus $w
3049
        update_active
3050
        global winx; global winy
3051
        if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers             "}
3052
        set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30]
3053
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3054
        update idletasks
3055
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3056
 
3057
        $w.config.canvas configure \
3058
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3059
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3060
                         [expr [winfo reqheight $w.config.f] + 1]"
3061
 
3062
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3063
        set scry [expr [winfo screenh $w] / 2]
3064
        set maxy [expr [winfo screenh $w] * 3 / 4]
3065
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3066
        if [expr $winy + $canvtotal < $maxy] {
3067
                $w.config.canvas configure -height $canvtotal
3068
        } else {
3069
                $w.config.canvas configure -height [expr $scry - $winy]
3070
                }
3071
        }
3072
        update idletasks
3073
        if {[winfo exists $w]} then {
3074
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3075
        wm minsize $w [winfo width $w] 100
3076
 
3077
        wm deiconify $w
3078
}
3079
}
3080
 
3081
proc update_menu15 {} {
3082
        global CONFIG_SRCTRL
3083
        global CONFIG_SRCTRL_8BIT
3084
        if {($CONFIG_SRCTRL == 1)} then {
3085
        configure_entry .menu15.config.f.x1 normal {n l y}} else {configure_entry .menu15.config.f.x1 disabled {y n l}}
3086
        global CONFIG_SRCTRL_PROMWS
3087
        if {($CONFIG_SRCTRL == 1)} then {.menu15.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu15.config.f.x2.l configure -state normal; } else {.menu15.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu15.config.f.x2.l configure -state disabled}
3088
        global CONFIG_SRCTRL_RAMWS
3089
        if {($CONFIG_SRCTRL == 1)} then {.menu15.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu15.config.f.x3.l configure -state normal; } else {.menu15.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu15.config.f.x3.l configure -state disabled}
3090
        global CONFIG_SRCTRL_IOWS
3091
        if {($CONFIG_SRCTRL == 1)} then {.menu15.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu15.config.f.x4.l configure -state normal; } else {.menu15.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu15.config.f.x4.l configure -state disabled}
3092
        global CONFIG_SRCTRL_RMW
3093
        if {($CONFIG_SRCTRL == 1)} then {
3094
        configure_entry .menu15.config.f.x5 normal {n l y}} else {configure_entry .menu15.config.f.x5 disabled {y n l}}
3095
        if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x6 normal {x l}} else {configure_entry .menu15.config.f.x6 disabled {x l}}
3096
        if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x7 normal {x l}} else {configure_entry .menu15.config.f.x7 disabled {x l}}
3097
        global CONFIG_SRCTRL_ROMASEL
3098
        if {($CONFIG_SRCTRL == 1)} then {.menu15.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu15.config.f.x8.l configure -state normal; } else {.menu15.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu15.config.f.x8.l configure -state disabled}
3099
}
3100
 
3101
 
3102
proc update_define_menu15 {} {
3103
        update_define_mainmenu
3104
        global CONFIG_MODULES
3105
        global CONFIG_SRCTRL
3106
        global CONFIG_SRCTRL_8BIT
3107
        if {($CONFIG_SRCTRL == 1)} then {
3108
        set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT&15]} else {set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT|16]}
3109
        global CONFIG_SRCTRL_PROMWS
3110
        if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_PROMWS "$CONFIG_SRCTRL_PROMWS" 3}
3111
        global CONFIG_SRCTRL_RAMWS
3112
        if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_RAMWS "$CONFIG_SRCTRL_RAMWS" 0}
3113
        global CONFIG_SRCTRL_IOWS
3114
        if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_IOWS "$CONFIG_SRCTRL_IOWS" 0}
3115
        global CONFIG_SRCTRL_RMW
3116
        if {($CONFIG_SRCTRL == 1)} then {
3117
        set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]}
3118
        global tmpvar_25
3119
        global CONFIG_SRCTRL_SRBANKS1
3120
        if {$tmpvar_25 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0}
3121
        global CONFIG_SRCTRL_SRBANKS2
3122
        if {$tmpvar_25 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0}
3123
        global CONFIG_SRCTRL_SRBANKS3
3124
        if {$tmpvar_25 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0}
3125
        global CONFIG_SRCTRL_SRBANKS4
3126
        if {$tmpvar_25 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0}
3127
        global CONFIG_SRCTRL_SRBANKS5
3128
        if {$tmpvar_25 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0}
3129
        global tmpvar_26
3130
        global CONFIG_SRCTRL_BANKSZ0
3131
        if {$tmpvar_26 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0}
3132
        global CONFIG_SRCTRL_BANKSZ1
3133
        if {$tmpvar_26 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0}
3134
        global CONFIG_SRCTRL_BANKSZ2
3135
        if {$tmpvar_26 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0}
3136
        global CONFIG_SRCTRL_BANKSZ3
3137
        if {$tmpvar_26 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0}
3138
        global CONFIG_SRCTRL_BANKSZ4
3139
        if {$tmpvar_26 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0}
3140
        global CONFIG_SRCTRL_BANKSZ5
3141
        if {$tmpvar_26 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0}
3142
        global CONFIG_SRCTRL_BANKSZ6
3143
        if {$tmpvar_26 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0}
3144
        global CONFIG_SRCTRL_BANKSZ7
3145
        if {$tmpvar_26 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0}
3146
        global CONFIG_SRCTRL_BANKSZ8
3147
        if {$tmpvar_26 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0}
3148
        global CONFIG_SRCTRL_BANKSZ9
3149
        if {$tmpvar_26 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0}
3150
        global CONFIG_SRCTRL_BANKSZ10
3151
        if {$tmpvar_26 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0}
3152
        global CONFIG_SRCTRL_BANKSZ11
3153
        if {$tmpvar_26 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0}
3154
        global CONFIG_SRCTRL_BANKSZ12
3155
        if {$tmpvar_26 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0}
3156
        global CONFIG_SRCTRL_BANKSZ13
3157
        if {$tmpvar_26 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0}
3158
        global CONFIG_SRCTRL_ROMASEL
3159
        if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19}
3160
}
3161
 
3162
 
3163
proc menu16 {w title} {
3164
        set oldFocus [focus]
3165
        catch {focus .menu14}
3166
        catch {destroy $w; unregister_active 16}
3167
        toplevel $w -class Dialog
3168
        wm withdraw $w
3169
        global active_menus
3170
        set active_menus [lsort -integer [linsert $active_menus end 16]]
3171
        message $w.m -width 400 -aspect 300 -text \
3172
                "Leon2 memory controller        "  -relief raised
3173
        pack $w.m -pady 10 -side top -padx 10
3174
        wm title $w "Leon2 memory controller        "
3175
 
3176
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 16; break"
3177
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 16; catch {destroy .menu14}; unregister_active 14; menu17 .menu17 \"$title\""
3178
        frame $w.f
3179
        button $w.f.back -text "OK" \
3180
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 16"
3181
        button $w.f.next -text "Next" -underline 0\
3182
                -width 15 -command $nextscript
3183
        bind all  $nextscript
3184
        button $w.f.prev -text "Prev" -underline 0\
3185
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu15 .menu15 \"$title\""
3186
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu15 .menu15 \"$title\";break"
3187
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3188
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3189
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3190
        pack $w.topline -side top -fill x
3191
 
3192
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3193
        pack $w.botline -side bottom -fill x
3194
 
3195
        frame $w.config
3196
        pack $w.config -fill y -expand on
3197
 
3198
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3199
        pack $w.config.vscroll -side right -fill y
3200
 
3201
        canvas $w.config.canvas -height 1\
3202
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3203
                -width [expr [winfo screenwidth .] * 1 / 2]
3204
        frame $w.config.f
3205
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3206
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3207
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3208
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3209
        bind $w  "$w.config.canvas yview moveto 0;break;"
3210
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3211
        pack $w.config.canvas -side right -fill y
3212
 
3213
 
3214
        bool $w.config.f 16 0 "Enable Leon2 memory controller  " CONFIG_MCTRL_LEON2
3215
        bool $w.config.f 16 1 "8-bit PROM/SRAM bus support    " CONFIG_MCTRL_8BIT
3216
        bool $w.config.f 16 2 "16-bit PROM/SRAM bus support    " CONFIG_MCTRL_16BIT
3217
        bool $w.config.f 16 3 "5th SRAM chip-select  " CONFIG_MCTRL_5CS
3218
        bool $w.config.f 16 4 "SDRAM controller       " CONFIG_MCTRL_SDRAM
3219
        bool $w.config.f 16 5 "Separate address and data buses" CONFIG_MCTRL_SDRAM_SEPBUS
3220
        bool $w.config.f 16 6 "64-bit SDRAM data bus" CONFIG_MCTRL_SDRAM_BUS64
3221
        bool $w.config.f 16 7 "Unsynchronized sdclock" CONFIG_MCTRL_SDRAM_INVCLK
3222
        bool $w.config.f 16 8 "Enable page burst operation     " CONFIG_MCTRL_PAGE
3223
        bool $w.config.f 16 9 "Enable programmable page burst " CONFIG_MCTRL_PROGPAGE
3224
 
3225
 
3226
 
3227
        focus $w
3228
        update_active
3229
        global winx; global winy
3230
        if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers             "}
3231
        set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30]
3232
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3233
        update idletasks
3234
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3235
 
3236
        $w.config.canvas configure \
3237
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3238
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3239
                         [expr [winfo reqheight $w.config.f] + 1]"
3240
 
3241
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3242
        set scry [expr [winfo screenh $w] / 2]
3243
        set maxy [expr [winfo screenh $w] * 3 / 4]
3244
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3245
        if [expr $winy + $canvtotal < $maxy] {
3246
                $w.config.canvas configure -height $canvtotal
3247
        } else {
3248
                $w.config.canvas configure -height [expr $scry - $winy]
3249
                }
3250
        }
3251
        update idletasks
3252
        if {[winfo exists $w]} then {
3253
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3254
        wm minsize $w [winfo width $w] 100
3255
 
3256
        wm deiconify $w
3257
}
3258
}
3259
 
3260
proc update_menu16 {} {
3261
        global CONFIG_MCTRL_LEON2
3262
        global CONFIG_MCTRL_8BIT
3263
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3264
        configure_entry .menu16.config.f.x1 normal {n l y}} else {configure_entry .menu16.config.f.x1 disabled {y n l}}
3265
        global CONFIG_MCTRL_16BIT
3266
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3267
        configure_entry .menu16.config.f.x2 normal {n l y}} else {configure_entry .menu16.config.f.x2 disabled {y n l}}
3268
        global CONFIG_MCTRL_5CS
3269
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3270
        configure_entry .menu16.config.f.x3 normal {n l y}} else {configure_entry .menu16.config.f.x3 disabled {y n l}}
3271
        global CONFIG_MCTRL_SDRAM
3272
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3273
        configure_entry .menu16.config.f.x4 normal {n l y}} else {configure_entry .menu16.config.f.x4 disabled {y n l}}
3274
        global CONFIG_MCTRL_SDRAM_SEPBUS
3275
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {
3276
        configure_entry .menu16.config.f.x5 normal {n l y}} else {configure_entry .menu16.config.f.x5 disabled {y n l}}
3277
        global CONFIG_MCTRL_SDRAM_BUS64
3278
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {
3279
        configure_entry .menu16.config.f.x6 normal {n l y}} else {configure_entry .menu16.config.f.x6 disabled {y n l}}
3280
        global CONFIG_MCTRL_SDRAM_INVCLK
3281
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {
3282
        configure_entry .menu16.config.f.x7 normal {n l y}} else {configure_entry .menu16.config.f.x7 disabled {y n l}}
3283
        global CONFIG_MCTRL_PAGE
3284
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {
3285
        configure_entry .menu16.config.f.x8 normal {n l y}} else {configure_entry .menu16.config.f.x8 disabled {y n l}}
3286
        global CONFIG_MCTRL_PROGPAGE
3287
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then {
3288
        configure_entry .menu16.config.f.x9 normal {n l y}} else {configure_entry .menu16.config.f.x9 disabled {y n l}}
3289
}
3290
 
3291
 
3292
proc update_define_menu16 {} {
3293
        update_define_mainmenu
3294
        global CONFIG_MODULES
3295
        global CONFIG_MCTRL_LEON2
3296
        global CONFIG_MCTRL_8BIT
3297
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3298
        set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT&15]} else {set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT|16]}
3299
        global CONFIG_MCTRL_16BIT
3300
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3301
        set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT&15]} else {set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT|16]}
3302
        global CONFIG_MCTRL_5CS
3303
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3304
        set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS&15]} else {set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS|16]}
3305
        global CONFIG_MCTRL_SDRAM
3306
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3307
        set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM&15]} else {set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM|16]}
3308
        global CONFIG_MCTRL_SDRAM_SEPBUS
3309
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {
3310
        set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS&15]} else {set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS|16]}
3311
        global CONFIG_MCTRL_SDRAM_BUS64
3312
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {
3313
        set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64&15]} else {set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64|16]}
3314
        global CONFIG_MCTRL_SDRAM_INVCLK
3315
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {
3316
        set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK&15]} else {set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK|16]}
3317
        global CONFIG_MCTRL_PAGE
3318
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {
3319
        set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE&15]} else {set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE|16]}
3320
        global CONFIG_MCTRL_PROGPAGE
3321
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then {
3322
        set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE&15]} else {set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE|16]}
3323
}
3324
 
3325
 
3326
proc menu17 {w title} {
3327
        set oldFocus [focus]
3328
        catch {focus .menu13}
3329
        catch {destroy $w; unregister_active 17}
3330
        toplevel $w -class Dialog
3331
        wm withdraw $w
3332
        global active_menus
3333
        set active_menus [lsort -integer [linsert $active_menus end 17]]
3334
        message $w.m -width 400 -aspect 300 -text \
3335
                "On-chip RAM/ROM                 "  -relief raised
3336
        pack $w.m -pady 10 -side top -padx 10
3337
        wm title $w "On-chip RAM/ROM                 "
3338
 
3339
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 17; break"
3340
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu18 .menu18 \"$title\""
3341
        frame $w.f
3342
        button $w.f.back -text "OK" \
3343
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17"
3344
        button $w.f.next -text "Next" -underline 0\
3345
                -width 15 -command $nextscript
3346
        bind all  $nextscript
3347
        button $w.f.prev -text "Prev" -underline 0\
3348
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\""
3349
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\";break"
3350
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3351
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3352
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3353
        pack $w.topline -side top -fill x
3354
 
3355
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3356
        pack $w.botline -side bottom -fill x
3357
 
3358
        frame $w.config
3359
        pack $w.config -fill y -expand on
3360
 
3361
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3362
        pack $w.config.vscroll -side right -fill y
3363
 
3364
        canvas $w.config.canvas -height 1\
3365
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3366
                -width [expr [winfo screenwidth .] * 1 / 2]
3367
        frame $w.config.f
3368
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3369
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3370
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3371
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3372
        bind $w  "$w.config.canvas yview moveto 0;break;"
3373
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3374
        pack $w.config.canvas -side right -fill y
3375
 
3376
 
3377
        bool $w.config.f 17 0 "On-chip AHB ROM                   " CONFIG_AHBROM_ENABLE
3378
        hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START
3379
        bool $w.config.f 17 2 "Pipelined ROM access              " CONFIG_AHBROM_PIPE
3380
        bool $w.config.f 17 3 "On-chip AHB RAM                   " CONFIG_AHBRAM_ENABLE
3381
        global tmpvar_27
3382
        minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1
3383
        menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\""
3384
        $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active"
3385
        $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active"
3386
        $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active"
3387
        $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active"
3388
        $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active"
3389
        $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active"
3390
        $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active"
3391
        menusplit $w $w.config.f.x4.x.menu 7
3392
        hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START
3393
 
3394
 
3395
 
3396
        focus $w
3397
        update_active
3398
        global winx; global winy
3399
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
3400
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
3401
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3402
        update idletasks
3403
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3404
 
3405
        $w.config.canvas configure \
3406
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3407
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3408
                         [expr [winfo reqheight $w.config.f] + 1]"
3409
 
3410
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3411
        set scry [expr [winfo screenh $w] / 2]
3412
        set maxy [expr [winfo screenh $w] * 3 / 4]
3413
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3414
        if [expr $winy + $canvtotal < $maxy] {
3415
                $w.config.canvas configure -height $canvtotal
3416
        } else {
3417
                $w.config.canvas configure -height [expr $scry - $winy]
3418
                }
3419
        }
3420
        update idletasks
3421
        if {[winfo exists $w]} then {
3422
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3423
        wm minsize $w [winfo width $w] 100
3424
 
3425
        wm deiconify $w
3426
}
3427
}
3428
 
3429
proc update_menu17 {} {
3430
        global CONFIG_AHBROM_ENABLE
3431
        global CONFIG_AHBROM_START
3432
        if {($CONFIG_AHBROM_ENABLE == 1)} then {.menu17.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x1.l configure -state normal; } else {.menu17.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x1.l configure -state disabled}
3433
        global CONFIG_AHBROM_PIPE
3434
        if {($CONFIG_AHBROM_ENABLE == 1)} then {
3435
        configure_entry .menu17.config.f.x2 normal {n l y}} else {configure_entry .menu17.config.f.x2 disabled {y n l}}
3436
        global CONFIG_AHBRAM_ENABLE
3437
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {configure_entry .menu17.config.f.x4 normal {x l}} else {configure_entry .menu17.config.f.x4 disabled {x l}}
3438
        global CONFIG_AHBRAM_START
3439
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {.menu17.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x5.l configure -state normal; } else {.menu17.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x5.l configure -state disabled}
3440
}
3441
 
3442
 
3443
proc update_define_menu17 {} {
3444
        update_define_mainmenu
3445
        global CONFIG_MODULES
3446
        global CONFIG_AHBROM_ENABLE
3447
        global CONFIG_AHBROM_START
3448
        if {($CONFIG_AHBROM_ENABLE == 1)} then {validate_hex CONFIG_AHBROM_START "$CONFIG_AHBROM_START" 000}
3449
        global CONFIG_AHBROM_PIPE
3450
        if {($CONFIG_AHBROM_ENABLE == 1)} then {
3451
        set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]}
3452
        global tmpvar_27
3453
        global CONFIG_AHBRAM_SZ1
3454
        if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0}
3455
        global CONFIG_AHBRAM_SZ2
3456
        if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0}
3457
        global CONFIG_AHBRAM_SZ4
3458
        if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0}
3459
        global CONFIG_AHBRAM_SZ8
3460
        if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0}
3461
        global CONFIG_AHBRAM_SZ16
3462
        if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0}
3463
        global CONFIG_AHBRAM_SZ32
3464
        if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0}
3465
        global CONFIG_AHBRAM_SZ64
3466
        if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0}
3467
        global CONFIG_AHBRAM_ENABLE
3468
        global CONFIG_AHBRAM_START
3469
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00}
3470
}
3471
 
3472
 
3473
proc menu18 {w title} {
3474
        set oldFocus [focus]
3475
        catch {focus .menu13}
3476
        catch {destroy $w; unregister_active 18}
3477
        toplevel $w -class Dialog
3478
        wm withdraw $w
3479
        global active_menus
3480
        set active_menus [lsort -integer [linsert $active_menus end 18]]
3481
        message $w.m -width 400 -aspect 300 -text \
3482
                "Ethernet             "  -relief raised
3483
        pack $w.m -pady 10 -side top -padx 10
3484
        wm title $w "Ethernet             "
3485
 
3486
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 18; break"
3487
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu19 .menu19 \"$title\""
3488
        frame $w.f
3489
        button $w.f.back -text "OK" \
3490
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18"
3491
        button $w.f.next -text "Next" -underline 0\
3492
                -width 15 -command $nextscript
3493
        bind all  $nextscript
3494
        button $w.f.prev -text "Prev" -underline 0\
3495
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\""
3496
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\";break"
3497
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3498
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3499
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3500
        pack $w.topline -side top -fill x
3501
 
3502
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3503
        pack $w.botline -side bottom -fill x
3504
 
3505
        frame $w.config
3506
        pack $w.config -fill y -expand on
3507
 
3508
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3509
        pack $w.config.vscroll -side right -fill y
3510
 
3511
        canvas $w.config.canvas -height 1\
3512
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3513
                -width [expr [winfo screenwidth .] * 1 / 2]
3514
        frame $w.config.f
3515
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3516
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3517
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3518
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3519
        bind $w  "$w.config.canvas yview moveto 0;break;"
3520
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3521
        pack $w.config.canvas -side right -fill y
3522
 
3523
 
3524
        bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE
3525
        bool $w.config.f 18 1 "Enable 1000 Mbit support    " CONFIG_GRETH_GIGA
3526
        global tmpvar_28
3527
        minimenu $w.config.f 18 2 "AHB FIFO size (words)            " tmpvar_28 CONFIG_GRETH_FIFO4
3528
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words)            \""
3529
        $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active"
3530
        $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active"
3531
        $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active"
3532
        $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active"
3533
        $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active"
3534
        menusplit $w $w.config.f.x2.x.menu 5
3535
 
3536
 
3537
 
3538
        focus $w
3539
        update_active
3540
        global winx; global winy
3541
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
3542
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
3543
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3544
        update idletasks
3545
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3546
 
3547
        $w.config.canvas configure \
3548
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3549
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3550
                         [expr [winfo reqheight $w.config.f] + 1]"
3551
 
3552
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3553
        set scry [expr [winfo screenh $w] / 2]
3554
        set maxy [expr [winfo screenh $w] * 3 / 4]
3555
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3556
        if [expr $winy + $canvtotal < $maxy] {
3557
                $w.config.canvas configure -height $canvtotal
3558
        } else {
3559
                $w.config.canvas configure -height [expr $scry - $winy]
3560
                }
3561
        }
3562
        update idletasks
3563
        if {[winfo exists $w]} then {
3564
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3565
        wm minsize $w [winfo width $w] 100
3566
 
3567
        wm deiconify $w
3568
}
3569
}
3570
 
3571
proc update_menu18 {} {
3572
        global CONFIG_GRETH_ENABLE
3573
        global CONFIG_GRETH_GIGA
3574
        if {($CONFIG_GRETH_ENABLE == 1)} then {
3575
        configure_entry .menu18.config.f.x1 normal {n l y}} else {configure_entry .menu18.config.f.x1 disabled {y n l}}
3576
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then {configure_entry .menu18.config.f.x2 normal {x l}} else {configure_entry .menu18.config.f.x2 disabled {x l}}
3577
}
3578
 
3579
 
3580
proc update_define_menu18 {} {
3581
        update_define_mainmenu
3582
        global CONFIG_MODULES
3583
        global CONFIG_GRETH_ENABLE
3584
        global CONFIG_GRETH_GIGA
3585
        if {($CONFIG_GRETH_ENABLE == 1)} then {
3586
        set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]}
3587
        global tmpvar_28
3588
        global CONFIG_GRETH_FIFO4
3589
        if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0}
3590
        global CONFIG_GRETH_FIFO8
3591
        if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0}
3592
        global CONFIG_GRETH_FIFO16
3593
        if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0}
3594
        global CONFIG_GRETH_FIFO32
3595
        if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0}
3596
        global CONFIG_GRETH_FIFO64
3597
        if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0}
3598
}
3599
 
3600
 
3601
proc menu19 {w title} {
3602
        set oldFocus [focus]
3603
        catch {focus .menu13}
3604
        catch {destroy $w; unregister_active 19}
3605
        toplevel $w -class Dialog
3606
        wm withdraw $w
3607
        global active_menus
3608
        set active_menus [lsort -integer [linsert $active_menus end 19]]
3609
        message $w.m -width 400 -aspect 300 -text \
3610
                "UARTs, timers and irq control         "  -relief raised
3611
        pack $w.m -pady 10 -side top -padx 10
3612
        wm title $w "UARTs, timers and irq control         "
3613
 
3614
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 19; break"
3615
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu20 .menu20 \"$title\""
3616
        frame $w.f
3617
        button $w.f.back -text "OK" \
3618
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19"
3619
        button $w.f.next -text "Next" -underline 0\
3620
                -width 15 -command $nextscript
3621
        bind all  $nextscript
3622
        button $w.f.prev -text "Prev" -underline 0\
3623
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\""
3624
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break"
3625
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3626
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3627
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3628
        pack $w.topline -side top -fill x
3629
 
3630
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3631
        pack $w.botline -side bottom -fill x
3632
 
3633
        frame $w.config
3634
        pack $w.config -fill y -expand on
3635
 
3636
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3637
        pack $w.config.vscroll -side right -fill y
3638
 
3639
        canvas $w.config.canvas -height 1\
3640
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3641
                -width [expr [winfo screenwidth .] * 1 / 2]
3642
        frame $w.config.f
3643
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3644
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3645
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3646
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3647
        bind $w  "$w.config.canvas yview moveto 0;break;"
3648
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3649
        pack $w.config.canvas -side right -fill y
3650
 
3651
 
3652
        bool $w.config.f 19 0 "Enable console UART                  " CONFIG_UART1_ENABLE
3653
        global tmpvar_29
3654
        minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1
3655
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\""
3656
        $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active"
3657
        $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active"
3658
        $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active"
3659
        $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active"
3660
        $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active"
3661
        $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active"
3662
        menusplit $w $w.config.f.x1.x.menu 6
3663
        bool $w.config.f 19 2 "Enable LEON3 interrupt controller    " CONFIG_IRQ3_ENABLE
3664
        bool $w.config.f 19 3 "Enable Timer Unit                    " CONFIG_GPT_ENABLE
3665
        int $w.config.f 19 4 "Number of timers (1 - 7)              " CONFIG_GPT_NTIM
3666
        int $w.config.f 19 5 "Scaler width (2 - 16)                 " CONFIG_GPT_SW
3667
        int $w.config.f 19 6 "Timer width (2 - 32)                  " CONFIG_GPT_TW
3668
        int $w.config.f 19 7 "Timer unit interrupt                  " CONFIG_GPT_IRQ
3669
        bool $w.config.f 19 8 "Separate interrupts                  " CONFIG_GPT_SEPIRQ
3670
        bool $w.config.f 19 9 "Watchdog enable                      " CONFIG_GPT_WDOGEN
3671
        hex $w.config.f 19 10 "Initial watchdog time-out value       " CONFIG_GPT_WDOG
3672
 
3673
 
3674
 
3675
        focus $w
3676
        update_active
3677
        global winx; global winy
3678
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
3679
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
3680
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3681
        update idletasks
3682
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3683
 
3684
        $w.config.canvas configure \
3685
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3686
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3687
                         [expr [winfo reqheight $w.config.f] + 1]"
3688
 
3689
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3690
        set scry [expr [winfo screenh $w] / 2]
3691
        set maxy [expr [winfo screenh $w] * 3 / 4]
3692
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3693
        if [expr $winy + $canvtotal < $maxy] {
3694
                $w.config.canvas configure -height $canvtotal
3695
        } else {
3696
                $w.config.canvas configure -height [expr $scry - $winy]
3697
                }
3698
        }
3699
        update idletasks
3700
        if {[winfo exists $w]} then {
3701
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3702
        wm minsize $w [winfo width $w] 100
3703
 
3704
        wm deiconify $w
3705
}
3706
}
3707
 
3708
proc update_menu19 {} {
3709
        global CONFIG_UART1_ENABLE
3710
        if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu19.config.f.x1 normal {x l}} else {configure_entry .menu19.config.f.x1 disabled {x l}}
3711
        global CONFIG_GPT_ENABLE
3712
        global CONFIG_GPT_NTIM
3713
        if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x4.l configure -state normal; } else {.menu19.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x4.l configure -state disabled}
3714
        global CONFIG_GPT_SW
3715
        if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x5.l configure -state normal; } else {.menu19.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x5.l configure -state disabled}
3716
        global CONFIG_GPT_TW
3717
        if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x6.l configure -state normal; } else {.menu19.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x6.l configure -state disabled}
3718
        global CONFIG_GPT_IRQ
3719
        if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x7.l configure -state normal; } else {.menu19.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x7.l configure -state disabled}
3720
        global CONFIG_GPT_SEPIRQ
3721
        if {($CONFIG_GPT_ENABLE == 1)} then {
3722
        configure_entry .menu19.config.f.x8 normal {n l y}} else {configure_entry .menu19.config.f.x8 disabled {y n l}}
3723
        global CONFIG_GPT_WDOGEN
3724
        if {($CONFIG_GPT_ENABLE == 1)} then {
3725
        configure_entry .menu19.config.f.x9 normal {n l y}} else {configure_entry .menu19.config.f.x9 disabled {y n l}}
3726
        global CONFIG_GPT_WDOG
3727
        if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu19.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x10.l configure -state normal; } else {.menu19.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x10.l configure -state disabled}
3728
}
3729
 
3730
 
3731
proc update_define_menu19 {} {
3732
        update_define_mainmenu
3733
        global CONFIG_MODULES
3734
        global tmpvar_29
3735
        global CONFIG_UA1_FIFO1
3736
        if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0}
3737
        global CONFIG_UA1_FIFO2
3738
        if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0}
3739
        global CONFIG_UA1_FIFO4
3740
        if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0}
3741
        global CONFIG_UA1_FIFO8
3742
        if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0}
3743
        global CONFIG_UA1_FIFO16
3744
        if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0}
3745
        global CONFIG_UA1_FIFO32
3746
        if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0}
3747
        global CONFIG_GPT_ENABLE
3748
        global CONFIG_GPT_NTIM
3749
        if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_NTIM "$CONFIG_GPT_NTIM" 2}
3750
        global CONFIG_GPT_SW
3751
        if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_SW "$CONFIG_GPT_SW" 8}
3752
        global CONFIG_GPT_TW
3753
        if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_TW "$CONFIG_GPT_TW" 32}
3754
        global CONFIG_GPT_IRQ
3755
        if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_IRQ "$CONFIG_GPT_IRQ" 8}
3756
        global CONFIG_GPT_SEPIRQ
3757
        if {($CONFIG_GPT_ENABLE == 1)} then {
3758
        set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ&15]} else {set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ|16]}
3759
        global CONFIG_GPT_WDOGEN
3760
        if {($CONFIG_GPT_ENABLE == 1)} then {
3761
        set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN&15]} else {set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN|16]}
3762
        global CONFIG_GPT_WDOG
3763
        if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {validate_hex CONFIG_GPT_WDOG "$CONFIG_GPT_WDOG" FFFF}
3764
}
3765
 
3766
 
3767
proc menu20 {w title} {
3768
        set oldFocus [focus]
3769
        catch {focus .menu13}
3770
        catch {destroy $w; unregister_active 20}
3771
        toplevel $w -class Dialog
3772
        wm withdraw $w
3773
        global active_menus
3774
        set active_menus [lsort -integer [linsert $active_menus end 20]]
3775
        message $w.m -width 400 -aspect 300 -text \
3776
                "ATA Controller"  -relief raised
3777
        pack $w.m -pady 10 -side top -padx 10
3778
        wm title $w "ATA Controller"
3779
 
3780
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 20; break"
3781
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu21 .menu21 \"$title\""
3782
        frame $w.f
3783
        button $w.f.back -text "OK" \
3784
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20"
3785
        button $w.f.next -text "Next" -underline 0\
3786
                -width 15 -command $nextscript
3787
        bind all  $nextscript
3788
        button $w.f.prev -text "Prev" -underline 0\
3789
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\""
3790
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break"
3791
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3792
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3793
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3794
        pack $w.topline -side top -fill x
3795
 
3796
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3797
        pack $w.botline -side bottom -fill x
3798
 
3799
        frame $w.config
3800
        pack $w.config -fill y -expand on
3801
 
3802
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3803
        pack $w.config.vscroll -side right -fill y
3804
 
3805
        canvas $w.config.canvas -height 1\
3806
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3807
                -width [expr [winfo screenwidth .] * 1 / 2]
3808
        frame $w.config.f
3809
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3810
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3811
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3812
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3813
        bind $w  "$w.config.canvas yview moveto 0;break;"
3814
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3815
        pack $w.config.canvas -side right -fill y
3816
 
3817
 
3818
        bool $w.config.f 20 0 "Enable ATA interface                 " CONFIG_ATA_ENABLE
3819
        hex $w.config.f 20 1 "ATA I/O area start address (haddr\[19:8\]) " CONFIG_ATAIO
3820
        int $w.config.f 20 2 "Interrupt number                      " CONFIG_ATAIRQ
3821
        bool $w.config.f 20 3 "Enable MWDMA support                 " CONFIG_ATA_MWDMA
3822
        int $w.config.f 20 4 "FIFO depth                            " CONFIG_ATA_FIFO
3823
 
3824
 
3825
 
3826
        focus $w
3827
        update_active
3828
        global winx; global winy
3829
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
3830
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
3831
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3832
        update idletasks
3833
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3834
 
3835
        $w.config.canvas configure \
3836
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3837
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3838
                         [expr [winfo reqheight $w.config.f] + 1]"
3839
 
3840
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3841
        set scry [expr [winfo screenh $w] / 2]
3842
        set maxy [expr [winfo screenh $w] * 3 / 4]
3843
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3844
        if [expr $winy + $canvtotal < $maxy] {
3845
                $w.config.canvas configure -height $canvtotal
3846
        } else {
3847
                $w.config.canvas configure -height [expr $scry - $winy]
3848
                }
3849
        }
3850
        update idletasks
3851
        if {[winfo exists $w]} then {
3852
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3853
        wm minsize $w [winfo width $w] 100
3854
 
3855
        wm deiconify $w
3856
}
3857
}
3858
 
3859
proc update_menu20 {} {
3860
        global CONFIG_ATA_ENABLE
3861
        global CONFIG_ATAIO
3862
        if {($CONFIG_ATA_ENABLE == 1)} then {.menu20.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x1.l configure -state normal; } else {.menu20.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x1.l configure -state disabled}
3863
        global CONFIG_ATAIRQ
3864
        if {($CONFIG_ATA_ENABLE == 1)} then {.menu20.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x2.l configure -state normal; } else {.menu20.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x2.l configure -state disabled}
3865
        global CONFIG_ATA_MWDMA
3866
        if {($CONFIG_ATA_ENABLE == 1)} then {
3867
        configure_entry .menu20.config.f.x3 normal {n l y}} else {configure_entry .menu20.config.f.x3 disabled {y n l}}
3868
        global CONFIG_ATA_FIFO
3869
        if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {.menu20.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x4.l configure -state normal; } else {.menu20.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x4.l configure -state disabled}
3870
}
3871
 
3872
 
3873
proc update_define_menu20 {} {
3874
        update_define_mainmenu
3875
        global CONFIG_MODULES
3876
        global CONFIG_ATA_ENABLE
3877
        global CONFIG_ATAIO
3878
        if {($CONFIG_ATA_ENABLE == 1)} then {validate_hex CONFIG_ATAIO "$CONFIG_ATAIO" A00}
3879
        global CONFIG_ATAIRQ
3880
        if {($CONFIG_ATA_ENABLE == 1)} then {validate_int CONFIG_ATAIRQ "$CONFIG_ATAIRQ" 10}
3881
        global CONFIG_ATA_MWDMA
3882
        if {($CONFIG_ATA_ENABLE == 1)} then {
3883
        set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA&15]} else {set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA|16]}
3884
        global CONFIG_ATA_FIFO
3885
        if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {validate_int CONFIG_ATA_FIFO "$CONFIG_ATA_FIFO" 8}
3886
}
3887
 
3888
 
3889
proc menu21 {w title} {
3890
        set oldFocus [focus]
3891
        catch {focus .menu13}
3892
        catch {destroy $w; unregister_active 21}
3893
        toplevel $w -class Dialog
3894
        wm withdraw $w
3895
        global active_menus
3896
        set active_menus [lsort -integer [linsert $active_menus end 21]]
3897
        message $w.m -width 400 -aspect 300 -text \
3898
                "Keybord and VGA interface"  -relief raised
3899
        pack $w.m -pady 10 -side top -padx 10
3900
        wm title $w "Keybord and VGA interface"
3901
 
3902
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 21; break"
3903
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 21; catch {destroy .menu13}; unregister_active 13; menu22 .menu22 \"$title\""
3904
        frame $w.f
3905
        button $w.f.back -text "OK" \
3906
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21"
3907
        button $w.f.next -text "Next" -underline 0\
3908
                -width 15 -command $nextscript
3909
        bind all  $nextscript
3910
        button $w.f.prev -text "Prev" -underline 0\
3911
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\""
3912
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\";break"
3913
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3914
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3915
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3916
        pack $w.topline -side top -fill x
3917
 
3918
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3919
        pack $w.botline -side bottom -fill x
3920
 
3921
        frame $w.config
3922
        pack $w.config -fill y -expand on
3923
 
3924
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3925
        pack $w.config.vscroll -side right -fill y
3926
 
3927
        canvas $w.config.canvas -height 1\
3928
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3929
                -width [expr [winfo screenwidth .] * 1 / 2]
3930
        frame $w.config.f
3931
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3932
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3933
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3934
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3935
        bind $w  "$w.config.canvas yview moveto 0;break;"
3936
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3937
        pack $w.config.canvas -side right -fill y
3938
 
3939
 
3940
        bool $w.config.f 21 0 "Keyboard/mouse (PS2) interface  " CONFIG_KBD_ENABLE
3941
        bool $w.config.f 21 1 "Text-based VGA interface  " CONFIG_VGA_ENABLE
3942
        bool $w.config.f 21 2 "SVGA graphical frame buffer  " CONFIG_SVGA_ENABLE
3943
 
3944
 
3945
 
3946
        focus $w
3947
        update_active
3948
        global winx; global winy
3949
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
3950
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
3951
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3952
        update idletasks
3953
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3954
 
3955
        $w.config.canvas configure \
3956
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3957
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3958
                         [expr [winfo reqheight $w.config.f] + 1]"
3959
 
3960
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3961
        set scry [expr [winfo screenh $w] / 2]
3962
        set maxy [expr [winfo screenh $w] * 3 / 4]
3963
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3964
        if [expr $winy + $canvtotal < $maxy] {
3965
                $w.config.canvas configure -height $canvtotal
3966
        } else {
3967
                $w.config.canvas configure -height [expr $scry - $winy]
3968
                }
3969
        }
3970
        update idletasks
3971
        if {[winfo exists $w]} then {
3972
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3973
        wm minsize $w [winfo width $w] 100
3974
 
3975
        wm deiconify $w
3976
}
3977
}
3978
 
3979
proc update_menu21 {} {
3980
        global CONFIG_VGA_ENABLE
3981
        global CONFIG_SVGA_ENABLE
3982
        if {($CONFIG_VGA_ENABLE == 0)} then {
3983
        configure_entry .menu21.config.f.x2 normal {n l y}} else {configure_entry .menu21.config.f.x2 disabled {y n l}}
3984
}
3985
 
3986
 
3987
proc update_define_menu21 {} {
3988
        update_define_mainmenu
3989
        global CONFIG_MODULES
3990
        global CONFIG_VGA_ENABLE
3991
        global CONFIG_SVGA_ENABLE
3992
        if {($CONFIG_VGA_ENABLE == 0)} then {
3993
        set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE&15]} else {set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE|16]}
3994
}
3995
 
3996
 
3997
menu_option menu22 22 "Gleichmann Options        "
3998
proc menu22 {w title} {
3999
        set oldFocus [focus]
4000
        catch {destroy $w; unregister_active 22}
4001
        toplevel $w -class Dialog
4002
        wm withdraw $w
4003
        global active_menus
4004
        set active_menus [lsort -integer [linsert $active_menus end 22]]
4005
        message $w.m -width 400 -aspect 300 -text \
4006
                "Gleichmann Options        "  -relief raised
4007
        pack $w.m -pady 10 -side top -padx 10
4008
        wm title $w "Gleichmann Options        "
4009
 
4010
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 22; break"
4011
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu23 .menu23 \"$title\""
4012
        frame $w.f
4013
        button $w.f.back -text "Main Menu" \
4014
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22"
4015
        button $w.f.next -text "Next" -underline 0\
4016
                -width 15 -command $nextscript
4017
        bind all  $nextscript
4018
        button $w.f.prev -text "Prev" -underline 0\
4019
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\""
4020
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break"
4021
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
4022
        pack $w.f -pady 10 -side bottom -anchor w -fill x
4023
        frame $w.topline -relief ridge -borderwidth 2 -height 2
4024
        pack $w.topline -side top -fill x
4025
 
4026
        frame $w.botline -relief ridge -borderwidth 2 -height 2
4027
        pack $w.botline -side bottom -fill x
4028
 
4029
        frame $w.config
4030
        pack $w.config -fill y -expand on
4031
 
4032
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
4033
        pack $w.config.vscroll -side right -fill y
4034
 
4035
        canvas $w.config.canvas -height 1\
4036
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
4037
                -width [expr [winfo screenwidth .] * 1 / 2]
4038
        frame $w.config.f
4039
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
4040
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
4041
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
4042
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
4043
        bind $w  "$w.config.canvas yview moveto 0;break;"
4044
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
4045
        pack $w.config.canvas -side right -fill y
4046
 
4047
 
4048
        bool $w.config.f 22 0 "AHB2HPI Bridge" CONFIG_AHB2HPI_ENABLE
4049
        bool $w.config.f 22 1 "DAC AHB" CONFIG_DAC_AHB_ENABLE
4050
 
4051
 
4052
 
4053
        focus $w
4054
        update_active
4055
        global winx; global winy
4056
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
4057
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
4058
        update idletasks
4059
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
4060
 
4061
        $w.config.canvas configure \
4062
                -width [expr [winfo reqwidth $w.config.f] + 1]\
4063
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
4064
                         [expr [winfo reqheight $w.config.f] + 1]"
4065
 
4066
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
4067
        set scry [expr [winfo screenh $w] / 2]
4068
        set maxy [expr [winfo screenh $w] * 3 / 4]
4069
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
4070
        if [expr $winy + $canvtotal < $maxy] {
4071
                $w.config.canvas configure -height $canvtotal
4072
        } else {
4073
                $w.config.canvas configure -height [expr $scry - $winy]
4074
                }
4075
        }
4076
        update idletasks
4077
        if {[winfo exists $w]} then {
4078
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
4079
        wm minsize $w [winfo width $w] 100
4080
 
4081
        wm deiconify $w
4082
}
4083
}
4084
 
4085
proc update_menu22 {} {
4086
}
4087
 
4088
 
4089
proc update_define_menu22 {} {
4090
        update_define_mainmenu
4091
        global CONFIG_MODULES
4092
}
4093
 
4094
 
4095
menu_option menu23 23 "VHDL Debugging        "
4096
proc menu23 {w title} {
4097
        set oldFocus [focus]
4098
        catch {destroy $w; unregister_active 23}
4099
        toplevel $w -class Dialog
4100
        wm withdraw $w
4101
        global active_menus
4102
        set active_menus [lsort -integer [linsert $active_menus end 23]]
4103
        message $w.m -width 400 -aspect 300 -text \
4104
                "VHDL Debugging        "  -relief raised
4105
        pack $w.m -pady 10 -side top -padx 10
4106
        wm title $w "VHDL Debugging        "
4107
 
4108
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 23; break"
4109
        set nextscript "catch {focus $oldFocus}; menu24 .menu24 \"$title\""
4110
        frame $w.f
4111
        button $w.f.back -text "Main Menu" \
4112
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23"
4113
        button $w.f.next -text "Next" -underline 0\
4114
                -width 15 -command $nextscript
4115
        $w.f.next configure -state disabled
4116
        bind all  "puts \"no more menus\" "
4117
        button $w.f.prev -text "Prev" -underline 0\
4118
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\""
4119
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break"
4120
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
4121
        pack $w.f -pady 10 -side bottom -anchor w -fill x
4122
        frame $w.topline -relief ridge -borderwidth 2 -height 2
4123
        pack $w.topline -side top -fill x
4124
 
4125
        frame $w.botline -relief ridge -borderwidth 2 -height 2
4126
        pack $w.botline -side bottom -fill x
4127
 
4128
        frame $w.config
4129
        pack $w.config -fill y -expand on
4130
 
4131
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
4132
        pack $w.config.vscroll -side right -fill y
4133
 
4134
        canvas $w.config.canvas -height 1\
4135
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
4136
                -width [expr [winfo screenwidth .] * 1 / 2]
4137
        frame $w.config.f
4138
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
4139
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
4140
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
4141
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
4142
        bind $w  "$w.config.canvas yview moveto 0;break;"
4143
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
4144
        pack $w.config.canvas -side right -fill y
4145
 
4146
 
4147
        bool $w.config.f 23 0 "Accelerated UART tracing       " CONFIG_DEBUG_UART
4148
 
4149
 
4150
 
4151
        focus $w
4152
        update_active
4153
        global winx; global winy
4154
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
4155
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
4156
        update idletasks
4157
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
4158
 
4159
        $w.config.canvas configure \
4160
                -width [expr [winfo reqwidth $w.config.f] + 1]\
4161
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
4162
                         [expr [winfo reqheight $w.config.f] + 1]"
4163
 
4164
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
4165
        set scry [expr [winfo screenh $w] / 2]
4166
        set maxy [expr [winfo screenh $w] * 3 / 4]
4167
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
4168
        if [expr $winy + $canvtotal < $maxy] {
4169
                $w.config.canvas configure -height $canvtotal
4170
        } else {
4171
                $w.config.canvas configure -height [expr $scry - $winy]
4172
                }
4173
        }
4174
        update idletasks
4175
        if {[winfo exists $w]} then {
4176
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
4177
        wm minsize $w [winfo width $w] 100
4178
 
4179
        wm deiconify $w
4180
}
4181
}
4182
 
4183
proc update_menu23 {} {
4184
}
4185
 
4186
 
4187
proc update_define_menu23 {} {
4188
        update_define_mainmenu
4189
        global CONFIG_MODULES
4190
}
4191
 
4192
 
4193
proc update_mainmenu {}  {
4194
}
4195
 
4196
 
4197
set tmpvar_0 "(not set)"
4198
set CONFIG_SYN_INFERRED 0
4199
set CONFIG_SYN_STRATIX 0
4200
set CONFIG_SYN_STRATIXII 0
4201
set CONFIG_SYN_STRATIXIII 0
4202
set CONFIG_SYN_CYCLONEIII 0
4203
set CONFIG_SYN_ALTERA 0
4204
set CONFIG_SYN_AXCEL 0
4205
set CONFIG_SYN_PROASIC 0
4206
set CONFIG_SYN_PROASICPLUS 0
4207
set CONFIG_SYN_PROASIC3 0
4208
set CONFIG_SYN_UT025CRH 0
4209
set CONFIG_SYN_ATC18 0
4210
set CONFIG_SYN_CUSTOM1 0
4211
set CONFIG_SYN_EASIC90 0
4212
set CONFIG_SYN_IHP25 0
4213
set CONFIG_SYN_IHP25RH 0
4214
set CONFIG_SYN_LATTICE 0
4215
set CONFIG_SYN_ECLIPSE 0
4216
set CONFIG_SYN_PEREGRINE 0
4217
set CONFIG_SYN_RH_LIB18T 0
4218
set CONFIG_SYN_RHUMC 0
4219
set CONFIG_SYN_SPARTAN2 0
4220
set CONFIG_SYN_SPARTAN3 0
4221
set CONFIG_SYN_SPARTAN3E 0
4222
set CONFIG_SYN_VIRTEX 0
4223
set CONFIG_SYN_VIRTEXE 0
4224
set CONFIG_SYN_VIRTEX2 0
4225
set CONFIG_SYN_VIRTEX4 0
4226
set CONFIG_SYN_VIRTEX5 0
4227
set CONFIG_SYN_UMC 0
4228
set CONFIG_SYN_TSMC90 0
4229
set tmpvar_1 "(not set)"
4230
set CONFIG_MEM_INFERRED 0
4231
set CONFIG_MEM_UMC 0
4232
set CONFIG_MEM_RHUMC 0
4233
set CONFIG_MEM_ARTISAN 0
4234
set CONFIG_MEM_CUSTOM1 0
4235
set CONFIG_MEM_VIRAGE 0
4236
set CONFIG_MEM_VIRAGE90 0
4237
set CONFIG_SYN_INFER_RAM 0
4238
set CONFIG_SYN_INFER_PADS 0
4239
set CONFIG_SYN_NO_ASYNC 0
4240
set CONFIG_SYN_SCAN 0
4241
set tmpvar_2 "(not set)"
4242
set CONFIG_CLK_INFERRED 0
4243
set CONFIG_CLK_HCLKBUF 0
4244
set CONFIG_CLK_ALTDLL 0
4245
set CONFIG_CLK_LATDLL 0
4246
set CONFIG_CLK_PRO3PLL 0
4247
set CONFIG_CLK_LIB18T 0
4248
set CONFIG_CLK_RHUMC 0
4249
set CONFIG_CLK_CLKDLL 0
4250
set CONFIG_CLK_DCM 0
4251
set CONFIG_CLK_MUL 2
4252
set CONFIG_CLK_DIV 2
4253
set CONFIG_OCLK_DIV 2
4254
set CONFIG_PCI_CLKDLL 0
4255
set CONFIG_CLK_NOFB 0
4256
set CONFIG_PCI_SYSCLK 0
4257
set CONFIG_LEON3 0
4258
set CONFIG_PROC_NUM 1
4259
set CONFIG_IU_NWINDOWS 8
4260
set CONFIG_IU_V8MULDIV 0
4261
set tmpvar_3 "(not set)"
4262
set CONFIG_IU_MUL_LATENCY_4 0
4263
set CONFIG_IU_MUL_LATENCY_5 0
4264
set CONFIG_IU_MUL_MAC 0
4265
set CONFIG_IU_SVT 0
4266
set CONFIG_IU_LDELAY 1
4267
set CONFIG_IU_WATCHPOINTS 0
4268
set CONFIG_PWD 0
4269
set CONFIG_IU_RSTADDR 00000
4270
set CONFIG_FPU_ENABLE 0
4271
set tmpvar_4 "(not set)"
4272
set CONFIG_FPU_GRFPU 0
4273
set CONFIG_FPU_GRFPULITE 0
4274
set CONFIG_FPU_MEIKO 0
4275
set tmpvar_5 "(not set)"
4276
set CONFIG_FPU_GRFPU_INFMUL 0
4277
set CONFIG_FPU_GRFPU_DWMUL 0
4278
set CONFIG_FPU_GRFPU_MODGEN 0
4279
set tmpvar_6 "(not set)"
4280
set CONFIG_FPU_GRFPC0 0
4281
set CONFIG_FPU_GRFPC1 0
4282
set CONFIG_FPU_GRFPC2 0
4283
set CONFIG_FPU_NETLIST 0
4284
set CONFIG_ICACHE_ENABLE 0
4285
set tmpvar_7 "(not set)"
4286
set CONFIG_ICACHE_ASSO1 0
4287
set CONFIG_ICACHE_ASSO2 0
4288
set CONFIG_ICACHE_ASSO3 0
4289
set CONFIG_ICACHE_ASSO4 0
4290
set tmpvar_8 "(not set)"
4291
set CONFIG_ICACHE_SZ1 0
4292
set CONFIG_ICACHE_SZ2 0
4293
set CONFIG_ICACHE_SZ4 0
4294
set CONFIG_ICACHE_SZ8 0
4295
set CONFIG_ICACHE_SZ16 0
4296
set CONFIG_ICACHE_SZ32 0
4297
set CONFIG_ICACHE_SZ64 0
4298
set CONFIG_ICACHE_SZ128 0
4299
set CONFIG_ICACHE_SZ256 0
4300
set tmpvar_9 "(not set)"
4301
set CONFIG_ICACHE_LZ16 0
4302
set CONFIG_ICACHE_LZ32 0
4303
set tmpvar_10 "(not set)"
4304
set CONFIG_ICACHE_ALGORND 0
4305
set CONFIG_ICACHE_ALGOLRR 0
4306
set CONFIG_ICACHE_ALGOLRU 0
4307
set CONFIG_ICACHE_LOCK 0
4308
set CONFIG_ICACHE_LRAM 0
4309
set tmpvar_11 "(not set)"
4310
set CONFIG_ICACHE_LRAM_SZ1 0
4311
set CONFIG_ICACHE_LRAM_SZ2 0
4312
set CONFIG_ICACHE_LRAM_SZ4 0
4313
set CONFIG_ICACHE_LRAM_SZ8 0
4314
set CONFIG_ICACHE_LRAM_SZ16 0
4315
set CONFIG_ICACHE_LRAM_SZ32 0
4316
set CONFIG_ICACHE_LRAM_SZ64 0
4317
set CONFIG_ICACHE_LRAM_SZ128 0
4318
set CONFIG_ICACHE_LRAM_SZ256 0
4319
set CONFIG_ICACHE_LRSTART 8e
4320
set CONFIG_DCACHE_ENABLE 0
4321
set tmpvar_12 "(not set)"
4322
set CONFIG_DCACHE_ASSO1 0
4323
set CONFIG_DCACHE_ASSO2 0
4324
set CONFIG_DCACHE_ASSO3 0
4325
set CONFIG_DCACHE_ASSO4 0
4326
set tmpvar_13 "(not set)"
4327
set CONFIG_DCACHE_SZ1 0
4328
set CONFIG_DCACHE_SZ2 0
4329
set CONFIG_DCACHE_SZ4 0
4330
set CONFIG_DCACHE_SZ8 0
4331
set CONFIG_DCACHE_SZ16 0
4332
set CONFIG_DCACHE_SZ32 0
4333
set CONFIG_DCACHE_SZ64 0
4334
set CONFIG_DCACHE_SZ128 0
4335
set CONFIG_DCACHE_SZ256 0
4336
set tmpvar_14 "(not set)"
4337
set CONFIG_DCACHE_LZ16 0
4338
set CONFIG_DCACHE_LZ32 0
4339
set tmpvar_15 "(not set)"
4340
set CONFIG_DCACHE_ALGORND 0
4341
set CONFIG_DCACHE_ALGOLRR 0
4342
set CONFIG_DCACHE_ALGOLRU 0
4343
set CONFIG_DCACHE_LOCK 0
4344
set CONFIG_DCACHE_SNOOP 0
4345
set CONFIG_DCACHE_SNOOP_FAST 0
4346
set CONFIG_DCACHE_SNOOP_SEPTAG 0
4347
set CONFIG_CACHE_FIXED 0
4348
set CONFIG_DCACHE_LRAM 0
4349
set tmpvar_16 "(not set)"
4350
set CONFIG_DCACHE_LRAM_SZ1 0
4351
set CONFIG_DCACHE_LRAM_SZ2 0
4352
set CONFIG_DCACHE_LRAM_SZ4 0
4353
set CONFIG_DCACHE_LRAM_SZ8 0
4354
set CONFIG_DCACHE_LRAM_SZ16 0
4355
set CONFIG_DCACHE_LRAM_SZ32 0
4356
set CONFIG_DCACHE_LRAM_SZ64 0
4357
set CONFIG_DCACHE_LRAM_SZ128 0
4358
set CONFIG_DCACHE_LRAM_SZ256 0
4359
set CONFIG_DCACHE_LRSTART 8f
4360
set CONFIG_MMU_ENABLE 0
4361
set tmpvar_17 "(not set)"
4362
set CONFIG_MMU_COMBINED 0
4363
set CONFIG_MMU_SPLIT 0
4364
set tmpvar_18 "(not set)"
4365
set CONFIG_MMU_REPARRAY 0
4366
set CONFIG_MMU_REPINCREMENT 0
4367
set tmpvar_19 "(not set)"
4368
set CONFIG_MMU_I2 0
4369
set CONFIG_MMU_I4 0
4370
set CONFIG_MMU_I8 0
4371
set CONFIG_MMU_I16 0
4372
set CONFIG_MMU_I32 0
4373
set tmpvar_20 "(not set)"
4374
set CONFIG_MMU_D2 0
4375
set CONFIG_MMU_D4 0
4376
set CONFIG_MMU_D8 0
4377
set CONFIG_MMU_D16 0
4378
set CONFIG_MMU_D32 0
4379
set CONFIG_MMU_FASTWB 0
4380
set CONFIG_DSU_ENABLE 0
4381
set CONFIG_DSU_ITRACE 0
4382
set tmpvar_21 "(not set)"
4383
set CONFIG_DSU_ITRACESZ1 0
4384
set CONFIG_DSU_ITRACESZ2 0
4385
set CONFIG_DSU_ITRACESZ4 0
4386
set CONFIG_DSU_ITRACESZ8 0
4387
set CONFIG_DSU_ITRACESZ16 0
4388
set CONFIG_DSU_ATRACE 0
4389
set tmpvar_22 "(not set)"
4390
set CONFIG_DSU_ATRACESZ1 0
4391
set CONFIG_DSU_ATRACESZ2 0
4392
set CONFIG_DSU_ATRACESZ4 0
4393
set CONFIG_DSU_ATRACESZ8 0
4394
set CONFIG_DSU_ATRACESZ16 0
4395
set CONFIG_IU_DISAS 0
4396
set CONFIG_IU_DISAS_NET 0
4397
set CONFIG_DEBUG_PC32 0
4398
set CONFIG_AHB_DEFMST 0
4399
set CONFIG_AHB_RROBIN 0
4400
set CONFIG_AHB_SPLIT 0
4401
set CONFIG_AHB_IOADDR FFF
4402
set CONFIG_APB_HADDR 800
4403
set CONFIG_AHB_MON 0
4404
set CONFIG_AHB_MONERR 0
4405
set CONFIG_AHB_MONWAR 0
4406
set CONFIG_DSU_UART 0
4407
set CONFIG_DSU_JTAG 0
4408
set CONFIG_DSU_ETH 0
4409
set tmpvar_24 "(not set)"
4410
set CONFIG_DSU_ETHSZ1 0
4411
set CONFIG_DSU_ETHSZ2 0
4412
set CONFIG_DSU_ETHSZ4 0
4413
set CONFIG_DSU_ETHSZ8 0
4414
set CONFIG_DSU_ETHSZ16 0
4415
set CONFIG_DSU_IPMSB C0A8
4416
set CONFIG_DSU_IPLSB 0033
4417
set CONFIG_DSU_ETHMSB 00007A
4418
set CONFIG_DSU_ETHLSB CC0001
4419
set CONFIG_DSU_ETH_PROG 0
4420
set CONFIG_SRCTRL 0
4421
set CONFIG_SRCTRL_8BIT 0
4422
set CONFIG_SRCTRL_PROMWS 3
4423
set CONFIG_SRCTRL_RAMWS 0
4424
set CONFIG_SRCTRL_IOWS 0
4425
set CONFIG_SRCTRL_RMW 0
4426
set tmpvar_25 "(not set)"
4427
set CONFIG_SRCTRL_SRBANKS1 0
4428
set CONFIG_SRCTRL_SRBANKS2 0
4429
set CONFIG_SRCTRL_SRBANKS3 0
4430
set CONFIG_SRCTRL_SRBANKS4 0
4431
set CONFIG_SRCTRL_SRBANKS5 0
4432
set tmpvar_26 "(not set)"
4433
set CONFIG_SRCTRL_BANKSZ0 0
4434
set CONFIG_SRCTRL_BANKSZ1 0
4435
set CONFIG_SRCTRL_BANKSZ2 0
4436
set CONFIG_SRCTRL_BANKSZ3 0
4437
set CONFIG_SRCTRL_BANKSZ4 0
4438
set CONFIG_SRCTRL_BANKSZ5 0
4439
set CONFIG_SRCTRL_BANKSZ6 0
4440
set CONFIG_SRCTRL_BANKSZ7 0
4441
set CONFIG_SRCTRL_BANKSZ8 0
4442
set CONFIG_SRCTRL_BANKSZ9 0
4443
set CONFIG_SRCTRL_BANKSZ10 0
4444
set CONFIG_SRCTRL_BANKSZ11 0
4445
set CONFIG_SRCTRL_BANKSZ12 0
4446
set CONFIG_SRCTRL_BANKSZ13 0
4447
set CONFIG_SRCTRL_ROMASEL 19
4448
set CONFIG_MCTRL_LEON2 0
4449
set CONFIG_MCTRL_8BIT 0
4450
set CONFIG_MCTRL_16BIT 0
4451
set CONFIG_MCTRL_5CS 0
4452
set CONFIG_MCTRL_SDRAM 0
4453
set CONFIG_MCTRL_SDRAM_SEPBUS 0
4454
set CONFIG_MCTRL_SDRAM_BUS64 0
4455
set CONFIG_MCTRL_SDRAM_INVCLK 0
4456
set CONFIG_MCTRL_PAGE 0
4457
set CONFIG_MCTRL_PROGPAGE 0
4458
set CONFIG_AHBROM_ENABLE 0
4459
set CONFIG_AHBROM_START 000
4460
set CONFIG_AHBROM_PIPE 0
4461
set CONFIG_AHBRAM_ENABLE 0
4462
set tmpvar_27 "(not set)"
4463
set CONFIG_AHBRAM_SZ1 0
4464
set CONFIG_AHBRAM_SZ2 0
4465
set CONFIG_AHBRAM_SZ4 0
4466
set CONFIG_AHBRAM_SZ8 0
4467
set CONFIG_AHBRAM_SZ16 0
4468
set CONFIG_AHBRAM_SZ32 0
4469
set CONFIG_AHBRAM_SZ64 0
4470
set CONFIG_AHBRAM_START A00
4471
set CONFIG_GRETH_ENABLE 0
4472
set CONFIG_GRETH_GIGA 0
4473
set tmpvar_28 "(not set)"
4474
set CONFIG_GRETH_FIFO4 0
4475
set CONFIG_GRETH_FIFO8 0
4476
set CONFIG_GRETH_FIFO16 0
4477
set CONFIG_GRETH_FIFO32 0
4478
set CONFIG_GRETH_FIFO64 0
4479
set CONFIG_UART1_ENABLE 0
4480
set tmpvar_29 "(not set)"
4481
set CONFIG_UA1_FIFO1 0
4482
set CONFIG_UA1_FIFO2 0
4483
set CONFIG_UA1_FIFO4 0
4484
set CONFIG_UA1_FIFO8 0
4485
set CONFIG_UA1_FIFO16 0
4486
set CONFIG_UA1_FIFO32 0
4487
set CONFIG_IRQ3_ENABLE 0
4488
set CONFIG_GPT_ENABLE 0
4489
set CONFIG_GPT_NTIM 2
4490
set CONFIG_GPT_SW 8
4491
set CONFIG_GPT_TW 32
4492
set CONFIG_GPT_IRQ 8
4493
set CONFIG_GPT_SEPIRQ 0
4494
set CONFIG_GPT_WDOGEN 0
4495
set CONFIG_GPT_WDOG FFFF
4496
set CONFIG_ATA_ENABLE 0
4497
set CONFIG_ATAIO A00
4498
set CONFIG_ATAIRQ 10
4499
set CONFIG_ATA_MWDMA 0
4500
set CONFIG_ATA_FIFO 8
4501
set CONFIG_KBD_ENABLE 0
4502
set CONFIG_VGA_ENABLE 0
4503
set CONFIG_SVGA_ENABLE 0
4504
set CONFIG_AHB2HPI_ENABLE 0
4505
set CONFIG_DAC_AHB_ENABLE 0
4506
set CONFIG_DEBUG_UART 0
4507
set CONFIG_SYN_ARTISAN 4
4508
set CONFIG_PCI_ENABLE 4
4509
set CONFIG_HAS_SHARED_GRFPU 4
4510
set CONFIG_FPU_GRFPU_SH 4
4511
set CONFIG_LEON3FT_PRESENT 4
4512
set CONFIG_LEON3FT_EN 4
4513
set CONFIG_IUFT_NONE 4
4514
set CONFIG_IUFT_PAR 4
4515
set CONFIG_IUFT_DMR 4
4516
set CONFIG_IUFT_BCH 4
4517
set CONFIG_IUFT_TMR 4
4518
set CONFIG_FPUFT_EN 4
4519
set CONFIG_RF_ERRINJ 4
4520
set CONFIG_CACHE_FT_EN 4
4521
set CONFIG_CACHE_ERRINJ 4
4522
set CONFIG_LEON3_NETLIST 4
4523
set CONFIG_MODULES 4
4524
proc writeconfig {file1 file2} {
4525
        set cfg [open $file1 w]
4526
        set autocfg [open $file2 w]
4527
        set notmod 1
4528
        set notset 0
4529
        puts $cfg "#"
4530
        puts $cfg "# Automatically generated make config: don't edit"
4531
        puts $cfg "#"
4532
        puts $autocfg "/*"
4533
        puts $autocfg " * Automatically generated C config: don't edit"
4534
        puts $autocfg " */"
4535
        puts $autocfg "#define AUTOCONF_INCLUDED"
4536
        write_comment $cfg $autocfg "Synthesis      "
4537
        global tmpvar_0
4538
 
4539
        if { $tmpvar_0 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_SYN_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_INFERRED 0 [list $notmod] 2 }
4540
        if { $tmpvar_0 == "Altera-Stratix" } then { write_tristate $cfg $autocfg CONFIG_SYN_STRATIX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_STRATIX 0 [list $notmod] 2 }
4541
        if { $tmpvar_0 == "Altera-StratixII" } then { write_tristate $cfg $autocfg CONFIG_SYN_STRATIXII 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_STRATIXII 0 [list $notmod] 2 }
4542
        if { $tmpvar_0 == "Altera-StratixIII" } then { write_tristate $cfg $autocfg CONFIG_SYN_STRATIXIII 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_STRATIXIII 0 [list $notmod] 2 }
4543
        if { $tmpvar_0 == "Altera-CycloneIII" } then { write_tristate $cfg $autocfg CONFIG_SYN_CYCLONEIII 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_CYCLONEIII 0 [list $notmod] 2 }
4544
        if { $tmpvar_0 == "Altera-Others" } then { write_tristate $cfg $autocfg CONFIG_SYN_ALTERA 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ALTERA 0 [list $notmod] 2 }
4545
        if { $tmpvar_0 == "Actel-Axcelerator" } then { write_tristate $cfg $autocfg CONFIG_SYN_AXCEL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_AXCEL 0 [list $notmod] 2 }
4546
        if { $tmpvar_0 == "Actel-Proasic" } then { write_tristate $cfg $autocfg CONFIG_SYN_PROASIC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_PROASIC 0 [list $notmod] 2 }
4547
        if { $tmpvar_0 == "Actel-ProasicPlus" } then { write_tristate $cfg $autocfg CONFIG_SYN_PROASICPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_PROASICPLUS 0 [list $notmod] 2 }
4548
        if { $tmpvar_0 == "Actel-Proasic3" } then { write_tristate $cfg $autocfg CONFIG_SYN_PROASIC3 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_PROASIC3 0 [list $notmod] 2 }
4549
        if { $tmpvar_0 == "Aeroflex-UT025CRH" } then { write_tristate $cfg $autocfg CONFIG_SYN_UT025CRH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UT025CRH 0 [list $notmod] 2 }
4550
        if { $tmpvar_0 == "Atmel-ATC18" } then { write_tristate $cfg $autocfg CONFIG_SYN_ATC18 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ATC18 0 [list $notmod] 2 }
4551
        if { $tmpvar_0 == "Custom1" } then { write_tristate $cfg $autocfg CONFIG_SYN_CUSTOM1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_CUSTOM1 0 [list $notmod] 2 }
4552
        if { $tmpvar_0 == "eASIC90" } then { write_tristate $cfg $autocfg CONFIG_SYN_EASIC90 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_EASIC90 0 [list $notmod] 2 }
4553
        if { $tmpvar_0 == "IHP25" } then { write_tristate $cfg $autocfg CONFIG_SYN_IHP25 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_IHP25 0 [list $notmod] 2 }
4554
        if { $tmpvar_0 == "IHP25RH" } then { write_tristate $cfg $autocfg CONFIG_SYN_IHP25RH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_IHP25RH 0 [list $notmod] 2 }
4555
        if { $tmpvar_0 == "Lattice-EC/ECP/XP" } then { write_tristate $cfg $autocfg CONFIG_SYN_LATTICE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_LATTICE 0 [list $notmod] 2 }
4556
        if { $tmpvar_0 == "Quicklogic-Eclipse" } then { write_tristate $cfg $autocfg CONFIG_SYN_ECLIPSE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ECLIPSE 0 [list $notmod] 2 }
4557
        if { $tmpvar_0 == "Peregrine" } then { write_tristate $cfg $autocfg CONFIG_SYN_PEREGRINE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_PEREGRINE 0 [list $notmod] 2 }
4558
        if { $tmpvar_0 == "RH-LIB18T" } then { write_tristate $cfg $autocfg CONFIG_SYN_RH_LIB18T 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_RH_LIB18T 0 [list $notmod] 2 }
4559
        if { $tmpvar_0 == "RH-UMC" } then { write_tristate $cfg $autocfg CONFIG_SYN_RHUMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_RHUMC 0 [list $notmod] 2 }
4560
        if { $tmpvar_0 == "Xilinx-Spartan2" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN2 0 [list $notmod] 2 }
4561
        if { $tmpvar_0 == "Xilinx-Spartan3" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN3 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN3 0 [list $notmod] 2 }
4562
        if { $tmpvar_0 == "Xilinx-Spartan3E" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN3E 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN3E 0 [list $notmod] 2 }
4563
        if { $tmpvar_0 == "Xilinx-Virtex" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX 0 [list $notmod] 2 }
4564
        if { $tmpvar_0 == "Xilinx-VirtexE" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEXE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEXE 0 [list $notmod] 2 }
4565
        if { $tmpvar_0 == "Xilinx-Virtex2" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX2 0 [list $notmod] 2 }
4566
        if { $tmpvar_0 == "Xilinx-Virtex4" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX4 0 [list $notmod] 2 }
4567
        if { $tmpvar_0 == "Xilinx-Virtex5" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX5 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX5 0 [list $notmod] 2 }
4568
        if { $tmpvar_0 == "UMC18" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 }
4569
        if { $tmpvar_0 == "TSMC90" } then { write_tristate $cfg $autocfg CONFIG_SYN_TSMC90 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TSMC90 0 [list $notmod] 2 }
4570
        global tmpvar_1
4571
        global CONFIG_SYN_INFERRED
4572
        global CONFIG_SYN_CUSTOM1
4573
        global CONFIG_SYN_ATC18
4574
        global CONFIG_SYN_TSMC90
4575
        global CONFIG_SYN_UMC
4576
        global CONFIG_SYN_RHUMC
4577
        global CONFIG_SYN_ARTISAN
4578
        if {($CONFIG_SYN_INFERRED == 1 || $CONFIG_SYN_CUSTOM1 == 1 || $CONFIG_SYN_ATC18 == 1 || $CONFIG_SYN_TSMC90 == 1 || $CONFIG_SYN_UMC == 1 || $CONFIG_SYN_RHUMC == 1 || $CONFIG_SYN_ARTISAN == 1)} then {
4579
        if { $tmpvar_1 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_MEM_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MEM_INFERRED 0 [list $notmod] 2 }
4580
        if { $tmpvar_1 == "UMC18" } then { write_tristate $cfg $autocfg CONFIG_MEM_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MEM_UMC 0 [list $notmod] 2 }
4581
        if { $tmpvar_1 == "RH-UMC" } then { write_tristate $cfg $autocfg CONFIG_MEM_RHUMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MEM_RHUMC 0 [list $notmod] 2 }
4582
        if { $tmpvar_1 == "Artisan" } then { write_tristate $cfg $autocfg CONFIG_MEM_ARTISAN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MEM_ARTISAN 0 [list $notmod] 2 }
4583
        if { $tmpvar_1 == "Custom1" } then { write_tristate $cfg $autocfg CONFIG_MEM_CUSTOM1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MEM_CUSTOM1 0 [list $notmod] 2 }
4584
        if { $tmpvar_1 == "Virage" } then { write_tristate $cfg $autocfg CONFIG_MEM_VIRAGE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MEM_VIRAGE 0 [list $notmod] 2 }
4585
        if { $tmpvar_1 == "Virage-TSMC90" } then { write_tristate $cfg $autocfg CONFIG_MEM_VIRAGE90 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MEM_VIRAGE90 0 [list $notmod] 2 }}
4586
        global CONFIG_SYN_INFER_RAM
4587
        if {($CONFIG_SYN_INFERRED != 1)} then {write_tristate $cfg $autocfg CONFIG_SYN_INFER_RAM $CONFIG_SYN_INFER_RAM [list $notmod] 2 }
4588
        global CONFIG_SYN_INFER_PADS
4589
        if {($CONFIG_SYN_INFERRED != 1)} then {write_tristate $cfg $autocfg CONFIG_SYN_INFER_PADS $CONFIG_SYN_INFER_PADS [list $notmod] 2 }
4590
        global CONFIG_SYN_NO_ASYNC
4591
        write_tristate $cfg $autocfg CONFIG_SYN_NO_ASYNC $CONFIG_SYN_NO_ASYNC [list $notmod] 2
4592
        global CONFIG_SYN_SCAN
4593
        write_tristate $cfg $autocfg CONFIG_SYN_SCAN $CONFIG_SYN_SCAN [list $notmod] 2
4594
        write_comment $cfg $autocfg "Clock generation"
4595
        global tmpvar_2
4596
 
4597
        if { $tmpvar_2 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_CLK_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_INFERRED 0 [list $notmod] 2 }
4598
        if { $tmpvar_2 == "Actel-HCLKBUF" } then { write_tristate $cfg $autocfg CONFIG_CLK_HCLKBUF 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_HCLKBUF 0 [list $notmod] 2 }
4599
        if { $tmpvar_2 == "Altera-ALTPLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_ALTDLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_ALTDLL 0 [list $notmod] 2 }
4600
        if { $tmpvar_2 == "Lattice-EXPLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_LATDLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_LATDLL 0 [list $notmod] 2 }
4601
        if { $tmpvar_2 == "Proasic3-PLLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_PRO3PLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_PRO3PLL 0 [list $notmod] 2 }
4602
        if { $tmpvar_2 == "RH-LIB18T-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_LIB18T 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_LIB18T 0 [list $notmod] 2 }
4603
        if { $tmpvar_2 == "DARE-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_RHUMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_RHUMC 0 [list $notmod] 2 }
4604
        if { $tmpvar_2 == "Xilinx-CLKDLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKDLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKDLL 0 [list $notmod] 2 }
4605
        if { $tmpvar_2 == "Xilinx-DCM" } then { write_tristate $cfg $autocfg CONFIG_CLK_DCM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_DCM 0 [list $notmod] 2 }
4606
        global CONFIG_CLK_MUL
4607
        global CONFIG_CLK_DCM
4608
        global CONFIG_CLK_ALTDLL
4609
        global CONFIG_CLK_LATDLL
4610
        global CONFIG_CLK_PRO3PLL
4611
        global CONFIG_CLK_CLKDLL
4612
        global CONFIG_CLK_LIB18T
4613
        if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod }
4614
        global CONFIG_CLK_DIV
4615
        if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod }
4616
        global CONFIG_OCLK_DIV
4617
        if {($CONFIG_CLK_PRO3PLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod }
4618
        global CONFIG_PCI_CLKDLL
4619
        if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_CLKDLL $CONFIG_PCI_CLKDLL [list $notmod] 2 }
4620
        global CONFIG_CLK_NOFB
4621
        if {($CONFIG_CLK_DCM == 1)} then {write_tristate $cfg $autocfg CONFIG_CLK_NOFB $CONFIG_CLK_NOFB [list $notmod] 2 }
4622
        global CONFIG_PCI_SYSCLK
4623
        global CONFIG_PCI_ENABLE
4624
        if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 }
4625
        global CONFIG_LEON3
4626
        write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2
4627
        global CONFIG_PROC_NUM
4628
        if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod }
4629
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor            "}
4630
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit                                           "}
4631
        global CONFIG_IU_NWINDOWS
4632
        if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod }
4633
        global CONFIG_IU_V8MULDIV
4634
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 }
4635
        global tmpvar_3
4636
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {
4637
        if { $tmpvar_3 == "4-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_4 0 [list $notmod] 2 }
4638
        if { $tmpvar_3 == "5-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 0 [list $notmod] 2 }}
4639
        global CONFIG_IU_MUL_MAC
4640
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 }
4641
        global CONFIG_IU_SVT
4642
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 }
4643
        global CONFIG_IU_LDELAY
4644
        if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod }
4645
        global CONFIG_IU_WATCHPOINTS
4646
        if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod }
4647
        global CONFIG_PWD
4648
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 }
4649
        global CONFIG_IU_RSTADDR
4650
        if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod }
4651
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"}
4652
        global CONFIG_FPU_ENABLE
4653
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 }
4654
        global tmpvar_4
4655
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {
4656
        if { $tmpvar_4 == "GRFPU" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU 0 [list $notmod] 2 }
4657
        if { $tmpvar_4 == "GRFPU-LITE" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPULITE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPULITE 0 [list $notmod] 2 }
4658
        if { $tmpvar_4 == "Meiko" } then { write_tristate $cfg $autocfg CONFIG_FPU_MEIKO 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_MEIKO 0 [list $notmod] 2 }}
4659
        global tmpvar_5
4660
        global CONFIG_FPU_GRFPU
4661
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {
4662
        if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL 0 [list $notmod] 2 }
4663
        if { $tmpvar_5 == "DW" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_DWMUL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_DWMUL 0 [list $notmod] 2 }
4664
        if { $tmpvar_5 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 }}
4665
        global tmpvar_6
4666
        global CONFIG_FPU_GRFPULITE
4667
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {
4668
        if { $tmpvar_6 == "Simple" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPC0 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPC0 0 [list $notmod] 2 }
4669
        if { $tmpvar_6 == "Data-forwarding" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPC1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPC1 0 [list $notmod] 2 }
4670
        if { $tmpvar_6 == "Non-blocking" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPC2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPC2 0 [list $notmod] 2 }}
4671
        global CONFIG_FPU_NETLIST
4672
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 }
4673
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"}
4674
        global CONFIG_ICACHE_ENABLE
4675
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 }
4676
        global tmpvar_7
4677
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {
4678
        if { $tmpvar_7 == "1" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 0 [list $notmod] 2 }
4679
        if { $tmpvar_7 == "2" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 0 [list $notmod] 2 }
4680
        if { $tmpvar_7 == "3" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO3 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO3 0 [list $notmod] 2 }
4681
        if { $tmpvar_7 == "4" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO4 0 [list $notmod] 2 }}
4682
        global tmpvar_8
4683
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {
4684
        if { $tmpvar_8 == "1" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ1 0 [list $notmod] 2 }
4685
        if { $tmpvar_8 == "2" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 0 [list $notmod] 2 }
4686
        if { $tmpvar_8 == "4" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 0 [list $notmod] 2 }
4687
        if { $tmpvar_8 == "8" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ8 0 [list $notmod] 2 }
4688
        if { $tmpvar_8 == "16" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ16 0 [list $notmod] 2 }
4689
        if { $tmpvar_8 == "32" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ32 0 [list $notmod] 2 }
4690
        if { $tmpvar_8 == "64" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ64 0 [list $notmod] 2 }
4691
        if { $tmpvar_8 == "128" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ128 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ128 0 [list $notmod] 2 }
4692
        if { $tmpvar_8 == "256" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ256 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_SZ256 0 [list $notmod] 2 }}
4693
        global tmpvar_9
4694
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {
4695
        if { $tmpvar_9 == "16" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 0 [list $notmod] 2 }
4696
        if { $tmpvar_9 == "32" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LZ32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LZ32 0 [list $notmod] 2 }}
4697
        global tmpvar_10
4698
        global CONFIG_ICACHE_ASSO1
4699
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {
4700
        if { $tmpvar_10 == "Random" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND 0 [list $notmod] 2 }
4701
        if { $tmpvar_10 == "LRR" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRR 0 [list $notmod] 2 }
4702
        if { $tmpvar_10 == "LRU" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU 0 [list $notmod] 2 }}
4703
        global CONFIG_ICACHE_LOCK
4704
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 }
4705
        global CONFIG_ICACHE_LRAM
4706
        global CONFIG_MMU_ENABLE
4707
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 }
4708
        global tmpvar_11
4709
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {
4710
        if { $tmpvar_11 == "1" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ1 0 [list $notmod] 2 }
4711
        if { $tmpvar_11 == "2" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ2 0 [list $notmod] 2 }
4712
        if { $tmpvar_11 == "4" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ4 0 [list $notmod] 2 }
4713
        if { $tmpvar_11 == "8" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ8 0 [list $notmod] 2 }
4714
        if { $tmpvar_11 == "16" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ16 0 [list $notmod] 2 }
4715
        if { $tmpvar_11 == "32" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ32 0 [list $notmod] 2 }
4716
        if { $tmpvar_11 == "64" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ64 0 [list $notmod] 2 }
4717
        if { $tmpvar_11 == "128" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ128 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ128 0 [list $notmod] 2 }
4718
        if { $tmpvar_11 == "256" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ256 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM_SZ256 0 [list $notmod] 2 }}
4719
        global CONFIG_ICACHE_LRSTART
4720
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod }
4721
        global CONFIG_DCACHE_ENABLE
4722
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 }
4723
        global tmpvar_12
4724
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
4725
        if { $tmpvar_12 == "1" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 0 [list $notmod] 2 }
4726
        if { $tmpvar_12 == "2" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 0 [list $notmod] 2 }
4727
        if { $tmpvar_12 == "3" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO3 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO3 0 [list $notmod] 2 }
4728
        if { $tmpvar_12 == "4" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO4 0 [list $notmod] 2 }}
4729
        global tmpvar_13
4730
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
4731
        if { $tmpvar_13 == "1" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ1 0 [list $notmod] 2 }
4732
        if { $tmpvar_13 == "2" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 0 [list $notmod] 2 }
4733
        if { $tmpvar_13 == "4" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 0 [list $notmod] 2 }
4734
        if { $tmpvar_13 == "8" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ8 0 [list $notmod] 2 }
4735
        if { $tmpvar_13 == "16" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ16 0 [list $notmod] 2 }
4736
        if { $tmpvar_13 == "32" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ32 0 [list $notmod] 2 }
4737
        if { $tmpvar_13 == "64" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ64 0 [list $notmod] 2 }
4738
        if { $tmpvar_13 == "128" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ128 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ128 0 [list $notmod] 2 }
4739
        if { $tmpvar_13 == "256" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ256 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_SZ256 0 [list $notmod] 2 }}
4740
        global tmpvar_14
4741
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
4742
        if { $tmpvar_14 == "16" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 0 [list $notmod] 2 }
4743
        if { $tmpvar_14 == "32" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LZ32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LZ32 0 [list $notmod] 2 }}
4744
        global tmpvar_15
4745
        global CONFIG_DCACHE_ASSO1
4746
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {
4747
        if { $tmpvar_15 == "Random" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND 0 [list $notmod] 2 }
4748
        if { $tmpvar_15 == "LRR" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRR 0 [list $notmod] 2 }
4749
        if { $tmpvar_15 == "LRU" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU 0 [list $notmod] 2 }}
4750
        global CONFIG_DCACHE_LOCK
4751
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 }
4752
        global CONFIG_DCACHE_SNOOP
4753
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 }
4754
        global CONFIG_DCACHE_SNOOP_FAST
4755
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONFIG_DCACHE_SNOOP_FAST [list $notmod] 2 }
4756
        global CONFIG_DCACHE_SNOOP_SEPTAG
4757
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONFIG_DCACHE_SNOOP_SEPTAG [list $notmod] 2 }
4758
        global CONFIG_CACHE_FIXED
4759
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod }
4760
        global CONFIG_DCACHE_LRAM
4761
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 }
4762
        global tmpvar_16
4763
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {
4764
        if { $tmpvar_16 == "1" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ1 0 [list $notmod] 2 }
4765
        if { $tmpvar_16 == "2" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ2 0 [list $notmod] 2 }
4766
        if { $tmpvar_16 == "4" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ4 0 [list $notmod] 2 }
4767
        if { $tmpvar_16 == "8" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ8 0 [list $notmod] 2 }
4768
        if { $tmpvar_16 == "16" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ16 0 [list $notmod] 2 }
4769
        if { $tmpvar_16 == "32" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ32 0 [list $notmod] 2 }
4770
        if { $tmpvar_16 == "64" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ64 0 [list $notmod] 2 }
4771
        if { $tmpvar_16 == "128" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ128 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ128 0 [list $notmod] 2 }
4772
        if { $tmpvar_16 == "256" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ256 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM_SZ256 0 [list $notmod] 2 }}
4773
        global CONFIG_DCACHE_LRSTART
4774
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod }
4775
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"}
4776
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 }
4777
        global tmpvar_17
4778
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {
4779
        if { $tmpvar_17 == "combined" } then { write_tristate $cfg $autocfg CONFIG_MMU_COMBINED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_COMBINED 0 [list $notmod] 2 }
4780
        if { $tmpvar_17 == "split" } then { write_tristate $cfg $autocfg CONFIG_MMU_SPLIT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_SPLIT 0 [list $notmod] 2 }}
4781
        global tmpvar_18
4782
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {
4783
        if { $tmpvar_18 == "LRU" } then { write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY 0 [list $notmod] 2 }
4784
        if { $tmpvar_18 == "Increment" } then { write_tristate $cfg $autocfg CONFIG_MMU_REPINCREMENT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_REPINCREMENT 0 [list $notmod] 2 }}
4785
        global tmpvar_19
4786
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {
4787
        if { $tmpvar_19 == "2" } then { write_tristate $cfg $autocfg CONFIG_MMU_I2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I2 0 [list $notmod] 2 }
4788
        if { $tmpvar_19 == "4" } then { write_tristate $cfg $autocfg CONFIG_MMU_I4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I4 0 [list $notmod] 2 }
4789
        if { $tmpvar_19 == "8" } then { write_tristate $cfg $autocfg CONFIG_MMU_I8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I8 0 [list $notmod] 2 }
4790
        if { $tmpvar_19 == "16" } then { write_tristate $cfg $autocfg CONFIG_MMU_I16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I16 0 [list $notmod] 2 }
4791
        if { $tmpvar_19 == "32" } then { write_tristate $cfg $autocfg CONFIG_MMU_I32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I32 0 [list $notmod] 2 }}
4792
        global tmpvar_20
4793
        global CONFIG_MMU_SPLIT
4794
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {
4795
        if { $tmpvar_20 == "2" } then { write_tristate $cfg $autocfg CONFIG_MMU_D2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D2 0 [list $notmod] 2 }
4796
        if { $tmpvar_20 == "4" } then { write_tristate $cfg $autocfg CONFIG_MMU_D4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D4 0 [list $notmod] 2 }
4797
        if { $tmpvar_20 == "8" } then { write_tristate $cfg $autocfg CONFIG_MMU_D8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D8 0 [list $notmod] 2 }
4798
        if { $tmpvar_20 == "16" } then { write_tristate $cfg $autocfg CONFIG_MMU_D16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D16 0 [list $notmod] 2 }
4799
        if { $tmpvar_20 == "32" } then { write_tristate $cfg $autocfg CONFIG_MMU_D32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D32 0 [list $notmod] 2 }}
4800
        global CONFIG_MMU_FASTWB
4801
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 }
4802
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit        "}
4803
        global CONFIG_DSU_ENABLE
4804
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 }
4805
        global CONFIG_DSU_ITRACE
4806
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 }
4807
        global tmpvar_21
4808
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {
4809
        if { $tmpvar_21 == "1" } then { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ1 0 [list $notmod] 2 }
4810
        if { $tmpvar_21 == "2" } then { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ2 0 [list $notmod] 2 }
4811
        if { $tmpvar_21 == "4" } then { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 0 [list $notmod] 2 }
4812
        if { $tmpvar_21 == "8" } then { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ8 0 [list $notmod] 2 }
4813
        if { $tmpvar_21 == "16" } then { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ16 0 [list $notmod] 2 }}
4814
        global CONFIG_DSU_ATRACE
4815
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 }
4816
        global tmpvar_22
4817
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {
4818
        if { $tmpvar_22 == "1" } then { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ1 0 [list $notmod] 2 }
4819
        if { $tmpvar_22 == "2" } then { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ2 0 [list $notmod] 2 }
4820
        if { $tmpvar_22 == "4" } then { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 0 [list $notmod] 2 }
4821
        if { $tmpvar_22 == "8" } then { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ8 0 [list $notmod] 2 }
4822
        if { $tmpvar_22 == "16" } then { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ16 0 [list $notmod] 2 }}
4823
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance  "}
4824
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "VHDL debug settings       "}
4825
        global CONFIG_IU_DISAS
4826
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS $CONFIG_IU_DISAS [list $notmod] 2 }
4827
        global CONFIG_IU_DISAS_NET
4828
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS_NET $CONFIG_IU_DISAS_NET [list $notmod] 2 }
4829
        global CONFIG_DEBUG_PC32
4830
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DEBUG_PC32 $CONFIG_DEBUG_PC32 [list $notmod] 2 }
4831
        write_comment $cfg $autocfg "AMBA configuration"
4832
        global CONFIG_AHB_DEFMST
4833
        write_int $cfg $autocfg CONFIG_AHB_DEFMST $CONFIG_AHB_DEFMST $notmod
4834
        global CONFIG_AHB_RROBIN
4835
        write_tristate $cfg $autocfg CONFIG_AHB_RROBIN $CONFIG_AHB_RROBIN [list $notmod] 2
4836
        global CONFIG_AHB_SPLIT
4837
        write_tristate $cfg $autocfg CONFIG_AHB_SPLIT $CONFIG_AHB_SPLIT [list $notmod] 2
4838
        global CONFIG_AHB_IOADDR
4839
        write_hex $cfg $autocfg CONFIG_AHB_IOADDR $CONFIG_AHB_IOADDR $notmod
4840
        global CONFIG_APB_HADDR
4841
        write_hex $cfg $autocfg CONFIG_APB_HADDR $CONFIG_APB_HADDR $notmod
4842
        global CONFIG_AHB_MON
4843
        write_tristate $cfg $autocfg CONFIG_AHB_MON $CONFIG_AHB_MON [list $notmod] 2
4844
        global CONFIG_AHB_MONERR
4845
        if {($CONFIG_AHB_MON == 1)} then {write_tristate $cfg $autocfg CONFIG_AHB_MONERR $CONFIG_AHB_MONERR [list $notmod] 2 }
4846
        global CONFIG_AHB_MONWAR
4847
        if {($CONFIG_AHB_MON == 1)} then {write_tristate $cfg $autocfg CONFIG_AHB_MONWAR $CONFIG_AHB_MONWAR [list $notmod] 2 }
4848
        write_comment $cfg $autocfg "Debug Link           "
4849
        global CONFIG_DSU_UART
4850
        write_tristate $cfg $autocfg CONFIG_DSU_UART $CONFIG_DSU_UART [list $notmod] 2
4851
        global CONFIG_DSU_JTAG
4852
        write_tristate $cfg $autocfg CONFIG_DSU_JTAG $CONFIG_DSU_JTAG [list $notmod] 2
4853
        global CONFIG_DSU_ETH
4854
        global CONFIG_GRETH_ENABLE
4855
        if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 }
4856
        global tmpvar_24
4857
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {
4858
        if { $tmpvar_24 == "1" } then { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ1 0 [list $notmod] 2 }
4859
        if { $tmpvar_24 == "2" } then { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ2 0 [list $notmod] 2 }
4860
        if { $tmpvar_24 == "4" } then { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ4 0 [list $notmod] 2 }
4861
        if { $tmpvar_24 == "8" } then { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ8 0 [list $notmod] 2 }
4862
        if { $tmpvar_24 == "16" } then { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DSU_ETHSZ16 0 [list $notmod] 2 }}
4863
        global CONFIG_DSU_IPMSB
4864
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod }
4865
        global CONFIG_DSU_IPLSB
4866
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPLSB $CONFIG_DSU_IPLSB $notmod }
4867
        global CONFIG_DSU_ETHMSB
4868
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_ETHMSB $CONFIG_DSU_ETHMSB $notmod }
4869
        global CONFIG_DSU_ETHLSB
4870
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_ETHLSB $CONFIG_DSU_ETHLSB $notmod }
4871
        global CONFIG_DSU_ETH_PROG
4872
        global CONFIG_GRETH_GIGA
4873
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH_PROG $CONFIG_DSU_ETH_PROG [list $notmod] 2 }
4874
        write_comment $cfg $autocfg "Peripherals             "
4875
        write_comment $cfg $autocfg "Memory controllers             "
4876
        write_comment $cfg $autocfg "8/32-bit PROM/SRAM controller "
4877
        global CONFIG_SRCTRL
4878
        write_tristate $cfg $autocfg CONFIG_SRCTRL $CONFIG_SRCTRL [list $notmod] 2
4879
        global CONFIG_SRCTRL_8BIT
4880
        if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_8BIT $CONFIG_SRCTRL_8BIT [list $notmod] 2 }
4881
        global CONFIG_SRCTRL_PROMWS
4882
        if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_PROMWS $CONFIG_SRCTRL_PROMWS $notmod }
4883
        global CONFIG_SRCTRL_RAMWS
4884
        if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_RAMWS $CONFIG_SRCTRL_RAMWS $notmod }
4885
        global CONFIG_SRCTRL_IOWS
4886
        if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod }
4887
        global CONFIG_SRCTRL_RMW
4888
        if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 }
4889
        global tmpvar_25
4890
        if {($CONFIG_SRCTRL == 1)} then {
4891
        if { $tmpvar_25 == "1" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS1 0 [list $notmod] 2 }
4892
        if { $tmpvar_25 == "2" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS2 0 [list $notmod] 2 }
4893
        if { $tmpvar_25 == "3" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS3 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS3 0 [list $notmod] 2 }
4894
        if { $tmpvar_25 == "4" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS4 0 [list $notmod] 2 }
4895
        if { $tmpvar_25 == "5" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS5 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_SRBANKS5 0 [list $notmod] 2 }}
4896
        global tmpvar_26
4897
        if {($CONFIG_SRCTRL == 1)} then {
4898
        if { $tmpvar_26 == "8" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ0 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ0 0 [list $notmod] 2 }
4899
        if { $tmpvar_26 == "16" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ1 0 [list $notmod] 2 }
4900
        if { $tmpvar_26 == "32" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ2 0 [list $notmod] 2 }
4901
        if { $tmpvar_26 == "64" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ3 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ3 0 [list $notmod] 2 }
4902
        if { $tmpvar_26 == "128" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ4 0 [list $notmod] 2 }
4903
        if { $tmpvar_26 == "256" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ5 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ5 0 [list $notmod] 2 }
4904
        if { $tmpvar_26 == "512" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ6 0 [list $notmod] 2 }
4905
        if { $tmpvar_26 == "1024" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ7 0 [list $notmod] 2 }
4906
        if { $tmpvar_26 == "2048" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ8 0 [list $notmod] 2 }
4907
        if { $tmpvar_26 == "4096" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ9 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ9 0 [list $notmod] 2 }
4908
        if { $tmpvar_26 == "8192" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ10 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ10 0 [list $notmod] 2 }
4909
        if { $tmpvar_26 == "16384" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ11 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ11 0 [list $notmod] 2 }
4910
        if { $tmpvar_26 == "32768" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ12 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ12 0 [list $notmod] 2 }
4911
        if { $tmpvar_26 == "65536" } then { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ13 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SRCTRL_BANKSZ13 0 [list $notmod] 2 }}
4912
        global CONFIG_SRCTRL_ROMASEL
4913
        if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod }
4914
        write_comment $cfg $autocfg "Leon2 memory controller        "
4915
        global CONFIG_MCTRL_LEON2
4916
        write_tristate $cfg $autocfg CONFIG_MCTRL_LEON2 $CONFIG_MCTRL_LEON2 [list $notmod] 2
4917
        global CONFIG_MCTRL_8BIT
4918
        if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_8BIT $CONFIG_MCTRL_8BIT [list $notmod] 2 }
4919
        global CONFIG_MCTRL_16BIT
4920
        if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_16BIT $CONFIG_MCTRL_16BIT [list $notmod] 2 }
4921
        global CONFIG_MCTRL_5CS
4922
        if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_5CS $CONFIG_MCTRL_5CS [list $notmod] 2 }
4923
        global CONFIG_MCTRL_SDRAM
4924
        if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_SDRAM $CONFIG_MCTRL_SDRAM [list $notmod] 2 }
4925
        global CONFIG_MCTRL_SDRAM_SEPBUS
4926
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_SDRAM_SEPBUS $CONFIG_MCTRL_SDRAM_SEPBUS [list $notmod] 2 }
4927
        global CONFIG_MCTRL_SDRAM_BUS64
4928
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_SDRAM_BUS64 $CONFIG_MCTRL_SDRAM_BUS64 [list $notmod] 2 }
4929
        global CONFIG_MCTRL_SDRAM_INVCLK
4930
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_SDRAM_INVCLK $CONFIG_MCTRL_SDRAM_INVCLK [list $notmod] 2 }
4931
        global CONFIG_MCTRL_PAGE
4932
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_PAGE $CONFIG_MCTRL_PAGE [list $notmod] 2 }
4933
        global CONFIG_MCTRL_PROGPAGE
4934
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_PROGPAGE $CONFIG_MCTRL_PROGPAGE [list $notmod] 2 }
4935
        write_comment $cfg $autocfg "On-chip RAM/ROM                 "
4936
        global CONFIG_AHBROM_ENABLE
4937
        write_tristate $cfg $autocfg CONFIG_AHBROM_ENABLE $CONFIG_AHBROM_ENABLE [list $notmod] 2
4938
        global CONFIG_AHBROM_START
4939
        if {($CONFIG_AHBROM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBROM_START $CONFIG_AHBROM_START $notmod }
4940
        global CONFIG_AHBROM_PIPE
4941
        if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 }
4942
        global CONFIG_AHBRAM_ENABLE
4943
        write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2
4944
        global tmpvar_27
4945
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {
4946
        if { $tmpvar_27 == "1" } then { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ1 0 [list $notmod] 2 }
4947
        if { $tmpvar_27 == "2" } then { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ2 0 [list $notmod] 2 }
4948
        if { $tmpvar_27 == "4" } then { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ4 0 [list $notmod] 2 }
4949
        if { $tmpvar_27 == "8" } then { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ8 0 [list $notmod] 2 }
4950
        if { $tmpvar_27 == "16" } then { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ16 0 [list $notmod] 2 }
4951
        if { $tmpvar_27 == "32" } then { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ32 0 [list $notmod] 2 }
4952
        if { $tmpvar_27 == "64" } then { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_AHBRAM_SZ64 0 [list $notmod] 2 }}
4953
        global CONFIG_AHBRAM_START
4954
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod }
4955
        write_comment $cfg $autocfg "Ethernet             "
4956
        write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2
4957
        if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 }
4958
        global tmpvar_28
4959
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then {
4960
        if { $tmpvar_28 == "4" } then { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO4 0 [list $notmod] 2 }
4961
        if { $tmpvar_28 == "8" } then { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO8 0 [list $notmod] 2 }
4962
        if { $tmpvar_28 == "16" } then { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO16 0 [list $notmod] 2 }
4963
        if { $tmpvar_28 == "32" } then { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO32 0 [list $notmod] 2 }
4964
        if { $tmpvar_28 == "64" } then { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRETH_FIFO64 0 [list $notmod] 2 }}
4965
        write_comment $cfg $autocfg "UARTs, timers and irq control         "
4966
        global CONFIG_UART1_ENABLE
4967
        write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2
4968
        global tmpvar_29
4969
        if {($CONFIG_UART1_ENABLE == 1)} then {
4970
        if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 }
4971
        if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 }
4972
        if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 }
4973
        if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 }
4974
        if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 }
4975
        if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }}
4976
        global CONFIG_IRQ3_ENABLE
4977
        write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2
4978
        global CONFIG_GPT_ENABLE
4979
        write_tristate $cfg $autocfg CONFIG_GPT_ENABLE $CONFIG_GPT_ENABLE [list $notmod] 2
4980
        global CONFIG_GPT_NTIM
4981
        if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_NTIM $CONFIG_GPT_NTIM $notmod }
4982
        global CONFIG_GPT_SW
4983
        if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_SW $CONFIG_GPT_SW $notmod }
4984
        global CONFIG_GPT_TW
4985
        if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_TW $CONFIG_GPT_TW $notmod }
4986
        global CONFIG_GPT_IRQ
4987
        if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_IRQ $CONFIG_GPT_IRQ $notmod }
4988
        global CONFIG_GPT_SEPIRQ
4989
        if {($CONFIG_GPT_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GPT_SEPIRQ $CONFIG_GPT_SEPIRQ [list $notmod] 2 }
4990
        global CONFIG_GPT_WDOGEN
4991
        if {($CONFIG_GPT_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GPT_WDOGEN $CONFIG_GPT_WDOGEN [list $notmod] 2 }
4992
        global CONFIG_GPT_WDOG
4993
        if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {write_hex $cfg $autocfg CONFIG_GPT_WDOG $CONFIG_GPT_WDOG $notmod }
4994
        write_comment $cfg $autocfg "ATA Controller"
4995
        global CONFIG_ATA_ENABLE
4996
        write_tristate $cfg $autocfg CONFIG_ATA_ENABLE $CONFIG_ATA_ENABLE [list $notmod] 2
4997
        global CONFIG_ATAIO
4998
        if {($CONFIG_ATA_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_ATAIO $CONFIG_ATAIO $notmod }
4999
        global CONFIG_ATAIRQ
5000
        if {($CONFIG_ATA_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_ATAIRQ $CONFIG_ATAIRQ $notmod }
5001
        global CONFIG_ATA_MWDMA
5002
        if {($CONFIG_ATA_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_ATA_MWDMA $CONFIG_ATA_MWDMA [list $notmod] 2 }
5003
        global CONFIG_ATA_FIFO
5004
        if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {write_int $cfg $autocfg CONFIG_ATA_FIFO $CONFIG_ATA_FIFO $notmod }
5005
        write_comment $cfg $autocfg "Keybord and VGA interface"
5006
        global CONFIG_KBD_ENABLE
5007
        write_tristate $cfg $autocfg CONFIG_KBD_ENABLE $CONFIG_KBD_ENABLE [list $notmod] 2
5008
        global CONFIG_VGA_ENABLE
5009
        write_tristate $cfg $autocfg CONFIG_VGA_ENABLE $CONFIG_VGA_ENABLE [list $notmod] 2
5010
        global CONFIG_SVGA_ENABLE
5011
        if {($CONFIG_VGA_ENABLE == 0)} then {write_tristate $cfg $autocfg CONFIG_SVGA_ENABLE $CONFIG_SVGA_ENABLE [list $notmod] 2 }
5012
        write_comment $cfg $autocfg "Gleichmann Options        "
5013
        global CONFIG_AHB2HPI_ENABLE
5014
        write_tristate $cfg $autocfg CONFIG_AHB2HPI_ENABLE $CONFIG_AHB2HPI_ENABLE [list $notmod] 2
5015
        global CONFIG_DAC_AHB_ENABLE
5016
        write_tristate $cfg $autocfg CONFIG_DAC_AHB_ENABLE $CONFIG_DAC_AHB_ENABLE [list $notmod] 2
5017
        write_comment $cfg $autocfg "VHDL Debugging        "
5018
        global CONFIG_DEBUG_UART
5019
        write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2
5020
        close $cfg
5021
        close $autocfg
5022
}
5023
 
5024
 
5025
proc clear_choices { } {
5026
        global CONFIG_SYN_INFERRED; set CONFIG_SYN_INFERRED 0
5027
        global CONFIG_SYN_STRATIX; set CONFIG_SYN_STRATIX 0
5028
        global CONFIG_SYN_STRATIXII; set CONFIG_SYN_STRATIXII 0
5029
        global CONFIG_SYN_STRATIXIII; set CONFIG_SYN_STRATIXIII 0
5030
        global CONFIG_SYN_CYCLONEIII; set CONFIG_SYN_CYCLONEIII 0
5031
        global CONFIG_SYN_ALTERA; set CONFIG_SYN_ALTERA 0
5032
        global CONFIG_SYN_AXCEL; set CONFIG_SYN_AXCEL 0
5033
        global CONFIG_SYN_PROASIC; set CONFIG_SYN_PROASIC 0
5034
        global CONFIG_SYN_PROASICPLUS; set CONFIG_SYN_PROASICPLUS 0
5035
        global CONFIG_SYN_PROASIC3; set CONFIG_SYN_PROASIC3 0
5036
        global CONFIG_SYN_UT025CRH; set CONFIG_SYN_UT025CRH 0
5037
        global CONFIG_SYN_ATC18; set CONFIG_SYN_ATC18 0
5038
        global CONFIG_SYN_CUSTOM1; set CONFIG_SYN_CUSTOM1 0
5039
        global CONFIG_SYN_EASIC90; set CONFIG_SYN_EASIC90 0
5040
        global CONFIG_SYN_IHP25; set CONFIG_SYN_IHP25 0
5041
        global CONFIG_SYN_IHP25RH; set CONFIG_SYN_IHP25RH 0
5042
        global CONFIG_SYN_LATTICE; set CONFIG_SYN_LATTICE 0
5043
        global CONFIG_SYN_ECLIPSE; set CONFIG_SYN_ECLIPSE 0
5044
        global CONFIG_SYN_PEREGRINE; set CONFIG_SYN_PEREGRINE 0
5045
        global CONFIG_SYN_RH_LIB18T; set CONFIG_SYN_RH_LIB18T 0
5046
        global CONFIG_SYN_RHUMC; set CONFIG_SYN_RHUMC 0
5047
        global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0
5048
        global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0
5049
        global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0
5050
        global CONFIG_SYN_VIRTEX; set CONFIG_SYN_VIRTEX 0
5051
        global CONFIG_SYN_VIRTEXE; set CONFIG_SYN_VIRTEXE 0
5052
        global CONFIG_SYN_VIRTEX2; set CONFIG_SYN_VIRTEX2 0
5053
        global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0
5054
        global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0
5055
        global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0
5056
        global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0
5057
        global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0
5058
        global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0
5059
        global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0
5060
        global CONFIG_MEM_ARTISAN; set CONFIG_MEM_ARTISAN 0
5061
        global CONFIG_MEM_CUSTOM1; set CONFIG_MEM_CUSTOM1 0
5062
        global CONFIG_MEM_VIRAGE; set CONFIG_MEM_VIRAGE 0
5063
        global CONFIG_MEM_VIRAGE90; set CONFIG_MEM_VIRAGE90 0
5064
        global CONFIG_CLK_INFERRED; set CONFIG_CLK_INFERRED 0
5065
        global CONFIG_CLK_HCLKBUF; set CONFIG_CLK_HCLKBUF 0
5066
        global CONFIG_CLK_ALTDLL; set CONFIG_CLK_ALTDLL 0
5067
        global CONFIG_CLK_LATDLL; set CONFIG_CLK_LATDLL 0
5068
        global CONFIG_CLK_PRO3PLL; set CONFIG_CLK_PRO3PLL 0
5069
        global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0
5070
        global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0
5071
        global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0
5072
        global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0
5073
        global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0
5074
        global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0
5075
        global CONFIG_FPU_GRFPU; set CONFIG_FPU_GRFPU 0
5076
        global CONFIG_FPU_GRFPULITE; set CONFIG_FPU_GRFPULITE 0
5077
        global CONFIG_FPU_MEIKO; set CONFIG_FPU_MEIKO 0
5078
        global CONFIG_FPU_GRFPU_INFMUL; set CONFIG_FPU_GRFPU_INFMUL 0
5079
        global CONFIG_FPU_GRFPU_DWMUL; set CONFIG_FPU_GRFPU_DWMUL 0
5080
        global CONFIG_FPU_GRFPU_MODGEN; set CONFIG_FPU_GRFPU_MODGEN 0
5081
        global CONFIG_FPU_GRFPC0; set CONFIG_FPU_GRFPC0 0
5082
        global CONFIG_FPU_GRFPC1; set CONFIG_FPU_GRFPC1 0
5083
        global CONFIG_FPU_GRFPC2; set CONFIG_FPU_GRFPC2 0
5084
        global CONFIG_ICACHE_ASSO1; set CONFIG_ICACHE_ASSO1 0
5085
        global CONFIG_ICACHE_ASSO2; set CONFIG_ICACHE_ASSO2 0
5086
        global CONFIG_ICACHE_ASSO3; set CONFIG_ICACHE_ASSO3 0
5087
        global CONFIG_ICACHE_ASSO4; set CONFIG_ICACHE_ASSO4 0
5088
        global CONFIG_ICACHE_SZ1; set CONFIG_ICACHE_SZ1 0
5089
        global CONFIG_ICACHE_SZ2; set CONFIG_ICACHE_SZ2 0
5090
        global CONFIG_ICACHE_SZ4; set CONFIG_ICACHE_SZ4 0
5091
        global CONFIG_ICACHE_SZ8; set CONFIG_ICACHE_SZ8 0
5092
        global CONFIG_ICACHE_SZ16; set CONFIG_ICACHE_SZ16 0
5093
        global CONFIG_ICACHE_SZ32; set CONFIG_ICACHE_SZ32 0
5094
        global CONFIG_ICACHE_SZ64; set CONFIG_ICACHE_SZ64 0
5095
        global CONFIG_ICACHE_SZ128; set CONFIG_ICACHE_SZ128 0
5096
        global CONFIG_ICACHE_SZ256; set CONFIG_ICACHE_SZ256 0
5097
        global CONFIG_ICACHE_LZ16; set CONFIG_ICACHE_LZ16 0
5098
        global CONFIG_ICACHE_LZ32; set CONFIG_ICACHE_LZ32 0
5099
        global CONFIG_ICACHE_ALGORND; set CONFIG_ICACHE_ALGORND 0
5100
        global CONFIG_ICACHE_ALGOLRR; set CONFIG_ICACHE_ALGOLRR 0
5101
        global CONFIG_ICACHE_ALGOLRU; set CONFIG_ICACHE_ALGOLRU 0
5102
        global CONFIG_ICACHE_LRAM_SZ1; set CONFIG_ICACHE_LRAM_SZ1 0
5103
        global CONFIG_ICACHE_LRAM_SZ2; set CONFIG_ICACHE_LRAM_SZ2 0
5104
        global CONFIG_ICACHE_LRAM_SZ4; set CONFIG_ICACHE_LRAM_SZ4 0
5105
        global CONFIG_ICACHE_LRAM_SZ8; set CONFIG_ICACHE_LRAM_SZ8 0
5106
        global CONFIG_ICACHE_LRAM_SZ16; set CONFIG_ICACHE_LRAM_SZ16 0
5107
        global CONFIG_ICACHE_LRAM_SZ32; set CONFIG_ICACHE_LRAM_SZ32 0
5108
        global CONFIG_ICACHE_LRAM_SZ64; set CONFIG_ICACHE_LRAM_SZ64 0
5109
        global CONFIG_ICACHE_LRAM_SZ128; set CONFIG_ICACHE_LRAM_SZ128 0
5110
        global CONFIG_ICACHE_LRAM_SZ256; set CONFIG_ICACHE_LRAM_SZ256 0
5111
        global CONFIG_DCACHE_ASSO1; set CONFIG_DCACHE_ASSO1 0
5112
        global CONFIG_DCACHE_ASSO2; set CONFIG_DCACHE_ASSO2 0
5113
        global CONFIG_DCACHE_ASSO3; set CONFIG_DCACHE_ASSO3 0
5114
        global CONFIG_DCACHE_ASSO4; set CONFIG_DCACHE_ASSO4 0
5115
        global CONFIG_DCACHE_SZ1; set CONFIG_DCACHE_SZ1 0
5116
        global CONFIG_DCACHE_SZ2; set CONFIG_DCACHE_SZ2 0
5117
        global CONFIG_DCACHE_SZ4; set CONFIG_DCACHE_SZ4 0
5118
        global CONFIG_DCACHE_SZ8; set CONFIG_DCACHE_SZ8 0
5119
        global CONFIG_DCACHE_SZ16; set CONFIG_DCACHE_SZ16 0
5120
        global CONFIG_DCACHE_SZ32; set CONFIG_DCACHE_SZ32 0
5121
        global CONFIG_DCACHE_SZ64; set CONFIG_DCACHE_SZ64 0
5122
        global CONFIG_DCACHE_SZ128; set CONFIG_DCACHE_SZ128 0
5123
        global CONFIG_DCACHE_SZ256; set CONFIG_DCACHE_SZ256 0
5124
        global CONFIG_DCACHE_LZ16; set CONFIG_DCACHE_LZ16 0
5125
        global CONFIG_DCACHE_LZ32; set CONFIG_DCACHE_LZ32 0
5126
        global CONFIG_DCACHE_ALGORND; set CONFIG_DCACHE_ALGORND 0
5127
        global CONFIG_DCACHE_ALGOLRR; set CONFIG_DCACHE_ALGOLRR 0
5128
        global CONFIG_DCACHE_ALGOLRU; set CONFIG_DCACHE_ALGOLRU 0
5129
        global CONFIG_DCACHE_LRAM_SZ1; set CONFIG_DCACHE_LRAM_SZ1 0
5130
        global CONFIG_DCACHE_LRAM_SZ2; set CONFIG_DCACHE_LRAM_SZ2 0
5131
        global CONFIG_DCACHE_LRAM_SZ4; set CONFIG_DCACHE_LRAM_SZ4 0
5132
        global CONFIG_DCACHE_LRAM_SZ8; set CONFIG_DCACHE_LRAM_SZ8 0
5133
        global CONFIG_DCACHE_LRAM_SZ16; set CONFIG_DCACHE_LRAM_SZ16 0
5134
        global CONFIG_DCACHE_LRAM_SZ32; set CONFIG_DCACHE_LRAM_SZ32 0
5135
        global CONFIG_DCACHE_LRAM_SZ64; set CONFIG_DCACHE_LRAM_SZ64 0
5136
        global CONFIG_DCACHE_LRAM_SZ128; set CONFIG_DCACHE_LRAM_SZ128 0
5137
        global CONFIG_DCACHE_LRAM_SZ256; set CONFIG_DCACHE_LRAM_SZ256 0
5138
        global CONFIG_MMU_COMBINED; set CONFIG_MMU_COMBINED 0
5139
        global CONFIG_MMU_SPLIT; set CONFIG_MMU_SPLIT 0
5140
        global CONFIG_MMU_REPARRAY; set CONFIG_MMU_REPARRAY 0
5141
        global CONFIG_MMU_REPINCREMENT; set CONFIG_MMU_REPINCREMENT 0
5142
        global CONFIG_MMU_I2; set CONFIG_MMU_I2 0
5143
        global CONFIG_MMU_I4; set CONFIG_MMU_I4 0
5144
        global CONFIG_MMU_I8; set CONFIG_MMU_I8 0
5145
        global CONFIG_MMU_I16; set CONFIG_MMU_I16 0
5146
        global CONFIG_MMU_I32; set CONFIG_MMU_I32 0
5147
        global CONFIG_MMU_D2; set CONFIG_MMU_D2 0
5148
        global CONFIG_MMU_D4; set CONFIG_MMU_D4 0
5149
        global CONFIG_MMU_D8; set CONFIG_MMU_D8 0
5150
        global CONFIG_MMU_D16; set CONFIG_MMU_D16 0
5151
        global CONFIG_MMU_D32; set CONFIG_MMU_D32 0
5152
        global CONFIG_DSU_ITRACESZ1; set CONFIG_DSU_ITRACESZ1 0
5153
        global CONFIG_DSU_ITRACESZ2; set CONFIG_DSU_ITRACESZ2 0
5154
        global CONFIG_DSU_ITRACESZ4; set CONFIG_DSU_ITRACESZ4 0
5155
        global CONFIG_DSU_ITRACESZ8; set CONFIG_DSU_ITRACESZ8 0
5156
        global CONFIG_DSU_ITRACESZ16; set CONFIG_DSU_ITRACESZ16 0
5157
        global CONFIG_DSU_ATRACESZ1; set CONFIG_DSU_ATRACESZ1 0
5158
        global CONFIG_DSU_ATRACESZ2; set CONFIG_DSU_ATRACESZ2 0
5159
        global CONFIG_DSU_ATRACESZ4; set CONFIG_DSU_ATRACESZ4 0
5160
        global CONFIG_DSU_ATRACESZ8; set CONFIG_DSU_ATRACESZ8 0
5161
        global CONFIG_DSU_ATRACESZ16; set CONFIG_DSU_ATRACESZ16 0
5162
        global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0
5163
        global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0
5164
        global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0
5165
        global CONFIG_DSU_ETHSZ8; set CONFIG_DSU_ETHSZ8 0
5166
        global CONFIG_DSU_ETHSZ16; set CONFIG_DSU_ETHSZ16 0
5167
        global CONFIG_SRCTRL_SRBANKS1; set CONFIG_SRCTRL_SRBANKS1 0
5168
        global CONFIG_SRCTRL_SRBANKS2; set CONFIG_SRCTRL_SRBANKS2 0
5169
        global CONFIG_SRCTRL_SRBANKS3; set CONFIG_SRCTRL_SRBANKS3 0
5170
        global CONFIG_SRCTRL_SRBANKS4; set CONFIG_SRCTRL_SRBANKS4 0
5171
        global CONFIG_SRCTRL_SRBANKS5; set CONFIG_SRCTRL_SRBANKS5 0
5172
        global CONFIG_SRCTRL_BANKSZ0; set CONFIG_SRCTRL_BANKSZ0 0
5173
        global CONFIG_SRCTRL_BANKSZ1; set CONFIG_SRCTRL_BANKSZ1 0
5174
        global CONFIG_SRCTRL_BANKSZ2; set CONFIG_SRCTRL_BANKSZ2 0
5175
        global CONFIG_SRCTRL_BANKSZ3; set CONFIG_SRCTRL_BANKSZ3 0
5176
        global CONFIG_SRCTRL_BANKSZ4; set CONFIG_SRCTRL_BANKSZ4 0
5177
        global CONFIG_SRCTRL_BANKSZ5; set CONFIG_SRCTRL_BANKSZ5 0
5178
        global CONFIG_SRCTRL_BANKSZ6; set CONFIG_SRCTRL_BANKSZ6 0
5179
        global CONFIG_SRCTRL_BANKSZ7; set CONFIG_SRCTRL_BANKSZ7 0
5180
        global CONFIG_SRCTRL_BANKSZ8; set CONFIG_SRCTRL_BANKSZ8 0
5181
        global CONFIG_SRCTRL_BANKSZ9; set CONFIG_SRCTRL_BANKSZ9 0
5182
        global CONFIG_SRCTRL_BANKSZ10; set CONFIG_SRCTRL_BANKSZ10 0
5183
        global CONFIG_SRCTRL_BANKSZ11; set CONFIG_SRCTRL_BANKSZ11 0
5184
        global CONFIG_SRCTRL_BANKSZ12; set CONFIG_SRCTRL_BANKSZ12 0
5185
        global CONFIG_SRCTRL_BANKSZ13; set CONFIG_SRCTRL_BANKSZ13 0
5186
        global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0
5187
        global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0
5188
        global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0
5189
        global CONFIG_AHBRAM_SZ8; set CONFIG_AHBRAM_SZ8 0
5190
        global CONFIG_AHBRAM_SZ16; set CONFIG_AHBRAM_SZ16 0
5191
        global CONFIG_AHBRAM_SZ32; set CONFIG_AHBRAM_SZ32 0
5192
        global CONFIG_AHBRAM_SZ64; set CONFIG_AHBRAM_SZ64 0
5193
        global CONFIG_GRETH_FIFO4; set CONFIG_GRETH_FIFO4 0
5194
        global CONFIG_GRETH_FIFO8; set CONFIG_GRETH_FIFO8 0
5195
        global CONFIG_GRETH_FIFO16; set CONFIG_GRETH_FIFO16 0
5196
        global CONFIG_GRETH_FIFO32; set CONFIG_GRETH_FIFO32 0
5197
        global CONFIG_GRETH_FIFO64; set CONFIG_GRETH_FIFO64 0
5198
        global CONFIG_UA1_FIFO1; set CONFIG_UA1_FIFO1 0
5199
        global CONFIG_UA1_FIFO2; set CONFIG_UA1_FIFO2 0
5200
        global CONFIG_UA1_FIFO4; set CONFIG_UA1_FIFO4 0
5201
        global CONFIG_UA1_FIFO8; set CONFIG_UA1_FIFO8 0
5202
        global CONFIG_UA1_FIFO16; set CONFIG_UA1_FIFO16 0
5203
        global CONFIG_UA1_FIFO32; set CONFIG_UA1_FIFO32 0
5204
}
5205
 
5206
 
5207
proc update_choices { } {
5208
        global tmpvar_0
5209
        set tmpvar_0 "Inferred"
5210
        global CONFIG_SYN_INFERRED
5211
        if { $CONFIG_SYN_INFERRED == 1 } then { set tmpvar_0 "Inferred" }
5212
        global CONFIG_SYN_STRATIX
5213
        if { $CONFIG_SYN_STRATIX == 1 } then { set tmpvar_0 "Altera-Stratix" }
5214
        global CONFIG_SYN_STRATIXII
5215
        if { $CONFIG_SYN_STRATIXII == 1 } then { set tmpvar_0 "Altera-StratixII" }
5216
        global CONFIG_SYN_STRATIXIII
5217
        if { $CONFIG_SYN_STRATIXIII == 1 } then { set tmpvar_0 "Altera-StratixIII" }
5218
        global CONFIG_SYN_CYCLONEIII
5219
        if { $CONFIG_SYN_CYCLONEIII == 1 } then { set tmpvar_0 "Altera-CycloneIII" }
5220
        global CONFIG_SYN_ALTERA
5221
        if { $CONFIG_SYN_ALTERA == 1 } then { set tmpvar_0 "Altera-Others" }
5222
        global CONFIG_SYN_AXCEL
5223
        if { $CONFIG_SYN_AXCEL == 1 } then { set tmpvar_0 "Actel-Axcelerator" }
5224
        global CONFIG_SYN_PROASIC
5225
        if { $CONFIG_SYN_PROASIC == 1 } then { set tmpvar_0 "Actel-Proasic" }
5226
        global CONFIG_SYN_PROASICPLUS
5227
        if { $CONFIG_SYN_PROASICPLUS == 1 } then { set tmpvar_0 "Actel-ProasicPlus" }
5228
        global CONFIG_SYN_PROASIC3
5229
        if { $CONFIG_SYN_PROASIC3 == 1 } then { set tmpvar_0 "Actel-Proasic3" }
5230
        global CONFIG_SYN_UT025CRH
5231
        if { $CONFIG_SYN_UT025CRH == 1 } then { set tmpvar_0 "Aeroflex-UT025CRH" }
5232
        global CONFIG_SYN_ATC18
5233
        if { $CONFIG_SYN_ATC18 == 1 } then { set tmpvar_0 "Atmel-ATC18" }
5234
        global CONFIG_SYN_CUSTOM1
5235
        if { $CONFIG_SYN_CUSTOM1 == 1 } then { set tmpvar_0 "Custom1" }
5236
        global CONFIG_SYN_EASIC90
5237
        if { $CONFIG_SYN_EASIC90 == 1 } then { set tmpvar_0 "eASIC90" }
5238
        global CONFIG_SYN_IHP25
5239
        if { $CONFIG_SYN_IHP25 == 1 } then { set tmpvar_0 "IHP25" }
5240
        global CONFIG_SYN_IHP25RH
5241
        if { $CONFIG_SYN_IHP25RH == 1 } then { set tmpvar_0 "IHP25RH" }
5242
        global CONFIG_SYN_LATTICE
5243
        if { $CONFIG_SYN_LATTICE == 1 } then { set tmpvar_0 "Lattice-EC/ECP/XP" }
5244
        global CONFIG_SYN_ECLIPSE
5245
        if { $CONFIG_SYN_ECLIPSE == 1 } then { set tmpvar_0 "Quicklogic-Eclipse" }
5246
        global CONFIG_SYN_PEREGRINE
5247
        if { $CONFIG_SYN_PEREGRINE == 1 } then { set tmpvar_0 "Peregrine" }
5248
        global CONFIG_SYN_RH_LIB18T
5249
        if { $CONFIG_SYN_RH_LIB18T == 1 } then { set tmpvar_0 "RH-LIB18T" }
5250
        global CONFIG_SYN_RHUMC
5251
        if { $CONFIG_SYN_RHUMC == 1 } then { set tmpvar_0 "RH-UMC" }
5252
        global CONFIG_SYN_SPARTAN2
5253
        if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" }
5254
        global CONFIG_SYN_SPARTAN3
5255
        if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" }
5256
        global CONFIG_SYN_SPARTAN3E
5257
        if { $CONFIG_SYN_SPARTAN3E == 1 } then { set tmpvar_0 "Xilinx-Spartan3E" }
5258
        global CONFIG_SYN_VIRTEX
5259
        if { $CONFIG_SYN_VIRTEX == 1 } then { set tmpvar_0 "Xilinx-Virtex" }
5260
        global CONFIG_SYN_VIRTEXE
5261
        if { $CONFIG_SYN_VIRTEXE == 1 } then { set tmpvar_0 "Xilinx-VirtexE" }
5262
        global CONFIG_SYN_VIRTEX2
5263
        if { $CONFIG_SYN_VIRTEX2 == 1 } then { set tmpvar_0 "Xilinx-Virtex2" }
5264
        global CONFIG_SYN_VIRTEX4
5265
        if { $CONFIG_SYN_VIRTEX4 == 1 } then { set tmpvar_0 "Xilinx-Virtex4" }
5266
        global CONFIG_SYN_VIRTEX5
5267
        if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" }
5268
        global CONFIG_SYN_UMC
5269
        if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC18" }
5270
        global CONFIG_SYN_TSMC90
5271
        if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" }
5272
        global tmpvar_1
5273
        set tmpvar_1 "Inferred"
5274
        global CONFIG_MEM_INFERRED
5275
        if { $CONFIG_MEM_INFERRED == 1 } then { set tmpvar_1 "Inferred" }
5276
        global CONFIG_MEM_UMC
5277
        if { $CONFIG_MEM_UMC == 1 } then { set tmpvar_1 "UMC18" }
5278
        global CONFIG_MEM_RHUMC
5279
        if { $CONFIG_MEM_RHUMC == 1 } then { set tmpvar_1 "RH-UMC" }
5280
        global CONFIG_MEM_ARTISAN
5281
        if { $CONFIG_MEM_ARTISAN == 1 } then { set tmpvar_1 "Artisan" }
5282
        global CONFIG_MEM_CUSTOM1
5283
        if { $CONFIG_MEM_CUSTOM1 == 1 } then { set tmpvar_1 "Custom1" }
5284
        global CONFIG_MEM_VIRAGE
5285
        if { $CONFIG_MEM_VIRAGE == 1 } then { set tmpvar_1 "Virage" }
5286
        global CONFIG_MEM_VIRAGE90
5287
        if { $CONFIG_MEM_VIRAGE90 == 1 } then { set tmpvar_1 "Virage-TSMC90" }
5288
        global tmpvar_2
5289
        set tmpvar_2 "Inferred"
5290
        global CONFIG_CLK_INFERRED
5291
        if { $CONFIG_CLK_INFERRED == 1 } then { set tmpvar_2 "Inferred" }
5292
        global CONFIG_CLK_HCLKBUF
5293
        if { $CONFIG_CLK_HCLKBUF == 1 } then { set tmpvar_2 "Actel-HCLKBUF" }
5294
        global CONFIG_CLK_ALTDLL
5295
        if { $CONFIG_CLK_ALTDLL == 1 } then { set tmpvar_2 "Altera-ALTPLL" }
5296
        global CONFIG_CLK_LATDLL
5297
        if { $CONFIG_CLK_LATDLL == 1 } then { set tmpvar_2 "Lattice-EXPLL" }
5298
        global CONFIG_CLK_PRO3PLL
5299
        if { $CONFIG_CLK_PRO3PLL == 1 } then { set tmpvar_2 "Proasic3-PLLL" }
5300
        global CONFIG_CLK_LIB18T
5301
        if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" }
5302
        global CONFIG_CLK_RHUMC
5303
        if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" }
5304
        global CONFIG_CLK_CLKDLL
5305
        if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" }
5306
        global CONFIG_CLK_DCM
5307
        if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" }
5308
        global tmpvar_3
5309
        set tmpvar_3 "5-cycles"
5310
        global CONFIG_IU_MUL_LATENCY_4
5311
        if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" }
5312
        global CONFIG_IU_MUL_LATENCY_5
5313
        if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" }
5314
        global tmpvar_4
5315
        set tmpvar_4 "GRFPU"
5316
        global CONFIG_FPU_GRFPU
5317
        if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_4 "GRFPU" }
5318
        global CONFIG_FPU_GRFPULITE
5319
        if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_4 "GRFPU-LITE" }
5320
        global CONFIG_FPU_MEIKO
5321
        if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_4 "Meiko" }
5322
        global tmpvar_5
5323
        set tmpvar_5 "Inferred"
5324
        global CONFIG_FPU_GRFPU_INFMUL
5325
        if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_5 "Inferred" }
5326
        global CONFIG_FPU_GRFPU_DWMUL
5327
        if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_5 "DW" }
5328
        global CONFIG_FPU_GRFPU_MODGEN
5329
        if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_5 "ModGen" }
5330
        global tmpvar_6
5331
        set tmpvar_6 "Simple"
5332
        global CONFIG_FPU_GRFPC0
5333
        if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_6 "Simple" }
5334
        global CONFIG_FPU_GRFPC1
5335
        if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_6 "Data-forwarding" }
5336
        global CONFIG_FPU_GRFPC2
5337
        if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_6 "Non-blocking" }
5338
        global tmpvar_7
5339
        set tmpvar_7 "1"
5340
        global CONFIG_ICACHE_ASSO1
5341
        if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_7 "1" }
5342
        global CONFIG_ICACHE_ASSO2
5343
        if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_7 "2" }
5344
        global CONFIG_ICACHE_ASSO3
5345
        if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_7 "3" }
5346
        global CONFIG_ICACHE_ASSO4
5347
        if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_7 "4" }
5348
        global tmpvar_8
5349
        set tmpvar_8 "4"
5350
        global CONFIG_ICACHE_SZ1
5351
        if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_8 "1" }
5352
        global CONFIG_ICACHE_SZ2
5353
        if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_8 "2" }
5354
        global CONFIG_ICACHE_SZ4
5355
        if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_8 "4" }
5356
        global CONFIG_ICACHE_SZ8
5357
        if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_8 "8" }
5358
        global CONFIG_ICACHE_SZ16
5359
        if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_8 "16" }
5360
        global CONFIG_ICACHE_SZ32
5361
        if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_8 "32" }
5362
        global CONFIG_ICACHE_SZ64
5363
        if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_8 "64" }
5364
        global CONFIG_ICACHE_SZ128
5365
        if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_8 "128" }
5366
        global CONFIG_ICACHE_SZ256
5367
        if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_8 "256" }
5368
        global tmpvar_9
5369
        set tmpvar_9 "32"
5370
        global CONFIG_ICACHE_LZ16
5371
        if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_9 "16" }
5372
        global CONFIG_ICACHE_LZ32
5373
        if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_9 "32" }
5374
        global tmpvar_10
5375
        set tmpvar_10 "Random"
5376
        global CONFIG_ICACHE_ALGORND
5377
        if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_10 "Random" }
5378
        global CONFIG_ICACHE_ALGOLRR
5379
        if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_10 "LRR" }
5380
        global CONFIG_ICACHE_ALGOLRU
5381
        if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_10 "LRU" }
5382
        global tmpvar_11
5383
        set tmpvar_11 "4"
5384
        global CONFIG_ICACHE_LRAM_SZ1
5385
        if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_11 "1" }
5386
        global CONFIG_ICACHE_LRAM_SZ2
5387
        if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_11 "2" }
5388
        global CONFIG_ICACHE_LRAM_SZ4
5389
        if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_11 "4" }
5390
        global CONFIG_ICACHE_LRAM_SZ8
5391
        if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_11 "8" }
5392
        global CONFIG_ICACHE_LRAM_SZ16
5393
        if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_11 "16" }
5394
        global CONFIG_ICACHE_LRAM_SZ32
5395
        if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_11 "32" }
5396
        global CONFIG_ICACHE_LRAM_SZ64
5397
        if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_11 "64" }
5398
        global CONFIG_ICACHE_LRAM_SZ128
5399
        if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_11 "128" }
5400
        global CONFIG_ICACHE_LRAM_SZ256
5401
        if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_11 "256" }
5402
        global tmpvar_12
5403
        set tmpvar_12 "1"
5404
        global CONFIG_DCACHE_ASSO1
5405
        if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_12 "1" }
5406
        global CONFIG_DCACHE_ASSO2
5407
        if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_12 "2" }
5408
        global CONFIG_DCACHE_ASSO3
5409
        if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_12 "3" }
5410
        global CONFIG_DCACHE_ASSO4
5411
        if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_12 "4" }
5412
        global tmpvar_13
5413
        set tmpvar_13 "4"
5414
        global CONFIG_DCACHE_SZ1
5415
        if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_13 "1" }
5416
        global CONFIG_DCACHE_SZ2
5417
        if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_13 "2" }
5418
        global CONFIG_DCACHE_SZ4
5419
        if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_13 "4" }
5420
        global CONFIG_DCACHE_SZ8
5421
        if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_13 "8" }
5422
        global CONFIG_DCACHE_SZ16
5423
        if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_13 "16" }
5424
        global CONFIG_DCACHE_SZ32
5425
        if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_13 "32" }
5426
        global CONFIG_DCACHE_SZ64
5427
        if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_13 "64" }
5428
        global CONFIG_DCACHE_SZ128
5429
        if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_13 "128" }
5430
        global CONFIG_DCACHE_SZ256
5431
        if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_13 "256" }
5432
        global tmpvar_14
5433
        set tmpvar_14 "32"
5434
        global CONFIG_DCACHE_LZ16
5435
        if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_14 "16" }
5436
        global CONFIG_DCACHE_LZ32
5437
        if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_14 "32" }
5438
        global tmpvar_15
5439
        set tmpvar_15 "Random"
5440
        global CONFIG_DCACHE_ALGORND
5441
        if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_15 "Random" }
5442
        global CONFIG_DCACHE_ALGOLRR
5443
        if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_15 "LRR" }
5444
        global CONFIG_DCACHE_ALGOLRU
5445
        if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_15 "LRU" }
5446
        global tmpvar_16
5447
        set tmpvar_16 "4"
5448
        global CONFIG_DCACHE_LRAM_SZ1
5449
        if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_16 "1" }
5450
        global CONFIG_DCACHE_LRAM_SZ2
5451
        if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_16 "2" }
5452
        global CONFIG_DCACHE_LRAM_SZ4
5453
        if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_16 "4" }
5454
        global CONFIG_DCACHE_LRAM_SZ8
5455
        if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_16 "8" }
5456
        global CONFIG_DCACHE_LRAM_SZ16
5457
        if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_16 "16" }
5458
        global CONFIG_DCACHE_LRAM_SZ32
5459
        if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_16 "32" }
5460
        global CONFIG_DCACHE_LRAM_SZ64
5461
        if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_16 "64" }
5462
        global CONFIG_DCACHE_LRAM_SZ128
5463
        if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_16 "128" }
5464
        global CONFIG_DCACHE_LRAM_SZ256
5465
        if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_16 "256" }
5466
        global tmpvar_17
5467
        set tmpvar_17 "combined"
5468
        global CONFIG_MMU_COMBINED
5469
        if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_17 "combined" }
5470
        global CONFIG_MMU_SPLIT
5471
        if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_17 "split" }
5472
        global tmpvar_18
5473
        set tmpvar_18 "Increment"
5474
        global CONFIG_MMU_REPARRAY
5475
        if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_18 "LRU" }
5476
        global CONFIG_MMU_REPINCREMENT
5477
        if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_18 "Increment" }
5478
        global tmpvar_19
5479
        set tmpvar_19 "8"
5480
        global CONFIG_MMU_I2
5481
        if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_19 "2" }
5482
        global CONFIG_MMU_I4
5483
        if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_19 "4" }
5484
        global CONFIG_MMU_I8
5485
        if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_19 "8" }
5486
        global CONFIG_MMU_I16
5487
        if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_19 "16" }
5488
        global CONFIG_MMU_I32
5489
        if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_19 "32" }
5490
        global tmpvar_20
5491
        set tmpvar_20 "8"
5492
        global CONFIG_MMU_D2
5493
        if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_20 "2" }
5494
        global CONFIG_MMU_D4
5495
        if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_20 "4" }
5496
        global CONFIG_MMU_D8
5497
        if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_20 "8" }
5498
        global CONFIG_MMU_D16
5499
        if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_20 "16" }
5500
        global CONFIG_MMU_D32
5501
        if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_20 "32" }
5502
        global tmpvar_21
5503
        set tmpvar_21 "1"
5504
        global CONFIG_DSU_ITRACESZ1
5505
        if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_21 "1" }
5506
        global CONFIG_DSU_ITRACESZ2
5507
        if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_21 "2" }
5508
        global CONFIG_DSU_ITRACESZ4
5509
        if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_21 "4" }
5510
        global CONFIG_DSU_ITRACESZ8
5511
        if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_21 "8" }
5512
        global CONFIG_DSU_ITRACESZ16
5513
        if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_21 "16" }
5514
        global tmpvar_22
5515
        set tmpvar_22 "1"
5516
        global CONFIG_DSU_ATRACESZ1
5517
        if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_22 "1" }
5518
        global CONFIG_DSU_ATRACESZ2
5519
        if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_22 "2" }
5520
        global CONFIG_DSU_ATRACESZ4
5521
        if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_22 "4" }
5522
        global CONFIG_DSU_ATRACESZ8
5523
        if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_22 "8" }
5524
        global CONFIG_DSU_ATRACESZ16
5525
        if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_22 "16" }
5526
        global tmpvar_24
5527
        set tmpvar_24 "2"
5528
        global CONFIG_DSU_ETHSZ1
5529
        if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_24 "1" }
5530
        global CONFIG_DSU_ETHSZ2
5531
        if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_24 "2" }
5532
        global CONFIG_DSU_ETHSZ4
5533
        if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_24 "4" }
5534
        global CONFIG_DSU_ETHSZ8
5535
        if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_24 "8" }
5536
        global CONFIG_DSU_ETHSZ16
5537
        if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_24 "16" }
5538
        global tmpvar_25
5539
        set tmpvar_25 "1"
5540
        global CONFIG_SRCTRL_SRBANKS1
5541
        if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_25 "1" }
5542
        global CONFIG_SRCTRL_SRBANKS2
5543
        if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_25 "2" }
5544
        global CONFIG_SRCTRL_SRBANKS3
5545
        if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_25 "3" }
5546
        global CONFIG_SRCTRL_SRBANKS4
5547
        if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_25 "4" }
5548
        global CONFIG_SRCTRL_SRBANKS5
5549
        if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_25 "5" }
5550
        global tmpvar_26
5551
        set tmpvar_26 "0"
5552
        global CONFIG_SRCTRL_BANKSZ0
5553
        if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_26 "8" }
5554
        global CONFIG_SRCTRL_BANKSZ1
5555
        if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_26 "16" }
5556
        global CONFIG_SRCTRL_BANKSZ2
5557
        if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_26 "32" }
5558
        global CONFIG_SRCTRL_BANKSZ3
5559
        if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_26 "64" }
5560
        global CONFIG_SRCTRL_BANKSZ4
5561
        if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_26 "128" }
5562
        global CONFIG_SRCTRL_BANKSZ5
5563
        if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_26 "256" }
5564
        global CONFIG_SRCTRL_BANKSZ6
5565
        if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_26 "512" }
5566
        global CONFIG_SRCTRL_BANKSZ7
5567
        if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_26 "1024" }
5568
        global CONFIG_SRCTRL_BANKSZ8
5569
        if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_26 "2048" }
5570
        global CONFIG_SRCTRL_BANKSZ9
5571
        if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_26 "4096" }
5572
        global CONFIG_SRCTRL_BANKSZ10
5573
        if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_26 "8192" }
5574
        global CONFIG_SRCTRL_BANKSZ11
5575
        if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_26 "16384" }
5576
        global CONFIG_SRCTRL_BANKSZ12
5577
        if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_26 "32768" }
5578
        global CONFIG_SRCTRL_BANKSZ13
5579
        if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_26 "65536" }
5580
        global tmpvar_27
5581
        set tmpvar_27 "4"
5582
        global CONFIG_AHBRAM_SZ1
5583
        if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" }
5584
        global CONFIG_AHBRAM_SZ2
5585
        if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" }
5586
        global CONFIG_AHBRAM_SZ4
5587
        if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" }
5588
        global CONFIG_AHBRAM_SZ8
5589
        if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" }
5590
        global CONFIG_AHBRAM_SZ16
5591
        if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" }
5592
        global CONFIG_AHBRAM_SZ32
5593
        if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" }
5594
        global CONFIG_AHBRAM_SZ64
5595
        if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" }
5596
        global tmpvar_28
5597
        set tmpvar_28 "8"
5598
        global CONFIG_GRETH_FIFO4
5599
        if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" }
5600
        global CONFIG_GRETH_FIFO8
5601
        if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" }
5602
        global CONFIG_GRETH_FIFO16
5603
        if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" }
5604
        global CONFIG_GRETH_FIFO32
5605
        if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" }
5606
        global CONFIG_GRETH_FIFO64
5607
        if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" }
5608
        global tmpvar_29
5609
        set tmpvar_29 "1"
5610
        global CONFIG_UA1_FIFO1
5611
        if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" }
5612
        global CONFIG_UA1_FIFO2
5613
        if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" }
5614
        global CONFIG_UA1_FIFO4
5615
        if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" }
5616
        global CONFIG_UA1_FIFO8
5617
        if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" }
5618
        global CONFIG_UA1_FIFO16
5619
        if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" }
5620
        global CONFIG_UA1_FIFO32
5621
        if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" }
5622
}
5623
 
5624
 
5625
proc update_define_mainmenu {} {
5626
        global CONFIG_MODULES
5627
}
5628
 
5629
 
5630
# FILE: tail.tk
5631
# This file is boilerplate TCL/TK function definitions for 'make xconfig'.
5632
#
5633
# CHANGES
5634
# =======
5635
#
5636
# 8 January 1998, Michael Elizabeth Chastain, 
5637
# Arrange buttons in three columns for better screen fitting.
5638
#
5639
 
5640
#
5641
# Read the user's settings from .config.  These will override whatever is
5642
# in config.in.  Don't do this if the user specified a -D to force
5643
# the defaults.
5644
#
5645
 
5646
set defaults defconfig
5647
 
5648
if { [file readable .config] == 1} then {
5649
        if { $argc > 0 } then {
5650
                if { [lindex $argv 0] != "-D" } then {
5651
                        read_config .config
5652
                }
5653
                else
5654
                {
5655
                        read_config $defaults
5656
                }
5657
        } else {
5658
                read_config .config
5659
        }
5660
} else {
5661
        read_config $defaults
5662
}
5663
 
5664
update_define 1 $total_menus 0
5665
update_mainmenu
5666
 
5667
button .f0.right.save -anchor w -text "Save and Exit" -underline 0\
5668
    -command { catch {exec cp -f .config .config.old}; \
5669
                writeconfig .config config.h; wrapup .wrap }
5670
 
5671
button .f0.right.quit -anchor w -text "Quit Without Saving" -underline 0\
5672
    -command { maybe_exit .maybe }
5673
 
5674
button .f0.right.load -anchor w -text "Load Configuration from File" \
5675
    -command { load_configfile .load "Load Configuration from file" read_config_file
5676
}
5677
 
5678
button .f0.right.store -anchor w -text "Store Configuration to File" \
5679
    -command { load_configfile .load "Store Configuration to file" write_config_file }
5680
 
5681
#
5682
# Now pack everything.
5683
#
5684
 
5685
pack .f0.right.store .f0.right.load .f0.right.quit .f0.right.save \
5686
    -padx 0 -pady 0 -side bottom -fill x
5687
pack .f0.left .f0.middle .f0.right -side left -padx 5 -pady 0 -fill y
5688
pack .f0 -padx 5 -pady 5
5689
 
5690
update idletasks
5691
set winy [expr 10 + [winfo reqheight .f0]]
5692
set scry [lindex [wm maxsize .] 1]
5693
set winx [expr 10 + [winfo reqwidth .f0]]
5694
set scrx [lindex [wm maxsize .] 0]
5695
if {$winx < $scrx} then {set maxx -1} else {set maxx $winx}
5696
if {$winy < $scry} then {set maxy -1} else {set maxy $winy}
5697
.f0 configure -width $winx -height $winy
5698
wm maxsize . $maxx $maxy
5699
 
5700
#
5701
# If we cannot write our config files, disable the write button.
5702
#
5703
if { [file exists .config] == 1 } then {
5704
                if { [file writable .config] == 0 } then {
5705
                        .f0.right.save configure -state disabled
5706
                }
5707
        } else {
5708
                if { [file writable .] == 0 } then {
5709
                        .f0.right.save configure -state disabled
5710
                }
5711
        }
5712
 
5713
#if { [file exists include/linux/autoconf.h] == 1 } then {
5714
#               if { [file writable include/linux/autoconf.h] == 0 } then {
5715
#                       .f0.right.save configure -state disabled
5716
#               }
5717
#       } else {
5718
#               if { [file writable include/linux/] == 0 } then {
5719
#                       .f0.right.save configure -state disabled
5720
#               }
5721
#       }

powered by: WebSVN 2.1.0

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