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-clock-gate/] [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 24
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 14}
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
        if {$num == 22} then {return 13}
666
        if {$num == 23} then {return 13}
667
        return $num
668
}
669
 
670
mainmenu_name "LEON3MP Design Configuration"
671
menu_option menu1 1 "Synthesis      "
672
proc menu1 {w title} {
673
        set oldFocus [focus]
674
        catch {destroy $w; unregister_active 1}
675
        toplevel $w -class Dialog
676
        wm withdraw $w
677
        global active_menus
678
        set active_menus [lsort -integer [linsert $active_menus end 1]]
679
        message $w.m -width 400 -aspect 300 -text \
680
                "Synthesis      "  -relief raised
681
        pack $w.m -pady 10 -side top -padx 10
682
        wm title $w "Synthesis      "
683
 
684
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 1; break"
685
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 1; menu2 .menu2 \"$title\""
686
        frame $w.f
687
        button $w.f.back -text "Main Menu" \
688
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 1"
689
        button $w.f.next -text "Next" -underline 0\
690
                -width 15 -command $nextscript
691
        bind all  $nextscript
692
        button $w.f.prev -text "Prev" -underline 0\
693
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 1; menu0 .menu0 \"$title\""
694
        $w.f.prev configure -state disabled
695
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
696
        pack $w.f -pady 10 -side bottom -anchor w -fill x
697
        frame $w.topline -relief ridge -borderwidth 2 -height 2
698
        pack $w.topline -side top -fill x
699
 
700
        frame $w.botline -relief ridge -borderwidth 2 -height 2
701
        pack $w.botline -side bottom -fill x
702
 
703
        frame $w.config
704
        pack $w.config -fill y -expand on
705
 
706
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
707
        pack $w.config.vscroll -side right -fill y
708
 
709
        canvas $w.config.canvas -height 1\
710
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
711
                -width [expr [winfo screenwidth .] * 1 / 2]
712
        frame $w.config.f
713
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
714
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
715
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
716
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
717
        bind $w  "$w.config.canvas yview moveto 0;break;"
718
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
719
        pack $w.config.canvas -side right -fill y
720
 
721
 
722
        global tmpvar_0
723
        minimenu $w.config.f 1 0 "Target technology                           " tmpvar_0 CONFIG_SYN_INFERRED
724
        menu $w.config.f.x0.x.menu -tearoffcommand "menutitle \"Target technology                           \""
725
        $w.config.f.x0.x.menu add radiobutton -label "Inferred" -variable tmpvar_0 -value "Inferred" -command "update_active"
726
        $w.config.f.x0.x.menu add radiobutton -label "Altera-Stratix" -variable tmpvar_0 -value "Altera-Stratix" -command "update_active"
727
        $w.config.f.x0.x.menu add radiobutton -label "Altera-StratixII" -variable tmpvar_0 -value "Altera-StratixII" -command "update_active"
728
        $w.config.f.x0.x.menu add radiobutton -label "Altera-StratixIII" -variable tmpvar_0 -value "Altera-StratixIII" -command "update_active"
729
        $w.config.f.x0.x.menu add radiobutton -label "Altera-CycloneIII" -variable tmpvar_0 -value "Altera-CycloneIII" -command "update_active"
730
        $w.config.f.x0.x.menu add radiobutton -label "Altera-Others" -variable tmpvar_0 -value "Altera-Others" -command "update_active"
731
        $w.config.f.x0.x.menu add radiobutton -label "Actel-Axcelerator" -variable tmpvar_0 -value "Actel-Axcelerator" -command "update_active"
732
        $w.config.f.x0.x.menu add radiobutton -label "Actel-Proasic" -variable tmpvar_0 -value "Actel-Proasic" -command "update_active"
733
        $w.config.f.x0.x.menu add radiobutton -label "Actel-ProasicPlus" -variable tmpvar_0 -value "Actel-ProasicPlus" -command "update_active"
734
        $w.config.f.x0.x.menu add radiobutton -label "Actel-Proasic3" -variable tmpvar_0 -value "Actel-Proasic3" -command "update_active"
735
        $w.config.f.x0.x.menu add radiobutton -label "Aeroflex-UT025CRH" -variable tmpvar_0 -value "Aeroflex-UT025CRH" -command "update_active"
736
        $w.config.f.x0.x.menu add radiobutton -label "Atmel-ATC18" -variable tmpvar_0 -value "Atmel-ATC18" -command "update_active"
737
        $w.config.f.x0.x.menu add radiobutton -label "Custom1" -variable tmpvar_0 -value "Custom1" -command "update_active"
738
        $w.config.f.x0.x.menu add radiobutton -label "eASIC90" -variable tmpvar_0 -value "eASIC90" -command "update_active"
739
        $w.config.f.x0.x.menu add radiobutton -label "IHP25" -variable tmpvar_0 -value "IHP25" -command "update_active"
740
        $w.config.f.x0.x.menu add radiobutton -label "IHP25RH" -variable tmpvar_0 -value "IHP25RH" -command "update_active"
741
        $w.config.f.x0.x.menu add radiobutton -label "Lattice-EC/ECP/XP" -variable tmpvar_0 -value "Lattice-EC/ECP/XP" -command "update_active"
742
        $w.config.f.x0.x.menu add radiobutton -label "Quicklogic-Eclipse" -variable tmpvar_0 -value "Quicklogic-Eclipse" -command "update_active"
743
        $w.config.f.x0.x.menu add radiobutton -label "Peregrine" -variable tmpvar_0 -value "Peregrine" -command "update_active"
744
        $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T" -variable tmpvar_0 -value "RH-LIB18T" -command "update_active"
745
        $w.config.f.x0.x.menu add radiobutton -label "RH-UMC" -variable tmpvar_0 -value "RH-UMC" -command "update_active"
746
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active"
747
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active"
748
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active"
749
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex" -variable tmpvar_0 -value "Xilinx-Virtex" -command "update_active"
750
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-VirtexE" -variable tmpvar_0 -value "Xilinx-VirtexE" -command "update_active"
751
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex2" -variable tmpvar_0 -value "Xilinx-Virtex2" -command "update_active"
752
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active"
753
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active"
754
        $w.config.f.x0.x.menu add radiobutton -label "UMC18" -variable tmpvar_0 -value "UMC18" -command "update_active"
755
        $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active"
756
        menusplit $w $w.config.f.x0.x.menu 31
757
        global tmpvar_1
758
        minimenu $w.config.f 1 1 "Memory Library                           " tmpvar_1 CONFIG_MEM_INFERRED
759
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library                           \""
760
        $w.config.f.x1.x.menu add radiobutton -label "Inferred" -variable tmpvar_1 -value "Inferred" -command "update_active"
761
        $w.config.f.x1.x.menu add radiobutton -label "UMC18" -variable tmpvar_1 -value "UMC18" -command "update_active"
762
        $w.config.f.x1.x.menu add radiobutton -label "RH-UMC" -variable tmpvar_1 -value "RH-UMC" -command "update_active"
763
        $w.config.f.x1.x.menu add radiobutton -label "Artisan" -variable tmpvar_1 -value "Artisan" -command "update_active"
764
        $w.config.f.x1.x.menu add radiobutton -label "Custom1" -variable tmpvar_1 -value "Custom1" -command "update_active"
765
        $w.config.f.x1.x.menu add radiobutton -label "Virage" -variable tmpvar_1 -value "Virage" -command "update_active"
766
        $w.config.f.x1.x.menu add radiobutton -label "Virage-TSMC90" -variable tmpvar_1 -value "Virage-TSMC90" -command "update_active"
767
        menusplit $w $w.config.f.x1.x.menu 7
768
        bool $w.config.f 1 2 "Infer RAM" CONFIG_SYN_INFER_RAM
769
        bool $w.config.f 1 3 "Infer pads" CONFIG_SYN_INFER_PADS
770
        bool $w.config.f 1 4 "Disable asynchronous reset" CONFIG_SYN_NO_ASYNC
771
        bool $w.config.f 1 5 "Enable scan support       " CONFIG_SYN_SCAN
772
 
773
 
774
 
775
        focus $w
776
        update_active
777
        global winx; global winy
778
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
779
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
780
        update idletasks
781
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
782
 
783
        $w.config.canvas configure \
784
                -width [expr [winfo reqwidth $w.config.f] + 1]\
785
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
786
                         [expr [winfo reqheight $w.config.f] + 1]"
787
 
788
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
789
        set scry [expr [winfo screenh $w] / 2]
790
        set maxy [expr [winfo screenh $w] * 3 / 4]
791
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
792
        if [expr $winy + $canvtotal < $maxy] {
793
                $w.config.canvas configure -height $canvtotal
794
        } else {
795
                $w.config.canvas configure -height [expr $scry - $winy]
796
                }
797
        }
798
        update idletasks
799
        if {[winfo exists $w]} then {
800
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
801
        wm minsize $w [winfo width $w] 100
802
 
803
        wm deiconify $w
804
}
805
}
806
 
807
proc update_menu1 {} {
808
        global CONFIG_SYN_INFERRED
809
        global CONFIG_SYN_CUSTOM1
810
        global CONFIG_SYN_ATC18
811
        global CONFIG_SYN_TSMC90
812
        global CONFIG_SYN_UMC
813
        global CONFIG_SYN_RHUMC
814
        global CONFIG_SYN_ARTISAN
815
        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}}
816
        global CONFIG_SYN_INFER_RAM
817
        if {($CONFIG_SYN_INFERRED != 1)} then {
818
        configure_entry .menu1.config.f.x2 normal {n l y}} else {configure_entry .menu1.config.f.x2 disabled {y n l}}
819
        global CONFIG_SYN_INFER_PADS
820
        if {($CONFIG_SYN_INFERRED != 1)} then {
821
        configure_entry .menu1.config.f.x3 normal {n l y}} else {configure_entry .menu1.config.f.x3 disabled {y n l}}
822
}
823
 
824
 
825
proc update_define_menu1 {} {
826
        update_define_mainmenu
827
        global CONFIG_MODULES
828
        global tmpvar_0
829
        global CONFIG_SYN_INFERRED
830
        if {$tmpvar_0 == "Inferred"} then {set CONFIG_SYN_INFERRED 1} else {set CONFIG_SYN_INFERRED 0}
831
        global CONFIG_SYN_STRATIX
832
        if {$tmpvar_0 == "Altera-Stratix"} then {set CONFIG_SYN_STRATIX 1} else {set CONFIG_SYN_STRATIX 0}
833
        global CONFIG_SYN_STRATIXII
834
        if {$tmpvar_0 == "Altera-StratixII"} then {set CONFIG_SYN_STRATIXII 1} else {set CONFIG_SYN_STRATIXII 0}
835
        global CONFIG_SYN_STRATIXIII
836
        if {$tmpvar_0 == "Altera-StratixIII"} then {set CONFIG_SYN_STRATIXIII 1} else {set CONFIG_SYN_STRATIXIII 0}
837
        global CONFIG_SYN_CYCLONEIII
838
        if {$tmpvar_0 == "Altera-CycloneIII"} then {set CONFIG_SYN_CYCLONEIII 1} else {set CONFIG_SYN_CYCLONEIII 0}
839
        global CONFIG_SYN_ALTERA
840
        if {$tmpvar_0 == "Altera-Others"} then {set CONFIG_SYN_ALTERA 1} else {set CONFIG_SYN_ALTERA 0}
841
        global CONFIG_SYN_AXCEL
842
        if {$tmpvar_0 == "Actel-Axcelerator"} then {set CONFIG_SYN_AXCEL 1} else {set CONFIG_SYN_AXCEL 0}
843
        global CONFIG_SYN_PROASIC
844
        if {$tmpvar_0 == "Actel-Proasic"} then {set CONFIG_SYN_PROASIC 1} else {set CONFIG_SYN_PROASIC 0}
845
        global CONFIG_SYN_PROASICPLUS
846
        if {$tmpvar_0 == "Actel-ProasicPlus"} then {set CONFIG_SYN_PROASICPLUS 1} else {set CONFIG_SYN_PROASICPLUS 0}
847
        global CONFIG_SYN_PROASIC3
848
        if {$tmpvar_0 == "Actel-Proasic3"} then {set CONFIG_SYN_PROASIC3 1} else {set CONFIG_SYN_PROASIC3 0}
849
        global CONFIG_SYN_UT025CRH
850
        if {$tmpvar_0 == "Aeroflex-UT025CRH"} then {set CONFIG_SYN_UT025CRH 1} else {set CONFIG_SYN_UT025CRH 0}
851
        global CONFIG_SYN_ATC18
852
        if {$tmpvar_0 == "Atmel-ATC18"} then {set CONFIG_SYN_ATC18 1} else {set CONFIG_SYN_ATC18 0}
853
        global CONFIG_SYN_CUSTOM1
854
        if {$tmpvar_0 == "Custom1"} then {set CONFIG_SYN_CUSTOM1 1} else {set CONFIG_SYN_CUSTOM1 0}
855
        global CONFIG_SYN_EASIC90
856
        if {$tmpvar_0 == "eASIC90"} then {set CONFIG_SYN_EASIC90 1} else {set CONFIG_SYN_EASIC90 0}
857
        global CONFIG_SYN_IHP25
858
        if {$tmpvar_0 == "IHP25"} then {set CONFIG_SYN_IHP25 1} else {set CONFIG_SYN_IHP25 0}
859
        global CONFIG_SYN_IHP25RH
860
        if {$tmpvar_0 == "IHP25RH"} then {set CONFIG_SYN_IHP25RH 1} else {set CONFIG_SYN_IHP25RH 0}
861
        global CONFIG_SYN_LATTICE
862
        if {$tmpvar_0 == "Lattice-EC/ECP/XP"} then {set CONFIG_SYN_LATTICE 1} else {set CONFIG_SYN_LATTICE 0}
863
        global CONFIG_SYN_ECLIPSE
864
        if {$tmpvar_0 == "Quicklogic-Eclipse"} then {set CONFIG_SYN_ECLIPSE 1} else {set CONFIG_SYN_ECLIPSE 0}
865
        global CONFIG_SYN_PEREGRINE
866
        if {$tmpvar_0 == "Peregrine"} then {set CONFIG_SYN_PEREGRINE 1} else {set CONFIG_SYN_PEREGRINE 0}
867
        global CONFIG_SYN_RH_LIB18T
868
        if {$tmpvar_0 == "RH-LIB18T"} then {set CONFIG_SYN_RH_LIB18T 1} else {set CONFIG_SYN_RH_LIB18T 0}
869
        global CONFIG_SYN_RHUMC
870
        if {$tmpvar_0 == "RH-UMC"} then {set CONFIG_SYN_RHUMC 1} else {set CONFIG_SYN_RHUMC 0}
871
        global CONFIG_SYN_SPARTAN2
872
        if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0}
873
        global CONFIG_SYN_SPARTAN3
874
        if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0}
875
        global CONFIG_SYN_SPARTAN3E
876
        if {$tmpvar_0 == "Xilinx-Spartan3E"} then {set CONFIG_SYN_SPARTAN3E 1} else {set CONFIG_SYN_SPARTAN3E 0}
877
        global CONFIG_SYN_VIRTEX
878
        if {$tmpvar_0 == "Xilinx-Virtex"} then {set CONFIG_SYN_VIRTEX 1} else {set CONFIG_SYN_VIRTEX 0}
879
        global CONFIG_SYN_VIRTEXE
880
        if {$tmpvar_0 == "Xilinx-VirtexE"} then {set CONFIG_SYN_VIRTEXE 1} else {set CONFIG_SYN_VIRTEXE 0}
881
        global CONFIG_SYN_VIRTEX2
882
        if {$tmpvar_0 == "Xilinx-Virtex2"} then {set CONFIG_SYN_VIRTEX2 1} else {set CONFIG_SYN_VIRTEX2 0}
883
        global CONFIG_SYN_VIRTEX4
884
        if {$tmpvar_0 == "Xilinx-Virtex4"} then {set CONFIG_SYN_VIRTEX4 1} else {set CONFIG_SYN_VIRTEX4 0}
885
        global CONFIG_SYN_VIRTEX5
886
        if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0}
887
        global CONFIG_SYN_UMC
888
        if {$tmpvar_0 == "UMC18"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0}
889
        global CONFIG_SYN_TSMC90
890
        if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0}
891
        global tmpvar_1
892
        global CONFIG_MEM_INFERRED
893
        if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0}
894
        global CONFIG_MEM_UMC
895
        if {$tmpvar_1 == "UMC18"} then {set CONFIG_MEM_UMC 1} else {set CONFIG_MEM_UMC 0}
896
        global CONFIG_MEM_RHUMC
897
        if {$tmpvar_1 == "RH-UMC"} then {set CONFIG_MEM_RHUMC 1} else {set CONFIG_MEM_RHUMC 0}
898
        global CONFIG_MEM_ARTISAN
899
        if {$tmpvar_1 == "Artisan"} then {set CONFIG_MEM_ARTISAN 1} else {set CONFIG_MEM_ARTISAN 0}
900
        global CONFIG_MEM_CUSTOM1
901
        if {$tmpvar_1 == "Custom1"} then {set CONFIG_MEM_CUSTOM1 1} else {set CONFIG_MEM_CUSTOM1 0}
902
        global CONFIG_MEM_VIRAGE
903
        if {$tmpvar_1 == "Virage"} then {set CONFIG_MEM_VIRAGE 1} else {set CONFIG_MEM_VIRAGE 0}
904
        global CONFIG_MEM_VIRAGE90
905
        if {$tmpvar_1 == "Virage-TSMC90"} then {set CONFIG_MEM_VIRAGE90 1} else {set CONFIG_MEM_VIRAGE90 0}
906
        global CONFIG_SYN_INFER_RAM
907
        if {($CONFIG_SYN_INFERRED != 1)} then {
908
        set CONFIG_SYN_INFER_RAM [expr $CONFIG_SYN_INFER_RAM&15]} else {set CONFIG_SYN_INFER_RAM [expr $CONFIG_SYN_INFER_RAM|16]}
909
        global CONFIG_SYN_INFER_PADS
910
        if {($CONFIG_SYN_INFERRED != 1)} then {
911
        set CONFIG_SYN_INFER_PADS [expr $CONFIG_SYN_INFER_PADS&15]} else {set CONFIG_SYN_INFER_PADS [expr $CONFIG_SYN_INFER_PADS|16]}
912
}
913
 
914
 
915
menu_option menu2 2 "Clock generation"
916
proc menu2 {w title} {
917
        set oldFocus [focus]
918
        catch {destroy $w; unregister_active 2}
919
        toplevel $w -class Dialog
920
        wm withdraw $w
921
        global active_menus
922
        set active_menus [lsort -integer [linsert $active_menus end 2]]
923
        message $w.m -width 400 -aspect 300 -text \
924
                "Clock generation"  -relief raised
925
        pack $w.m -pady 10 -side top -padx 10
926
        wm title $w "Clock generation"
927
 
928
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 2; break"
929
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu3 .menu3 \"$title\""
930
        frame $w.f
931
        button $w.f.back -text "Main Menu" \
932
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 2"
933
        button $w.f.next -text "Next" -underline 0\
934
                -width 15 -command $nextscript
935
        bind all  $nextscript
936
        button $w.f.prev -text "Prev" -underline 0\
937
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu1 .menu1 \"$title\""
938
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu1 .menu1 \"$title\";break"
939
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
940
        pack $w.f -pady 10 -side bottom -anchor w -fill x
941
        frame $w.topline -relief ridge -borderwidth 2 -height 2
942
        pack $w.topline -side top -fill x
943
 
944
        frame $w.botline -relief ridge -borderwidth 2 -height 2
945
        pack $w.botline -side bottom -fill x
946
 
947
        frame $w.config
948
        pack $w.config -fill y -expand on
949
 
950
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
951
        pack $w.config.vscroll -side right -fill y
952
 
953
        canvas $w.config.canvas -height 1\
954
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
955
                -width [expr [winfo screenwidth .] * 1 / 2]
956
        frame $w.config.f
957
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
958
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
959
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
960
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
961
        bind $w  "$w.config.canvas yview moveto 0;break;"
962
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
963
        pack $w.config.canvas -side right -fill y
964
 
965
 
966
        global tmpvar_2
967
        minimenu $w.config.f 2 0 "Clock generator                     " tmpvar_2 CONFIG_CLK_INFERRED
968
        menu $w.config.f.x0.x.menu -tearoffcommand "menutitle \"Clock generator                     \""
969
        $w.config.f.x0.x.menu add radiobutton -label "Inferred" -variable tmpvar_2 -value "Inferred" -command "update_active"
970
        $w.config.f.x0.x.menu add radiobutton -label "Actel-HCLKBUF" -variable tmpvar_2 -value "Actel-HCLKBUF" -command "update_active"
971
        $w.config.f.x0.x.menu add radiobutton -label "Altera-ALTPLL" -variable tmpvar_2 -value "Altera-ALTPLL" -command "update_active"
972
        $w.config.f.x0.x.menu add radiobutton -label "Lattice-EXPLL" -variable tmpvar_2 -value "Lattice-EXPLL" -command "update_active"
973
        $w.config.f.x0.x.menu add radiobutton -label "Proasic3-PLLL" -variable tmpvar_2 -value "Proasic3-PLLL" -command "update_active"
974
        $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active"
975
        $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active"
976
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active"
977
        $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active"
978
        menusplit $w $w.config.f.x0.x.menu 9
979
        int $w.config.f 2 1 "Clock multiplication factor (2 - 32)" CONFIG_CLK_MUL
980
        int $w.config.f 2 2 "Clock division factor (2 - 32)" CONFIG_CLK_DIV
981
        int $w.config.f 2 3 "Outout division factor (2 - 32)" CONFIG_OCLK_DIV
982
        bool $w.config.f 2 4 "Enable Xilinx CLKDLL for PCI clock" CONFIG_PCI_CLKDLL
983
        bool $w.config.f 2 5 "Disable external feedback for SDRAM clock" CONFIG_CLK_NOFB
984
        bool $w.config.f 2 6 "Use PCI clock as system clock" CONFIG_PCI_SYSCLK
985
 
986
 
987
 
988
        focus $w
989
        update_active
990
        global winx; global winy
991
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
992
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
993
        update idletasks
994
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
995
 
996
        $w.config.canvas configure \
997
                -width [expr [winfo reqwidth $w.config.f] + 1]\
998
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
999
                         [expr [winfo reqheight $w.config.f] + 1]"
1000
 
1001
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1002
        set scry [expr [winfo screenh $w] / 2]
1003
        set maxy [expr [winfo screenh $w] * 3 / 4]
1004
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1005
        if [expr $winy + $canvtotal < $maxy] {
1006
                $w.config.canvas configure -height $canvtotal
1007
        } else {
1008
                $w.config.canvas configure -height [expr $scry - $winy]
1009
                }
1010
        }
1011
        update idletasks
1012
        if {[winfo exists $w]} then {
1013
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1014
        wm minsize $w [winfo width $w] 100
1015
 
1016
        wm deiconify $w
1017
}
1018
}
1019
 
1020
proc update_menu2 {} {
1021
        global CONFIG_CLK_DCM
1022
        global CONFIG_CLK_ALTDLL
1023
        global CONFIG_CLK_LATDLL
1024
        global CONFIG_CLK_PRO3PLL
1025
        global CONFIG_CLK_CLKDLL
1026
        global CONFIG_CLK_LIB18T
1027
        global CONFIG_CLK_MUL
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.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}
1029
        global CONFIG_CLK_DIV
1030
        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}
1031
        global CONFIG_OCLK_DIV
1032
        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}
1033
        global CONFIG_PCI_CLKDLL
1034
        if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then {
1035
        configure_entry .menu2.config.f.x4 normal {n l y}} else {configure_entry .menu2.config.f.x4 disabled {y n l}}
1036
        global CONFIG_CLK_NOFB
1037
        if {($CONFIG_CLK_DCM == 1)} then {
1038
        configure_entry .menu2.config.f.x5 normal {n l y}} else {configure_entry .menu2.config.f.x5 disabled {y n l}}
1039
        global CONFIG_PCI_ENABLE
1040
        global CONFIG_PCI_SYSCLK
1041
        if {($CONFIG_PCI_ENABLE != 1)} then {
1042
        configure_entry .menu2.config.f.x6 normal {n l y}} else {configure_entry .menu2.config.f.x6 disabled {y n l}}
1043
}
1044
 
1045
 
1046
proc update_define_menu2 {} {
1047
        update_define_mainmenu
1048
        global CONFIG_MODULES
1049
        global tmpvar_2
1050
        global CONFIG_CLK_INFERRED
1051
        if {$tmpvar_2 == "Inferred"} then {set CONFIG_CLK_INFERRED 1} else {set CONFIG_CLK_INFERRED 0}
1052
        global CONFIG_CLK_HCLKBUF
1053
        if {$tmpvar_2 == "Actel-HCLKBUF"} then {set CONFIG_CLK_HCLKBUF 1} else {set CONFIG_CLK_HCLKBUF 0}
1054
        global CONFIG_CLK_ALTDLL
1055
        if {$tmpvar_2 == "Altera-ALTPLL"} then {set CONFIG_CLK_ALTDLL 1} else {set CONFIG_CLK_ALTDLL 0}
1056
        global CONFIG_CLK_LATDLL
1057
        if {$tmpvar_2 == "Lattice-EXPLL"} then {set CONFIG_CLK_LATDLL 1} else {set CONFIG_CLK_LATDLL 0}
1058
        global CONFIG_CLK_PRO3PLL
1059
        if {$tmpvar_2 == "Proasic3-PLLL"} then {set CONFIG_CLK_PRO3PLL 1} else {set CONFIG_CLK_PRO3PLL 0}
1060
        global CONFIG_CLK_LIB18T
1061
        if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0}
1062
        global CONFIG_CLK_RHUMC
1063
        if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0}
1064
        global CONFIG_CLK_CLKDLL
1065
        if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0}
1066
        global CONFIG_CLK_DCM
1067
        if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0}
1068
        global CONFIG_CLK_MUL
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_MUL "$CONFIG_CLK_MUL" 2}
1070
        global CONFIG_CLK_DIV
1071
        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}
1072
        global CONFIG_OCLK_DIV
1073
        if {($CONFIG_CLK_PRO3PLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 2}
1074
        global CONFIG_PCI_CLKDLL
1075
        if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then {
1076
        set CONFIG_PCI_CLKDLL [expr $CONFIG_PCI_CLKDLL&15]} else {set CONFIG_PCI_CLKDLL [expr $CONFIG_PCI_CLKDLL|16]}
1077
        global CONFIG_CLK_NOFB
1078
        if {($CONFIG_CLK_DCM == 1)} then {
1079
        set CONFIG_CLK_NOFB [expr $CONFIG_CLK_NOFB&15]} else {set CONFIG_CLK_NOFB [expr $CONFIG_CLK_NOFB|16]}
1080
        global CONFIG_PCI_ENABLE
1081
        global CONFIG_PCI_SYSCLK
1082
        if {($CONFIG_PCI_ENABLE != 1)} then {
1083
        set CONFIG_PCI_SYSCLK [expr $CONFIG_PCI_SYSCLK&15]} else {set CONFIG_PCI_SYSCLK [expr $CONFIG_PCI_SYSCLK|16]}
1084
}
1085
 
1086
 
1087
menu_option menu3 3 "Processor            "
1088
proc menu3 {w title} {
1089
        set oldFocus [focus]
1090
        catch {destroy $w; unregister_active 3}
1091
        toplevel $w -class Dialog
1092
        wm withdraw $w
1093
        global active_menus
1094
        set active_menus [lsort -integer [linsert $active_menus end 3]]
1095
        message $w.m -width 400 -aspect 300 -text \
1096
                "Processor            "  -relief raised
1097
        pack $w.m -pady 10 -side top -padx 10
1098
        wm title $w "Processor            "
1099
 
1100
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 3; break"
1101
        set nextscript "catch {focus $oldFocus}; menu4 .menu4 \"$title\""
1102
        frame $w.f
1103
        button $w.f.back -text "Main Menu" \
1104
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 3"
1105
        button $w.f.next -text "Next" -underline 0\
1106
                -width 15 -command $nextscript
1107
        bind all  $nextscript
1108
        button $w.f.prev -text "Prev" -underline 0\
1109
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 3; menu2 .menu2 \"$title\""
1110
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 3; menu2 .menu2 \"$title\";break"
1111
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1112
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1113
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1114
        pack $w.topline -side top -fill x
1115
 
1116
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1117
        pack $w.botline -side bottom -fill x
1118
 
1119
        frame $w.config
1120
        pack $w.config -fill y -expand on
1121
 
1122
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1123
        pack $w.config.vscroll -side right -fill y
1124
 
1125
        canvas $w.config.canvas -height 1\
1126
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1127
                -width [expr [winfo screenwidth .] * 1 / 2]
1128
        frame $w.config.f
1129
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1130
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1131
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1132
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1133
        bind $w  "$w.config.canvas yview moveto 0;break;"
1134
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1135
        pack $w.config.canvas -side right -fill y
1136
 
1137
 
1138
        bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3
1139
        int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM
1140
        submenu $w.config.f 3 2 "Integer unit                                           " 4
1141
        submenu $w.config.f 3 3 "Floating-point unit" 5
1142
        submenu $w.config.f 3 4 "Cache system" 6
1143
        submenu $w.config.f 3 5 "MMU" 7
1144
        submenu $w.config.f 3 6 "Debug Support Unit        " 8
1145
        submenu $w.config.f 3 7 "Fault-tolerance  " 9
1146
        submenu $w.config.f 3 8 "VHDL debug settings       " 10
1147
 
1148
 
1149
 
1150
        focus $w
1151
        update_active
1152
        global winx; global winy
1153
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
1154
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
1155
        update idletasks
1156
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
1157
 
1158
        $w.config.canvas configure \
1159
                -width [expr [winfo reqwidth $w.config.f] + 1]\
1160
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
1161
                         [expr [winfo reqheight $w.config.f] + 1]"
1162
 
1163
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1164
        set scry [expr [winfo screenh $w] / 2]
1165
        set maxy [expr [winfo screenh $w] * 3 / 4]
1166
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1167
        if [expr $winy + $canvtotal < $maxy] {
1168
                $w.config.canvas configure -height $canvtotal
1169
        } else {
1170
                $w.config.canvas configure -height [expr $scry - $winy]
1171
                }
1172
        }
1173
        update idletasks
1174
        if {[winfo exists $w]} then {
1175
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1176
        wm minsize $w [winfo width $w] 100
1177
 
1178
        wm deiconify $w
1179
}
1180
}
1181
 
1182
proc update_menu3 {} {
1183
        global CONFIG_LEON3
1184
        global CONFIG_PROC_NUM
1185
        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}
1186
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}}
1187
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}}
1188
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}}
1189
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}}
1190
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}}
1191
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}}
1192
        if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}}
1193
}
1194
 
1195
 
1196
proc update_define_menu3 {} {
1197
        update_define_mainmenu
1198
        global CONFIG_MODULES
1199
        global CONFIG_LEON3
1200
        global CONFIG_PROC_NUM
1201
        if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1}
1202
}
1203
 
1204
 
1205
proc menu4 {w title} {
1206
        set oldFocus [focus]
1207
        catch {focus .menu3}
1208
        catch {destroy $w; unregister_active 4}
1209
        toplevel $w -class Dialog
1210
        wm withdraw $w
1211
        global active_menus
1212
        set active_menus [lsort -integer [linsert $active_menus end 4]]
1213
        message $w.m -width 400 -aspect 300 -text \
1214
                "Integer unit                                           "  -relief raised
1215
        pack $w.m -pady 10 -side top -padx 10
1216
        wm title $w "Integer unit                                           "
1217
 
1218
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 4; break"
1219
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu5 .menu5 \"$title\""
1220
        frame $w.f
1221
        button $w.f.back -text "OK" \
1222
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 4"
1223
        button $w.f.next -text "Next" -underline 0\
1224
                -width 15 -command $nextscript
1225
        bind all  $nextscript
1226
        button $w.f.prev -text "Prev" -underline 0\
1227
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu3 .menu3 \"$title\""
1228
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu3 .menu3 \"$title\";break"
1229
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1230
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1231
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1232
        pack $w.topline -side top -fill x
1233
 
1234
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1235
        pack $w.botline -side bottom -fill x
1236
 
1237
        frame $w.config
1238
        pack $w.config -fill y -expand on
1239
 
1240
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1241
        pack $w.config.vscroll -side right -fill y
1242
 
1243
        canvas $w.config.canvas -height 1\
1244
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1245
                -width [expr [winfo screenwidth .] * 1 / 2]
1246
        frame $w.config.f
1247
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1248
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1249
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1250
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1251
        bind $w  "$w.config.canvas yview moveto 0;break;"
1252
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1253
        pack $w.config.canvas -side right -fill y
1254
 
1255
 
1256
        int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS
1257
        bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV
1258
        global tmpvar_3
1259
        minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_4
1260
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\""
1261
        $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active"
1262
        $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active"
1263
        menusplit $w $w.config.f.x2.x.menu 2
1264
        bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions     " CONFIG_IU_MUL_MAC
1265
        bool $w.config.f 4 4 "Single-vector trapping" CONFIG_IU_SVT
1266
        int $w.config.f 4 5 "Load delay" CONFIG_IU_LDELAY
1267
        int $w.config.f 4 6 "Hardware watchpoints" CONFIG_IU_WATCHPOINTS
1268
        bool $w.config.f 4 7 "Enable power-down mode " CONFIG_PWD
1269
        hex $w.config.f 4 8 " Reset start address (addr\[31:12\]) " CONFIG_IU_RSTADDR
1270
 
1271
 
1272
 
1273
        focus $w
1274
        update_active
1275
        global winx; global winy
1276
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
1277
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
1278
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
1279
        update idletasks
1280
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
1281
 
1282
        $w.config.canvas configure \
1283
                -width [expr [winfo reqwidth $w.config.f] + 1]\
1284
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
1285
                         [expr [winfo reqheight $w.config.f] + 1]"
1286
 
1287
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1288
        set scry [expr [winfo screenh $w] / 2]
1289
        set maxy [expr [winfo screenh $w] * 3 / 4]
1290
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1291
        if [expr $winy + $canvtotal < $maxy] {
1292
                $w.config.canvas configure -height $canvtotal
1293
        } else {
1294
                $w.config.canvas configure -height [expr $scry - $winy]
1295
                }
1296
        }
1297
        update idletasks
1298
        if {[winfo exists $w]} then {
1299
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1300
        wm minsize $w [winfo width $w] 100
1301
 
1302
        wm deiconify $w
1303
}
1304
}
1305
 
1306
proc update_menu4 {} {
1307
        global CONFIG_LEON3
1308
        global CONFIG_IU_NWINDOWS
1309
        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}
1310
        global CONFIG_IU_V8MULDIV
1311
        if {($CONFIG_LEON3 == 1)} then {
1312
        configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}}
1313
        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}}
1314
        global CONFIG_IU_MUL_MAC
1315
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {
1316
        configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}}
1317
        global CONFIG_IU_SVT
1318
        if {($CONFIG_LEON3 == 1)} then {
1319
        configure_entry .menu4.config.f.x4 normal {n l y}} else {configure_entry .menu4.config.f.x4 disabled {y n l}}
1320
        global CONFIG_IU_LDELAY
1321
        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}
1322
        global CONFIG_IU_WATCHPOINTS
1323
        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}
1324
        global CONFIG_PWD
1325
        if {($CONFIG_LEON3 == 1)} then {
1326
        configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}}
1327
        global CONFIG_IU_RSTADDR
1328
        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}
1329
}
1330
 
1331
 
1332
proc update_define_menu4 {} {
1333
        update_define_mainmenu
1334
        global CONFIG_MODULES
1335
        global CONFIG_LEON3
1336
        global CONFIG_IU_NWINDOWS
1337
        if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8}
1338
        global CONFIG_IU_V8MULDIV
1339
        if {($CONFIG_LEON3 == 1)} then {
1340
        set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]}
1341
        global tmpvar_3
1342
        global CONFIG_IU_MUL_LATENCY_4
1343
        if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0}
1344
        global CONFIG_IU_MUL_LATENCY_5
1345
        if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0}
1346
        global CONFIG_IU_MUL_MAC
1347
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {
1348
        set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]}
1349
        global CONFIG_IU_SVT
1350
        if {($CONFIG_LEON3 == 1)} then {
1351
        set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]}
1352
        global CONFIG_IU_LDELAY
1353
        if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1}
1354
        global CONFIG_IU_WATCHPOINTS
1355
        if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0}
1356
        global CONFIG_PWD
1357
        if {($CONFIG_LEON3 == 1)} then {
1358
        set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]}
1359
        global CONFIG_IU_RSTADDR
1360
        if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000}
1361
}
1362
 
1363
 
1364
proc menu5 {w title} {
1365
        set oldFocus [focus]
1366
        catch {focus .menu3}
1367
        catch {destroy $w; unregister_active 5}
1368
        toplevel $w -class Dialog
1369
        wm withdraw $w
1370
        global active_menus
1371
        set active_menus [lsort -integer [linsert $active_menus end 5]]
1372
        message $w.m -width 400 -aspect 300 -text \
1373
                "Floating-point unit"  -relief raised
1374
        pack $w.m -pady 10 -side top -padx 10
1375
        wm title $w "Floating-point unit"
1376
 
1377
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 5; break"
1378
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu6 .menu6 \"$title\""
1379
        frame $w.f
1380
        button $w.f.back -text "OK" \
1381
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 5"
1382
        button $w.f.next -text "Next" -underline 0\
1383
                -width 15 -command $nextscript
1384
        bind all  $nextscript
1385
        button $w.f.prev -text "Prev" -underline 0\
1386
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu4 .menu4 \"$title\""
1387
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu4 .menu4 \"$title\";break"
1388
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1389
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1390
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1391
        pack $w.topline -side top -fill x
1392
 
1393
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1394
        pack $w.botline -side bottom -fill x
1395
 
1396
        frame $w.config
1397
        pack $w.config -fill y -expand on
1398
 
1399
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1400
        pack $w.config.vscroll -side right -fill y
1401
 
1402
        canvas $w.config.canvas -height 1\
1403
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1404
                -width [expr [winfo screenwidth .] * 1 / 2]
1405
        frame $w.config.f
1406
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1407
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1408
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1409
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1410
        bind $w  "$w.config.canvas yview moveto 0;break;"
1411
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1412
        pack $w.config.canvas -side right -fill y
1413
 
1414
 
1415
        bool $w.config.f 5 0 "Enable FPU                             " CONFIG_FPU_ENABLE
1416
        global tmpvar_4
1417
        minimenu $w.config.f 5 1 "FPU core" tmpvar_4 CONFIG_FPU_GRFPU
1418
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\""
1419
        $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_4 -value "GRFPU" -command "update_active"
1420
        $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_4 -value "GRFPU-LITE" -command "update_active"
1421
        $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_4 -value "Meiko" -command "update_active"
1422
        menusplit $w $w.config.f.x1.x.menu 3
1423
        global tmpvar_5
1424
        minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_5 CONFIG_FPU_GRFPU_INFMUL
1425
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\""
1426
        $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active"
1427
        $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_5 -value "DW" -command "update_active"
1428
        menusplit $w $w.config.f.x2.x.menu 2
1429
        global tmpvar_6
1430
        minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_6 CONFIG_FPU_GRFPC0
1431
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\""
1432
        $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_6 -value "Simple" -command "update_active"
1433
        $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_6 -value "Data-forwarding" -command "update_active"
1434
        $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_6 -value "Non-blocking" -command "update_active"
1435
        menusplit $w $w.config.f.x3.x.menu 3
1436
        bool $w.config.f 5 4 "Use VHDL netlist          " CONFIG_FPU_NETLIST
1437
 
1438
 
1439
 
1440
        focus $w
1441
        update_active
1442
        global winx; global winy
1443
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
1444
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
1445
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
1446
        update idletasks
1447
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
1448
 
1449
        $w.config.canvas configure \
1450
                -width [expr [winfo reqwidth $w.config.f] + 1]\
1451
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
1452
                         [expr [winfo reqheight $w.config.f] + 1]"
1453
 
1454
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1455
        set scry [expr [winfo screenh $w] / 2]
1456
        set maxy [expr [winfo screenh $w] * 3 / 4]
1457
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1458
        if [expr $winy + $canvtotal < $maxy] {
1459
                $w.config.canvas configure -height $canvtotal
1460
        } else {
1461
                $w.config.canvas configure -height [expr $scry - $winy]
1462
                }
1463
        }
1464
        update idletasks
1465
        if {[winfo exists $w]} then {
1466
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1467
        wm minsize $w [winfo width $w] 100
1468
 
1469
        wm deiconify $w
1470
}
1471
}
1472
 
1473
proc update_menu5 {} {
1474
        global CONFIG_LEON3
1475
        global CONFIG_FPU_ENABLE
1476
        if {($CONFIG_LEON3 == 1)} then {
1477
        configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}}
1478
        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}}
1479
        global CONFIG_FPU_GRFPU
1480
        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}}
1481
        global CONFIG_FPU_GRFPULITE
1482
        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}}
1483
        global CONFIG_FPU_NETLIST
1484
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {
1485
        configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}}
1486
}
1487
 
1488
 
1489
proc update_define_menu5 {} {
1490
        update_define_mainmenu
1491
        global CONFIG_MODULES
1492
        global CONFIG_LEON3
1493
        global CONFIG_FPU_ENABLE
1494
        if {($CONFIG_LEON3 == 1)} then {
1495
        set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]}
1496
        global tmpvar_4
1497
        global CONFIG_FPU_GRFPU
1498
        if {$tmpvar_4 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0}
1499
        global CONFIG_FPU_GRFPULITE
1500
        if {$tmpvar_4 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0}
1501
        global CONFIG_FPU_MEIKO
1502
        if {$tmpvar_4 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0}
1503
        global tmpvar_5
1504
        global CONFIG_FPU_GRFPU_INFMUL
1505
        if {$tmpvar_5 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0}
1506
        global CONFIG_FPU_GRFPU_DWMUL
1507
        if {$tmpvar_5 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0}
1508
        global tmpvar_6
1509
        global CONFIG_FPU_GRFPC0
1510
        if {$tmpvar_6 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0}
1511
        global CONFIG_FPU_GRFPC1
1512
        if {$tmpvar_6 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0}
1513
        global CONFIG_FPU_GRFPC2
1514
        if {$tmpvar_6 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0}
1515
        global CONFIG_FPU_NETLIST
1516
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {
1517
        set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]}
1518
}
1519
 
1520
 
1521
proc menu6 {w title} {
1522
        set oldFocus [focus]
1523
        catch {focus .menu3}
1524
        catch {destroy $w; unregister_active 6}
1525
        toplevel $w -class Dialog
1526
        wm withdraw $w
1527
        global active_menus
1528
        set active_menus [lsort -integer [linsert $active_menus end 6]]
1529
        message $w.m -width 400 -aspect 300 -text \
1530
                "Cache system"  -relief raised
1531
        pack $w.m -pady 10 -side top -padx 10
1532
        wm title $w "Cache system"
1533
 
1534
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 6; break"
1535
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu7 .menu7 \"$title\""
1536
        frame $w.f
1537
        button $w.f.back -text "OK" \
1538
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 6"
1539
        button $w.f.next -text "Next" -underline 0\
1540
                -width 15 -command $nextscript
1541
        bind all  $nextscript
1542
        button $w.f.prev -text "Prev" -underline 0\
1543
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu5 .menu5 \"$title\""
1544
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu5 .menu5 \"$title\";break"
1545
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1546
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1547
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1548
        pack $w.topline -side top -fill x
1549
 
1550
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1551
        pack $w.botline -side bottom -fill x
1552
 
1553
        frame $w.config
1554
        pack $w.config -fill y -expand on
1555
 
1556
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1557
        pack $w.config.vscroll -side right -fill y
1558
 
1559
        canvas $w.config.canvas -height 1\
1560
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1561
                -width [expr [winfo screenwidth .] * 1 / 2]
1562
        frame $w.config.f
1563
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1564
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1565
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1566
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1567
        bind $w  "$w.config.canvas yview moveto 0;break;"
1568
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1569
        pack $w.config.canvas -side right -fill y
1570
 
1571
 
1572
        bool $w.config.f 6 0 "Enable instruction cache       " CONFIG_ICACHE_ENABLE
1573
        global tmpvar_7
1574
        minimenu $w.config.f 6 1 "Associativity (sets)            " tmpvar_7 CONFIG_ICACHE_ASSO1
1575
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets)            \""
1576
        $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_7 -value "1" -command "update_active"
1577
        $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_7 -value "2" -command "update_active"
1578
        $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_7 -value "3" -command "update_active"
1579
        $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_7 -value "4" -command "update_active"
1580
        menusplit $w $w.config.f.x1.x.menu 4
1581
        global tmpvar_8
1582
        minimenu $w.config.f 6 2 "Set size (kbytes/set)" tmpvar_8 CONFIG_ICACHE_SZ1
1583
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\""
1584
        $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active"
1585
        $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active"
1586
        $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active"
1587
        $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_8 -value "8" -command "update_active"
1588
        $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_8 -value "16" -command "update_active"
1589
        $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_8 -value "32" -command "update_active"
1590
        $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_8 -value "64" -command "update_active"
1591
        $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_8 -value "128" -command "update_active"
1592
        $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_8 -value "256" -command "update_active"
1593
        menusplit $w $w.config.f.x2.x.menu 9
1594
        global tmpvar_9
1595
        minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_9 CONFIG_ICACHE_LZ16
1596
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\""
1597
        $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active"
1598
        $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active"
1599
        menusplit $w $w.config.f.x3.x.menu 2
1600
        global tmpvar_10
1601
        minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_10 CONFIG_ICACHE_ALGORND
1602
        menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\""
1603
        $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_10 -value "Random" -command "update_active"
1604
        $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_10 -value "LRR" -command "update_active"
1605
        $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_10 -value "LRU" -command "update_active"
1606
        menusplit $w $w.config.f.x4.x.menu 3
1607
        bool $w.config.f 6 5 "Cache locking      " CONFIG_ICACHE_LOCK
1608
        bool $w.config.f 6 6 "Enable local instruction RAM            " CONFIG_ICACHE_LRAM
1609
        global tmpvar_11
1610
        minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_11 CONFIG_ICACHE_LRAM_SZ1
1611
        menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\""
1612
        $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active"
1613
        $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active"
1614
        $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active"
1615
        $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active"
1616
        $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active"
1617
        $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active"
1618
        $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active"
1619
        $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active"
1620
        $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active"
1621
        menusplit $w $w.config.f.x7.x.menu 9
1622
        hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART
1623
        bool $w.config.f 6 9 "Enable data cache       " CONFIG_DCACHE_ENABLE
1624
        global tmpvar_12
1625
        minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_12 CONFIG_DCACHE_ASSO1
1626
        menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\""
1627
        $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active"
1628
        $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active"
1629
        $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_12 -value "3" -command "update_active"
1630
        $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active"
1631
        menusplit $w $w.config.f.x10.x.menu 4
1632
        global tmpvar_13
1633
        minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_13 CONFIG_DCACHE_SZ1
1634
        menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\""
1635
        $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active"
1636
        $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active"
1637
        $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active"
1638
        $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active"
1639
        $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active"
1640
        $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active"
1641
        $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active"
1642
        $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active"
1643
        $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active"
1644
        menusplit $w $w.config.f.x11.x.menu 9
1645
        global tmpvar_14
1646
        minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_14 CONFIG_DCACHE_LZ16
1647
        menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\""
1648
        $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active"
1649
        $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active"
1650
        menusplit $w $w.config.f.x12.x.menu 2
1651
        global tmpvar_15
1652
        minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_15 CONFIG_DCACHE_ALGORND
1653
        menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\""
1654
        $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_15 -value "Random" -command "update_active"
1655
        $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_15 -value "LRR" -command "update_active"
1656
        $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_15 -value "LRU" -command "update_active"
1657
        menusplit $w $w.config.f.x13.x.menu 3
1658
        bool $w.config.f 6 14 "Cache locking      " CONFIG_DCACHE_LOCK
1659
        bool $w.config.f 6 15 "AHB snooping       " CONFIG_DCACHE_SNOOP
1660
        bool $w.config.f 6 16 "Fast snooping       " CONFIG_DCACHE_SNOOP_FAST
1661
        bool $w.config.f 6 17 "Separate snoop tags  " CONFIG_DCACHE_SNOOP_SEPTAG
1662
        hex $w.config.f 6 18 "Fixed cacheability map  " CONFIG_CACHE_FIXED
1663
        bool $w.config.f 6 19 "Enable local data RAM            " CONFIG_DCACHE_LRAM
1664
        global tmpvar_16
1665
        minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_16 CONFIG_DCACHE_LRAM_SZ1
1666
        menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\""
1667
        $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_16 -value "1" -command "update_active"
1668
        $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_16 -value "2" -command "update_active"
1669
        $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_16 -value "4" -command "update_active"
1670
        $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_16 -value "8" -command "update_active"
1671
        $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active"
1672
        $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active"
1673
        $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_16 -value "64" -command "update_active"
1674
        $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_16 -value "128" -command "update_active"
1675
        $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_16 -value "256" -command "update_active"
1676
        menusplit $w $w.config.f.x20.x.menu 9
1677
        hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART
1678
 
1679
 
1680
 
1681
        focus $w
1682
        update_active
1683
        global winx; global winy
1684
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
1685
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
1686
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
1687
        update idletasks
1688
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
1689
 
1690
        $w.config.canvas configure \
1691
                -width [expr [winfo reqwidth $w.config.f] + 1]\
1692
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
1693
                         [expr [winfo reqheight $w.config.f] + 1]"
1694
 
1695
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
1696
        set scry [expr [winfo screenh $w] / 2]
1697
        set maxy [expr [winfo screenh $w] * 3 / 4]
1698
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
1699
        if [expr $winy + $canvtotal < $maxy] {
1700
                $w.config.canvas configure -height $canvtotal
1701
        } else {
1702
                $w.config.canvas configure -height [expr $scry - $winy]
1703
                }
1704
        }
1705
        update idletasks
1706
        if {[winfo exists $w]} then {
1707
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
1708
        wm minsize $w [winfo width $w] 100
1709
 
1710
        wm deiconify $w
1711
}
1712
}
1713
 
1714
proc update_menu6 {} {
1715
        global CONFIG_LEON3
1716
        global CONFIG_ICACHE_ENABLE
1717
        if {($CONFIG_LEON3 == 1)} then {
1718
        configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}}
1719
        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}}
1720
        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}}
1721
        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}}
1722
        global CONFIG_ICACHE_ASSO1
1723
        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}}
1724
        global CONFIG_ICACHE_LOCK
1725
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {
1726
        configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}}
1727
        global CONFIG_MMU_ENABLE
1728
        global CONFIG_ICACHE_LRAM
1729
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {
1730
        configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}}
1731
        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}}
1732
        global CONFIG_ICACHE_LRSTART
1733
        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}
1734
        global CONFIG_DCACHE_ENABLE
1735
        if {($CONFIG_LEON3 == 1)} then {
1736
        configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}}
1737
        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}}
1738
        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}}
1739
        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}}
1740
        global CONFIG_DCACHE_ASSO1
1741
        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}}
1742
        global CONFIG_DCACHE_LOCK
1743
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {
1744
        configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}}
1745
        global CONFIG_DCACHE_SNOOP
1746
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
1747
        configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}}
1748
        global CONFIG_DCACHE_SNOOP_FAST
1749
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {
1750
        configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}}
1751
        global CONFIG_DCACHE_SNOOP_SEPTAG
1752
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {
1753
        configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}}
1754
        global CONFIG_CACHE_FIXED
1755
        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}
1756
        global CONFIG_DCACHE_LRAM
1757
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {
1758
        configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}}
1759
        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}}
1760
        global CONFIG_DCACHE_LRSTART
1761
        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}
1762
}
1763
 
1764
 
1765
proc update_define_menu6 {} {
1766
        update_define_mainmenu
1767
        global CONFIG_MODULES
1768
        global CONFIG_LEON3
1769
        global CONFIG_ICACHE_ENABLE
1770
        if {($CONFIG_LEON3 == 1)} then {
1771
        set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]}
1772
        global tmpvar_7
1773
        global CONFIG_ICACHE_ASSO1
1774
        if {$tmpvar_7 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0}
1775
        global CONFIG_ICACHE_ASSO2
1776
        if {$tmpvar_7 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0}
1777
        global CONFIG_ICACHE_ASSO3
1778
        if {$tmpvar_7 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0}
1779
        global CONFIG_ICACHE_ASSO4
1780
        if {$tmpvar_7 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0}
1781
        global tmpvar_8
1782
        global CONFIG_ICACHE_SZ1
1783
        if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0}
1784
        global CONFIG_ICACHE_SZ2
1785
        if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0}
1786
        global CONFIG_ICACHE_SZ4
1787
        if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0}
1788
        global CONFIG_ICACHE_SZ8
1789
        if {$tmpvar_8 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0}
1790
        global CONFIG_ICACHE_SZ16
1791
        if {$tmpvar_8 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0}
1792
        global CONFIG_ICACHE_SZ32
1793
        if {$tmpvar_8 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0}
1794
        global CONFIG_ICACHE_SZ64
1795
        if {$tmpvar_8 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0}
1796
        global CONFIG_ICACHE_SZ128
1797
        if {$tmpvar_8 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0}
1798
        global CONFIG_ICACHE_SZ256
1799
        if {$tmpvar_8 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0}
1800
        global tmpvar_9
1801
        global CONFIG_ICACHE_LZ16
1802
        if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0}
1803
        global CONFIG_ICACHE_LZ32
1804
        if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0}
1805
        global tmpvar_10
1806
        global CONFIG_ICACHE_ALGORND
1807
        if {$tmpvar_10 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0}
1808
        global CONFIG_ICACHE_ALGOLRR
1809
        if {$tmpvar_10 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0}
1810
        global CONFIG_ICACHE_ALGOLRU
1811
        if {$tmpvar_10 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0}
1812
        global CONFIG_ICACHE_LOCK
1813
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {
1814
        set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]}
1815
        global CONFIG_MMU_ENABLE
1816
        global CONFIG_ICACHE_LRAM
1817
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {
1818
        set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]}
1819
        global tmpvar_11
1820
        global CONFIG_ICACHE_LRAM_SZ1
1821
        if {$tmpvar_11 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0}
1822
        global CONFIG_ICACHE_LRAM_SZ2
1823
        if {$tmpvar_11 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0}
1824
        global CONFIG_ICACHE_LRAM_SZ4
1825
        if {$tmpvar_11 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0}
1826
        global CONFIG_ICACHE_LRAM_SZ8
1827
        if {$tmpvar_11 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0}
1828
        global CONFIG_ICACHE_LRAM_SZ16
1829
        if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0}
1830
        global CONFIG_ICACHE_LRAM_SZ32
1831
        if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0}
1832
        global CONFIG_ICACHE_LRAM_SZ64
1833
        if {$tmpvar_11 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0}
1834
        global CONFIG_ICACHE_LRAM_SZ128
1835
        if {$tmpvar_11 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0}
1836
        global CONFIG_ICACHE_LRAM_SZ256
1837
        if {$tmpvar_11 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0}
1838
        global CONFIG_ICACHE_LRSTART
1839
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e}
1840
        global CONFIG_DCACHE_ENABLE
1841
        if {($CONFIG_LEON3 == 1)} then {
1842
        set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]}
1843
        global tmpvar_12
1844
        global CONFIG_DCACHE_ASSO1
1845
        if {$tmpvar_12 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0}
1846
        global CONFIG_DCACHE_ASSO2
1847
        if {$tmpvar_12 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0}
1848
        global CONFIG_DCACHE_ASSO3
1849
        if {$tmpvar_12 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0}
1850
        global CONFIG_DCACHE_ASSO4
1851
        if {$tmpvar_12 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0}
1852
        global tmpvar_13
1853
        global CONFIG_DCACHE_SZ1
1854
        if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0}
1855
        global CONFIG_DCACHE_SZ2
1856
        if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0}
1857
        global CONFIG_DCACHE_SZ4
1858
        if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0}
1859
        global CONFIG_DCACHE_SZ8
1860
        if {$tmpvar_13 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0}
1861
        global CONFIG_DCACHE_SZ16
1862
        if {$tmpvar_13 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0}
1863
        global CONFIG_DCACHE_SZ32
1864
        if {$tmpvar_13 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0}
1865
        global CONFIG_DCACHE_SZ64
1866
        if {$tmpvar_13 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0}
1867
        global CONFIG_DCACHE_SZ128
1868
        if {$tmpvar_13 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0}
1869
        global CONFIG_DCACHE_SZ256
1870
        if {$tmpvar_13 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0}
1871
        global tmpvar_14
1872
        global CONFIG_DCACHE_LZ16
1873
        if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0}
1874
        global CONFIG_DCACHE_LZ32
1875
        if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0}
1876
        global tmpvar_15
1877
        global CONFIG_DCACHE_ALGORND
1878
        if {$tmpvar_15 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0}
1879
        global CONFIG_DCACHE_ALGOLRR
1880
        if {$tmpvar_15 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0}
1881
        global CONFIG_DCACHE_ALGOLRU
1882
        if {$tmpvar_15 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0}
1883
        global CONFIG_DCACHE_LOCK
1884
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {
1885
        set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]}
1886
        global CONFIG_DCACHE_SNOOP
1887
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
1888
        set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]}
1889
        global CONFIG_DCACHE_SNOOP_FAST
1890
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {
1891
        set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]}
1892
        global CONFIG_DCACHE_SNOOP_SEPTAG
1893
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then {
1894
        set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]}
1895
        global CONFIG_CACHE_FIXED
1896
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0}
1897
        global CONFIG_DCACHE_LRAM
1898
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {
1899
        set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]}
1900
        global tmpvar_16
1901
        global CONFIG_DCACHE_LRAM_SZ1
1902
        if {$tmpvar_16 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0}
1903
        global CONFIG_DCACHE_LRAM_SZ2
1904
        if {$tmpvar_16 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0}
1905
        global CONFIG_DCACHE_LRAM_SZ4
1906
        if {$tmpvar_16 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0}
1907
        global CONFIG_DCACHE_LRAM_SZ8
1908
        if {$tmpvar_16 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0}
1909
        global CONFIG_DCACHE_LRAM_SZ16
1910
        if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0}
1911
        global CONFIG_DCACHE_LRAM_SZ32
1912
        if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0}
1913
        global CONFIG_DCACHE_LRAM_SZ64
1914
        if {$tmpvar_16 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0}
1915
        global CONFIG_DCACHE_LRAM_SZ128
1916
        if {$tmpvar_16 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0}
1917
        global CONFIG_DCACHE_LRAM_SZ256
1918
        if {$tmpvar_16 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0}
1919
        global CONFIG_DCACHE_LRSTART
1920
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f}
1921
}
1922
 
1923
 
1924
proc menu7 {w title} {
1925
        set oldFocus [focus]
1926
        catch {focus .menu3}
1927
        catch {destroy $w; unregister_active 7}
1928
        toplevel $w -class Dialog
1929
        wm withdraw $w
1930
        global active_menus
1931
        set active_menus [lsort -integer [linsert $active_menus end 7]]
1932
        message $w.m -width 400 -aspect 300 -text \
1933
                "MMU"  -relief raised
1934
        pack $w.m -pady 10 -side top -padx 10
1935
        wm title $w "MMU"
1936
 
1937
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 7; break"
1938
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu8 .menu8 \"$title\""
1939
        frame $w.f
1940
        button $w.f.back -text "OK" \
1941
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 7"
1942
        button $w.f.next -text "Next" -underline 0\
1943
                -width 15 -command $nextscript
1944
        bind all  $nextscript
1945
        button $w.f.prev -text "Prev" -underline 0\
1946
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu6 .menu6 \"$title\""
1947
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu6 .menu6 \"$title\";break"
1948
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
1949
        pack $w.f -pady 10 -side bottom -anchor w -fill x
1950
        frame $w.topline -relief ridge -borderwidth 2 -height 2
1951
        pack $w.topline -side top -fill x
1952
 
1953
        frame $w.botline -relief ridge -borderwidth 2 -height 2
1954
        pack $w.botline -side bottom -fill x
1955
 
1956
        frame $w.config
1957
        pack $w.config -fill y -expand on
1958
 
1959
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
1960
        pack $w.config.vscroll -side right -fill y
1961
 
1962
        canvas $w.config.canvas -height 1\
1963
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
1964
                -width [expr [winfo screenwidth .] * 1 / 2]
1965
        frame $w.config.f
1966
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
1967
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
1968
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
1969
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
1970
        bind $w  "$w.config.canvas yview moveto 0;break;"
1971
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
1972
        pack $w.config.canvas -side right -fill y
1973
 
1974
 
1975
        bool $w.config.f 7 0 "Enable MMU       " CONFIG_MMU_ENABLE
1976
        global tmpvar_17
1977
        minimenu $w.config.f 7 1 "MMU type              " tmpvar_17 CONFIG_MMU_COMBINED
1978
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type              \""
1979
        $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_17 -value "combined" -command "update_active"
1980
        $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_17 -value "split" -command "update_active"
1981
        menusplit $w $w.config.f.x1.x.menu 2
1982
        global tmpvar_18
1983
        minimenu $w.config.f 7 2 "TLB replacement sheme              " tmpvar_18 CONFIG_MMU_REPARRAY
1984
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme              \""
1985
        $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_18 -value "LRU" -command "update_active"
1986
        $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_18 -value "Increment" -command "update_active"
1987
        menusplit $w $w.config.f.x2.x.menu 2
1988
        global tmpvar_19
1989
        minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_19 CONFIG_MMU_I2
1990
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\""
1991
        $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_19 -value "2" -command "update_active"
1992
        $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_19 -value "4" -command "update_active"
1993
        $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_19 -value "8" -command "update_active"
1994
        $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_19 -value "16" -command "update_active"
1995
        $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_19 -value "32" -command "update_active"
1996
        menusplit $w $w.config.f.x3.x.menu 5
1997
        global tmpvar_20
1998
        minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_20 CONFIG_MMU_D2
1999
        menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\""
2000
        $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active"
2001
        $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active"
2002
        $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active"
2003
        $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active"
2004
        $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active"
2005
        menusplit $w $w.config.f.x4.x.menu 5
2006
        bool $w.config.f 7 5 "Fast writebuffer       " CONFIG_MMU_FASTWB
2007
 
2008
 
2009
 
2010
        focus $w
2011
        update_active
2012
        global winx; global winy
2013
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
2014
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
2015
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2016
        update idletasks
2017
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2018
 
2019
        $w.config.canvas configure \
2020
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2021
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2022
                         [expr [winfo reqheight $w.config.f] + 1]"
2023
 
2024
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2025
        set scry [expr [winfo screenh $w] / 2]
2026
        set maxy [expr [winfo screenh $w] * 3 / 4]
2027
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2028
        if [expr $winy + $canvtotal < $maxy] {
2029
                $w.config.canvas configure -height $canvtotal
2030
        } else {
2031
                $w.config.canvas configure -height [expr $scry - $winy]
2032
                }
2033
        }
2034
        update idletasks
2035
        if {[winfo exists $w]} then {
2036
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2037
        wm minsize $w [winfo width $w] 100
2038
 
2039
        wm deiconify $w
2040
}
2041
}
2042
 
2043
proc update_menu7 {} {
2044
        global CONFIG_LEON3
2045
        global CONFIG_MMU_ENABLE
2046
        if {($CONFIG_LEON3 == 1)} then {
2047
        configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}}
2048
        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}}
2049
        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}}
2050
        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}}
2051
        global CONFIG_MMU_SPLIT
2052
        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}}
2053
        global CONFIG_MMU_FASTWB
2054
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {
2055
        configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}}
2056
}
2057
 
2058
 
2059
proc update_define_menu7 {} {
2060
        update_define_mainmenu
2061
        global CONFIG_MODULES
2062
        global CONFIG_LEON3
2063
        global CONFIG_MMU_ENABLE
2064
        if {($CONFIG_LEON3 == 1)} then {
2065
        set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]}
2066
        global tmpvar_17
2067
        global CONFIG_MMU_COMBINED
2068
        if {$tmpvar_17 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0}
2069
        global CONFIG_MMU_SPLIT
2070
        if {$tmpvar_17 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0}
2071
        global tmpvar_18
2072
        global CONFIG_MMU_REPARRAY
2073
        if {$tmpvar_18 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0}
2074
        global CONFIG_MMU_REPINCREMENT
2075
        if {$tmpvar_18 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0}
2076
        global tmpvar_19
2077
        global CONFIG_MMU_I2
2078
        if {$tmpvar_19 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0}
2079
        global CONFIG_MMU_I4
2080
        if {$tmpvar_19 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0}
2081
        global CONFIG_MMU_I8
2082
        if {$tmpvar_19 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0}
2083
        global CONFIG_MMU_I16
2084
        if {$tmpvar_19 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0}
2085
        global CONFIG_MMU_I32
2086
        if {$tmpvar_19 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0}
2087
        global tmpvar_20
2088
        global CONFIG_MMU_D2
2089
        if {$tmpvar_20 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0}
2090
        global CONFIG_MMU_D4
2091
        if {$tmpvar_20 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0}
2092
        global CONFIG_MMU_D8
2093
        if {$tmpvar_20 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0}
2094
        global CONFIG_MMU_D16
2095
        if {$tmpvar_20 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0}
2096
        global CONFIG_MMU_D32
2097
        if {$tmpvar_20 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0}
2098
        global CONFIG_MMU_FASTWB
2099
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {
2100
        set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]}
2101
}
2102
 
2103
 
2104
proc menu8 {w title} {
2105
        set oldFocus [focus]
2106
        catch {focus .menu3}
2107
        catch {destroy $w; unregister_active 8}
2108
        toplevel $w -class Dialog
2109
        wm withdraw $w
2110
        global active_menus
2111
        set active_menus [lsort -integer [linsert $active_menus end 8]]
2112
        message $w.m -width 400 -aspect 300 -text \
2113
                "Debug Support Unit        "  -relief raised
2114
        pack $w.m -pady 10 -side top -padx 10
2115
        wm title $w "Debug Support Unit        "
2116
 
2117
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 8; break"
2118
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu9 .menu9 \"$title\""
2119
        frame $w.f
2120
        button $w.f.back -text "OK" \
2121
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 8"
2122
        button $w.f.next -text "Next" -underline 0\
2123
                -width 15 -command $nextscript
2124
        bind all  $nextscript
2125
        button $w.f.prev -text "Prev" -underline 0\
2126
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu7 .menu7 \"$title\""
2127
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu7 .menu7 \"$title\";break"
2128
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2129
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2130
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2131
        pack $w.topline -side top -fill x
2132
 
2133
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2134
        pack $w.botline -side bottom -fill x
2135
 
2136
        frame $w.config
2137
        pack $w.config -fill y -expand on
2138
 
2139
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2140
        pack $w.config.vscroll -side right -fill y
2141
 
2142
        canvas $w.config.canvas -height 1\
2143
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2144
                -width [expr [winfo screenwidth .] * 1 / 2]
2145
        frame $w.config.f
2146
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2147
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2148
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2149
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2150
        bind $w  "$w.config.canvas yview moveto 0;break;"
2151
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2152
        pack $w.config.canvas -side right -fill y
2153
 
2154
 
2155
        bool $w.config.f 8 0 "Enable LEON3 Debug support unit    " CONFIG_DSU_ENABLE
2156
        bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE
2157
        global tmpvar_21
2158
        minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_21 CONFIG_DSU_ITRACESZ1
2159
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\""
2160
        $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_21 -value "1" -command "update_active"
2161
        $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active"
2162
        $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active"
2163
        $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active"
2164
        $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active"
2165
        menusplit $w $w.config.f.x2.x.menu 5
2166
        bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE
2167
        global tmpvar_22
2168
        minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_22 CONFIG_DSU_ATRACESZ1
2169
        menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\""
2170
        $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_22 -value "1" -command "update_active"
2171
        $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active"
2172
        $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active"
2173
        $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active"
2174
        $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active"
2175
        menusplit $w $w.config.f.x4.x.menu 5
2176
 
2177
 
2178
 
2179
        focus $w
2180
        update_active
2181
        global winx; global winy
2182
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
2183
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
2184
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2185
        update idletasks
2186
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2187
 
2188
        $w.config.canvas configure \
2189
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2190
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2191
                         [expr [winfo reqheight $w.config.f] + 1]"
2192
 
2193
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2194
        set scry [expr [winfo screenh $w] / 2]
2195
        set maxy [expr [winfo screenh $w] * 3 / 4]
2196
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2197
        if [expr $winy + $canvtotal < $maxy] {
2198
                $w.config.canvas configure -height $canvtotal
2199
        } else {
2200
                $w.config.canvas configure -height [expr $scry - $winy]
2201
                }
2202
        }
2203
        update idletasks
2204
        if {[winfo exists $w]} then {
2205
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2206
        wm minsize $w [winfo width $w] 100
2207
 
2208
        wm deiconify $w
2209
}
2210
}
2211
 
2212
proc update_menu8 {} {
2213
        global CONFIG_LEON3
2214
        global CONFIG_DSU_ENABLE
2215
        if {($CONFIG_LEON3 == 1)} then {
2216
        configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}}
2217
        global CONFIG_DSU_ITRACE
2218
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {
2219
        configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}}
2220
        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}}
2221
        global CONFIG_DSU_ATRACE
2222
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {
2223
        configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}}
2224
        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}}
2225
}
2226
 
2227
 
2228
proc update_define_menu8 {} {
2229
        update_define_mainmenu
2230
        global CONFIG_MODULES
2231
        global CONFIG_LEON3
2232
        global CONFIG_DSU_ENABLE
2233
        if {($CONFIG_LEON3 == 1)} then {
2234
        set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]}
2235
        global CONFIG_DSU_ITRACE
2236
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {
2237
        set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]}
2238
        global tmpvar_21
2239
        global CONFIG_DSU_ITRACESZ1
2240
        if {$tmpvar_21 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0}
2241
        global CONFIG_DSU_ITRACESZ2
2242
        if {$tmpvar_21 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0}
2243
        global CONFIG_DSU_ITRACESZ4
2244
        if {$tmpvar_21 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0}
2245
        global CONFIG_DSU_ITRACESZ8
2246
        if {$tmpvar_21 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0}
2247
        global CONFIG_DSU_ITRACESZ16
2248
        if {$tmpvar_21 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0}
2249
        global CONFIG_DSU_ATRACE
2250
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {
2251
        set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]}
2252
        global tmpvar_22
2253
        global CONFIG_DSU_ATRACESZ1
2254
        if {$tmpvar_22 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0}
2255
        global CONFIG_DSU_ATRACESZ2
2256
        if {$tmpvar_22 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0}
2257
        global CONFIG_DSU_ATRACESZ4
2258
        if {$tmpvar_22 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0}
2259
        global CONFIG_DSU_ATRACESZ8
2260
        if {$tmpvar_22 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0}
2261
        global CONFIG_DSU_ATRACESZ16
2262
        if {$tmpvar_22 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0}
2263
}
2264
 
2265
 
2266
proc menu9 {w title} {
2267
        set oldFocus [focus]
2268
        catch {focus .menu3}
2269
        catch {destroy $w; unregister_active 9}
2270
        toplevel $w -class Dialog
2271
        wm withdraw $w
2272
        global active_menus
2273
        set active_menus [lsort -integer [linsert $active_menus end 9]]
2274
        message $w.m -width 400 -aspect 300 -text \
2275
                "Fault-tolerance  "  -relief raised
2276
        pack $w.m -pady 10 -side top -padx 10
2277
        wm title $w "Fault-tolerance  "
2278
 
2279
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 9; break"
2280
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu10 .menu10 \"$title\""
2281
        frame $w.f
2282
        button $w.f.back -text "OK" \
2283
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 9"
2284
        button $w.f.next -text "Next" -underline 0\
2285
                -width 15 -command $nextscript
2286
        bind all  $nextscript
2287
        button $w.f.prev -text "Prev" -underline 0\
2288
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu8 .menu8 \"$title\""
2289
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu8 .menu8 \"$title\";break"
2290
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2291
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2292
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2293
        pack $w.topline -side top -fill x
2294
 
2295
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2296
        pack $w.botline -side bottom -fill x
2297
 
2298
        frame $w.config
2299
        pack $w.config -fill y -expand on
2300
 
2301
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2302
        pack $w.config.vscroll -side right -fill y
2303
 
2304
        canvas $w.config.canvas -height 1\
2305
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2306
                -width [expr [winfo screenwidth .] * 1 / 2]
2307
        frame $w.config.f
2308
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2309
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2310
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2311
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2312
        bind $w  "$w.config.canvas yview moveto 0;break;"
2313
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2314
        pack $w.config.canvas -side right -fill y
2315
 
2316
 
2317
 
2318
 
2319
 
2320
        focus $w
2321
        update_active
2322
        global winx; global winy
2323
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
2324
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
2325
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2326
        update idletasks
2327
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2328
 
2329
        $w.config.canvas configure \
2330
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2331
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2332
                         [expr [winfo reqheight $w.config.f] + 1]"
2333
 
2334
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2335
        set scry [expr [winfo screenh $w] / 2]
2336
        set maxy [expr [winfo screenh $w] * 3 / 4]
2337
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2338
        if [expr $winy + $canvtotal < $maxy] {
2339
                $w.config.canvas configure -height $canvtotal
2340
        } else {
2341
                $w.config.canvas configure -height [expr $scry - $winy]
2342
                }
2343
        }
2344
        update idletasks
2345
        if {[winfo exists $w]} then {
2346
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2347
        wm minsize $w [winfo width $w] 100
2348
 
2349
        wm deiconify $w
2350
}
2351
}
2352
 
2353
proc update_menu9 {} {
2354
}
2355
 
2356
 
2357
proc update_define_menu9 {} {
2358
        update_define_mainmenu
2359
        global CONFIG_MODULES
2360
}
2361
 
2362
 
2363
proc menu10 {w title} {
2364
        set oldFocus [focus]
2365
        catch {focus .menu3}
2366
        catch {destroy $w; unregister_active 10}
2367
        toplevel $w -class Dialog
2368
        wm withdraw $w
2369
        global active_menus
2370
        set active_menus [lsort -integer [linsert $active_menus end 10]]
2371
        message $w.m -width 400 -aspect 300 -text \
2372
                "VHDL debug settings       "  -relief raised
2373
        pack $w.m -pady 10 -side top -padx 10
2374
        wm title $w "VHDL debug settings       "
2375
 
2376
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 10; break"
2377
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 10; catch {destroy .menu3}; unregister_active 3; menu11 .menu11 \"$title\""
2378
        frame $w.f
2379
        button $w.f.back -text "OK" \
2380
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 10"
2381
        button $w.f.next -text "Next" -underline 0\
2382
                -width 15 -command $nextscript
2383
        bind all  $nextscript
2384
        button $w.f.prev -text "Prev" -underline 0\
2385
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 10; menu9 .menu9 \"$title\""
2386
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 10; menu9 .menu9 \"$title\";break"
2387
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2388
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2389
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2390
        pack $w.topline -side top -fill x
2391
 
2392
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2393
        pack $w.botline -side bottom -fill x
2394
 
2395
        frame $w.config
2396
        pack $w.config -fill y -expand on
2397
 
2398
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2399
        pack $w.config.vscroll -side right -fill y
2400
 
2401
        canvas $w.config.canvas -height 1\
2402
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2403
                -width [expr [winfo screenwidth .] * 1 / 2]
2404
        frame $w.config.f
2405
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2406
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2407
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2408
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2409
        bind $w  "$w.config.canvas yview moveto 0;break;"
2410
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2411
        pack $w.config.canvas -side right -fill y
2412
 
2413
 
2414
        bool $w.config.f 10 0 "Processor disassembly to console         " CONFIG_IU_DISAS
2415
        bool $w.config.f 10 1 "Processor disassembly in netlist         " CONFIG_IU_DISAS_NET
2416
        bool $w.config.f 10 2 "32-bit program counters       " CONFIG_DEBUG_PC32
2417
 
2418
 
2419
 
2420
        focus $w
2421
        update_active
2422
        global winx; global winy
2423
        if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor            "}
2424
        set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30]
2425
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2426
        update idletasks
2427
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2428
 
2429
        $w.config.canvas configure \
2430
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2431
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2432
                         [expr [winfo reqheight $w.config.f] + 1]"
2433
 
2434
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2435
        set scry [expr [winfo screenh $w] / 2]
2436
        set maxy [expr [winfo screenh $w] * 3 / 4]
2437
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2438
        if [expr $winy + $canvtotal < $maxy] {
2439
                $w.config.canvas configure -height $canvtotal
2440
        } else {
2441
                $w.config.canvas configure -height [expr $scry - $winy]
2442
                }
2443
        }
2444
        update idletasks
2445
        if {[winfo exists $w]} then {
2446
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2447
        wm minsize $w [winfo width $w] 100
2448
 
2449
        wm deiconify $w
2450
}
2451
}
2452
 
2453
proc update_menu10 {} {
2454
        global CONFIG_LEON3
2455
        global CONFIG_IU_DISAS
2456
        if {($CONFIG_LEON3 == 1)} then {
2457
        configure_entry .menu10.config.f.x0 normal {n l y}} else {configure_entry .menu10.config.f.x0 disabled {y n l}}
2458
        global CONFIG_IU_DISAS_NET
2459
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then {
2460
        configure_entry .menu10.config.f.x1 normal {n l y}} else {configure_entry .menu10.config.f.x1 disabled {y n l}}
2461
        global CONFIG_DEBUG_PC32
2462
        if {($CONFIG_LEON3 == 1)} then {
2463
        configure_entry .menu10.config.f.x2 normal {n l y}} else {configure_entry .menu10.config.f.x2 disabled {y n l}}
2464
}
2465
 
2466
 
2467
proc update_define_menu10 {} {
2468
        update_define_mainmenu
2469
        global CONFIG_MODULES
2470
        global CONFIG_LEON3
2471
        global CONFIG_IU_DISAS
2472
        if {($CONFIG_LEON3 == 1)} then {
2473
        set CONFIG_IU_DISAS [expr $CONFIG_IU_DISAS&15]} else {set CONFIG_IU_DISAS [expr $CONFIG_IU_DISAS|16]}
2474
        global CONFIG_IU_DISAS_NET
2475
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then {
2476
        set CONFIG_IU_DISAS_NET [expr $CONFIG_IU_DISAS_NET&15]} else {set CONFIG_IU_DISAS_NET [expr $CONFIG_IU_DISAS_NET|16]}
2477
        global CONFIG_DEBUG_PC32
2478
        if {($CONFIG_LEON3 == 1)} then {
2479
        set CONFIG_DEBUG_PC32 [expr $CONFIG_DEBUG_PC32&15]} else {set CONFIG_DEBUG_PC32 [expr $CONFIG_DEBUG_PC32|16]}
2480
}
2481
 
2482
 
2483
menu_option menu11 11 "AMBA configuration"
2484
proc menu11 {w title} {
2485
        set oldFocus [focus]
2486
        catch {destroy $w; unregister_active 11}
2487
        toplevel $w -class Dialog
2488
        wm withdraw $w
2489
        global active_menus
2490
        set active_menus [lsort -integer [linsert $active_menus end 11]]
2491
        message $w.m -width 400 -aspect 300 -text \
2492
                "AMBA configuration"  -relief raised
2493
        pack $w.m -pady 10 -side top -padx 10
2494
        wm title $w "AMBA configuration"
2495
 
2496
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 11; break"
2497
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 11; menu12 .menu12 \"$title\""
2498
        frame $w.f
2499
        button $w.f.back -text "Main Menu" \
2500
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 11"
2501
        button $w.f.next -text "Next" -underline 0\
2502
                -width 15 -command $nextscript
2503
        bind all  $nextscript
2504
        button $w.f.prev -text "Prev" -underline 0\
2505
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 11; menu10 .menu10 \"$title\""
2506
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 11; menu10 .menu10 \"$title\";break"
2507
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2508
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2509
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2510
        pack $w.topline -side top -fill x
2511
 
2512
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2513
        pack $w.botline -side bottom -fill x
2514
 
2515
        frame $w.config
2516
        pack $w.config -fill y -expand on
2517
 
2518
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2519
        pack $w.config.vscroll -side right -fill y
2520
 
2521
        canvas $w.config.canvas -height 1\
2522
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2523
                -width [expr [winfo screenwidth .] * 1 / 2]
2524
        frame $w.config.f
2525
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2526
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2527
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2528
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2529
        bind $w  "$w.config.canvas yview moveto 0;break;"
2530
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2531
        pack $w.config.canvas -side right -fill y
2532
 
2533
 
2534
        int $w.config.f 11 0 "Default AHB master" CONFIG_AHB_DEFMST
2535
        bool $w.config.f 11 1 "Round-robin arbiter                       " CONFIG_AHB_RROBIN
2536
        bool $w.config.f 11 2 "AHB split-transaction support             " CONFIG_AHB_SPLIT
2537
        hex $w.config.f 11 3 "I/O area start address (haddr\[31:20\]) " CONFIG_AHB_IOADDR
2538
        hex $w.config.f 11 4 "AHB/APB bridge address (haddr\[31:20\]) " CONFIG_APB_HADDR
2539
        bool $w.config.f 11 5 "Enable AMBA AHB monitor              " CONFIG_AHB_MON
2540
        bool $w.config.f 11 6 "Report AHB errors                  " CONFIG_AHB_MONERR
2541
        bool $w.config.f 11 7 "Report AHB warings                 " CONFIG_AHB_MONWAR
2542
 
2543
 
2544
 
2545
        focus $w
2546
        update_active
2547
        global winx; global winy
2548
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
2549
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2550
        update idletasks
2551
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2552
 
2553
        $w.config.canvas configure \
2554
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2555
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2556
                         [expr [winfo reqheight $w.config.f] + 1]"
2557
 
2558
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2559
        set scry [expr [winfo screenh $w] / 2]
2560
        set maxy [expr [winfo screenh $w] * 3 / 4]
2561
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2562
        if [expr $winy + $canvtotal < $maxy] {
2563
                $w.config.canvas configure -height $canvtotal
2564
        } else {
2565
                $w.config.canvas configure -height [expr $scry - $winy]
2566
                }
2567
        }
2568
        update idletasks
2569
        if {[winfo exists $w]} then {
2570
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2571
        wm minsize $w [winfo width $w] 100
2572
 
2573
        wm deiconify $w
2574
}
2575
}
2576
 
2577
proc update_menu11 {} {
2578
        global CONFIG_AHB_MON
2579
        global CONFIG_AHB_MONERR
2580
        if {($CONFIG_AHB_MON == 1)} then {
2581
        configure_entry .menu11.config.f.x6 normal {n l y}} else {configure_entry .menu11.config.f.x6 disabled {y n l}}
2582
        global CONFIG_AHB_MONWAR
2583
        if {($CONFIG_AHB_MON == 1)} then {
2584
        configure_entry .menu11.config.f.x7 normal {n l y}} else {configure_entry .menu11.config.f.x7 disabled {y n l}}
2585
}
2586
 
2587
 
2588
proc update_define_menu11 {} {
2589
        update_define_mainmenu
2590
        global CONFIG_MODULES
2591
        global CONFIG_AHB_MON
2592
        global CONFIG_AHB_MONERR
2593
        if {($CONFIG_AHB_MON == 1)} then {
2594
        set CONFIG_AHB_MONERR [expr $CONFIG_AHB_MONERR&15]} else {set CONFIG_AHB_MONERR [expr $CONFIG_AHB_MONERR|16]}
2595
        global CONFIG_AHB_MONWAR
2596
        if {($CONFIG_AHB_MON == 1)} then {
2597
        set CONFIG_AHB_MONWAR [expr $CONFIG_AHB_MONWAR&15]} else {set CONFIG_AHB_MONWAR [expr $CONFIG_AHB_MONWAR|16]}
2598
}
2599
 
2600
 
2601
menu_option menu12 12 "Debug Link           "
2602
proc menu12 {w title} {
2603
        set oldFocus [focus]
2604
        catch {destroy $w; unregister_active 12}
2605
        toplevel $w -class Dialog
2606
        wm withdraw $w
2607
        global active_menus
2608
        set active_menus [lsort -integer [linsert $active_menus end 12]]
2609
        message $w.m -width 400 -aspect 300 -text \
2610
                "Debug Link           "  -relief raised
2611
        pack $w.m -pady 10 -side top -padx 10
2612
        wm title $w "Debug Link           "
2613
 
2614
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 12; break"
2615
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 12; menu13 .menu13 \"$title\""
2616
        frame $w.f
2617
        button $w.f.back -text "Main Menu" \
2618
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 12"
2619
        button $w.f.next -text "Next" -underline 0\
2620
                -width 15 -command $nextscript
2621
        bind all  $nextscript
2622
        button $w.f.prev -text "Prev" -underline 0\
2623
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 12; menu11 .menu11 \"$title\""
2624
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 12; menu11 .menu11 \"$title\";break"
2625
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2626
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2627
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2628
        pack $w.topline -side top -fill x
2629
 
2630
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2631
        pack $w.botline -side bottom -fill x
2632
 
2633
        frame $w.config
2634
        pack $w.config -fill y -expand on
2635
 
2636
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2637
        pack $w.config.vscroll -side right -fill y
2638
 
2639
        canvas $w.config.canvas -height 1\
2640
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2641
                -width [expr [winfo screenwidth .] * 1 / 2]
2642
        frame $w.config.f
2643
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2644
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2645
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2646
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2647
        bind $w  "$w.config.canvas yview moveto 0;break;"
2648
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2649
        pack $w.config.canvas -side right -fill y
2650
 
2651
 
2652
        bool $w.config.f 12 0 "Serial Debug Link (RS232)                " CONFIG_DSU_UART
2653
        bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG
2654
        bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH
2655
        global tmpvar_24
2656
        minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ETHSZ1
2657
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\""
2658
        $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active"
2659
        $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active"
2660
        $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active"
2661
        $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active"
2662
        $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active"
2663
        menusplit $w $w.config.f.x3.x.menu 5
2664
        hex $w.config.f 12 4 "MSB 16 bits of IP address (hex)       " CONFIG_DSU_IPMSB
2665
        hex $w.config.f 12 5 "LSB 16 bits of IP address (hex)       " CONFIG_DSU_IPLSB
2666
        hex $w.config.f 12 6 "MSB 24 bits of ethern number (hex)    " CONFIG_DSU_ETHMSB
2667
        hex $w.config.f 12 7 "LSB 24 bits of ethern number (hex)    " CONFIG_DSU_ETHLSB
2668
        bool $w.config.f 12 8 "Programmable 4-bit LSB of MAC/IP address" CONFIG_DSU_ETH_PROG
2669
 
2670
 
2671
 
2672
        focus $w
2673
        update_active
2674
        global winx; global winy
2675
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
2676
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2677
        update idletasks
2678
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2679
 
2680
        $w.config.canvas configure \
2681
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2682
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2683
                         [expr [winfo reqheight $w.config.f] + 1]"
2684
 
2685
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2686
        set scry [expr [winfo screenh $w] / 2]
2687
        set maxy [expr [winfo screenh $w] * 3 / 4]
2688
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2689
        if [expr $winy + $canvtotal < $maxy] {
2690
                $w.config.canvas configure -height $canvtotal
2691
        } else {
2692
                $w.config.canvas configure -height [expr $scry - $winy]
2693
                }
2694
        }
2695
        update idletasks
2696
        if {[winfo exists $w]} then {
2697
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2698
        wm minsize $w [winfo width $w] 100
2699
 
2700
        wm deiconify $w
2701
}
2702
}
2703
 
2704
proc update_menu12 {} {
2705
        global CONFIG_GRETH_ENABLE
2706
        global CONFIG_DSU_ETH
2707
        if {($CONFIG_GRETH_ENABLE == 1)} then {
2708
        configure_entry .menu12.config.f.x2 normal {n l y}} else {configure_entry .menu12.config.f.x2 disabled {y n l}}
2709
        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}}
2710
        global CONFIG_DSU_IPMSB
2711
        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}
2712
        global CONFIG_DSU_IPLSB
2713
        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}
2714
        global CONFIG_DSU_ETHMSB
2715
        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}
2716
        global CONFIG_DSU_ETHLSB
2717
        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}
2718
        global CONFIG_GRETH_GIGA
2719
        global CONFIG_DSU_ETH_PROG
2720
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then {
2721
        configure_entry .menu12.config.f.x8 normal {n l y}} else {configure_entry .menu12.config.f.x8 disabled {y n l}}
2722
}
2723
 
2724
 
2725
proc update_define_menu12 {} {
2726
        update_define_mainmenu
2727
        global CONFIG_MODULES
2728
        global CONFIG_GRETH_ENABLE
2729
        global CONFIG_DSU_ETH
2730
        if {($CONFIG_GRETH_ENABLE == 1)} then {
2731
        set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]}
2732
        global tmpvar_24
2733
        global CONFIG_DSU_ETHSZ1
2734
        if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0}
2735
        global CONFIG_DSU_ETHSZ2
2736
        if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0}
2737
        global CONFIG_DSU_ETHSZ4
2738
        if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0}
2739
        global CONFIG_DSU_ETHSZ8
2740
        if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0}
2741
        global CONFIG_DSU_ETHSZ16
2742
        if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0}
2743
        global CONFIG_DSU_IPMSB
2744
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8}
2745
        global CONFIG_DSU_IPLSB
2746
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPLSB "$CONFIG_DSU_IPLSB" 0033}
2747
        global CONFIG_DSU_ETHMSB
2748
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_ETHMSB "$CONFIG_DSU_ETHMSB" 00007A}
2749
        global CONFIG_DSU_ETHLSB
2750
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_ETHLSB "$CONFIG_DSU_ETHLSB" CC0001}
2751
        global CONFIG_GRETH_GIGA
2752
        global CONFIG_DSU_ETH_PROG
2753
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then {
2754
        set CONFIG_DSU_ETH_PROG [expr $CONFIG_DSU_ETH_PROG&15]} else {set CONFIG_DSU_ETH_PROG [expr $CONFIG_DSU_ETH_PROG|16]}
2755
}
2756
 
2757
 
2758
menu_option menu13 13 "Peripherals             "
2759
proc menu13 {w title} {
2760
        set oldFocus [focus]
2761
        catch {destroy $w; unregister_active 13}
2762
        toplevel $w -class Dialog
2763
        wm withdraw $w
2764
        global active_menus
2765
        set active_menus [lsort -integer [linsert $active_menus end 13]]
2766
        message $w.m -width 400 -aspect 300 -text \
2767
                "Peripherals             "  -relief raised
2768
        pack $w.m -pady 10 -side top -padx 10
2769
        wm title $w "Peripherals             "
2770
 
2771
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 13; break"
2772
        set nextscript "catch {focus $oldFocus}; menu14 .menu14 \"$title\""
2773
        frame $w.f
2774
        button $w.f.back -text "Main Menu" \
2775
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 13"
2776
        button $w.f.next -text "Next" -underline 0\
2777
                -width 15 -command $nextscript
2778
        bind all  $nextscript
2779
        button $w.f.prev -text "Prev" -underline 0\
2780
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 13; menu12 .menu12 \"$title\""
2781
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 13; menu12 .menu12 \"$title\";break"
2782
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2783
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2784
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2785
        pack $w.topline -side top -fill x
2786
 
2787
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2788
        pack $w.botline -side bottom -fill x
2789
 
2790
        frame $w.config
2791
        pack $w.config -fill y -expand on
2792
 
2793
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2794
        pack $w.config.vscroll -side right -fill y
2795
 
2796
        canvas $w.config.canvas -height 1\
2797
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
2798
                -width [expr [winfo screenwidth .] * 1 / 2]
2799
        frame $w.config.f
2800
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
2801
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
2802
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
2803
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
2804
        bind $w  "$w.config.canvas yview moveto 0;break;"
2805
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
2806
        pack $w.config.canvas -side right -fill y
2807
 
2808
 
2809
        submenu $w.config.f 13 0 "Memory controllers             " 14
2810
        submenu $w.config.f 13 1 "On-chip RAM/ROM                 " 18
2811
        submenu $w.config.f 13 2 "Ethernet             " 19
2812
        submenu $w.config.f 13 3 "CAN                     " 20
2813
        submenu $w.config.f 13 4 "PCI              " 21
2814
        submenu $w.config.f 13 5 "Spacewire " 22
2815
        submenu $w.config.f 13 6 "UARTs, timers and irq control         " 23
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
        submenu $w.config.f 14 2 "PC133 SDRAM controller             " 17
2915
 
2916
 
2917
 
2918
        focus $w
2919
        update_active
2920
        global winx; global winy
2921
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
2922
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
2923
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
2924
        update idletasks
2925
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
2926
 
2927
        $w.config.canvas configure \
2928
                -width [expr [winfo reqwidth $w.config.f] + 1]\
2929
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
2930
                         [expr [winfo reqheight $w.config.f] + 1]"
2931
 
2932
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
2933
        set scry [expr [winfo screenh $w] / 2]
2934
        set maxy [expr [winfo screenh $w] * 3 / 4]
2935
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
2936
        if [expr $winy + $canvtotal < $maxy] {
2937
                $w.config.canvas configure -height $canvtotal
2938
        } else {
2939
                $w.config.canvas configure -height [expr $scry - $winy]
2940
                }
2941
        }
2942
        update idletasks
2943
        if {[winfo exists $w]} then {
2944
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
2945
        wm minsize $w [winfo width $w] 100
2946
 
2947
        wm deiconify $w
2948
}
2949
}
2950
 
2951
proc update_menu14 {} {
2952
}
2953
 
2954
 
2955
proc update_define_menu14 {} {
2956
        update_define_mainmenu
2957
        global CONFIG_MODULES
2958
}
2959
 
2960
 
2961
proc menu15 {w title} {
2962
        set oldFocus [focus]
2963
        catch {focus .menu14}
2964
        catch {destroy $w; unregister_active 15}
2965
        toplevel $w -class Dialog
2966
        wm withdraw $w
2967
        global active_menus
2968
        set active_menus [lsort -integer [linsert $active_menus end 15]]
2969
        message $w.m -width 400 -aspect 300 -text \
2970
                "8/32-bit PROM/SRAM controller "  -relief raised
2971
        pack $w.m -pady 10 -side top -padx 10
2972
        wm title $w "8/32-bit PROM/SRAM controller "
2973
 
2974
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 15; break"
2975
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu16 .menu16 \"$title\""
2976
        frame $w.f
2977
        button $w.f.back -text "OK" \
2978
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 15"
2979
        button $w.f.next -text "Next" -underline 0\
2980
                -width 15 -command $nextscript
2981
        bind all  $nextscript
2982
        button $w.f.prev -text "Prev" -underline 0\
2983
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu14 .menu14 \"$title\""
2984
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu14 .menu14 \"$title\";break"
2985
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
2986
        pack $w.f -pady 10 -side bottom -anchor w -fill x
2987
        frame $w.topline -relief ridge -borderwidth 2 -height 2
2988
        pack $w.topline -side top -fill x
2989
 
2990
        frame $w.botline -relief ridge -borderwidth 2 -height 2
2991
        pack $w.botline -side bottom -fill x
2992
 
2993
        frame $w.config
2994
        pack $w.config -fill y -expand on
2995
 
2996
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
2997
        pack $w.config.vscroll -side right -fill y
2998
 
2999
        canvas $w.config.canvas -height 1\
3000
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3001
                -width [expr [winfo screenwidth .] * 1 / 2]
3002
        frame $w.config.f
3003
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3004
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3005
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3006
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3007
        bind $w  "$w.config.canvas yview moveto 0;break;"
3008
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3009
        pack $w.config.canvas -side right -fill y
3010
 
3011
 
3012
        bool $w.config.f 15 0 "Enable 8/32-bit PROM/SRAM controller    " CONFIG_SRCTRL
3013
        bool $w.config.f 15 1 "8-bit PROM interface " CONFIG_SRCTRL_8BIT
3014
        int $w.config.f 15 2 "PROM waitstates" CONFIG_SRCTRL_PROMWS
3015
        int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS
3016
        int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS
3017
        bool $w.config.f 15 5 "Use read-modify-write for sub-word writes  " CONFIG_SRCTRL_RMW
3018
        global tmpvar_25
3019
        minimenu $w.config.f 15 6 "SRAM banks" tmpvar_25 CONFIG_SRCTRL_SRBANKS1
3020
        menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\""
3021
        $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active"
3022
        $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active"
3023
        $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_25 -value "3" -command "update_active"
3024
        $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active"
3025
        $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_25 -value "5" -command "update_active"
3026
        menusplit $w $w.config.f.x6.x.menu 5
3027
        global tmpvar_26
3028
        minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_26 CONFIG_SRCTRL_BANKSZ0
3029
        menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\""
3030
        $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active"
3031
        $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active"
3032
        $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_26 -value "32" -command "update_active"
3033
        $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_26 -value "64" -command "update_active"
3034
        $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_26 -value "128" -command "update_active"
3035
        $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_26 -value "256" -command "update_active"
3036
        $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_26 -value "512" -command "update_active"
3037
        $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_26 -value "1024" -command "update_active"
3038
        $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_26 -value "2048" -command "update_active"
3039
        $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_26 -value "4096" -command "update_active"
3040
        $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_26 -value "8192" -command "update_active"
3041
        $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_26 -value "16384" -command "update_active"
3042
        $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_26 -value "32768" -command "update_active"
3043
        $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_26 -value "65536" -command "update_active"
3044
        menusplit $w $w.config.f.x7.x.menu 14
3045
        int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL
3046
 
3047
 
3048
 
3049
        focus $w
3050
        update_active
3051
        global winx; global winy
3052
        if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers             "}
3053
        set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30]
3054
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3055
        update idletasks
3056
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3057
 
3058
        $w.config.canvas configure \
3059
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3060
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3061
                         [expr [winfo reqheight $w.config.f] + 1]"
3062
 
3063
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3064
        set scry [expr [winfo screenh $w] / 2]
3065
        set maxy [expr [winfo screenh $w] * 3 / 4]
3066
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3067
        if [expr $winy + $canvtotal < $maxy] {
3068
                $w.config.canvas configure -height $canvtotal
3069
        } else {
3070
                $w.config.canvas configure -height [expr $scry - $winy]
3071
                }
3072
        }
3073
        update idletasks
3074
        if {[winfo exists $w]} then {
3075
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3076
        wm minsize $w [winfo width $w] 100
3077
 
3078
        wm deiconify $w
3079
}
3080
}
3081
 
3082
proc update_menu15 {} {
3083
        global CONFIG_SRCTRL
3084
        global CONFIG_SRCTRL_8BIT
3085
        if {($CONFIG_SRCTRL == 1)} then {
3086
        configure_entry .menu15.config.f.x1 normal {n l y}} else {configure_entry .menu15.config.f.x1 disabled {y n l}}
3087
        global CONFIG_SRCTRL_PROMWS
3088
        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}
3089
        global CONFIG_SRCTRL_RAMWS
3090
        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}
3091
        global CONFIG_SRCTRL_IOWS
3092
        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}
3093
        global CONFIG_SRCTRL_RMW
3094
        if {($CONFIG_SRCTRL == 1)} then {
3095
        configure_entry .menu15.config.f.x5 normal {n l y}} else {configure_entry .menu15.config.f.x5 disabled {y n l}}
3096
        if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x6 normal {x l}} else {configure_entry .menu15.config.f.x6 disabled {x l}}
3097
        if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x7 normal {x l}} else {configure_entry .menu15.config.f.x7 disabled {x l}}
3098
        global CONFIG_SRCTRL_ROMASEL
3099
        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}
3100
}
3101
 
3102
 
3103
proc update_define_menu15 {} {
3104
        update_define_mainmenu
3105
        global CONFIG_MODULES
3106
        global CONFIG_SRCTRL
3107
        global CONFIG_SRCTRL_8BIT
3108
        if {($CONFIG_SRCTRL == 1)} then {
3109
        set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT&15]} else {set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT|16]}
3110
        global CONFIG_SRCTRL_PROMWS
3111
        if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_PROMWS "$CONFIG_SRCTRL_PROMWS" 3}
3112
        global CONFIG_SRCTRL_RAMWS
3113
        if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_RAMWS "$CONFIG_SRCTRL_RAMWS" 0}
3114
        global CONFIG_SRCTRL_IOWS
3115
        if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_IOWS "$CONFIG_SRCTRL_IOWS" 0}
3116
        global CONFIG_SRCTRL_RMW
3117
        if {($CONFIG_SRCTRL == 1)} then {
3118
        set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]}
3119
        global tmpvar_25
3120
        global CONFIG_SRCTRL_SRBANKS1
3121
        if {$tmpvar_25 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0}
3122
        global CONFIG_SRCTRL_SRBANKS2
3123
        if {$tmpvar_25 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0}
3124
        global CONFIG_SRCTRL_SRBANKS3
3125
        if {$tmpvar_25 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0}
3126
        global CONFIG_SRCTRL_SRBANKS4
3127
        if {$tmpvar_25 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0}
3128
        global CONFIG_SRCTRL_SRBANKS5
3129
        if {$tmpvar_25 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0}
3130
        global tmpvar_26
3131
        global CONFIG_SRCTRL_BANKSZ0
3132
        if {$tmpvar_26 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0}
3133
        global CONFIG_SRCTRL_BANKSZ1
3134
        if {$tmpvar_26 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0}
3135
        global CONFIG_SRCTRL_BANKSZ2
3136
        if {$tmpvar_26 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0}
3137
        global CONFIG_SRCTRL_BANKSZ3
3138
        if {$tmpvar_26 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0}
3139
        global CONFIG_SRCTRL_BANKSZ4
3140
        if {$tmpvar_26 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0}
3141
        global CONFIG_SRCTRL_BANKSZ5
3142
        if {$tmpvar_26 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0}
3143
        global CONFIG_SRCTRL_BANKSZ6
3144
        if {$tmpvar_26 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0}
3145
        global CONFIG_SRCTRL_BANKSZ7
3146
        if {$tmpvar_26 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0}
3147
        global CONFIG_SRCTRL_BANKSZ8
3148
        if {$tmpvar_26 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0}
3149
        global CONFIG_SRCTRL_BANKSZ9
3150
        if {$tmpvar_26 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0}
3151
        global CONFIG_SRCTRL_BANKSZ10
3152
        if {$tmpvar_26 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0}
3153
        global CONFIG_SRCTRL_BANKSZ11
3154
        if {$tmpvar_26 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0}
3155
        global CONFIG_SRCTRL_BANKSZ12
3156
        if {$tmpvar_26 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0}
3157
        global CONFIG_SRCTRL_BANKSZ13
3158
        if {$tmpvar_26 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0}
3159
        global CONFIG_SRCTRL_ROMASEL
3160
        if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19}
3161
}
3162
 
3163
 
3164
proc menu16 {w title} {
3165
        set oldFocus [focus]
3166
        catch {focus .menu14}
3167
        catch {destroy $w; unregister_active 16}
3168
        toplevel $w -class Dialog
3169
        wm withdraw $w
3170
        global active_menus
3171
        set active_menus [lsort -integer [linsert $active_menus end 16]]
3172
        message $w.m -width 400 -aspect 300 -text \
3173
                "Leon2 memory controller        "  -relief raised
3174
        pack $w.m -pady 10 -side top -padx 10
3175
        wm title $w "Leon2 memory controller        "
3176
 
3177
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 16; break"
3178
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu17 .menu17 \"$title\""
3179
        frame $w.f
3180
        button $w.f.back -text "OK" \
3181
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 16"
3182
        button $w.f.next -text "Next" -underline 0\
3183
                -width 15 -command $nextscript
3184
        bind all  $nextscript
3185
        button $w.f.prev -text "Prev" -underline 0\
3186
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu15 .menu15 \"$title\""
3187
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu15 .menu15 \"$title\";break"
3188
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3189
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3190
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3191
        pack $w.topline -side top -fill x
3192
 
3193
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3194
        pack $w.botline -side bottom -fill x
3195
 
3196
        frame $w.config
3197
        pack $w.config -fill y -expand on
3198
 
3199
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3200
        pack $w.config.vscroll -side right -fill y
3201
 
3202
        canvas $w.config.canvas -height 1\
3203
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3204
                -width [expr [winfo screenwidth .] * 1 / 2]
3205
        frame $w.config.f
3206
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3207
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3208
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3209
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3210
        bind $w  "$w.config.canvas yview moveto 0;break;"
3211
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3212
        pack $w.config.canvas -side right -fill y
3213
 
3214
 
3215
        bool $w.config.f 16 0 "Enable Leon2 memory controller  " CONFIG_MCTRL_LEON2
3216
        bool $w.config.f 16 1 "8-bit PROM/SRAM bus support    " CONFIG_MCTRL_8BIT
3217
        bool $w.config.f 16 2 "16-bit PROM/SRAM bus support    " CONFIG_MCTRL_16BIT
3218
        bool $w.config.f 16 3 "5th SRAM chip-select  " CONFIG_MCTRL_5CS
3219
        bool $w.config.f 16 4 "SDRAM controller       " CONFIG_MCTRL_SDRAM
3220
        bool $w.config.f 16 5 "Separate address and data buses" CONFIG_MCTRL_SDRAM_SEPBUS
3221
        bool $w.config.f 16 6 "64-bit SDRAM data bus" CONFIG_MCTRL_SDRAM_BUS64
3222
        bool $w.config.f 16 7 "Unsynchronized sdclock" CONFIG_MCTRL_SDRAM_INVCLK
3223
        bool $w.config.f 16 8 "Enable page burst operation     " CONFIG_MCTRL_PAGE
3224
        bool $w.config.f 16 9 "Enable programmable page burst " CONFIG_MCTRL_PROGPAGE
3225
 
3226
 
3227
 
3228
        focus $w
3229
        update_active
3230
        global winx; global winy
3231
        if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers             "}
3232
        set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30]
3233
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3234
        update idletasks
3235
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3236
 
3237
        $w.config.canvas configure \
3238
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3239
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3240
                         [expr [winfo reqheight $w.config.f] + 1]"
3241
 
3242
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3243
        set scry [expr [winfo screenh $w] / 2]
3244
        set maxy [expr [winfo screenh $w] * 3 / 4]
3245
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3246
        if [expr $winy + $canvtotal < $maxy] {
3247
                $w.config.canvas configure -height $canvtotal
3248
        } else {
3249
                $w.config.canvas configure -height [expr $scry - $winy]
3250
                }
3251
        }
3252
        update idletasks
3253
        if {[winfo exists $w]} then {
3254
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3255
        wm minsize $w [winfo width $w] 100
3256
 
3257
        wm deiconify $w
3258
}
3259
}
3260
 
3261
proc update_menu16 {} {
3262
        global CONFIG_MCTRL_LEON2
3263
        global CONFIG_MCTRL_8BIT
3264
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3265
        configure_entry .menu16.config.f.x1 normal {n l y}} else {configure_entry .menu16.config.f.x1 disabled {y n l}}
3266
        global CONFIG_MCTRL_16BIT
3267
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3268
        configure_entry .menu16.config.f.x2 normal {n l y}} else {configure_entry .menu16.config.f.x2 disabled {y n l}}
3269
        global CONFIG_MCTRL_5CS
3270
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3271
        configure_entry .menu16.config.f.x3 normal {n l y}} else {configure_entry .menu16.config.f.x3 disabled {y n l}}
3272
        global CONFIG_MCTRL_SDRAM
3273
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3274
        configure_entry .menu16.config.f.x4 normal {n l y}} else {configure_entry .menu16.config.f.x4 disabled {y n l}}
3275
        global CONFIG_MCTRL_SDRAM_SEPBUS
3276
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {
3277
        configure_entry .menu16.config.f.x5 normal {n l y}} else {configure_entry .menu16.config.f.x5 disabled {y n l}}
3278
        global CONFIG_MCTRL_SDRAM_BUS64
3279
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {
3280
        configure_entry .menu16.config.f.x6 normal {n l y}} else {configure_entry .menu16.config.f.x6 disabled {y n l}}
3281
        global CONFIG_MCTRL_SDRAM_INVCLK
3282
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {
3283
        configure_entry .menu16.config.f.x7 normal {n l y}} else {configure_entry .menu16.config.f.x7 disabled {y n l}}
3284
        global CONFIG_MCTRL_PAGE
3285
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {
3286
        configure_entry .menu16.config.f.x8 normal {n l y}} else {configure_entry .menu16.config.f.x8 disabled {y n l}}
3287
        global CONFIG_MCTRL_PROGPAGE
3288
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then {
3289
        configure_entry .menu16.config.f.x9 normal {n l y}} else {configure_entry .menu16.config.f.x9 disabled {y n l}}
3290
}
3291
 
3292
 
3293
proc update_define_menu16 {} {
3294
        update_define_mainmenu
3295
        global CONFIG_MODULES
3296
        global CONFIG_MCTRL_LEON2
3297
        global CONFIG_MCTRL_8BIT
3298
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3299
        set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT&15]} else {set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT|16]}
3300
        global CONFIG_MCTRL_16BIT
3301
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3302
        set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT&15]} else {set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT|16]}
3303
        global CONFIG_MCTRL_5CS
3304
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3305
        set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS&15]} else {set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS|16]}
3306
        global CONFIG_MCTRL_SDRAM
3307
        if {($CONFIG_MCTRL_LEON2 == 1)} then {
3308
        set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM&15]} else {set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM|16]}
3309
        global CONFIG_MCTRL_SDRAM_SEPBUS
3310
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {
3311
        set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS&15]} else {set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS|16]}
3312
        global CONFIG_MCTRL_SDRAM_BUS64
3313
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {
3314
        set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64&15]} else {set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64|16]}
3315
        global CONFIG_MCTRL_SDRAM_INVCLK
3316
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then {
3317
        set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK&15]} else {set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK|16]}
3318
        global CONFIG_MCTRL_PAGE
3319
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {
3320
        set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE&15]} else {set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE|16]}
3321
        global CONFIG_MCTRL_PROGPAGE
3322
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then {
3323
        set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE&15]} else {set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE|16]}
3324
}
3325
 
3326
 
3327
proc menu17 {w title} {
3328
        set oldFocus [focus]
3329
        catch {focus .menu14}
3330
        catch {destroy $w; unregister_active 17}
3331
        toplevel $w -class Dialog
3332
        wm withdraw $w
3333
        global active_menus
3334
        set active_menus [lsort -integer [linsert $active_menus end 17]]
3335
        message $w.m -width 400 -aspect 300 -text \
3336
                "PC133 SDRAM controller             "  -relief raised
3337
        pack $w.m -pady 10 -side top -padx 10
3338
        wm title $w "PC133 SDRAM controller             "
3339
 
3340
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 17; break"
3341
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 17; catch {destroy .menu14}; unregister_active 14; menu18 .menu18 \"$title\""
3342
        frame $w.f
3343
        button $w.f.back -text "OK" \
3344
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17"
3345
        button $w.f.next -text "Next" -underline 0\
3346
                -width 15 -command $nextscript
3347
        bind all  $nextscript
3348
        button $w.f.prev -text "Prev" -underline 0\
3349
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\""
3350
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\";break"
3351
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3352
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3353
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3354
        pack $w.topline -side top -fill x
3355
 
3356
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3357
        pack $w.botline -side bottom -fill x
3358
 
3359
        frame $w.config
3360
        pack $w.config -fill y -expand on
3361
 
3362
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3363
        pack $w.config.vscroll -side right -fill y
3364
 
3365
        canvas $w.config.canvas -height 1\
3366
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3367
                -width [expr [winfo screenwidth .] * 1 / 2]
3368
        frame $w.config.f
3369
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3370
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3371
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3372
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3373
        bind $w  "$w.config.canvas yview moveto 0;break;"
3374
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3375
        pack $w.config.canvas -side right -fill y
3376
 
3377
 
3378
        bool $w.config.f 17 0 "Enable PC133 SDRAM controller       " CONFIG_SDCTRL
3379
        bool $w.config.f 17 1 "64-bit SDRAM data bus" CONFIG_SDCTRL_BUS64
3380
        bool $w.config.f 17 2 "Unsynchronized sdclock" CONFIG_SDCTRL_INVCLK
3381
        bool $w.config.f 17 3 "Enable page burst operation     " CONFIG_SDCTRL_PAGE
3382
        bool $w.config.f 17 4 "Enable programmable page burst " CONFIG_SDCTRL_PROGPAGE
3383
 
3384
 
3385
 
3386
        focus $w
3387
        update_active
3388
        global winx; global winy
3389
        if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers             "}
3390
        set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30]
3391
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3392
        update idletasks
3393
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3394
 
3395
        $w.config.canvas configure \
3396
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3397
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3398
                         [expr [winfo reqheight $w.config.f] + 1]"
3399
 
3400
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3401
        set scry [expr [winfo screenh $w] / 2]
3402
        set maxy [expr [winfo screenh $w] * 3 / 4]
3403
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3404
        if [expr $winy + $canvtotal < $maxy] {
3405
                $w.config.canvas configure -height $canvtotal
3406
        } else {
3407
                $w.config.canvas configure -height [expr $scry - $winy]
3408
                }
3409
        }
3410
        update idletasks
3411
        if {[winfo exists $w]} then {
3412
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3413
        wm minsize $w [winfo width $w] 100
3414
 
3415
        wm deiconify $w
3416
}
3417
}
3418
 
3419
proc update_menu17 {} {
3420
        global CONFIG_SDCTRL
3421
        global CONFIG_SDCTRL_BUS64
3422
        if {($CONFIG_SDCTRL == 1)} then {
3423
        configure_entry .menu17.config.f.x1 normal {n l y}} else {configure_entry .menu17.config.f.x1 disabled {y n l}}
3424
        global CONFIG_SDCTRL_INVCLK
3425
        if {($CONFIG_SDCTRL == 1)} then {
3426
        configure_entry .menu17.config.f.x2 normal {n l y}} else {configure_entry .menu17.config.f.x2 disabled {y n l}}
3427
        global CONFIG_SDCTRL_PAGE
3428
        if {($CONFIG_SDCTRL == 1)} then {
3429
        configure_entry .menu17.config.f.x3 normal {n l y}} else {configure_entry .menu17.config.f.x3 disabled {y n l}}
3430
        global CONFIG_SDCTRL_PROGPAGE
3431
        if {($CONFIG_SDCTRL == 1) && ($CONFIG_SDCTRL_PAGE == 1)} then {
3432
        configure_entry .menu17.config.f.x4 normal {n l y}} else {configure_entry .menu17.config.f.x4 disabled {y n l}}
3433
}
3434
 
3435
 
3436
proc update_define_menu17 {} {
3437
        update_define_mainmenu
3438
        global CONFIG_MODULES
3439
        global CONFIG_SDCTRL
3440
        global CONFIG_SDCTRL_BUS64
3441
        if {($CONFIG_SDCTRL == 1)} then {
3442
        set CONFIG_SDCTRL_BUS64 [expr $CONFIG_SDCTRL_BUS64&15]} else {set CONFIG_SDCTRL_BUS64 [expr $CONFIG_SDCTRL_BUS64|16]}
3443
        global CONFIG_SDCTRL_INVCLK
3444
        if {($CONFIG_SDCTRL == 1)} then {
3445
        set CONFIG_SDCTRL_INVCLK [expr $CONFIG_SDCTRL_INVCLK&15]} else {set CONFIG_SDCTRL_INVCLK [expr $CONFIG_SDCTRL_INVCLK|16]}
3446
        global CONFIG_SDCTRL_PAGE
3447
        if {($CONFIG_SDCTRL == 1)} then {
3448
        set CONFIG_SDCTRL_PAGE [expr $CONFIG_SDCTRL_PAGE&15]} else {set CONFIG_SDCTRL_PAGE [expr $CONFIG_SDCTRL_PAGE|16]}
3449
        global CONFIG_SDCTRL_PROGPAGE
3450
        if {($CONFIG_SDCTRL == 1) && ($CONFIG_SDCTRL_PAGE == 1)} then {
3451
        set CONFIG_SDCTRL_PROGPAGE [expr $CONFIG_SDCTRL_PROGPAGE&15]} else {set CONFIG_SDCTRL_PROGPAGE [expr $CONFIG_SDCTRL_PROGPAGE|16]}
3452
}
3453
 
3454
 
3455
proc menu18 {w title} {
3456
        set oldFocus [focus]
3457
        catch {focus .menu13}
3458
        catch {destroy $w; unregister_active 18}
3459
        toplevel $w -class Dialog
3460
        wm withdraw $w
3461
        global active_menus
3462
        set active_menus [lsort -integer [linsert $active_menus end 18]]
3463
        message $w.m -width 400 -aspect 300 -text \
3464
                "On-chip RAM/ROM                 "  -relief raised
3465
        pack $w.m -pady 10 -side top -padx 10
3466
        wm title $w "On-chip RAM/ROM                 "
3467
 
3468
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 18; break"
3469
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu19 .menu19 \"$title\""
3470
        frame $w.f
3471
        button $w.f.back -text "OK" \
3472
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18"
3473
        button $w.f.next -text "Next" -underline 0\
3474
                -width 15 -command $nextscript
3475
        bind all  $nextscript
3476
        button $w.f.prev -text "Prev" -underline 0\
3477
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\""
3478
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\";break"
3479
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3480
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3481
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3482
        pack $w.topline -side top -fill x
3483
 
3484
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3485
        pack $w.botline -side bottom -fill x
3486
 
3487
        frame $w.config
3488
        pack $w.config -fill y -expand on
3489
 
3490
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3491
        pack $w.config.vscroll -side right -fill y
3492
 
3493
        canvas $w.config.canvas -height 1\
3494
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3495
                -width [expr [winfo screenwidth .] * 1 / 2]
3496
        frame $w.config.f
3497
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3498
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3499
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3500
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3501
        bind $w  "$w.config.canvas yview moveto 0;break;"
3502
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3503
        pack $w.config.canvas -side right -fill y
3504
 
3505
 
3506
        bool $w.config.f 18 0 "On-chip AHB ROM                   " CONFIG_AHBROM_ENABLE
3507
        hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START
3508
        bool $w.config.f 18 2 "Pipelined ROM access              " CONFIG_AHBROM_PIPE
3509
        bool $w.config.f 18 3 "On-chip AHB RAM                   " CONFIG_AHBRAM_ENABLE
3510
        global tmpvar_27
3511
        minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1
3512
        menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\""
3513
        $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active"
3514
        $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active"
3515
        $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active"
3516
        $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active"
3517
        $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active"
3518
        $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active"
3519
        $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active"
3520
        menusplit $w $w.config.f.x4.x.menu 7
3521
        hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START
3522
 
3523
 
3524
 
3525
        focus $w
3526
        update_active
3527
        global winx; global winy
3528
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
3529
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
3530
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3531
        update idletasks
3532
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3533
 
3534
        $w.config.canvas configure \
3535
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3536
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3537
                         [expr [winfo reqheight $w.config.f] + 1]"
3538
 
3539
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3540
        set scry [expr [winfo screenh $w] / 2]
3541
        set maxy [expr [winfo screenh $w] * 3 / 4]
3542
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3543
        if [expr $winy + $canvtotal < $maxy] {
3544
                $w.config.canvas configure -height $canvtotal
3545
        } else {
3546
                $w.config.canvas configure -height [expr $scry - $winy]
3547
                }
3548
        }
3549
        update idletasks
3550
        if {[winfo exists $w]} then {
3551
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3552
        wm minsize $w [winfo width $w] 100
3553
 
3554
        wm deiconify $w
3555
}
3556
}
3557
 
3558
proc update_menu18 {} {
3559
        global CONFIG_AHBROM_ENABLE
3560
        global CONFIG_AHBROM_START
3561
        if {($CONFIG_AHBROM_ENABLE == 1)} then {.menu18.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x1.l configure -state normal; } else {.menu18.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x1.l configure -state disabled}
3562
        global CONFIG_AHBROM_PIPE
3563
        if {($CONFIG_AHBROM_ENABLE == 1)} then {
3564
        configure_entry .menu18.config.f.x2 normal {n l y}} else {configure_entry .menu18.config.f.x2 disabled {y n l}}
3565
        global CONFIG_AHBRAM_ENABLE
3566
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {configure_entry .menu18.config.f.x4 normal {x l}} else {configure_entry .menu18.config.f.x4 disabled {x l}}
3567
        global CONFIG_AHBRAM_START
3568
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {.menu18.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x5.l configure -state normal; } else {.menu18.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x5.l configure -state disabled}
3569
}
3570
 
3571
 
3572
proc update_define_menu18 {} {
3573
        update_define_mainmenu
3574
        global CONFIG_MODULES
3575
        global CONFIG_AHBROM_ENABLE
3576
        global CONFIG_AHBROM_START
3577
        if {($CONFIG_AHBROM_ENABLE == 1)} then {validate_hex CONFIG_AHBROM_START "$CONFIG_AHBROM_START" 000}
3578
        global CONFIG_AHBROM_PIPE
3579
        if {($CONFIG_AHBROM_ENABLE == 1)} then {
3580
        set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]}
3581
        global tmpvar_27
3582
        global CONFIG_AHBRAM_SZ1
3583
        if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0}
3584
        global CONFIG_AHBRAM_SZ2
3585
        if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0}
3586
        global CONFIG_AHBRAM_SZ4
3587
        if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0}
3588
        global CONFIG_AHBRAM_SZ8
3589
        if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0}
3590
        global CONFIG_AHBRAM_SZ16
3591
        if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0}
3592
        global CONFIG_AHBRAM_SZ32
3593
        if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0}
3594
        global CONFIG_AHBRAM_SZ64
3595
        if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0}
3596
        global CONFIG_AHBRAM_ENABLE
3597
        global CONFIG_AHBRAM_START
3598
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00}
3599
}
3600
 
3601
 
3602
proc menu19 {w title} {
3603
        set oldFocus [focus]
3604
        catch {focus .menu13}
3605
        catch {destroy $w; unregister_active 19}
3606
        toplevel $w -class Dialog
3607
        wm withdraw $w
3608
        global active_menus
3609
        set active_menus [lsort -integer [linsert $active_menus end 19]]
3610
        message $w.m -width 400 -aspect 300 -text \
3611
                "Ethernet             "  -relief raised
3612
        pack $w.m -pady 10 -side top -padx 10
3613
        wm title $w "Ethernet             "
3614
 
3615
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 19; break"
3616
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu20 .menu20 \"$title\""
3617
        frame $w.f
3618
        button $w.f.back -text "OK" \
3619
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19"
3620
        button $w.f.next -text "Next" -underline 0\
3621
                -width 15 -command $nextscript
3622
        bind all  $nextscript
3623
        button $w.f.prev -text "Prev" -underline 0\
3624
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\""
3625
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break"
3626
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3627
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3628
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3629
        pack $w.topline -side top -fill x
3630
 
3631
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3632
        pack $w.botline -side bottom -fill x
3633
 
3634
        frame $w.config
3635
        pack $w.config -fill y -expand on
3636
 
3637
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3638
        pack $w.config.vscroll -side right -fill y
3639
 
3640
        canvas $w.config.canvas -height 1\
3641
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3642
                -width [expr [winfo screenwidth .] * 1 / 2]
3643
        frame $w.config.f
3644
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3645
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3646
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3647
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3648
        bind $w  "$w.config.canvas yview moveto 0;break;"
3649
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3650
        pack $w.config.canvas -side right -fill y
3651
 
3652
 
3653
        bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE
3654
        bool $w.config.f 19 1 "Enable 1000 Mbit support    " CONFIG_GRETH_GIGA
3655
        global tmpvar_28
3656
        minimenu $w.config.f 19 2 "AHB FIFO size (words)            " tmpvar_28 CONFIG_GRETH_FIFO4
3657
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words)            \""
3658
        $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active"
3659
        $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active"
3660
        $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active"
3661
        $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active"
3662
        $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active"
3663
        menusplit $w $w.config.f.x2.x.menu 5
3664
 
3665
 
3666
 
3667
        focus $w
3668
        update_active
3669
        global winx; global winy
3670
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
3671
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
3672
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3673
        update idletasks
3674
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3675
 
3676
        $w.config.canvas configure \
3677
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3678
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3679
                         [expr [winfo reqheight $w.config.f] + 1]"
3680
 
3681
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3682
        set scry [expr [winfo screenh $w] / 2]
3683
        set maxy [expr [winfo screenh $w] * 3 / 4]
3684
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3685
        if [expr $winy + $canvtotal < $maxy] {
3686
                $w.config.canvas configure -height $canvtotal
3687
        } else {
3688
                $w.config.canvas configure -height [expr $scry - $winy]
3689
                }
3690
        }
3691
        update idletasks
3692
        if {[winfo exists $w]} then {
3693
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3694
        wm minsize $w [winfo width $w] 100
3695
 
3696
        wm deiconify $w
3697
}
3698
}
3699
 
3700
proc update_menu19 {} {
3701
        global CONFIG_GRETH_ENABLE
3702
        global CONFIG_GRETH_GIGA
3703
        if {($CONFIG_GRETH_ENABLE == 1)} then {
3704
        configure_entry .menu19.config.f.x1 normal {n l y}} else {configure_entry .menu19.config.f.x1 disabled {y n l}}
3705
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then {configure_entry .menu19.config.f.x2 normal {x l}} else {configure_entry .menu19.config.f.x2 disabled {x l}}
3706
}
3707
 
3708
 
3709
proc update_define_menu19 {} {
3710
        update_define_mainmenu
3711
        global CONFIG_MODULES
3712
        global CONFIG_GRETH_ENABLE
3713
        global CONFIG_GRETH_GIGA
3714
        if {($CONFIG_GRETH_ENABLE == 1)} then {
3715
        set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]}
3716
        global tmpvar_28
3717
        global CONFIG_GRETH_FIFO4
3718
        if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0}
3719
        global CONFIG_GRETH_FIFO8
3720
        if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0}
3721
        global CONFIG_GRETH_FIFO16
3722
        if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0}
3723
        global CONFIG_GRETH_FIFO32
3724
        if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0}
3725
        global CONFIG_GRETH_FIFO64
3726
        if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0}
3727
}
3728
 
3729
 
3730
proc menu20 {w title} {
3731
        set oldFocus [focus]
3732
        catch {focus .menu13}
3733
        catch {destroy $w; unregister_active 20}
3734
        toplevel $w -class Dialog
3735
        wm withdraw $w
3736
        global active_menus
3737
        set active_menus [lsort -integer [linsert $active_menus end 20]]
3738
        message $w.m -width 400 -aspect 300 -text \
3739
                "CAN                     "  -relief raised
3740
        pack $w.m -pady 10 -side top -padx 10
3741
        wm title $w "CAN                     "
3742
 
3743
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 20; break"
3744
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu21 .menu21 \"$title\""
3745
        frame $w.f
3746
        button $w.f.back -text "OK" \
3747
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20"
3748
        button $w.f.next -text "Next" -underline 0\
3749
                -width 15 -command $nextscript
3750
        bind all  $nextscript
3751
        button $w.f.prev -text "Prev" -underline 0\
3752
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\""
3753
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break"
3754
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3755
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3756
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3757
        pack $w.topline -side top -fill x
3758
 
3759
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3760
        pack $w.botline -side bottom -fill x
3761
 
3762
        frame $w.config
3763
        pack $w.config -fill y -expand on
3764
 
3765
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3766
        pack $w.config.vscroll -side right -fill y
3767
 
3768
        canvas $w.config.canvas -height 1\
3769
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3770
                -width [expr [winfo screenwidth .] * 1 / 2]
3771
        frame $w.config.f
3772
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3773
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3774
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3775
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3776
        bind $w  "$w.config.canvas yview moveto 0;break;"
3777
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3778
        pack $w.config.canvas -side right -fill y
3779
 
3780
 
3781
        bool $w.config.f 20 0 "Enable CAN interface                 " CONFIG_CAN_ENABLE
3782
        hex $w.config.f 20 1 "CAN I/O area start address (haddr\[19:8\]) " CONFIG_CANIO
3783
        int $w.config.f 20 2 "Interrupt number                      " CONFIG_CANIRQ
3784
        bool $w.config.f 20 3 "Enable loop-back testing             " CONFIG_CANLOOP
3785
        bool $w.config.f 20 4 "Enable synchronous reset             " CONFIG_CAN_SYNCRST
3786
        bool $w.config.f 20 5 "Enable FT FIFO memory                " CONFIG_CAN_FT
3787
 
3788
 
3789
 
3790
        focus $w
3791
        update_active
3792
        global winx; global winy
3793
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
3794
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
3795
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3796
        update idletasks
3797
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3798
 
3799
        $w.config.canvas configure \
3800
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3801
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3802
                         [expr [winfo reqheight $w.config.f] + 1]"
3803
 
3804
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3805
        set scry [expr [winfo screenh $w] / 2]
3806
        set maxy [expr [winfo screenh $w] * 3 / 4]
3807
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3808
        if [expr $winy + $canvtotal < $maxy] {
3809
                $w.config.canvas configure -height $canvtotal
3810
        } else {
3811
                $w.config.canvas configure -height [expr $scry - $winy]
3812
                }
3813
        }
3814
        update idletasks
3815
        if {[winfo exists $w]} then {
3816
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3817
        wm minsize $w [winfo width $w] 100
3818
 
3819
        wm deiconify $w
3820
}
3821
}
3822
 
3823
proc update_menu20 {} {
3824
        global CONFIG_CAN_ENABLE
3825
        global CONFIG_CANIO
3826
        if {($CONFIG_CAN_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}
3827
        global CONFIG_CANIRQ
3828
        if {($CONFIG_CAN_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}
3829
        global CONFIG_CANLOOP
3830
        if {($CONFIG_CAN_ENABLE == 1)} then {
3831
        configure_entry .menu20.config.f.x3 normal {n l y}} else {configure_entry .menu20.config.f.x3 disabled {y n l}}
3832
        global CONFIG_CAN_SYNCRST
3833
        if {($CONFIG_CAN_ENABLE == 1)} then {
3834
        configure_entry .menu20.config.f.x4 normal {n l y}} else {configure_entry .menu20.config.f.x4 disabled {y n l}}
3835
        global CONFIG_CAN_FT
3836
        if {($CONFIG_CAN_ENABLE == 1)} then {
3837
        configure_entry .menu20.config.f.x5 normal {n l y}} else {configure_entry .menu20.config.f.x5 disabled {y n l}}
3838
}
3839
 
3840
 
3841
proc update_define_menu20 {} {
3842
        update_define_mainmenu
3843
        global CONFIG_MODULES
3844
        global CONFIG_CAN_ENABLE
3845
        global CONFIG_CANIO
3846
        if {($CONFIG_CAN_ENABLE == 1)} then {validate_hex CONFIG_CANIO "$CONFIG_CANIO" C00}
3847
        global CONFIG_CANIRQ
3848
        if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CANIRQ "$CONFIG_CANIRQ" 13}
3849
        global CONFIG_CANLOOP
3850
        if {($CONFIG_CAN_ENABLE == 1)} then {
3851
        set CONFIG_CANLOOP [expr $CONFIG_CANLOOP&15]} else {set CONFIG_CANLOOP [expr $CONFIG_CANLOOP|16]}
3852
        global CONFIG_CAN_SYNCRST
3853
        if {($CONFIG_CAN_ENABLE == 1)} then {
3854
        set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST&15]} else {set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST|16]}
3855
        global CONFIG_CAN_FT
3856
        if {($CONFIG_CAN_ENABLE == 1)} then {
3857
        set CONFIG_CAN_FT [expr $CONFIG_CAN_FT&15]} else {set CONFIG_CAN_FT [expr $CONFIG_CAN_FT|16]}
3858
}
3859
 
3860
 
3861
proc menu21 {w title} {
3862
        set oldFocus [focus]
3863
        catch {focus .menu13}
3864
        catch {destroy $w; unregister_active 21}
3865
        toplevel $w -class Dialog
3866
        wm withdraw $w
3867
        global active_menus
3868
        set active_menus [lsort -integer [linsert $active_menus end 21]]
3869
        message $w.m -width 400 -aspect 300 -text \
3870
                "PCI              "  -relief raised
3871
        pack $w.m -pady 10 -side top -padx 10
3872
        wm title $w "PCI              "
3873
 
3874
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 21; break"
3875
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu22 .menu22 \"$title\""
3876
        frame $w.f
3877
        button $w.f.back -text "OK" \
3878
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21"
3879
        button $w.f.next -text "Next" -underline 0\
3880
                -width 15 -command $nextscript
3881
        bind all  $nextscript
3882
        button $w.f.prev -text "Prev" -underline 0\
3883
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\""
3884
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\";break"
3885
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
3886
        pack $w.f -pady 10 -side bottom -anchor w -fill x
3887
        frame $w.topline -relief ridge -borderwidth 2 -height 2
3888
        pack $w.topline -side top -fill x
3889
 
3890
        frame $w.botline -relief ridge -borderwidth 2 -height 2
3891
        pack $w.botline -side bottom -fill x
3892
 
3893
        frame $w.config
3894
        pack $w.config -fill y -expand on
3895
 
3896
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
3897
        pack $w.config.vscroll -side right -fill y
3898
 
3899
        canvas $w.config.canvas -height 1\
3900
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
3901
                -width [expr [winfo screenwidth .] * 1 / 2]
3902
        frame $w.config.f
3903
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
3904
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
3905
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
3906
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
3907
        bind $w  "$w.config.canvas yview moveto 0;break;"
3908
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
3909
        pack $w.config.canvas -side right -fill y
3910
 
3911
 
3912
        bool $w.config.f 21 0 "PCI interface, target-only     " CONFIG_PCI_SIMPLE_TARGET
3913
        bool $w.config.f 21 1 "PCI interface, master-target     " CONFIG_PCI_MASTER_TARGET
3914
        bool $w.config.f 21 2 "PCI DMA controller               " CONFIG_PCI_MASTER_TARGET_DMA
3915
        hex $w.config.f 21 3 "PCI vendor ID" CONFIG_PCI_VENDORID
3916
        hex $w.config.f 21 4 "PCI device ID" CONFIG_PCI_DEVICEID
3917
        global tmpvar_29
3918
        minimenu $w.config.f 21 5 "PCI FIFO depth" tmpvar_29 CONFIG_PCI_FIFO0
3919
        menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\""
3920
        $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_29 -value "None" -command "update_active"
3921
        $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active"
3922
        $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active"
3923
        $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active"
3924
        $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active"
3925
        $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_29 -value "128" -command "update_active"
3926
        menusplit $w $w.config.f.x5.x.menu 6
3927
        hex $w.config.f 21 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR
3928
        bool $w.config.f 21 7 "PCI arbiter  " CONFIG_PCI_ARBITER
3929
        bool $w.config.f 21 8 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB
3930
        int $w.config.f 21 9 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ
3931
        bool $w.config.f 21 10 "Enable PCI trace buffer              " CONFIG_PCI_TRACE
3932
        global tmpvar_30
3933
        minimenu $w.config.f 21 11 "PCI trace buffer depth" tmpvar_30 CONFIG_PCI_TRACE256
3934
        menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\""
3935
        $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_30 -value "256" -command "update_active"
3936
        $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_30 -value "512" -command "update_active"
3937
        $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_30 -value "1024" -command "update_active"
3938
        $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_30 -value "2048" -command "update_active"
3939
        $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_30 -value "4096" -command "update_active"
3940
        menusplit $w $w.config.f.x11.x.menu 5
3941
 
3942
 
3943
 
3944
        focus $w
3945
        update_active
3946
        global winx; global winy
3947
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
3948
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
3949
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
3950
        update idletasks
3951
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
3952
 
3953
        $w.config.canvas configure \
3954
                -width [expr [winfo reqwidth $w.config.f] + 1]\
3955
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
3956
                         [expr [winfo reqheight $w.config.f] + 1]"
3957
 
3958
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
3959
        set scry [expr [winfo screenh $w] / 2]
3960
        set maxy [expr [winfo screenh $w] * 3 / 4]
3961
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
3962
        if [expr $winy + $canvtotal < $maxy] {
3963
                $w.config.canvas configure -height $canvtotal
3964
        } else {
3965
                $w.config.canvas configure -height [expr $scry - $winy]
3966
                }
3967
        }
3968
        update idletasks
3969
        if {[winfo exists $w]} then {
3970
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
3971
        wm minsize $w [winfo width $w] 100
3972
 
3973
        wm deiconify $w
3974
}
3975
}
3976
 
3977
proc update_menu21 {} {
3978
        global CONFIG_PCI_ACTEL
3979
        global CONFIG_PCI_SIMPLE_TARGET
3980
        if {($CONFIG_PCI_ACTEL != 1)} then {
3981
        configure_entry .menu21.config.f.x0 normal {n l y}} else {configure_entry .menu21.config.f.x0 disabled {y n l}}
3982
        global CONFIG_PCI_MASTER_TARGET
3983
        if {($CONFIG_PCI_SIMPLE_TARGET != 1 && $CONFIG_PCI_ACTEL != 1)} then {
3984
        configure_entry .menu21.config.f.x1 normal {n l y}} else {configure_entry .menu21.config.f.x1 disabled {y n l}}
3985
        global CONFIG_PCI_MASTER_TARGET_DMA
3986
        if {($CONFIG_PCI_MASTER_TARGET == 1)} then {
3987
        configure_entry .menu21.config.f.x2 normal {n l y}} else {configure_entry .menu21.config.f.x2 disabled {y n l}}
3988
        global CONFIG_PCI_VENDORID
3989
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {.menu21.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x3.l configure -state normal; } else {.menu21.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x3.l configure -state disabled}
3990
        global CONFIG_PCI_DEVICEID
3991
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {.menu21.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x4.l configure -state normal; } else {.menu21.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x4.l configure -state disabled}
3992
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {configure_entry .menu21.config.f.x5 normal {x l}} else {configure_entry .menu21.config.f.x5 disabled {x l}}
3993
        global CONFIG_PCI_HADDR
3994
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {.menu21.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x6.l configure -state normal; } else {.menu21.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x6.l configure -state disabled}
3995
        global CONFIG_PCI_ARBITER
3996
        global CONFIG_PCI_ARBITER_APB
3997
        if {($CONFIG_PCI_ARBITER == 1)} then {
3998
        configure_entry .menu21.config.f.x8 normal {n l y}} else {configure_entry .menu21.config.f.x8 disabled {y n l}}
3999
        global CONFIG_PCI_ARBITER_NREQ
4000
        if {($CONFIG_PCI_ARBITER == 1)} then {.menu21.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x9.l configure -state normal; } else {.menu21.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x9.l configure -state disabled}
4001
        global CONFIG_PCI_TRACE
4002
        if {($CONFIG_PCI_TRACE == 1)} then {configure_entry .menu21.config.f.x11 normal {x l}} else {configure_entry .menu21.config.f.x11 disabled {x l}}
4003
}
4004
 
4005
 
4006
proc update_define_menu21 {} {
4007
        update_define_mainmenu
4008
        global CONFIG_MODULES
4009
        global CONFIG_PCI_ACTEL
4010
        global CONFIG_PCI_SIMPLE_TARGET
4011
        if {($CONFIG_PCI_ACTEL != 1)} then {
4012
        set CONFIG_PCI_SIMPLE_TARGET [expr $CONFIG_PCI_SIMPLE_TARGET&15]} else {set CONFIG_PCI_SIMPLE_TARGET [expr $CONFIG_PCI_SIMPLE_TARGET|16]}
4013
        global CONFIG_PCI_MASTER_TARGET
4014
        if {($CONFIG_PCI_SIMPLE_TARGET != 1 && $CONFIG_PCI_ACTEL != 1)} then {
4015
        set CONFIG_PCI_MASTER_TARGET [expr $CONFIG_PCI_MASTER_TARGET&15]} else {set CONFIG_PCI_MASTER_TARGET [expr $CONFIG_PCI_MASTER_TARGET|16]}
4016
        global CONFIG_PCI_MASTER_TARGET_DMA
4017
        if {($CONFIG_PCI_MASTER_TARGET == 1)} then {
4018
        set CONFIG_PCI_MASTER_TARGET_DMA [expr $CONFIG_PCI_MASTER_TARGET_DMA&15]} else {set CONFIG_PCI_MASTER_TARGET_DMA [expr $CONFIG_PCI_MASTER_TARGET_DMA|16]}
4019
        global CONFIG_PCI_VENDORID
4020
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 16E3}
4021
        global CONFIG_PCI_DEVICEID
4022
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0210}
4023
        global tmpvar_29
4024
        global CONFIG_PCI_FIFO0
4025
        if {$tmpvar_29 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0}
4026
        global CONFIG_PCI_FIFO8
4027
        if {$tmpvar_29 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0}
4028
        global CONFIG_PCI_FIFO16
4029
        if {$tmpvar_29 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0}
4030
        global CONFIG_PCI_FIFO32
4031
        if {$tmpvar_29 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0}
4032
        global CONFIG_PCI_FIFO64
4033
        if {$tmpvar_29 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0}
4034
        global CONFIG_PCI_FIFO128
4035
        if {$tmpvar_29 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0}
4036
        global CONFIG_PCI_HADDR
4037
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_HADDR "$CONFIG_PCI_HADDR" E00}
4038
        global CONFIG_PCI_ARBITER
4039
        global CONFIG_PCI_ARBITER_APB
4040
        if {($CONFIG_PCI_ARBITER == 1)} then {
4041
        set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]}
4042
        global CONFIG_PCI_ARBITER_NREQ
4043
        if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4}
4044
        global tmpvar_30
4045
        global CONFIG_PCI_TRACE256
4046
        if {$tmpvar_30 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0}
4047
        global CONFIG_PCI_TRACE512
4048
        if {$tmpvar_30 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0}
4049
        global CONFIG_PCI_TRACE1024
4050
        if {$tmpvar_30 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0}
4051
        global CONFIG_PCI_TRACE2048
4052
        if {$tmpvar_30 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0}
4053
        global CONFIG_PCI_TRACE4096
4054
        if {$tmpvar_30 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0}
4055
}
4056
 
4057
 
4058
proc menu22 {w title} {
4059
        set oldFocus [focus]
4060
        catch {focus .menu13}
4061
        catch {destroy $w; unregister_active 22}
4062
        toplevel $w -class Dialog
4063
        wm withdraw $w
4064
        global active_menus
4065
        set active_menus [lsort -integer [linsert $active_menus end 22]]
4066
        message $w.m -width 400 -aspect 300 -text \
4067
                "Spacewire "  -relief raised
4068
        pack $w.m -pady 10 -side top -padx 10
4069
        wm title $w "Spacewire "
4070
 
4071
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 22; break"
4072
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu23 .menu23 \"$title\""
4073
        frame $w.f
4074
        button $w.f.back -text "OK" \
4075
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22"
4076
        button $w.f.next -text "Next" -underline 0\
4077
                -width 15 -command $nextscript
4078
        bind all  $nextscript
4079
        button $w.f.prev -text "Prev" -underline 0\
4080
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\""
4081
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break"
4082
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
4083
        pack $w.f -pady 10 -side bottom -anchor w -fill x
4084
        frame $w.topline -relief ridge -borderwidth 2 -height 2
4085
        pack $w.topline -side top -fill x
4086
 
4087
        frame $w.botline -relief ridge -borderwidth 2 -height 2
4088
        pack $w.botline -side bottom -fill x
4089
 
4090
        frame $w.config
4091
        pack $w.config -fill y -expand on
4092
 
4093
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
4094
        pack $w.config.vscroll -side right -fill y
4095
 
4096
        canvas $w.config.canvas -height 1\
4097
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
4098
                -width [expr [winfo screenwidth .] * 1 / 2]
4099
        frame $w.config.f
4100
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
4101
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
4102
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
4103
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
4104
        bind $w  "$w.config.canvas yview moveto 0;break;"
4105
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
4106
        pack $w.config.canvas -side right -fill y
4107
 
4108
 
4109
        bool $w.config.f 22 0 "Enable Spacewire links              " CONFIG_SPW_ENABLE
4110
        int $w.config.f 22 1 "Number of links (1 - 3)" CONFIG_SPW_NUM
4111
        global tmpvar_31
4112
        minimenu $w.config.f 22 2 "AHB RX/TX FIFO size (32-bit words)     " tmpvar_31 CONFIG_SPW_AHBFIFO4
4113
        menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words)     \""
4114
        $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active"
4115
        $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active"
4116
        $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active"
4117
        $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active"
4118
        menusplit $w $w.config.f.x2.x.menu 4
4119
        global tmpvar_32
4120
        minimenu $w.config.f 22 3 "Receiver FIFO size (bytes)        " tmpvar_32 CONFIG_SPW_RXFIFO16
4121
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes)        \""
4122
        $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active"
4123
        $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active"
4124
        $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active"
4125
        menusplit $w $w.config.f.x3.x.menu 3
4126
        bool $w.config.f 22 4 "Enable RMAP protocol   " CONFIG_SPW_RMAP
4127
        global tmpvar_33
4128
        minimenu $w.config.f 22 5 "RMAP buffer size (bytes)    " tmpvar_33 CONFIG_SPW_RMAPBUF2
4129
        menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes)    \""
4130
        $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active"
4131
        $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_33 -value "128" -command "update_active"
4132
        $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_33 -value "192" -command "update_active"
4133
        $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_33 -value "256" -command "update_active"
4134
        menusplit $w $w.config.f.x5.x.menu 4
4135
        bool $w.config.f 22 6 "Enable RMAP CRC check  " CONFIG_SPW_RMAPCRC
4136
        bool $w.config.f 22 7 "Spacewire FIFO protection           " CONFIG_SPW_FT
4137
        bool $w.config.f 22 8 "Use GRSPWC netlist     " CONFIG_SPW_NETLIST
4138
        global tmpvar_34
4139
        minimenu $w.config.f 22 9 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_34 CONFIG_SPW_GRSPW1
4140
        menu $w.config.f.x9.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \""
4141
        $w.config.f.x9.x.menu add radiobutton -label "1" -variable tmpvar_34 -value "1" -command "update_active"
4142
        $w.config.f.x9.x.menu add radiobutton -label "2" -variable tmpvar_34 -value "2" -command "update_active"
4143
        menusplit $w $w.config.f.x9.x.menu 2
4144
 
4145
 
4146
 
4147
        focus $w
4148
        update_active
4149
        global winx; global winy
4150
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
4151
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
4152
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
4153
        update idletasks
4154
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
4155
 
4156
        $w.config.canvas configure \
4157
                -width [expr [winfo reqwidth $w.config.f] + 1]\
4158
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
4159
                         [expr [winfo reqheight $w.config.f] + 1]"
4160
 
4161
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
4162
        set scry [expr [winfo screenh $w] / 2]
4163
        set maxy [expr [winfo screenh $w] * 3 / 4]
4164
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
4165
        if [expr $winy + $canvtotal < $maxy] {
4166
                $w.config.canvas configure -height $canvtotal
4167
        } else {
4168
                $w.config.canvas configure -height [expr $scry - $winy]
4169
                }
4170
        }
4171
        update idletasks
4172
        if {[winfo exists $w]} then {
4173
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
4174
        wm minsize $w [winfo width $w] 100
4175
 
4176
        wm deiconify $w
4177
}
4178
}
4179
 
4180
proc update_menu22 {} {
4181
        global CONFIG_SPW_ENABLE
4182
        global CONFIG_SPW_NUM
4183
        if {($CONFIG_SPW_ENABLE == 1)} then {.menu22.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x1.l configure -state normal; } else {.menu22.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x1.l configure -state disabled}
4184
        if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu22.config.f.x2 normal {x l}} else {configure_entry .menu22.config.f.x2 disabled {x l}}
4185
        if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu22.config.f.x3 normal {x l}} else {configure_entry .menu22.config.f.x3 disabled {x l}}
4186
        global CONFIG_SPW_RMAP
4187
        if {($CONFIG_SPW_ENABLE == 1)} then {
4188
        configure_entry .menu22.config.f.x4 normal {n l y}} else {configure_entry .menu22.config.f.x4 disabled {y n l}}
4189
        if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then {configure_entry .menu22.config.f.x5 normal {x l}} else {configure_entry .menu22.config.f.x5 disabled {x l}}
4190
        global CONFIG_SPW_RMAPCRC
4191
        if {($CONFIG_SPW_ENABLE == 1)} then {
4192
        configure_entry .menu22.config.f.x6 normal {n l y}} else {configure_entry .menu22.config.f.x6 disabled {y n l}}
4193
        global CONFIG_SPW_FT
4194
        if {($CONFIG_SPW_ENABLE == 1)} then {
4195
        configure_entry .menu22.config.f.x7 normal {n l y}} else {configure_entry .menu22.config.f.x7 disabled {y n l}}
4196
        global CONFIG_SPW_NETLIST
4197
        if {($CONFIG_SPW_ENABLE == 1)} then {
4198
        configure_entry .menu22.config.f.x8 normal {n l y}} else {configure_entry .menu22.config.f.x8 disabled {y n l}}
4199
        if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu22.config.f.x9 normal {x l}} else {configure_entry .menu22.config.f.x9 disabled {x l}}
4200
}
4201
 
4202
 
4203
proc update_define_menu22 {} {
4204
        update_define_mainmenu
4205
        global CONFIG_MODULES
4206
        global CONFIG_SPW_ENABLE
4207
        global CONFIG_SPW_NUM
4208
        if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1}
4209
        global tmpvar_31
4210
        global CONFIG_SPW_AHBFIFO4
4211
        if {$tmpvar_31 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0}
4212
        global CONFIG_SPW_AHBFIFO8
4213
        if {$tmpvar_31 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0}
4214
        global CONFIG_SPW_AHBFIFO16
4215
        if {$tmpvar_31 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0}
4216
        global CONFIG_SPW_AHBFIFO32
4217
        if {$tmpvar_31 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0}
4218
        global tmpvar_32
4219
        global CONFIG_SPW_RXFIFO16
4220
        if {$tmpvar_32 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0}
4221
        global CONFIG_SPW_RXFIFO32
4222
        if {$tmpvar_32 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0}
4223
        global CONFIG_SPW_RXFIFO64
4224
        if {$tmpvar_32 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0}
4225
        global CONFIG_SPW_RMAP
4226
        if {($CONFIG_SPW_ENABLE == 1)} then {
4227
        set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]}
4228
        global tmpvar_33
4229
        global CONFIG_SPW_RMAPBUF2
4230
        if {$tmpvar_33 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0}
4231
        global CONFIG_SPW_RMAPBUF4
4232
        if {$tmpvar_33 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0}
4233
        global CONFIG_SPW_RMAPBUF6
4234
        if {$tmpvar_33 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0}
4235
        global CONFIG_SPW_RMAPBUF8
4236
        if {$tmpvar_33 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0}
4237
        global CONFIG_SPW_RMAPCRC
4238
        if {($CONFIG_SPW_ENABLE == 1)} then {
4239
        set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]}
4240
        global CONFIG_SPW_FT
4241
        if {($CONFIG_SPW_ENABLE == 1)} then {
4242
        set CONFIG_SPW_FT [expr $CONFIG_SPW_FT&15]} else {set CONFIG_SPW_FT [expr $CONFIG_SPW_FT|16]}
4243
        global CONFIG_SPW_NETLIST
4244
        if {($CONFIG_SPW_ENABLE == 1)} then {
4245
        set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]}
4246
        global tmpvar_34
4247
        global CONFIG_SPW_GRSPW1
4248
        if {$tmpvar_34 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0}
4249
        global CONFIG_SPW_GRSPW2
4250
        if {$tmpvar_34 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0}
4251
}
4252
 
4253
 
4254
proc menu23 {w title} {
4255
        set oldFocus [focus]
4256
        catch {focus .menu13}
4257
        catch {destroy $w; unregister_active 23}
4258
        toplevel $w -class Dialog
4259
        wm withdraw $w
4260
        global active_menus
4261
        set active_menus [lsort -integer [linsert $active_menus end 23]]
4262
        message $w.m -width 400 -aspect 300 -text \
4263
                "UARTs, timers and irq control         "  -relief raised
4264
        pack $w.m -pady 10 -side top -padx 10
4265
        wm title $w "UARTs, timers and irq control         "
4266
 
4267
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 23; break"
4268
        set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 23; catch {destroy .menu13}; unregister_active 13; menu24 .menu24 \"$title\""
4269
        frame $w.f
4270
        button $w.f.back -text "OK" \
4271
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23"
4272
        button $w.f.next -text "Next" -underline 0\
4273
                -width 15 -command $nextscript
4274
        bind all  $nextscript
4275
        button $w.f.prev -text "Prev" -underline 0\
4276
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\""
4277
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break"
4278
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
4279
        pack $w.f -pady 10 -side bottom -anchor w -fill x
4280
        frame $w.topline -relief ridge -borderwidth 2 -height 2
4281
        pack $w.topline -side top -fill x
4282
 
4283
        frame $w.botline -relief ridge -borderwidth 2 -height 2
4284
        pack $w.botline -side bottom -fill x
4285
 
4286
        frame $w.config
4287
        pack $w.config -fill y -expand on
4288
 
4289
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
4290
        pack $w.config.vscroll -side right -fill y
4291
 
4292
        canvas $w.config.canvas -height 1\
4293
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
4294
                -width [expr [winfo screenwidth .] * 1 / 2]
4295
        frame $w.config.f
4296
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
4297
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
4298
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
4299
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
4300
        bind $w  "$w.config.canvas yview moveto 0;break;"
4301
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
4302
        pack $w.config.canvas -side right -fill y
4303
 
4304
 
4305
        bool $w.config.f 23 0 "Enable console UART                  " CONFIG_UART1_ENABLE
4306
        global tmpvar_35
4307
        minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_35 CONFIG_UA1_FIFO1
4308
        menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\""
4309
        $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_35 -value "1" -command "update_active"
4310
        $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_35 -value "2" -command "update_active"
4311
        $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_35 -value "4" -command "update_active"
4312
        $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_35 -value "8" -command "update_active"
4313
        $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_35 -value "16" -command "update_active"
4314
        $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_35 -value "32" -command "update_active"
4315
        menusplit $w $w.config.f.x1.x.menu 6
4316
        bool $w.config.f 23 2 "Enable secondary UART                " CONFIG_UART2_ENABLE
4317
        global tmpvar_36
4318
        minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_36 CONFIG_UA2_FIFO1
4319
        menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\""
4320
        $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_36 -value "1" -command "update_active"
4321
        $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_36 -value "2" -command "update_active"
4322
        $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_36 -value "4" -command "update_active"
4323
        $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_36 -value "8" -command "update_active"
4324
        $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_36 -value "16" -command "update_active"
4325
        $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_36 -value "32" -command "update_active"
4326
        menusplit $w $w.config.f.x3.x.menu 6
4327
        bool $w.config.f 23 4 "Enable LEON3 interrupt controller    " CONFIG_IRQ3_ENABLE
4328
        bool $w.config.f 23 5 "Enable Timer Unit                    " CONFIG_GPT_ENABLE
4329
        int $w.config.f 23 6 "Number of timers (1 - 7)              " CONFIG_GPT_NTIM
4330
        int $w.config.f 23 7 "Scaler width (2 - 16)                 " CONFIG_GPT_SW
4331
        int $w.config.f 23 8 "Timer width (2 - 32)                  " CONFIG_GPT_TW
4332
        int $w.config.f 23 9 "Timer unit interrupt                  " CONFIG_GPT_IRQ
4333
        bool $w.config.f 23 10 "Separate interrupts                  " CONFIG_GPT_SEPIRQ
4334
        bool $w.config.f 23 11 "Watchdog enable                      " CONFIG_GPT_WDOGEN
4335
        hex $w.config.f 23 12 "Initial watchdog time-out value       " CONFIG_GPT_WDOG
4336
        bool $w.config.f 23 13 "Enable generic GPIO port              " CONFIG_GRGPIO_ENABLE
4337
        int $w.config.f 23 14 "GPIO width            " CONFIG_GRGPIO_WIDTH
4338
        hex $w.config.f 23 15 "GPIO interrupt mask   " CONFIG_GRGPIO_IMASK
4339
 
4340
 
4341
 
4342
        focus $w
4343
        update_active
4344
        global winx; global winy
4345
        if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals             "}
4346
        set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30]
4347
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
4348
        update idletasks
4349
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
4350
 
4351
        $w.config.canvas configure \
4352
                -width [expr [winfo reqwidth $w.config.f] + 1]\
4353
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
4354
                         [expr [winfo reqheight $w.config.f] + 1]"
4355
 
4356
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
4357
        set scry [expr [winfo screenh $w] / 2]
4358
        set maxy [expr [winfo screenh $w] * 3 / 4]
4359
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
4360
        if [expr $winy + $canvtotal < $maxy] {
4361
                $w.config.canvas configure -height $canvtotal
4362
        } else {
4363
                $w.config.canvas configure -height [expr $scry - $winy]
4364
                }
4365
        }
4366
        update idletasks
4367
        if {[winfo exists $w]} then {
4368
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
4369
        wm minsize $w [winfo width $w] 100
4370
 
4371
        wm deiconify $w
4372
}
4373
}
4374
 
4375
proc update_menu23 {} {
4376
        global CONFIG_UART1_ENABLE
4377
        if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu23.config.f.x1 normal {x l}} else {configure_entry .menu23.config.f.x1 disabled {x l}}
4378
        global CONFIG_UART2_ENABLE
4379
        if {($CONFIG_UART2_ENABLE == 1)} then {configure_entry .menu23.config.f.x3 normal {x l}} else {configure_entry .menu23.config.f.x3 disabled {x l}}
4380
        global CONFIG_GPT_ENABLE
4381
        global CONFIG_GPT_NTIM
4382
        if {($CONFIG_GPT_ENABLE == 1)} then {.menu23.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x6.l configure -state normal; } else {.menu23.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x6.l configure -state disabled}
4383
        global CONFIG_GPT_SW
4384
        if {($CONFIG_GPT_ENABLE == 1)} then {.menu23.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x7.l configure -state normal; } else {.menu23.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x7.l configure -state disabled}
4385
        global CONFIG_GPT_TW
4386
        if {($CONFIG_GPT_ENABLE == 1)} then {.menu23.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x8.l configure -state normal; } else {.menu23.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x8.l configure -state disabled}
4387
        global CONFIG_GPT_IRQ
4388
        if {($CONFIG_GPT_ENABLE == 1)} then {.menu23.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x9.l configure -state normal; } else {.menu23.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x9.l configure -state disabled}
4389
        global CONFIG_GPT_SEPIRQ
4390
        if {($CONFIG_GPT_ENABLE == 1)} then {
4391
        configure_entry .menu23.config.f.x10 normal {n l y}} else {configure_entry .menu23.config.f.x10 disabled {y n l}}
4392
        global CONFIG_GPT_WDOGEN
4393
        if {($CONFIG_GPT_ENABLE == 1)} then {
4394
        configure_entry .menu23.config.f.x11 normal {n l y}} else {configure_entry .menu23.config.f.x11 disabled {y n l}}
4395
        global CONFIG_GPT_WDOG
4396
        if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu23.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x12.l configure -state normal; } else {.menu23.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x12.l configure -state disabled}
4397
        global CONFIG_GRGPIO_ENABLE
4398
        global CONFIG_GRGPIO_WIDTH
4399
        if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu23.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x14.l configure -state normal; } else {.menu23.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x14.l configure -state disabled}
4400
        global CONFIG_GRGPIO_IMASK
4401
        if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu23.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x15.l configure -state normal; } else {.menu23.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x15.l configure -state disabled}
4402
}
4403
 
4404
 
4405
proc update_define_menu23 {} {
4406
        update_define_mainmenu
4407
        global CONFIG_MODULES
4408
        global tmpvar_35
4409
        global CONFIG_UA1_FIFO1
4410
        if {$tmpvar_35 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0}
4411
        global CONFIG_UA1_FIFO2
4412
        if {$tmpvar_35 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0}
4413
        global CONFIG_UA1_FIFO4
4414
        if {$tmpvar_35 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0}
4415
        global CONFIG_UA1_FIFO8
4416
        if {$tmpvar_35 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0}
4417
        global CONFIG_UA1_FIFO16
4418
        if {$tmpvar_35 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0}
4419
        global CONFIG_UA1_FIFO32
4420
        if {$tmpvar_35 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0}
4421
        global tmpvar_36
4422
        global CONFIG_UA2_FIFO1
4423
        if {$tmpvar_36 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0}
4424
        global CONFIG_UA2_FIFO2
4425
        if {$tmpvar_36 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0}
4426
        global CONFIG_UA2_FIFO4
4427
        if {$tmpvar_36 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0}
4428
        global CONFIG_UA2_FIFO8
4429
        if {$tmpvar_36 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0}
4430
        global CONFIG_UA2_FIFO16
4431
        if {$tmpvar_36 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0}
4432
        global CONFIG_UA2_FIFO32
4433
        if {$tmpvar_36 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0}
4434
        global CONFIG_GPT_ENABLE
4435
        global CONFIG_GPT_NTIM
4436
        if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_NTIM "$CONFIG_GPT_NTIM" 2}
4437
        global CONFIG_GPT_SW
4438
        if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_SW "$CONFIG_GPT_SW" 8}
4439
        global CONFIG_GPT_TW
4440
        if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_TW "$CONFIG_GPT_TW" 32}
4441
        global CONFIG_GPT_IRQ
4442
        if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_IRQ "$CONFIG_GPT_IRQ" 8}
4443
        global CONFIG_GPT_SEPIRQ
4444
        if {($CONFIG_GPT_ENABLE == 1)} then {
4445
        set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ&15]} else {set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ|16]}
4446
        global CONFIG_GPT_WDOGEN
4447
        if {($CONFIG_GPT_ENABLE == 1)} then {
4448
        set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN&15]} else {set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN|16]}
4449
        global CONFIG_GPT_WDOG
4450
        if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {validate_hex CONFIG_GPT_WDOG "$CONFIG_GPT_WDOG" FFFF}
4451
        global CONFIG_GRGPIO_ENABLE
4452
        global CONFIG_GRGPIO_WIDTH
4453
        if {($CONFIG_GRGPIO_ENABLE == 1)} then {validate_int CONFIG_GRGPIO_WIDTH "$CONFIG_GRGPIO_WIDTH" 8}
4454
        global CONFIG_GRGPIO_IMASK
4455
        if {($CONFIG_GRGPIO_ENABLE == 1)} then {validate_hex CONFIG_GRGPIO_IMASK "$CONFIG_GRGPIO_IMASK" 0000}
4456
}
4457
 
4458
 
4459
menu_option menu24 24 "VHDL Debugging        "
4460
proc menu24 {w title} {
4461
        set oldFocus [focus]
4462
        catch {destroy $w; unregister_active 24}
4463
        toplevel $w -class Dialog
4464
        wm withdraw $w
4465
        global active_menus
4466
        set active_menus [lsort -integer [linsert $active_menus end 24]]
4467
        message $w.m -width 400 -aspect 300 -text \
4468
                "VHDL Debugging        "  -relief raised
4469
        pack $w.m -pady 10 -side top -padx 10
4470
        wm title $w "VHDL Debugging        "
4471
 
4472
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 24; break"
4473
        set nextscript "catch {focus $oldFocus}; menu25 .menu25 \"$title\""
4474
        frame $w.f
4475
        button $w.f.back -text "Main Menu" \
4476
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24"
4477
        button $w.f.next -text "Next" -underline 0\
4478
                -width 15 -command $nextscript
4479
        $w.f.next configure -state disabled
4480
        bind all  "puts \"no more menus\" "
4481
        button $w.f.prev -text "Prev" -underline 0\
4482
                -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\""
4483
        bind $w  "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\";break"
4484
        pack $w.f.back $w.f.next $w.f.prev -side left -expand on
4485
        pack $w.f -pady 10 -side bottom -anchor w -fill x
4486
        frame $w.topline -relief ridge -borderwidth 2 -height 2
4487
        pack $w.topline -side top -fill x
4488
 
4489
        frame $w.botline -relief ridge -borderwidth 2 -height 2
4490
        pack $w.botline -side bottom -fill x
4491
 
4492
        frame $w.config
4493
        pack $w.config -fill y -expand on
4494
 
4495
        scrollbar $w.config.vscroll -command "$w.config.canvas yview"
4496
        pack $w.config.vscroll -side right -fill y
4497
 
4498
        canvas $w.config.canvas -height 1\
4499
                -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \
4500
                -width [expr [winfo screenwidth .] * 1 / 2]
4501
        frame $w.config.f
4502
        bind $w  "$w.config.canvas yview scroll  1 unit;break;"
4503
        bind $w  "$w.config.canvas yview scroll  -1 unit;break;"
4504
        bind $w  "$w.config.canvas yview scroll  1 page;break;"
4505
        bind $w  "$w.config.canvas yview scroll  -1 page;break;"
4506
        bind $w  "$w.config.canvas yview moveto 0;break;"
4507
        bind $w  "$w.config.canvas yview moveto 1 ;break;"
4508
        pack $w.config.canvas -side right -fill y
4509
 
4510
 
4511
        bool $w.config.f 24 0 "Accelerated UART tracing       " CONFIG_DEBUG_UART
4512
 
4513
 
4514
 
4515
        focus $w
4516
        update_active
4517
        global winx; global winy
4518
        set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30]
4519
        if {[winfo exists $w]} then {wm geometry $w +$winx+$winy}
4520
        update idletasks
4521
        if {[winfo exists $w]} then  {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f
4522
 
4523
        $w.config.canvas configure \
4524
                -width [expr [winfo reqwidth $w.config.f] + 1]\
4525
                -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \
4526
                         [expr [winfo reqheight $w.config.f] + 1]"
4527
 
4528
        set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]]
4529
        set scry [expr [winfo screenh $w] / 2]
4530
        set maxy [expr [winfo screenh $w] * 3 / 4]
4531
        set canvtotal [expr [winfo reqh $w.config.f] + 2]
4532
        if [expr $winy + $canvtotal < $maxy] {
4533
                $w.config.canvas configure -height $canvtotal
4534
        } else {
4535
                $w.config.canvas configure -height [expr $scry - $winy]
4536
                }
4537
        }
4538
        update idletasks
4539
        if {[winfo exists $w]} then {
4540
        wm maxsize $w [winfo width $w] [winfo screenheight $w]
4541
        wm minsize $w [winfo width $w] 100
4542
 
4543
        wm deiconify $w
4544
}
4545
}
4546
 
4547
proc update_menu24 {} {
4548
}
4549
 
4550
 
4551
proc update_define_menu24 {} {
4552
        update_define_mainmenu
4553
        global CONFIG_MODULES
4554
}
4555
 
4556
 
4557
proc update_mainmenu {}  {
4558
}
4559
 
4560
 
4561
set tmpvar_0 "(not set)"
4562
set CONFIG_SYN_INFERRED 0
4563
set CONFIG_SYN_STRATIX 0
4564
set CONFIG_SYN_STRATIXII 0
4565
set CONFIG_SYN_STRATIXIII 0
4566
set CONFIG_SYN_CYCLONEIII 0
4567
set CONFIG_SYN_ALTERA 0
4568
set CONFIG_SYN_AXCEL 0
4569
set CONFIG_SYN_PROASIC 0
4570
set CONFIG_SYN_PROASICPLUS 0
4571
set CONFIG_SYN_PROASIC3 0
4572
set CONFIG_SYN_UT025CRH 0
4573
set CONFIG_SYN_ATC18 0
4574
set CONFIG_SYN_CUSTOM1 0
4575
set CONFIG_SYN_EASIC90 0
4576
set CONFIG_SYN_IHP25 0
4577
set CONFIG_SYN_IHP25RH 0
4578
set CONFIG_SYN_LATTICE 0
4579
set CONFIG_SYN_ECLIPSE 0
4580
set CONFIG_SYN_PEREGRINE 0
4581
set CONFIG_SYN_RH_LIB18T 0
4582
set CONFIG_SYN_RHUMC 0
4583
set CONFIG_SYN_SPARTAN2 0
4584
set CONFIG_SYN_SPARTAN3 0
4585
set CONFIG_SYN_SPARTAN3E 0
4586
set CONFIG_SYN_VIRTEX 0
4587
set CONFIG_SYN_VIRTEXE 0
4588
set CONFIG_SYN_VIRTEX2 0
4589
set CONFIG_SYN_VIRTEX4 0
4590
set CONFIG_SYN_VIRTEX5 0
4591
set CONFIG_SYN_UMC 0
4592
set CONFIG_SYN_TSMC90 0
4593
set tmpvar_1 "(not set)"
4594
set CONFIG_MEM_INFERRED 0
4595
set CONFIG_MEM_UMC 0
4596
set CONFIG_MEM_RHUMC 0
4597
set CONFIG_MEM_ARTISAN 0
4598
set CONFIG_MEM_CUSTOM1 0
4599
set CONFIG_MEM_VIRAGE 0
4600
set CONFIG_MEM_VIRAGE90 0
4601
set CONFIG_SYN_INFER_RAM 0
4602
set CONFIG_SYN_INFER_PADS 0
4603
set CONFIG_SYN_NO_ASYNC 0
4604
set CONFIG_SYN_SCAN 0
4605
set tmpvar_2 "(not set)"
4606
set CONFIG_CLK_INFERRED 0
4607
set CONFIG_CLK_HCLKBUF 0
4608
set CONFIG_CLK_ALTDLL 0
4609
set CONFIG_CLK_LATDLL 0
4610
set CONFIG_CLK_PRO3PLL 0
4611
set CONFIG_CLK_LIB18T 0
4612
set CONFIG_CLK_RHUMC 0
4613
set CONFIG_CLK_CLKDLL 0
4614
set CONFIG_CLK_DCM 0
4615
set CONFIG_CLK_MUL 2
4616
set CONFIG_CLK_DIV 2
4617
set CONFIG_OCLK_DIV 2
4618
set CONFIG_PCI_CLKDLL 0
4619
set CONFIG_CLK_NOFB 0
4620
set CONFIG_PCI_SYSCLK 0
4621
set CONFIG_LEON3 0
4622
set CONFIG_PROC_NUM 1
4623
set CONFIG_IU_NWINDOWS 8
4624
set CONFIG_IU_V8MULDIV 0
4625
set tmpvar_3 "(not set)"
4626
set CONFIG_IU_MUL_LATENCY_4 0
4627
set CONFIG_IU_MUL_LATENCY_5 0
4628
set CONFIG_IU_MUL_MAC 0
4629
set CONFIG_IU_SVT 0
4630
set CONFIG_IU_LDELAY 1
4631
set CONFIG_IU_WATCHPOINTS 0
4632
set CONFIG_PWD 0
4633
set CONFIG_IU_RSTADDR 00000
4634
set CONFIG_FPU_ENABLE 0
4635
set tmpvar_4 "(not set)"
4636
set CONFIG_FPU_GRFPU 0
4637
set CONFIG_FPU_GRFPULITE 0
4638
set CONFIG_FPU_MEIKO 0
4639
set tmpvar_5 "(not set)"
4640
set CONFIG_FPU_GRFPU_INFMUL 0
4641
set CONFIG_FPU_GRFPU_DWMUL 0
4642
set tmpvar_6 "(not set)"
4643
set CONFIG_FPU_GRFPC0 0
4644
set CONFIG_FPU_GRFPC1 0
4645
set CONFIG_FPU_GRFPC2 0
4646
set CONFIG_FPU_NETLIST 0
4647
set CONFIG_ICACHE_ENABLE 0
4648
set tmpvar_7 "(not set)"
4649
set CONFIG_ICACHE_ASSO1 0
4650
set CONFIG_ICACHE_ASSO2 0
4651
set CONFIG_ICACHE_ASSO3 0
4652
set CONFIG_ICACHE_ASSO4 0
4653
set tmpvar_8 "(not set)"
4654
set CONFIG_ICACHE_SZ1 0
4655
set CONFIG_ICACHE_SZ2 0
4656
set CONFIG_ICACHE_SZ4 0
4657
set CONFIG_ICACHE_SZ8 0
4658
set CONFIG_ICACHE_SZ16 0
4659
set CONFIG_ICACHE_SZ32 0
4660
set CONFIG_ICACHE_SZ64 0
4661
set CONFIG_ICACHE_SZ128 0
4662
set CONFIG_ICACHE_SZ256 0
4663
set tmpvar_9 "(not set)"
4664
set CONFIG_ICACHE_LZ16 0
4665
set CONFIG_ICACHE_LZ32 0
4666
set tmpvar_10 "(not set)"
4667
set CONFIG_ICACHE_ALGORND 0
4668
set CONFIG_ICACHE_ALGOLRR 0
4669
set CONFIG_ICACHE_ALGOLRU 0
4670
set CONFIG_ICACHE_LOCK 0
4671
set CONFIG_ICACHE_LRAM 0
4672
set tmpvar_11 "(not set)"
4673
set CONFIG_ICACHE_LRAM_SZ1 0
4674
set CONFIG_ICACHE_LRAM_SZ2 0
4675
set CONFIG_ICACHE_LRAM_SZ4 0
4676
set CONFIG_ICACHE_LRAM_SZ8 0
4677
set CONFIG_ICACHE_LRAM_SZ16 0
4678
set CONFIG_ICACHE_LRAM_SZ32 0
4679
set CONFIG_ICACHE_LRAM_SZ64 0
4680
set CONFIG_ICACHE_LRAM_SZ128 0
4681
set CONFIG_ICACHE_LRAM_SZ256 0
4682
set CONFIG_ICACHE_LRSTART 8e
4683
set CONFIG_DCACHE_ENABLE 0
4684
set tmpvar_12 "(not set)"
4685
set CONFIG_DCACHE_ASSO1 0
4686
set CONFIG_DCACHE_ASSO2 0
4687
set CONFIG_DCACHE_ASSO3 0
4688
set CONFIG_DCACHE_ASSO4 0
4689
set tmpvar_13 "(not set)"
4690
set CONFIG_DCACHE_SZ1 0
4691
set CONFIG_DCACHE_SZ2 0
4692
set CONFIG_DCACHE_SZ4 0
4693
set CONFIG_DCACHE_SZ8 0
4694
set CONFIG_DCACHE_SZ16 0
4695
set CONFIG_DCACHE_SZ32 0
4696
set CONFIG_DCACHE_SZ64 0
4697
set CONFIG_DCACHE_SZ128 0
4698
set CONFIG_DCACHE_SZ256 0
4699
set tmpvar_14 "(not set)"
4700
set CONFIG_DCACHE_LZ16 0
4701
set CONFIG_DCACHE_LZ32 0
4702
set tmpvar_15 "(not set)"
4703
set CONFIG_DCACHE_ALGORND 0
4704
set CONFIG_DCACHE_ALGOLRR 0
4705
set CONFIG_DCACHE_ALGOLRU 0
4706
set CONFIG_DCACHE_LOCK 0
4707
set CONFIG_DCACHE_SNOOP 0
4708
set CONFIG_DCACHE_SNOOP_FAST 0
4709
set CONFIG_DCACHE_SNOOP_SEPTAG 0
4710
set CONFIG_CACHE_FIXED 0
4711
set CONFIG_DCACHE_LRAM 0
4712
set tmpvar_16 "(not set)"
4713
set CONFIG_DCACHE_LRAM_SZ1 0
4714
set CONFIG_DCACHE_LRAM_SZ2 0
4715
set CONFIG_DCACHE_LRAM_SZ4 0
4716
set CONFIG_DCACHE_LRAM_SZ8 0
4717
set CONFIG_DCACHE_LRAM_SZ16 0
4718
set CONFIG_DCACHE_LRAM_SZ32 0
4719
set CONFIG_DCACHE_LRAM_SZ64 0
4720
set CONFIG_DCACHE_LRAM_SZ128 0
4721
set CONFIG_DCACHE_LRAM_SZ256 0
4722
set CONFIG_DCACHE_LRSTART 8f
4723
set CONFIG_MMU_ENABLE 0
4724
set tmpvar_17 "(not set)"
4725
set CONFIG_MMU_COMBINED 0
4726
set CONFIG_MMU_SPLIT 0
4727
set tmpvar_18 "(not set)"
4728
set CONFIG_MMU_REPARRAY 0
4729
set CONFIG_MMU_REPINCREMENT 0
4730
set tmpvar_19 "(not set)"
4731
set CONFIG_MMU_I2 0
4732
set CONFIG_MMU_I4 0
4733
set CONFIG_MMU_I8 0
4734
set CONFIG_MMU_I16 0
4735
set CONFIG_MMU_I32 0
4736
set tmpvar_20 "(not set)"
4737
set CONFIG_MMU_D2 0
4738
set CONFIG_MMU_D4 0
4739
set CONFIG_MMU_D8 0
4740
set CONFIG_MMU_D16 0
4741
set CONFIG_MMU_D32 0
4742
set CONFIG_MMU_FASTWB 0
4743
set CONFIG_DSU_ENABLE 0
4744
set CONFIG_DSU_ITRACE 0
4745
set tmpvar_21 "(not set)"
4746
set CONFIG_DSU_ITRACESZ1 0
4747
set CONFIG_DSU_ITRACESZ2 0
4748
set CONFIG_DSU_ITRACESZ4 0
4749
set CONFIG_DSU_ITRACESZ8 0
4750
set CONFIG_DSU_ITRACESZ16 0
4751
set CONFIG_DSU_ATRACE 0
4752
set tmpvar_22 "(not set)"
4753
set CONFIG_DSU_ATRACESZ1 0
4754
set CONFIG_DSU_ATRACESZ2 0
4755
set CONFIG_DSU_ATRACESZ4 0
4756
set CONFIG_DSU_ATRACESZ8 0
4757
set CONFIG_DSU_ATRACESZ16 0
4758
set CONFIG_IU_DISAS 0
4759
set CONFIG_IU_DISAS_NET 0
4760
set CONFIG_DEBUG_PC32 0
4761
set CONFIG_AHB_DEFMST 0
4762
set CONFIG_AHB_RROBIN 0
4763
set CONFIG_AHB_SPLIT 0
4764
set CONFIG_AHB_IOADDR FFF
4765
set CONFIG_APB_HADDR 800
4766
set CONFIG_AHB_MON 0
4767
set CONFIG_AHB_MONERR 0
4768
set CONFIG_AHB_MONWAR 0
4769
set CONFIG_DSU_UART 0
4770
set CONFIG_DSU_JTAG 0
4771
set CONFIG_DSU_ETH 0
4772
set tmpvar_24 "(not set)"
4773
set CONFIG_DSU_ETHSZ1 0
4774
set CONFIG_DSU_ETHSZ2 0
4775
set CONFIG_DSU_ETHSZ4 0
4776
set CONFIG_DSU_ETHSZ8 0
4777
set CONFIG_DSU_ETHSZ16 0
4778
set CONFIG_DSU_IPMSB C0A8
4779
set CONFIG_DSU_IPLSB 0033
4780
set CONFIG_DSU_ETHMSB 00007A
4781
set CONFIG_DSU_ETHLSB CC0001
4782
set CONFIG_DSU_ETH_PROG 0
4783
set CONFIG_SRCTRL 0
4784
set CONFIG_SRCTRL_8BIT 0
4785
set CONFIG_SRCTRL_PROMWS 3
4786
set CONFIG_SRCTRL_RAMWS 0
4787
set CONFIG_SRCTRL_IOWS 0
4788
set CONFIG_SRCTRL_RMW 0
4789
set tmpvar_25 "(not set)"
4790
set CONFIG_SRCTRL_SRBANKS1 0
4791
set CONFIG_SRCTRL_SRBANKS2 0
4792
set CONFIG_SRCTRL_SRBANKS3 0
4793
set CONFIG_SRCTRL_SRBANKS4 0
4794
set CONFIG_SRCTRL_SRBANKS5 0
4795
set tmpvar_26 "(not set)"
4796
set CONFIG_SRCTRL_BANKSZ0 0
4797
set CONFIG_SRCTRL_BANKSZ1 0
4798
set CONFIG_SRCTRL_BANKSZ2 0
4799
set CONFIG_SRCTRL_BANKSZ3 0
4800
set CONFIG_SRCTRL_BANKSZ4 0
4801
set CONFIG_SRCTRL_BANKSZ5 0
4802
set CONFIG_SRCTRL_BANKSZ6 0
4803
set CONFIG_SRCTRL_BANKSZ7 0
4804
set CONFIG_SRCTRL_BANKSZ8 0
4805
set CONFIG_SRCTRL_BANKSZ9 0
4806
set CONFIG_SRCTRL_BANKSZ10 0
4807
set CONFIG_SRCTRL_BANKSZ11 0
4808
set CONFIG_SRCTRL_BANKSZ12 0
4809
set CONFIG_SRCTRL_BANKSZ13 0
4810
set CONFIG_SRCTRL_ROMASEL 19
4811
set CONFIG_MCTRL_LEON2 0
4812
set CONFIG_MCTRL_8BIT 0
4813
set CONFIG_MCTRL_16BIT 0
4814
set CONFIG_MCTRL_5CS 0
4815
set CONFIG_MCTRL_SDRAM 0
4816
set CONFIG_MCTRL_SDRAM_SEPBUS 0
4817
set CONFIG_MCTRL_SDRAM_BUS64 0
4818
set CONFIG_MCTRL_SDRAM_INVCLK 0
4819
set CONFIG_MCTRL_PAGE 0
4820
set CONFIG_MCTRL_PROGPAGE 0
4821
set CONFIG_SDCTRL 0
4822
set CONFIG_SDCTRL_BUS64 0
4823
set CONFIG_SDCTRL_INVCLK 0
4824
set CONFIG_SDCTRL_PAGE 0
4825
set CONFIG_SDCTRL_PROGPAGE 0
4826
set CONFIG_AHBROM_ENABLE 0
4827
set CONFIG_AHBROM_START 000
4828
set CONFIG_AHBROM_PIPE 0
4829
set CONFIG_AHBRAM_ENABLE 0
4830
set tmpvar_27 "(not set)"
4831
set CONFIG_AHBRAM_SZ1 0
4832
set CONFIG_AHBRAM_SZ2 0
4833
set CONFIG_AHBRAM_SZ4 0
4834
set CONFIG_AHBRAM_SZ8 0
4835
set CONFIG_AHBRAM_SZ16 0
4836
set CONFIG_AHBRAM_SZ32 0
4837
set CONFIG_AHBRAM_SZ64 0
4838
set CONFIG_AHBRAM_START A00
4839
set CONFIG_GRETH_ENABLE 0
4840
set CONFIG_GRETH_GIGA 0
4841
set tmpvar_28 "(not set)"
4842
set CONFIG_GRETH_FIFO4 0
4843
set CONFIG_GRETH_FIFO8 0
4844
set CONFIG_GRETH_FIFO16 0
4845
set CONFIG_GRETH_FIFO32 0
4846
set CONFIG_GRETH_FIFO64 0
4847
set CONFIG_CAN_ENABLE 0
4848
set CONFIG_CANIO C00
4849
set CONFIG_CANIRQ 13
4850
set CONFIG_CANLOOP 0
4851
set CONFIG_CAN_SYNCRST 0
4852
set CONFIG_CAN_FT 0
4853
set CONFIG_PCI_SIMPLE_TARGET 0
4854
set CONFIG_PCI_MASTER_TARGET 0
4855
set CONFIG_PCI_MASTER_TARGET_DMA 0
4856
set CONFIG_PCI_VENDORID 16E3
4857
set CONFIG_PCI_DEVICEID 0210
4858
set tmpvar_29 "(not set)"
4859
set CONFIG_PCI_FIFO0 0
4860
set CONFIG_PCI_FIFO8 0
4861
set CONFIG_PCI_FIFO16 0
4862
set CONFIG_PCI_FIFO32 0
4863
set CONFIG_PCI_FIFO64 0
4864
set CONFIG_PCI_FIFO128 0
4865
set CONFIG_PCI_HADDR E00
4866
set CONFIG_PCI_ARBITER 0
4867
set CONFIG_PCI_ARBITER_APB 0
4868
set CONFIG_PCI_ARBITER_NREQ 4
4869
set CONFIG_PCI_TRACE 0
4870
set tmpvar_30 "(not set)"
4871
set CONFIG_PCI_TRACE256 0
4872
set CONFIG_PCI_TRACE512 0
4873
set CONFIG_PCI_TRACE1024 0
4874
set CONFIG_PCI_TRACE2048 0
4875
set CONFIG_PCI_TRACE4096 0
4876
set CONFIG_SPW_ENABLE 0
4877
set CONFIG_SPW_NUM 1
4878
set tmpvar_31 "(not set)"
4879
set CONFIG_SPW_AHBFIFO4 0
4880
set CONFIG_SPW_AHBFIFO8 0
4881
set CONFIG_SPW_AHBFIFO16 0
4882
set CONFIG_SPW_AHBFIFO32 0
4883
set tmpvar_32 "(not set)"
4884
set CONFIG_SPW_RXFIFO16 0
4885
set CONFIG_SPW_RXFIFO32 0
4886
set CONFIG_SPW_RXFIFO64 0
4887
set CONFIG_SPW_RMAP 0
4888
set tmpvar_33 "(not set)"
4889
set CONFIG_SPW_RMAPBUF2 0
4890
set CONFIG_SPW_RMAPBUF4 0
4891
set CONFIG_SPW_RMAPBUF6 0
4892
set CONFIG_SPW_RMAPBUF8 0
4893
set CONFIG_SPW_RMAPCRC 0
4894
set CONFIG_SPW_FT 0
4895
set CONFIG_SPW_NETLIST 0
4896
set tmpvar_34 "(not set)"
4897
set CONFIG_SPW_GRSPW1 0
4898
set CONFIG_SPW_GRSPW2 0
4899
set CONFIG_UART1_ENABLE 0
4900
set tmpvar_35 "(not set)"
4901
set CONFIG_UA1_FIFO1 0
4902
set CONFIG_UA1_FIFO2 0
4903
set CONFIG_UA1_FIFO4 0
4904
set CONFIG_UA1_FIFO8 0
4905
set CONFIG_UA1_FIFO16 0
4906
set CONFIG_UA1_FIFO32 0
4907
set CONFIG_UART2_ENABLE 0
4908
set tmpvar_36 "(not set)"
4909
set CONFIG_UA2_FIFO1 0
4910
set CONFIG_UA2_FIFO2 0
4911
set CONFIG_UA2_FIFO4 0
4912
set CONFIG_UA2_FIFO8 0
4913
set CONFIG_UA2_FIFO16 0
4914
set CONFIG_UA2_FIFO32 0
4915
set CONFIG_IRQ3_ENABLE 0
4916
set CONFIG_GPT_ENABLE 0
4917
set CONFIG_GPT_NTIM 2
4918
set CONFIG_GPT_SW 8
4919
set CONFIG_GPT_TW 32
4920
set CONFIG_GPT_IRQ 8
4921
set CONFIG_GPT_SEPIRQ 0
4922
set CONFIG_GPT_WDOGEN 0
4923
set CONFIG_GPT_WDOG FFFF
4924
set CONFIG_GRGPIO_ENABLE 0
4925
set CONFIG_GRGPIO_WIDTH 8
4926
set CONFIG_GRGPIO_IMASK 0000
4927
set CONFIG_DEBUG_UART 0
4928
set CONFIG_SYN_ARTISAN 4
4929
set CONFIG_PCI_ENABLE 4
4930
set CONFIG_HAS_SHARED_GRFPU 4
4931
set CONFIG_FPU_GRFPU_SH 4
4932
set CONFIG_LEON3FT_PRESENT 4
4933
set CONFIG_LEON3FT_EN 4
4934
set CONFIG_IUFT_NONE 4
4935
set CONFIG_IUFT_PAR 4
4936
set CONFIG_IUFT_DMR 4
4937
set CONFIG_IUFT_BCH 4
4938
set CONFIG_IUFT_TMR 4
4939
set CONFIG_FPUFT_EN 4
4940
set CONFIG_RF_ERRINJ 4
4941
set CONFIG_CACHE_FT_EN 4
4942
set CONFIG_CACHE_ERRINJ 4
4943
set CONFIG_LEON3_NETLIST 4
4944
set CONFIG_PCI_ACTEL 4
4945
set CONFIG_MODULES 4
4946
proc writeconfig {file1 file2} {
4947
        set cfg [open $file1 w]
4948
        set autocfg [open $file2 w]
4949
        set notmod 1
4950
        set notset 0
4951
        puts $cfg "#"
4952
        puts $cfg "# Automatically generated make config: don't edit"
4953
        puts $cfg "#"
4954
        puts $autocfg "/*"
4955
        puts $autocfg " * Automatically generated C config: don't edit"
4956
        puts $autocfg " */"
4957
        puts $autocfg "#define AUTOCONF_INCLUDED"
4958
        write_comment $cfg $autocfg "Synthesis      "
4959
        global tmpvar_0
4960
 
4961
        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 }
4962
        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 }
4963
        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 }
4964
        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 }
4965
        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 }
4966
        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 }
4967
        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 }
4968
        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 }
4969
        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 }
4970
        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 }
4971
        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 }
4972
        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 }
4973
        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 }
4974
        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 }
4975
        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 }
4976
        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 }
4977
        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 }
4978
        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 }
4979
        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 }
4980
        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 }
4981
        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 }
4982
        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 }
4983
        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 }
4984
        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 }
4985
        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 }
4986
        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 }
4987
        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 }
4988
        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 }
4989
        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 }
4990
        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 }
4991
        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 }
4992
        global tmpvar_1
4993
        global CONFIG_SYN_INFERRED
4994
        global CONFIG_SYN_CUSTOM1
4995
        global CONFIG_SYN_ATC18
4996
        global CONFIG_SYN_TSMC90
4997
        global CONFIG_SYN_UMC
4998
        global CONFIG_SYN_RHUMC
4999
        global CONFIG_SYN_ARTISAN
5000
        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 {
5001
        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 }
5002
        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 }
5003
        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 }
5004
        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 }
5005
        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 }
5006
        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 }
5007
        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 }}
5008
        global CONFIG_SYN_INFER_RAM
5009
        if {($CONFIG_SYN_INFERRED != 1)} then {write_tristate $cfg $autocfg CONFIG_SYN_INFER_RAM $CONFIG_SYN_INFER_RAM [list $notmod] 2 }
5010
        global CONFIG_SYN_INFER_PADS
5011
        if {($CONFIG_SYN_INFERRED != 1)} then {write_tristate $cfg $autocfg CONFIG_SYN_INFER_PADS $CONFIG_SYN_INFER_PADS [list $notmod] 2 }
5012
        global CONFIG_SYN_NO_ASYNC
5013
        write_tristate $cfg $autocfg CONFIG_SYN_NO_ASYNC $CONFIG_SYN_NO_ASYNC [list $notmod] 2
5014
        global CONFIG_SYN_SCAN
5015
        write_tristate $cfg $autocfg CONFIG_SYN_SCAN $CONFIG_SYN_SCAN [list $notmod] 2
5016
        write_comment $cfg $autocfg "Clock generation"
5017
        global tmpvar_2
5018
 
5019
        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 }
5020
        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 }
5021
        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 }
5022
        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 }
5023
        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 }
5024
        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 }
5025
        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 }
5026
        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 }
5027
        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 }
5028
        global CONFIG_CLK_MUL
5029
        global CONFIG_CLK_DCM
5030
        global CONFIG_CLK_ALTDLL
5031
        global CONFIG_CLK_LATDLL
5032
        global CONFIG_CLK_PRO3PLL
5033
        global CONFIG_CLK_CLKDLL
5034
        global CONFIG_CLK_LIB18T
5035
        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 }
5036
        global CONFIG_CLK_DIV
5037
        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 }
5038
        global CONFIG_OCLK_DIV
5039
        if {($CONFIG_CLK_PRO3PLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod }
5040
        global CONFIG_PCI_CLKDLL
5041
        if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_CLKDLL $CONFIG_PCI_CLKDLL [list $notmod] 2 }
5042
        global CONFIG_CLK_NOFB
5043
        if {($CONFIG_CLK_DCM == 1)} then {write_tristate $cfg $autocfg CONFIG_CLK_NOFB $CONFIG_CLK_NOFB [list $notmod] 2 }
5044
        global CONFIG_PCI_SYSCLK
5045
        global CONFIG_PCI_ENABLE
5046
        if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 }
5047
        global CONFIG_LEON3
5048
        write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2
5049
        global CONFIG_PROC_NUM
5050
        if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod }
5051
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor            "}
5052
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit                                           "}
5053
        global CONFIG_IU_NWINDOWS
5054
        if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod }
5055
        global CONFIG_IU_V8MULDIV
5056
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 }
5057
        global tmpvar_3
5058
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {
5059
        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 }
5060
        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 }}
5061
        global CONFIG_IU_MUL_MAC
5062
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 }
5063
        global CONFIG_IU_SVT
5064
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 }
5065
        global CONFIG_IU_LDELAY
5066
        if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod }
5067
        global CONFIG_IU_WATCHPOINTS
5068
        if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod }
5069
        global CONFIG_PWD
5070
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 }
5071
        global CONFIG_IU_RSTADDR
5072
        if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod }
5073
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"}
5074
        global CONFIG_FPU_ENABLE
5075
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 }
5076
        global tmpvar_4
5077
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {
5078
        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 }
5079
        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 }
5080
        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 }}
5081
        global tmpvar_5
5082
        global CONFIG_FPU_GRFPU
5083
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {
5084
        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 }
5085
        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 }}
5086
        global tmpvar_6
5087
        global CONFIG_FPU_GRFPULITE
5088
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {
5089
        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 }
5090
        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 }
5091
        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 }}
5092
        global CONFIG_FPU_NETLIST
5093
        if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 }
5094
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"}
5095
        global CONFIG_ICACHE_ENABLE
5096
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 }
5097
        global tmpvar_7
5098
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {
5099
        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 }
5100
        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 }
5101
        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 }
5102
        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 }}
5103
        global tmpvar_8
5104
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {
5105
        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 }
5106
        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 }
5107
        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 }
5108
        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 }
5109
        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 }
5110
        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 }
5111
        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 }
5112
        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 }
5113
        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 }}
5114
        global tmpvar_9
5115
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {
5116
        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 }
5117
        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 }}
5118
        global tmpvar_10
5119
        global CONFIG_ICACHE_ASSO1
5120
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {
5121
        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 }
5122
        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 }
5123
        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 }}
5124
        global CONFIG_ICACHE_LOCK
5125
        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 }
5126
        global CONFIG_ICACHE_LRAM
5127
        global CONFIG_MMU_ENABLE
5128
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 }
5129
        global tmpvar_11
5130
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {
5131
        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 }
5132
        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 }
5133
        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 }
5134
        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 }
5135
        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 }
5136
        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 }
5137
        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 }
5138
        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 }
5139
        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 }}
5140
        global CONFIG_ICACHE_LRSTART
5141
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod }
5142
        global CONFIG_DCACHE_ENABLE
5143
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 }
5144
        global tmpvar_12
5145
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
5146
        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 }
5147
        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 }
5148
        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 }
5149
        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 }}
5150
        global tmpvar_13
5151
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
5152
        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 }
5153
        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 }
5154
        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 }
5155
        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 }
5156
        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 }
5157
        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 }
5158
        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 }
5159
        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 }
5160
        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 }}
5161
        global tmpvar_14
5162
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {
5163
        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 }
5164
        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 }}
5165
        global tmpvar_15
5166
        global CONFIG_DCACHE_ASSO1
5167
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {
5168
        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 }
5169
        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 }
5170
        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 }}
5171
        global CONFIG_DCACHE_LOCK
5172
        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 }
5173
        global CONFIG_DCACHE_SNOOP
5174
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 }
5175
        global CONFIG_DCACHE_SNOOP_FAST
5176
        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 }
5177
        global CONFIG_DCACHE_SNOOP_SEPTAG
5178
        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 }
5179
        global CONFIG_CACHE_FIXED
5180
        if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod }
5181
        global CONFIG_DCACHE_LRAM
5182
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 }
5183
        global tmpvar_16
5184
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {
5185
        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 }
5186
        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 }
5187
        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 }
5188
        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 }
5189
        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 }
5190
        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 }
5191
        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 }
5192
        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 }
5193
        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 }}
5194
        global CONFIG_DCACHE_LRSTART
5195
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod }
5196
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"}
5197
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 }
5198
        global tmpvar_17
5199
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {
5200
        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 }
5201
        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 }}
5202
        global tmpvar_18
5203
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {
5204
        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 }
5205
        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 }}
5206
        global tmpvar_19
5207
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {
5208
        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 }
5209
        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 }
5210
        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 }
5211
        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 }
5212
        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 }}
5213
        global tmpvar_20
5214
        global CONFIG_MMU_SPLIT
5215
        if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {
5216
        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 }
5217
        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 }
5218
        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 }
5219
        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 }
5220
        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 }}
5221
        global CONFIG_MMU_FASTWB
5222
        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 }
5223
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit        "}
5224
        global CONFIG_DSU_ENABLE
5225
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 }
5226
        global CONFIG_DSU_ITRACE
5227
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 }
5228
        global tmpvar_21
5229
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {
5230
        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 }
5231
        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 }
5232
        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 }
5233
        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 }
5234
        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 }}
5235
        global CONFIG_DSU_ATRACE
5236
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 }
5237
        global tmpvar_22
5238
        if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {
5239
        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 }
5240
        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 }
5241
        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 }
5242
        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 }
5243
        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 }}
5244
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance  "}
5245
        if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "VHDL debug settings       "}
5246
        global CONFIG_IU_DISAS
5247
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS $CONFIG_IU_DISAS [list $notmod] 2 }
5248
        global CONFIG_IU_DISAS_NET
5249
        if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS_NET $CONFIG_IU_DISAS_NET [list $notmod] 2 }
5250
        global CONFIG_DEBUG_PC32
5251
        if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DEBUG_PC32 $CONFIG_DEBUG_PC32 [list $notmod] 2 }
5252
        write_comment $cfg $autocfg "AMBA configuration"
5253
        global CONFIG_AHB_DEFMST
5254
        write_int $cfg $autocfg CONFIG_AHB_DEFMST $CONFIG_AHB_DEFMST $notmod
5255
        global CONFIG_AHB_RROBIN
5256
        write_tristate $cfg $autocfg CONFIG_AHB_RROBIN $CONFIG_AHB_RROBIN [list $notmod] 2
5257
        global CONFIG_AHB_SPLIT
5258
        write_tristate $cfg $autocfg CONFIG_AHB_SPLIT $CONFIG_AHB_SPLIT [list $notmod] 2
5259
        global CONFIG_AHB_IOADDR
5260
        write_hex $cfg $autocfg CONFIG_AHB_IOADDR $CONFIG_AHB_IOADDR $notmod
5261
        global CONFIG_APB_HADDR
5262
        write_hex $cfg $autocfg CONFIG_APB_HADDR $CONFIG_APB_HADDR $notmod
5263
        global CONFIG_AHB_MON
5264
        write_tristate $cfg $autocfg CONFIG_AHB_MON $CONFIG_AHB_MON [list $notmod] 2
5265
        global CONFIG_AHB_MONERR
5266
        if {($CONFIG_AHB_MON == 1)} then {write_tristate $cfg $autocfg CONFIG_AHB_MONERR $CONFIG_AHB_MONERR [list $notmod] 2 }
5267
        global CONFIG_AHB_MONWAR
5268
        if {($CONFIG_AHB_MON == 1)} then {write_tristate $cfg $autocfg CONFIG_AHB_MONWAR $CONFIG_AHB_MONWAR [list $notmod] 2 }
5269
        write_comment $cfg $autocfg "Debug Link           "
5270
        global CONFIG_DSU_UART
5271
        write_tristate $cfg $autocfg CONFIG_DSU_UART $CONFIG_DSU_UART [list $notmod] 2
5272
        global CONFIG_DSU_JTAG
5273
        write_tristate $cfg $autocfg CONFIG_DSU_JTAG $CONFIG_DSU_JTAG [list $notmod] 2
5274
        global CONFIG_DSU_ETH
5275
        global CONFIG_GRETH_ENABLE
5276
        if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 }
5277
        global tmpvar_24
5278
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {
5279
        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 }
5280
        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 }
5281
        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 }
5282
        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 }
5283
        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 }}
5284
        global CONFIG_DSU_IPMSB
5285
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod }
5286
        global CONFIG_DSU_IPLSB
5287
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPLSB $CONFIG_DSU_IPLSB $notmod }
5288
        global CONFIG_DSU_ETHMSB
5289
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_ETHMSB $CONFIG_DSU_ETHMSB $notmod }
5290
        global CONFIG_DSU_ETHLSB
5291
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_ETHLSB $CONFIG_DSU_ETHLSB $notmod }
5292
        global CONFIG_DSU_ETH_PROG
5293
        global CONFIG_GRETH_GIGA
5294
        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 }
5295
        write_comment $cfg $autocfg "Peripherals             "
5296
        write_comment $cfg $autocfg "Memory controllers             "
5297
        write_comment $cfg $autocfg "8/32-bit PROM/SRAM controller "
5298
        global CONFIG_SRCTRL
5299
        write_tristate $cfg $autocfg CONFIG_SRCTRL $CONFIG_SRCTRL [list $notmod] 2
5300
        global CONFIG_SRCTRL_8BIT
5301
        if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_8BIT $CONFIG_SRCTRL_8BIT [list $notmod] 2 }
5302
        global CONFIG_SRCTRL_PROMWS
5303
        if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_PROMWS $CONFIG_SRCTRL_PROMWS $notmod }
5304
        global CONFIG_SRCTRL_RAMWS
5305
        if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_RAMWS $CONFIG_SRCTRL_RAMWS $notmod }
5306
        global CONFIG_SRCTRL_IOWS
5307
        if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod }
5308
        global CONFIG_SRCTRL_RMW
5309
        if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 }
5310
        global tmpvar_25
5311
        if {($CONFIG_SRCTRL == 1)} then {
5312
        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 }
5313
        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 }
5314
        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 }
5315
        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 }
5316
        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 }}
5317
        global tmpvar_26
5318
        if {($CONFIG_SRCTRL == 1)} then {
5319
        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 }
5320
        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 }
5321
        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 }
5322
        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 }
5323
        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 }
5324
        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 }
5325
        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 }
5326
        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 }
5327
        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 }
5328
        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 }
5329
        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 }
5330
        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 }
5331
        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 }
5332
        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 }}
5333
        global CONFIG_SRCTRL_ROMASEL
5334
        if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod }
5335
        write_comment $cfg $autocfg "Leon2 memory controller        "
5336
        global CONFIG_MCTRL_LEON2
5337
        write_tristate $cfg $autocfg CONFIG_MCTRL_LEON2 $CONFIG_MCTRL_LEON2 [list $notmod] 2
5338
        global CONFIG_MCTRL_8BIT
5339
        if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_8BIT $CONFIG_MCTRL_8BIT [list $notmod] 2 }
5340
        global CONFIG_MCTRL_16BIT
5341
        if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_16BIT $CONFIG_MCTRL_16BIT [list $notmod] 2 }
5342
        global CONFIG_MCTRL_5CS
5343
        if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_5CS $CONFIG_MCTRL_5CS [list $notmod] 2 }
5344
        global CONFIG_MCTRL_SDRAM
5345
        if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_SDRAM $CONFIG_MCTRL_SDRAM [list $notmod] 2 }
5346
        global CONFIG_MCTRL_SDRAM_SEPBUS
5347
        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 }
5348
        global CONFIG_MCTRL_SDRAM_BUS64
5349
        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 }
5350
        global CONFIG_MCTRL_SDRAM_INVCLK
5351
        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 }
5352
        global CONFIG_MCTRL_PAGE
5353
        if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_PAGE $CONFIG_MCTRL_PAGE [list $notmod] 2 }
5354
        global CONFIG_MCTRL_PROGPAGE
5355
        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 }
5356
        write_comment $cfg $autocfg "PC133 SDRAM controller             "
5357
        global CONFIG_SDCTRL
5358
        write_tristate $cfg $autocfg CONFIG_SDCTRL $CONFIG_SDCTRL [list $notmod] 2
5359
        global CONFIG_SDCTRL_BUS64
5360
        if {($CONFIG_SDCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SDCTRL_BUS64 $CONFIG_SDCTRL_BUS64 [list $notmod] 2 }
5361
        global CONFIG_SDCTRL_INVCLK
5362
        if {($CONFIG_SDCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SDCTRL_INVCLK $CONFIG_SDCTRL_INVCLK [list $notmod] 2 }
5363
        global CONFIG_SDCTRL_PAGE
5364
        if {($CONFIG_SDCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SDCTRL_PAGE $CONFIG_SDCTRL_PAGE [list $notmod] 2 }
5365
        global CONFIG_SDCTRL_PROGPAGE
5366
        if {($CONFIG_SDCTRL == 1) && ($CONFIG_SDCTRL_PAGE == 1)} then {write_tristate $cfg $autocfg CONFIG_SDCTRL_PROGPAGE $CONFIG_SDCTRL_PROGPAGE [list $notmod] 2 }
5367
        write_comment $cfg $autocfg "On-chip RAM/ROM                 "
5368
        global CONFIG_AHBROM_ENABLE
5369
        write_tristate $cfg $autocfg CONFIG_AHBROM_ENABLE $CONFIG_AHBROM_ENABLE [list $notmod] 2
5370
        global CONFIG_AHBROM_START
5371
        if {($CONFIG_AHBROM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBROM_START $CONFIG_AHBROM_START $notmod }
5372
        global CONFIG_AHBROM_PIPE
5373
        if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 }
5374
        global CONFIG_AHBRAM_ENABLE
5375
        write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2
5376
        global tmpvar_27
5377
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {
5378
        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 }
5379
        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 }
5380
        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 }
5381
        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 }
5382
        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 }
5383
        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 }
5384
        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 }}
5385
        global CONFIG_AHBRAM_START
5386
        if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod }
5387
        write_comment $cfg $autocfg "Ethernet             "
5388
        write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2
5389
        if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 }
5390
        global tmpvar_28
5391
        if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then {
5392
        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 }
5393
        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 }
5394
        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 }
5395
        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 }
5396
        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 }}
5397
        write_comment $cfg $autocfg "CAN                     "
5398
        global CONFIG_CAN_ENABLE
5399
        write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2
5400
        global CONFIG_CANIO
5401
        if {($CONFIG_CAN_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CANIO $CONFIG_CANIO $notmod }
5402
        global CONFIG_CANIRQ
5403
        if {($CONFIG_CAN_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_CANIRQ $CONFIG_CANIRQ $notmod }
5404
        global CONFIG_CANLOOP
5405
        if {($CONFIG_CAN_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_CANLOOP $CONFIG_CANLOOP [list $notmod] 2 }
5406
        global CONFIG_CAN_SYNCRST
5407
        if {($CONFIG_CAN_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_CAN_SYNCRST $CONFIG_CAN_SYNCRST [list $notmod] 2 }
5408
        global CONFIG_CAN_FT
5409
        if {($CONFIG_CAN_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_CAN_FT $CONFIG_CAN_FT [list $notmod] 2 }
5410
        write_comment $cfg $autocfg "PCI              "
5411
        global CONFIG_PCI_SIMPLE_TARGET
5412
        global CONFIG_PCI_ACTEL
5413
        if {($CONFIG_PCI_ACTEL != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SIMPLE_TARGET $CONFIG_PCI_SIMPLE_TARGET [list $notmod] 2 }
5414
        global CONFIG_PCI_MASTER_TARGET
5415
        if {($CONFIG_PCI_SIMPLE_TARGET != 1 && $CONFIG_PCI_ACTEL != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_MASTER_TARGET $CONFIG_PCI_MASTER_TARGET [list $notmod] 2 }
5416
        global CONFIG_PCI_MASTER_TARGET_DMA
5417
        if {($CONFIG_PCI_MASTER_TARGET == 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_MASTER_TARGET_DMA $CONFIG_PCI_MASTER_TARGET_DMA [list $notmod] 2 }
5418
        global CONFIG_PCI_VENDORID
5419
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {write_hex $cfg $autocfg CONFIG_PCI_VENDORID $CONFIG_PCI_VENDORID $notmod }
5420
        global CONFIG_PCI_DEVICEID
5421
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {write_hex $cfg $autocfg CONFIG_PCI_DEVICEID $CONFIG_PCI_DEVICEID $notmod }
5422
        global tmpvar_29
5423
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {
5424
        if { $tmpvar_29 == "None" } then { write_tristate $cfg $autocfg CONFIG_PCI_FIFO0 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_FIFO0 0 [list $notmod] 2 }
5425
        if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_PCI_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_FIFO8 0 [list $notmod] 2 }
5426
        if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_PCI_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_FIFO16 0 [list $notmod] 2 }
5427
        if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_PCI_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_FIFO32 0 [list $notmod] 2 }
5428
        if { $tmpvar_29 == "64" } then { write_tristate $cfg $autocfg CONFIG_PCI_FIFO64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_FIFO64 0 [list $notmod] 2 }
5429
        if { $tmpvar_29 == "128" } then { write_tristate $cfg $autocfg CONFIG_PCI_FIFO128 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_FIFO128 0 [list $notmod] 2 }}
5430
        global CONFIG_PCI_HADDR
5431
        if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {write_hex $cfg $autocfg CONFIG_PCI_HADDR $CONFIG_PCI_HADDR $notmod }
5432
        global CONFIG_PCI_ARBITER
5433
        write_tristate $cfg $autocfg CONFIG_PCI_ARBITER $CONFIG_PCI_ARBITER [list $notmod] 2
5434
        global CONFIG_PCI_ARBITER_APB
5435
        if {($CONFIG_PCI_ARBITER == 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_ARBITER_APB $CONFIG_PCI_ARBITER_APB [list $notmod] 2 }
5436
        global CONFIG_PCI_ARBITER_NREQ
5437
        if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod }
5438
        global CONFIG_PCI_TRACE
5439
        write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2
5440
        global tmpvar_30
5441
        if {($CONFIG_PCI_TRACE == 1)} then {
5442
        if { $tmpvar_30 == "256" } then { write_tristate $cfg $autocfg CONFIG_PCI_TRACE256 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_TRACE256 0 [list $notmod] 2 }
5443
        if { $tmpvar_30 == "512" } then { write_tristate $cfg $autocfg CONFIG_PCI_TRACE512 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_TRACE512 0 [list $notmod] 2 }
5444
        if { $tmpvar_30 == "1024" } then { write_tristate $cfg $autocfg CONFIG_PCI_TRACE1024 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_TRACE1024 0 [list $notmod] 2 }
5445
        if { $tmpvar_30 == "2048" } then { write_tristate $cfg $autocfg CONFIG_PCI_TRACE2048 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_TRACE2048 0 [list $notmod] 2 }
5446
        if { $tmpvar_30 == "4096" } then { write_tristate $cfg $autocfg CONFIG_PCI_TRACE4096 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_PCI_TRACE4096 0 [list $notmod] 2 }}
5447
        write_comment $cfg $autocfg "Spacewire "
5448
        global CONFIG_SPW_ENABLE
5449
        write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2
5450
        global CONFIG_SPW_NUM
5451
        if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod }
5452
        global tmpvar_31
5453
        if {($CONFIG_SPW_ENABLE == 1)} then {
5454
        if { $tmpvar_31 == "4" } then { write_tristate $cfg $autocfg CONFIG_SPW_AHBFIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_AHBFIFO4 0 [list $notmod] 2 }
5455
        if { $tmpvar_31 == "8" } then { write_tristate $cfg $autocfg CONFIG_SPW_AHBFIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_AHBFIFO8 0 [list $notmod] 2 }
5456
        if { $tmpvar_31 == "16" } then { write_tristate $cfg $autocfg CONFIG_SPW_AHBFIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_AHBFIFO16 0 [list $notmod] 2 }
5457
        if { $tmpvar_31 == "32" } then { write_tristate $cfg $autocfg CONFIG_SPW_AHBFIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_AHBFIFO32 0 [list $notmod] 2 }}
5458
        global tmpvar_32
5459
        if {($CONFIG_SPW_ENABLE == 1)} then {
5460
        if { $tmpvar_32 == "16" } then { write_tristate $cfg $autocfg CONFIG_SPW_RXFIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RXFIFO16 0 [list $notmod] 2 }
5461
        if { $tmpvar_32 == "32" } then { write_tristate $cfg $autocfg CONFIG_SPW_RXFIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RXFIFO32 0 [list $notmod] 2 }
5462
        if { $tmpvar_32 == "64" } then { write_tristate $cfg $autocfg CONFIG_SPW_RXFIFO64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RXFIFO64 0 [list $notmod] 2 }}
5463
        global CONFIG_SPW_RMAP
5464
        if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 }
5465
        global tmpvar_33
5466
        if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then {
5467
        if { $tmpvar_33 == "64" } then { write_tristate $cfg $autocfg CONFIG_SPW_RMAPBUF2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RMAPBUF2 0 [list $notmod] 2 }
5468
        if { $tmpvar_33 == "128" } then { write_tristate $cfg $autocfg CONFIG_SPW_RMAPBUF4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RMAPBUF4 0 [list $notmod] 2 }
5469
        if { $tmpvar_33 == "192" } then { write_tristate $cfg $autocfg CONFIG_SPW_RMAPBUF6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RMAPBUF6 0 [list $notmod] 2 }
5470
        if { $tmpvar_33 == "256" } then { write_tristate $cfg $autocfg CONFIG_SPW_RMAPBUF8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RMAPBUF8 0 [list $notmod] 2 }}
5471
        global CONFIG_SPW_RMAPCRC
5472
        if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 }
5473
        global CONFIG_SPW_FT
5474
        if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_FT $CONFIG_SPW_FT [list $notmod] 2 }
5475
        global CONFIG_SPW_NETLIST
5476
        if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 }
5477
        global tmpvar_34
5478
        if {($CONFIG_SPW_ENABLE == 1)} then {
5479
        if { $tmpvar_34 == "1" } then { write_tristate $cfg $autocfg CONFIG_SPW_GRSPW1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_GRSPW1 0 [list $notmod] 2 }
5480
        if { $tmpvar_34 == "2" } then { write_tristate $cfg $autocfg CONFIG_SPW_GRSPW2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_GRSPW2 0 [list $notmod] 2 }}
5481
        write_comment $cfg $autocfg "UARTs, timers and irq control         "
5482
        global CONFIG_UART1_ENABLE
5483
        write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2
5484
        global tmpvar_35
5485
        if {($CONFIG_UART1_ENABLE == 1)} then {
5486
        if { $tmpvar_35 == "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 }
5487
        if { $tmpvar_35 == "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 }
5488
        if { $tmpvar_35 == "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 }
5489
        if { $tmpvar_35 == "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 }
5490
        if { $tmpvar_35 == "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 }
5491
        if { $tmpvar_35 == "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 }}
5492
        global CONFIG_UART2_ENABLE
5493
        write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2
5494
        global tmpvar_36
5495
        if {($CONFIG_UART2_ENABLE == 1)} then {
5496
        if { $tmpvar_36 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA2_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA2_FIFO1 0 [list $notmod] 2 }
5497
        if { $tmpvar_36 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA2_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA2_FIFO2 0 [list $notmod] 2 }
5498
        if { $tmpvar_36 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA2_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA2_FIFO4 0 [list $notmod] 2 }
5499
        if { $tmpvar_36 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA2_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA2_FIFO8 0 [list $notmod] 2 }
5500
        if { $tmpvar_36 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA2_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA2_FIFO16 0 [list $notmod] 2 }
5501
        if { $tmpvar_36 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA2_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA2_FIFO32 0 [list $notmod] 2 }}
5502
        global CONFIG_IRQ3_ENABLE
5503
        write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2
5504
        global CONFIG_GPT_ENABLE
5505
        write_tristate $cfg $autocfg CONFIG_GPT_ENABLE $CONFIG_GPT_ENABLE [list $notmod] 2
5506
        global CONFIG_GPT_NTIM
5507
        if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_NTIM $CONFIG_GPT_NTIM $notmod }
5508
        global CONFIG_GPT_SW
5509
        if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_SW $CONFIG_GPT_SW $notmod }
5510
        global CONFIG_GPT_TW
5511
        if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_TW $CONFIG_GPT_TW $notmod }
5512
        global CONFIG_GPT_IRQ
5513
        if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_IRQ $CONFIG_GPT_IRQ $notmod }
5514
        global CONFIG_GPT_SEPIRQ
5515
        if {($CONFIG_GPT_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GPT_SEPIRQ $CONFIG_GPT_SEPIRQ [list $notmod] 2 }
5516
        global CONFIG_GPT_WDOGEN
5517
        if {($CONFIG_GPT_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GPT_WDOGEN $CONFIG_GPT_WDOGEN [list $notmod] 2 }
5518
        global CONFIG_GPT_WDOG
5519
        if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {write_hex $cfg $autocfg CONFIG_GPT_WDOG $CONFIG_GPT_WDOG $notmod }
5520
        global CONFIG_GRGPIO_ENABLE
5521
        write_tristate $cfg $autocfg CONFIG_GRGPIO_ENABLE $CONFIG_GRGPIO_ENABLE [list $notmod] 2
5522
        global CONFIG_GRGPIO_WIDTH
5523
        if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRGPIO_WIDTH $CONFIG_GRGPIO_WIDTH $notmod }
5524
        global CONFIG_GRGPIO_IMASK
5525
        if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_GRGPIO_IMASK $CONFIG_GRGPIO_IMASK $notmod }
5526
        write_comment $cfg $autocfg "VHDL Debugging        "
5527
        global CONFIG_DEBUG_UART
5528
        write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2
5529
        close $cfg
5530
        close $autocfg
5531
}
5532
 
5533
 
5534
proc clear_choices { } {
5535
        global CONFIG_SYN_INFERRED; set CONFIG_SYN_INFERRED 0
5536
        global CONFIG_SYN_STRATIX; set CONFIG_SYN_STRATIX 0
5537
        global CONFIG_SYN_STRATIXII; set CONFIG_SYN_STRATIXII 0
5538
        global CONFIG_SYN_STRATIXIII; set CONFIG_SYN_STRATIXIII 0
5539
        global CONFIG_SYN_CYCLONEIII; set CONFIG_SYN_CYCLONEIII 0
5540
        global CONFIG_SYN_ALTERA; set CONFIG_SYN_ALTERA 0
5541
        global CONFIG_SYN_AXCEL; set CONFIG_SYN_AXCEL 0
5542
        global CONFIG_SYN_PROASIC; set CONFIG_SYN_PROASIC 0
5543
        global CONFIG_SYN_PROASICPLUS; set CONFIG_SYN_PROASICPLUS 0
5544
        global CONFIG_SYN_PROASIC3; set CONFIG_SYN_PROASIC3 0
5545
        global CONFIG_SYN_UT025CRH; set CONFIG_SYN_UT025CRH 0
5546
        global CONFIG_SYN_ATC18; set CONFIG_SYN_ATC18 0
5547
        global CONFIG_SYN_CUSTOM1; set CONFIG_SYN_CUSTOM1 0
5548
        global CONFIG_SYN_EASIC90; set CONFIG_SYN_EASIC90 0
5549
        global CONFIG_SYN_IHP25; set CONFIG_SYN_IHP25 0
5550
        global CONFIG_SYN_IHP25RH; set CONFIG_SYN_IHP25RH 0
5551
        global CONFIG_SYN_LATTICE; set CONFIG_SYN_LATTICE 0
5552
        global CONFIG_SYN_ECLIPSE; set CONFIG_SYN_ECLIPSE 0
5553
        global CONFIG_SYN_PEREGRINE; set CONFIG_SYN_PEREGRINE 0
5554
        global CONFIG_SYN_RH_LIB18T; set CONFIG_SYN_RH_LIB18T 0
5555
        global CONFIG_SYN_RHUMC; set CONFIG_SYN_RHUMC 0
5556
        global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0
5557
        global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0
5558
        global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0
5559
        global CONFIG_SYN_VIRTEX; set CONFIG_SYN_VIRTEX 0
5560
        global CONFIG_SYN_VIRTEXE; set CONFIG_SYN_VIRTEXE 0
5561
        global CONFIG_SYN_VIRTEX2; set CONFIG_SYN_VIRTEX2 0
5562
        global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0
5563
        global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0
5564
        global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0
5565
        global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0
5566
        global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0
5567
        global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0
5568
        global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0
5569
        global CONFIG_MEM_ARTISAN; set CONFIG_MEM_ARTISAN 0
5570
        global CONFIG_MEM_CUSTOM1; set CONFIG_MEM_CUSTOM1 0
5571
        global CONFIG_MEM_VIRAGE; set CONFIG_MEM_VIRAGE 0
5572
        global CONFIG_MEM_VIRAGE90; set CONFIG_MEM_VIRAGE90 0
5573
        global CONFIG_CLK_INFERRED; set CONFIG_CLK_INFERRED 0
5574
        global CONFIG_CLK_HCLKBUF; set CONFIG_CLK_HCLKBUF 0
5575
        global CONFIG_CLK_ALTDLL; set CONFIG_CLK_ALTDLL 0
5576
        global CONFIG_CLK_LATDLL; set CONFIG_CLK_LATDLL 0
5577
        global CONFIG_CLK_PRO3PLL; set CONFIG_CLK_PRO3PLL 0
5578
        global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0
5579
        global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0
5580
        global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0
5581
        global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0
5582
        global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0
5583
        global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0
5584
        global CONFIG_FPU_GRFPU; set CONFIG_FPU_GRFPU 0
5585
        global CONFIG_FPU_GRFPULITE; set CONFIG_FPU_GRFPULITE 0
5586
        global CONFIG_FPU_MEIKO; set CONFIG_FPU_MEIKO 0
5587
        global CONFIG_FPU_GRFPU_INFMUL; set CONFIG_FPU_GRFPU_INFMUL 0
5588
        global CONFIG_FPU_GRFPU_DWMUL; set CONFIG_FPU_GRFPU_DWMUL 0
5589
        global CONFIG_FPU_GRFPC0; set CONFIG_FPU_GRFPC0 0
5590
        global CONFIG_FPU_GRFPC1; set CONFIG_FPU_GRFPC1 0
5591
        global CONFIG_FPU_GRFPC2; set CONFIG_FPU_GRFPC2 0
5592
        global CONFIG_ICACHE_ASSO1; set CONFIG_ICACHE_ASSO1 0
5593
        global CONFIG_ICACHE_ASSO2; set CONFIG_ICACHE_ASSO2 0
5594
        global CONFIG_ICACHE_ASSO3; set CONFIG_ICACHE_ASSO3 0
5595
        global CONFIG_ICACHE_ASSO4; set CONFIG_ICACHE_ASSO4 0
5596
        global CONFIG_ICACHE_SZ1; set CONFIG_ICACHE_SZ1 0
5597
        global CONFIG_ICACHE_SZ2; set CONFIG_ICACHE_SZ2 0
5598
        global CONFIG_ICACHE_SZ4; set CONFIG_ICACHE_SZ4 0
5599
        global CONFIG_ICACHE_SZ8; set CONFIG_ICACHE_SZ8 0
5600
        global CONFIG_ICACHE_SZ16; set CONFIG_ICACHE_SZ16 0
5601
        global CONFIG_ICACHE_SZ32; set CONFIG_ICACHE_SZ32 0
5602
        global CONFIG_ICACHE_SZ64; set CONFIG_ICACHE_SZ64 0
5603
        global CONFIG_ICACHE_SZ128; set CONFIG_ICACHE_SZ128 0
5604
        global CONFIG_ICACHE_SZ256; set CONFIG_ICACHE_SZ256 0
5605
        global CONFIG_ICACHE_LZ16; set CONFIG_ICACHE_LZ16 0
5606
        global CONFIG_ICACHE_LZ32; set CONFIG_ICACHE_LZ32 0
5607
        global CONFIG_ICACHE_ALGORND; set CONFIG_ICACHE_ALGORND 0
5608
        global CONFIG_ICACHE_ALGOLRR; set CONFIG_ICACHE_ALGOLRR 0
5609
        global CONFIG_ICACHE_ALGOLRU; set CONFIG_ICACHE_ALGOLRU 0
5610
        global CONFIG_ICACHE_LRAM_SZ1; set CONFIG_ICACHE_LRAM_SZ1 0
5611
        global CONFIG_ICACHE_LRAM_SZ2; set CONFIG_ICACHE_LRAM_SZ2 0
5612
        global CONFIG_ICACHE_LRAM_SZ4; set CONFIG_ICACHE_LRAM_SZ4 0
5613
        global CONFIG_ICACHE_LRAM_SZ8; set CONFIG_ICACHE_LRAM_SZ8 0
5614
        global CONFIG_ICACHE_LRAM_SZ16; set CONFIG_ICACHE_LRAM_SZ16 0
5615
        global CONFIG_ICACHE_LRAM_SZ32; set CONFIG_ICACHE_LRAM_SZ32 0
5616
        global CONFIG_ICACHE_LRAM_SZ64; set CONFIG_ICACHE_LRAM_SZ64 0
5617
        global CONFIG_ICACHE_LRAM_SZ128; set CONFIG_ICACHE_LRAM_SZ128 0
5618
        global CONFIG_ICACHE_LRAM_SZ256; set CONFIG_ICACHE_LRAM_SZ256 0
5619
        global CONFIG_DCACHE_ASSO1; set CONFIG_DCACHE_ASSO1 0
5620
        global CONFIG_DCACHE_ASSO2; set CONFIG_DCACHE_ASSO2 0
5621
        global CONFIG_DCACHE_ASSO3; set CONFIG_DCACHE_ASSO3 0
5622
        global CONFIG_DCACHE_ASSO4; set CONFIG_DCACHE_ASSO4 0
5623
        global CONFIG_DCACHE_SZ1; set CONFIG_DCACHE_SZ1 0
5624
        global CONFIG_DCACHE_SZ2; set CONFIG_DCACHE_SZ2 0
5625
        global CONFIG_DCACHE_SZ4; set CONFIG_DCACHE_SZ4 0
5626
        global CONFIG_DCACHE_SZ8; set CONFIG_DCACHE_SZ8 0
5627
        global CONFIG_DCACHE_SZ16; set CONFIG_DCACHE_SZ16 0
5628
        global CONFIG_DCACHE_SZ32; set CONFIG_DCACHE_SZ32 0
5629
        global CONFIG_DCACHE_SZ64; set CONFIG_DCACHE_SZ64 0
5630
        global CONFIG_DCACHE_SZ128; set CONFIG_DCACHE_SZ128 0
5631
        global CONFIG_DCACHE_SZ256; set CONFIG_DCACHE_SZ256 0
5632
        global CONFIG_DCACHE_LZ16; set CONFIG_DCACHE_LZ16 0
5633
        global CONFIG_DCACHE_LZ32; set CONFIG_DCACHE_LZ32 0
5634
        global CONFIG_DCACHE_ALGORND; set CONFIG_DCACHE_ALGORND 0
5635
        global CONFIG_DCACHE_ALGOLRR; set CONFIG_DCACHE_ALGOLRR 0
5636
        global CONFIG_DCACHE_ALGOLRU; set CONFIG_DCACHE_ALGOLRU 0
5637
        global CONFIG_DCACHE_LRAM_SZ1; set CONFIG_DCACHE_LRAM_SZ1 0
5638
        global CONFIG_DCACHE_LRAM_SZ2; set CONFIG_DCACHE_LRAM_SZ2 0
5639
        global CONFIG_DCACHE_LRAM_SZ4; set CONFIG_DCACHE_LRAM_SZ4 0
5640
        global CONFIG_DCACHE_LRAM_SZ8; set CONFIG_DCACHE_LRAM_SZ8 0
5641
        global CONFIG_DCACHE_LRAM_SZ16; set CONFIG_DCACHE_LRAM_SZ16 0
5642
        global CONFIG_DCACHE_LRAM_SZ32; set CONFIG_DCACHE_LRAM_SZ32 0
5643
        global CONFIG_DCACHE_LRAM_SZ64; set CONFIG_DCACHE_LRAM_SZ64 0
5644
        global CONFIG_DCACHE_LRAM_SZ128; set CONFIG_DCACHE_LRAM_SZ128 0
5645
        global CONFIG_DCACHE_LRAM_SZ256; set CONFIG_DCACHE_LRAM_SZ256 0
5646
        global CONFIG_MMU_COMBINED; set CONFIG_MMU_COMBINED 0
5647
        global CONFIG_MMU_SPLIT; set CONFIG_MMU_SPLIT 0
5648
        global CONFIG_MMU_REPARRAY; set CONFIG_MMU_REPARRAY 0
5649
        global CONFIG_MMU_REPINCREMENT; set CONFIG_MMU_REPINCREMENT 0
5650
        global CONFIG_MMU_I2; set CONFIG_MMU_I2 0
5651
        global CONFIG_MMU_I4; set CONFIG_MMU_I4 0
5652
        global CONFIG_MMU_I8; set CONFIG_MMU_I8 0
5653
        global CONFIG_MMU_I16; set CONFIG_MMU_I16 0
5654
        global CONFIG_MMU_I32; set CONFIG_MMU_I32 0
5655
        global CONFIG_MMU_D2; set CONFIG_MMU_D2 0
5656
        global CONFIG_MMU_D4; set CONFIG_MMU_D4 0
5657
        global CONFIG_MMU_D8; set CONFIG_MMU_D8 0
5658
        global CONFIG_MMU_D16; set CONFIG_MMU_D16 0
5659
        global CONFIG_MMU_D32; set CONFIG_MMU_D32 0
5660
        global CONFIG_DSU_ITRACESZ1; set CONFIG_DSU_ITRACESZ1 0
5661
        global CONFIG_DSU_ITRACESZ2; set CONFIG_DSU_ITRACESZ2 0
5662
        global CONFIG_DSU_ITRACESZ4; set CONFIG_DSU_ITRACESZ4 0
5663
        global CONFIG_DSU_ITRACESZ8; set CONFIG_DSU_ITRACESZ8 0
5664
        global CONFIG_DSU_ITRACESZ16; set CONFIG_DSU_ITRACESZ16 0
5665
        global CONFIG_DSU_ATRACESZ1; set CONFIG_DSU_ATRACESZ1 0
5666
        global CONFIG_DSU_ATRACESZ2; set CONFIG_DSU_ATRACESZ2 0
5667
        global CONFIG_DSU_ATRACESZ4; set CONFIG_DSU_ATRACESZ4 0
5668
        global CONFIG_DSU_ATRACESZ8; set CONFIG_DSU_ATRACESZ8 0
5669
        global CONFIG_DSU_ATRACESZ16; set CONFIG_DSU_ATRACESZ16 0
5670
        global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0
5671
        global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0
5672
        global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0
5673
        global CONFIG_DSU_ETHSZ8; set CONFIG_DSU_ETHSZ8 0
5674
        global CONFIG_DSU_ETHSZ16; set CONFIG_DSU_ETHSZ16 0
5675
        global CONFIG_SRCTRL_SRBANKS1; set CONFIG_SRCTRL_SRBANKS1 0
5676
        global CONFIG_SRCTRL_SRBANKS2; set CONFIG_SRCTRL_SRBANKS2 0
5677
        global CONFIG_SRCTRL_SRBANKS3; set CONFIG_SRCTRL_SRBANKS3 0
5678
        global CONFIG_SRCTRL_SRBANKS4; set CONFIG_SRCTRL_SRBANKS4 0
5679
        global CONFIG_SRCTRL_SRBANKS5; set CONFIG_SRCTRL_SRBANKS5 0
5680
        global CONFIG_SRCTRL_BANKSZ0; set CONFIG_SRCTRL_BANKSZ0 0
5681
        global CONFIG_SRCTRL_BANKSZ1; set CONFIG_SRCTRL_BANKSZ1 0
5682
        global CONFIG_SRCTRL_BANKSZ2; set CONFIG_SRCTRL_BANKSZ2 0
5683
        global CONFIG_SRCTRL_BANKSZ3; set CONFIG_SRCTRL_BANKSZ3 0
5684
        global CONFIG_SRCTRL_BANKSZ4; set CONFIG_SRCTRL_BANKSZ4 0
5685
        global CONFIG_SRCTRL_BANKSZ5; set CONFIG_SRCTRL_BANKSZ5 0
5686
        global CONFIG_SRCTRL_BANKSZ6; set CONFIG_SRCTRL_BANKSZ6 0
5687
        global CONFIG_SRCTRL_BANKSZ7; set CONFIG_SRCTRL_BANKSZ7 0
5688
        global CONFIG_SRCTRL_BANKSZ8; set CONFIG_SRCTRL_BANKSZ8 0
5689
        global CONFIG_SRCTRL_BANKSZ9; set CONFIG_SRCTRL_BANKSZ9 0
5690
        global CONFIG_SRCTRL_BANKSZ10; set CONFIG_SRCTRL_BANKSZ10 0
5691
        global CONFIG_SRCTRL_BANKSZ11; set CONFIG_SRCTRL_BANKSZ11 0
5692
        global CONFIG_SRCTRL_BANKSZ12; set CONFIG_SRCTRL_BANKSZ12 0
5693
        global CONFIG_SRCTRL_BANKSZ13; set CONFIG_SRCTRL_BANKSZ13 0
5694
        global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0
5695
        global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0
5696
        global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0
5697
        global CONFIG_AHBRAM_SZ8; set CONFIG_AHBRAM_SZ8 0
5698
        global CONFIG_AHBRAM_SZ16; set CONFIG_AHBRAM_SZ16 0
5699
        global CONFIG_AHBRAM_SZ32; set CONFIG_AHBRAM_SZ32 0
5700
        global CONFIG_AHBRAM_SZ64; set CONFIG_AHBRAM_SZ64 0
5701
        global CONFIG_GRETH_FIFO4; set CONFIG_GRETH_FIFO4 0
5702
        global CONFIG_GRETH_FIFO8; set CONFIG_GRETH_FIFO8 0
5703
        global CONFIG_GRETH_FIFO16; set CONFIG_GRETH_FIFO16 0
5704
        global CONFIG_GRETH_FIFO32; set CONFIG_GRETH_FIFO32 0
5705
        global CONFIG_GRETH_FIFO64; set CONFIG_GRETH_FIFO64 0
5706
        global CONFIG_PCI_FIFO0; set CONFIG_PCI_FIFO0 0
5707
        global CONFIG_PCI_FIFO8; set CONFIG_PCI_FIFO8 0
5708
        global CONFIG_PCI_FIFO16; set CONFIG_PCI_FIFO16 0
5709
        global CONFIG_PCI_FIFO32; set CONFIG_PCI_FIFO32 0
5710
        global CONFIG_PCI_FIFO64; set CONFIG_PCI_FIFO64 0
5711
        global CONFIG_PCI_FIFO128; set CONFIG_PCI_FIFO128 0
5712
        global CONFIG_PCI_TRACE256; set CONFIG_PCI_TRACE256 0
5713
        global CONFIG_PCI_TRACE512; set CONFIG_PCI_TRACE512 0
5714
        global CONFIG_PCI_TRACE1024; set CONFIG_PCI_TRACE1024 0
5715
        global CONFIG_PCI_TRACE2048; set CONFIG_PCI_TRACE2048 0
5716
        global CONFIG_PCI_TRACE4096; set CONFIG_PCI_TRACE4096 0
5717
        global CONFIG_SPW_AHBFIFO4; set CONFIG_SPW_AHBFIFO4 0
5718
        global CONFIG_SPW_AHBFIFO8; set CONFIG_SPW_AHBFIFO8 0
5719
        global CONFIG_SPW_AHBFIFO16; set CONFIG_SPW_AHBFIFO16 0
5720
        global CONFIG_SPW_AHBFIFO32; set CONFIG_SPW_AHBFIFO32 0
5721
        global CONFIG_SPW_RXFIFO16; set CONFIG_SPW_RXFIFO16 0
5722
        global CONFIG_SPW_RXFIFO32; set CONFIG_SPW_RXFIFO32 0
5723
        global CONFIG_SPW_RXFIFO64; set CONFIG_SPW_RXFIFO64 0
5724
        global CONFIG_SPW_RMAPBUF2; set CONFIG_SPW_RMAPBUF2 0
5725
        global CONFIG_SPW_RMAPBUF4; set CONFIG_SPW_RMAPBUF4 0
5726
        global CONFIG_SPW_RMAPBUF6; set CONFIG_SPW_RMAPBUF6 0
5727
        global CONFIG_SPW_RMAPBUF8; set CONFIG_SPW_RMAPBUF8 0
5728
        global CONFIG_SPW_GRSPW1; set CONFIG_SPW_GRSPW1 0
5729
        global CONFIG_SPW_GRSPW2; set CONFIG_SPW_GRSPW2 0
5730
        global CONFIG_UA1_FIFO1; set CONFIG_UA1_FIFO1 0
5731
        global CONFIG_UA1_FIFO2; set CONFIG_UA1_FIFO2 0
5732
        global CONFIG_UA1_FIFO4; set CONFIG_UA1_FIFO4 0
5733
        global CONFIG_UA1_FIFO8; set CONFIG_UA1_FIFO8 0
5734
        global CONFIG_UA1_FIFO16; set CONFIG_UA1_FIFO16 0
5735
        global CONFIG_UA1_FIFO32; set CONFIG_UA1_FIFO32 0
5736
        global CONFIG_UA2_FIFO1; set CONFIG_UA2_FIFO1 0
5737
        global CONFIG_UA2_FIFO2; set CONFIG_UA2_FIFO2 0
5738
        global CONFIG_UA2_FIFO4; set CONFIG_UA2_FIFO4 0
5739
        global CONFIG_UA2_FIFO8; set CONFIG_UA2_FIFO8 0
5740
        global CONFIG_UA2_FIFO16; set CONFIG_UA2_FIFO16 0
5741
        global CONFIG_UA2_FIFO32; set CONFIG_UA2_FIFO32 0
5742
}
5743
 
5744
 
5745
proc update_choices { } {
5746
        global tmpvar_0
5747
        set tmpvar_0 "Inferred"
5748
        global CONFIG_SYN_INFERRED
5749
        if { $CONFIG_SYN_INFERRED == 1 } then { set tmpvar_0 "Inferred" }
5750
        global CONFIG_SYN_STRATIX
5751
        if { $CONFIG_SYN_STRATIX == 1 } then { set tmpvar_0 "Altera-Stratix" }
5752
        global CONFIG_SYN_STRATIXII
5753
        if { $CONFIG_SYN_STRATIXII == 1 } then { set tmpvar_0 "Altera-StratixII" }
5754
        global CONFIG_SYN_STRATIXIII
5755
        if { $CONFIG_SYN_STRATIXIII == 1 } then { set tmpvar_0 "Altera-StratixIII" }
5756
        global CONFIG_SYN_CYCLONEIII
5757
        if { $CONFIG_SYN_CYCLONEIII == 1 } then { set tmpvar_0 "Altera-CycloneIII" }
5758
        global CONFIG_SYN_ALTERA
5759
        if { $CONFIG_SYN_ALTERA == 1 } then { set tmpvar_0 "Altera-Others" }
5760
        global CONFIG_SYN_AXCEL
5761
        if { $CONFIG_SYN_AXCEL == 1 } then { set tmpvar_0 "Actel-Axcelerator" }
5762
        global CONFIG_SYN_PROASIC
5763
        if { $CONFIG_SYN_PROASIC == 1 } then { set tmpvar_0 "Actel-Proasic" }
5764
        global CONFIG_SYN_PROASICPLUS
5765
        if { $CONFIG_SYN_PROASICPLUS == 1 } then { set tmpvar_0 "Actel-ProasicPlus" }
5766
        global CONFIG_SYN_PROASIC3
5767
        if { $CONFIG_SYN_PROASIC3 == 1 } then { set tmpvar_0 "Actel-Proasic3" }
5768
        global CONFIG_SYN_UT025CRH
5769
        if { $CONFIG_SYN_UT025CRH == 1 } then { set tmpvar_0 "Aeroflex-UT025CRH" }
5770
        global CONFIG_SYN_ATC18
5771
        if { $CONFIG_SYN_ATC18 == 1 } then { set tmpvar_0 "Atmel-ATC18" }
5772
        global CONFIG_SYN_CUSTOM1
5773
        if { $CONFIG_SYN_CUSTOM1 == 1 } then { set tmpvar_0 "Custom1" }
5774
        global CONFIG_SYN_EASIC90
5775
        if { $CONFIG_SYN_EASIC90 == 1 } then { set tmpvar_0 "eASIC90" }
5776
        global CONFIG_SYN_IHP25
5777
        if { $CONFIG_SYN_IHP25 == 1 } then { set tmpvar_0 "IHP25" }
5778
        global CONFIG_SYN_IHP25RH
5779
        if { $CONFIG_SYN_IHP25RH == 1 } then { set tmpvar_0 "IHP25RH" }
5780
        global CONFIG_SYN_LATTICE
5781
        if { $CONFIG_SYN_LATTICE == 1 } then { set tmpvar_0 "Lattice-EC/ECP/XP" }
5782
        global CONFIG_SYN_ECLIPSE
5783
        if { $CONFIG_SYN_ECLIPSE == 1 } then { set tmpvar_0 "Quicklogic-Eclipse" }
5784
        global CONFIG_SYN_PEREGRINE
5785
        if { $CONFIG_SYN_PEREGRINE == 1 } then { set tmpvar_0 "Peregrine" }
5786
        global CONFIG_SYN_RH_LIB18T
5787
        if { $CONFIG_SYN_RH_LIB18T == 1 } then { set tmpvar_0 "RH-LIB18T" }
5788
        global CONFIG_SYN_RHUMC
5789
        if { $CONFIG_SYN_RHUMC == 1 } then { set tmpvar_0 "RH-UMC" }
5790
        global CONFIG_SYN_SPARTAN2
5791
        if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" }
5792
        global CONFIG_SYN_SPARTAN3
5793
        if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" }
5794
        global CONFIG_SYN_SPARTAN3E
5795
        if { $CONFIG_SYN_SPARTAN3E == 1 } then { set tmpvar_0 "Xilinx-Spartan3E" }
5796
        global CONFIG_SYN_VIRTEX
5797
        if { $CONFIG_SYN_VIRTEX == 1 } then { set tmpvar_0 "Xilinx-Virtex" }
5798
        global CONFIG_SYN_VIRTEXE
5799
        if { $CONFIG_SYN_VIRTEXE == 1 } then { set tmpvar_0 "Xilinx-VirtexE" }
5800
        global CONFIG_SYN_VIRTEX2
5801
        if { $CONFIG_SYN_VIRTEX2 == 1 } then { set tmpvar_0 "Xilinx-Virtex2" }
5802
        global CONFIG_SYN_VIRTEX4
5803
        if { $CONFIG_SYN_VIRTEX4 == 1 } then { set tmpvar_0 "Xilinx-Virtex4" }
5804
        global CONFIG_SYN_VIRTEX5
5805
        if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" }
5806
        global CONFIG_SYN_UMC
5807
        if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC18" }
5808
        global CONFIG_SYN_TSMC90
5809
        if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" }
5810
        global tmpvar_1
5811
        set tmpvar_1 "Inferred"
5812
        global CONFIG_MEM_INFERRED
5813
        if { $CONFIG_MEM_INFERRED == 1 } then { set tmpvar_1 "Inferred" }
5814
        global CONFIG_MEM_UMC
5815
        if { $CONFIG_MEM_UMC == 1 } then { set tmpvar_1 "UMC18" }
5816
        global CONFIG_MEM_RHUMC
5817
        if { $CONFIG_MEM_RHUMC == 1 } then { set tmpvar_1 "RH-UMC" }
5818
        global CONFIG_MEM_ARTISAN
5819
        if { $CONFIG_MEM_ARTISAN == 1 } then { set tmpvar_1 "Artisan" }
5820
        global CONFIG_MEM_CUSTOM1
5821
        if { $CONFIG_MEM_CUSTOM1 == 1 } then { set tmpvar_1 "Custom1" }
5822
        global CONFIG_MEM_VIRAGE
5823
        if { $CONFIG_MEM_VIRAGE == 1 } then { set tmpvar_1 "Virage" }
5824
        global CONFIG_MEM_VIRAGE90
5825
        if { $CONFIG_MEM_VIRAGE90 == 1 } then { set tmpvar_1 "Virage-TSMC90" }
5826
        global tmpvar_2
5827
        set tmpvar_2 "Inferred"
5828
        global CONFIG_CLK_INFERRED
5829
        if { $CONFIG_CLK_INFERRED == 1 } then { set tmpvar_2 "Inferred" }
5830
        global CONFIG_CLK_HCLKBUF
5831
        if { $CONFIG_CLK_HCLKBUF == 1 } then { set tmpvar_2 "Actel-HCLKBUF" }
5832
        global CONFIG_CLK_ALTDLL
5833
        if { $CONFIG_CLK_ALTDLL == 1 } then { set tmpvar_2 "Altera-ALTPLL" }
5834
        global CONFIG_CLK_LATDLL
5835
        if { $CONFIG_CLK_LATDLL == 1 } then { set tmpvar_2 "Lattice-EXPLL" }
5836
        global CONFIG_CLK_PRO3PLL
5837
        if { $CONFIG_CLK_PRO3PLL == 1 } then { set tmpvar_2 "Proasic3-PLLL" }
5838
        global CONFIG_CLK_LIB18T
5839
        if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" }
5840
        global CONFIG_CLK_RHUMC
5841
        if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" }
5842
        global CONFIG_CLK_CLKDLL
5843
        if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" }
5844
        global CONFIG_CLK_DCM
5845
        if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" }
5846
        global tmpvar_3
5847
        set tmpvar_3 "5-cycles"
5848
        global CONFIG_IU_MUL_LATENCY_4
5849
        if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" }
5850
        global CONFIG_IU_MUL_LATENCY_5
5851
        if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" }
5852
        global tmpvar_4
5853
        set tmpvar_4 "GRFPU"
5854
        global CONFIG_FPU_GRFPU
5855
        if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_4 "GRFPU" }
5856
        global CONFIG_FPU_GRFPULITE
5857
        if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_4 "GRFPU-LITE" }
5858
        global CONFIG_FPU_MEIKO
5859
        if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_4 "Meiko" }
5860
        global tmpvar_5
5861
        set tmpvar_5 "Inferred"
5862
        global CONFIG_FPU_GRFPU_INFMUL
5863
        if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_5 "Inferred" }
5864
        global CONFIG_FPU_GRFPU_DWMUL
5865
        if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_5 "DW" }
5866
        global tmpvar_6
5867
        set tmpvar_6 "Simple"
5868
        global CONFIG_FPU_GRFPC0
5869
        if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_6 "Simple" }
5870
        global CONFIG_FPU_GRFPC1
5871
        if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_6 "Data-forwarding" }
5872
        global CONFIG_FPU_GRFPC2
5873
        if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_6 "Non-blocking" }
5874
        global tmpvar_7
5875
        set tmpvar_7 "1"
5876
        global CONFIG_ICACHE_ASSO1
5877
        if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_7 "1" }
5878
        global CONFIG_ICACHE_ASSO2
5879
        if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_7 "2" }
5880
        global CONFIG_ICACHE_ASSO3
5881
        if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_7 "3" }
5882
        global CONFIG_ICACHE_ASSO4
5883
        if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_7 "4" }
5884
        global tmpvar_8
5885
        set tmpvar_8 "4"
5886
        global CONFIG_ICACHE_SZ1
5887
        if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_8 "1" }
5888
        global CONFIG_ICACHE_SZ2
5889
        if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_8 "2" }
5890
        global CONFIG_ICACHE_SZ4
5891
        if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_8 "4" }
5892
        global CONFIG_ICACHE_SZ8
5893
        if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_8 "8" }
5894
        global CONFIG_ICACHE_SZ16
5895
        if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_8 "16" }
5896
        global CONFIG_ICACHE_SZ32
5897
        if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_8 "32" }
5898
        global CONFIG_ICACHE_SZ64
5899
        if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_8 "64" }
5900
        global CONFIG_ICACHE_SZ128
5901
        if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_8 "128" }
5902
        global CONFIG_ICACHE_SZ256
5903
        if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_8 "256" }
5904
        global tmpvar_9
5905
        set tmpvar_9 "32"
5906
        global CONFIG_ICACHE_LZ16
5907
        if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_9 "16" }
5908
        global CONFIG_ICACHE_LZ32
5909
        if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_9 "32" }
5910
        global tmpvar_10
5911
        set tmpvar_10 "Random"
5912
        global CONFIG_ICACHE_ALGORND
5913
        if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_10 "Random" }
5914
        global CONFIG_ICACHE_ALGOLRR
5915
        if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_10 "LRR" }
5916
        global CONFIG_ICACHE_ALGOLRU
5917
        if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_10 "LRU" }
5918
        global tmpvar_11
5919
        set tmpvar_11 "4"
5920
        global CONFIG_ICACHE_LRAM_SZ1
5921
        if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_11 "1" }
5922
        global CONFIG_ICACHE_LRAM_SZ2
5923
        if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_11 "2" }
5924
        global CONFIG_ICACHE_LRAM_SZ4
5925
        if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_11 "4" }
5926
        global CONFIG_ICACHE_LRAM_SZ8
5927
        if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_11 "8" }
5928
        global CONFIG_ICACHE_LRAM_SZ16
5929
        if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_11 "16" }
5930
        global CONFIG_ICACHE_LRAM_SZ32
5931
        if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_11 "32" }
5932
        global CONFIG_ICACHE_LRAM_SZ64
5933
        if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_11 "64" }
5934
        global CONFIG_ICACHE_LRAM_SZ128
5935
        if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_11 "128" }
5936
        global CONFIG_ICACHE_LRAM_SZ256
5937
        if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_11 "256" }
5938
        global tmpvar_12
5939
        set tmpvar_12 "1"
5940
        global CONFIG_DCACHE_ASSO1
5941
        if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_12 "1" }
5942
        global CONFIG_DCACHE_ASSO2
5943
        if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_12 "2" }
5944
        global CONFIG_DCACHE_ASSO3
5945
        if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_12 "3" }
5946
        global CONFIG_DCACHE_ASSO4
5947
        if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_12 "4" }
5948
        global tmpvar_13
5949
        set tmpvar_13 "4"
5950
        global CONFIG_DCACHE_SZ1
5951
        if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_13 "1" }
5952
        global CONFIG_DCACHE_SZ2
5953
        if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_13 "2" }
5954
        global CONFIG_DCACHE_SZ4
5955
        if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_13 "4" }
5956
        global CONFIG_DCACHE_SZ8
5957
        if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_13 "8" }
5958
        global CONFIG_DCACHE_SZ16
5959
        if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_13 "16" }
5960
        global CONFIG_DCACHE_SZ32
5961
        if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_13 "32" }
5962
        global CONFIG_DCACHE_SZ64
5963
        if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_13 "64" }
5964
        global CONFIG_DCACHE_SZ128
5965
        if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_13 "128" }
5966
        global CONFIG_DCACHE_SZ256
5967
        if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_13 "256" }
5968
        global tmpvar_14
5969
        set tmpvar_14 "32"
5970
        global CONFIG_DCACHE_LZ16
5971
        if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_14 "16" }
5972
        global CONFIG_DCACHE_LZ32
5973
        if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_14 "32" }
5974
        global tmpvar_15
5975
        set tmpvar_15 "Random"
5976
        global CONFIG_DCACHE_ALGORND
5977
        if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_15 "Random" }
5978
        global CONFIG_DCACHE_ALGOLRR
5979
        if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_15 "LRR" }
5980
        global CONFIG_DCACHE_ALGOLRU
5981
        if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_15 "LRU" }
5982
        global tmpvar_16
5983
        set tmpvar_16 "4"
5984
        global CONFIG_DCACHE_LRAM_SZ1
5985
        if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_16 "1" }
5986
        global CONFIG_DCACHE_LRAM_SZ2
5987
        if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_16 "2" }
5988
        global CONFIG_DCACHE_LRAM_SZ4
5989
        if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_16 "4" }
5990
        global CONFIG_DCACHE_LRAM_SZ8
5991
        if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_16 "8" }
5992
        global CONFIG_DCACHE_LRAM_SZ16
5993
        if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_16 "16" }
5994
        global CONFIG_DCACHE_LRAM_SZ32
5995
        if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_16 "32" }
5996
        global CONFIG_DCACHE_LRAM_SZ64
5997
        if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_16 "64" }
5998
        global CONFIG_DCACHE_LRAM_SZ128
5999
        if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_16 "128" }
6000
        global CONFIG_DCACHE_LRAM_SZ256
6001
        if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_16 "256" }
6002
        global tmpvar_17
6003
        set tmpvar_17 "combined"
6004
        global CONFIG_MMU_COMBINED
6005
        if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_17 "combined" }
6006
        global CONFIG_MMU_SPLIT
6007
        if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_17 "split" }
6008
        global tmpvar_18
6009
        set tmpvar_18 "Increment"
6010
        global CONFIG_MMU_REPARRAY
6011
        if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_18 "LRU" }
6012
        global CONFIG_MMU_REPINCREMENT
6013
        if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_18 "Increment" }
6014
        global tmpvar_19
6015
        set tmpvar_19 "8"
6016
        global CONFIG_MMU_I2
6017
        if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_19 "2" }
6018
        global CONFIG_MMU_I4
6019
        if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_19 "4" }
6020
        global CONFIG_MMU_I8
6021
        if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_19 "8" }
6022
        global CONFIG_MMU_I16
6023
        if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_19 "16" }
6024
        global CONFIG_MMU_I32
6025
        if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_19 "32" }
6026
        global tmpvar_20
6027
        set tmpvar_20 "8"
6028
        global CONFIG_MMU_D2
6029
        if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_20 "2" }
6030
        global CONFIG_MMU_D4
6031
        if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_20 "4" }
6032
        global CONFIG_MMU_D8
6033
        if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_20 "8" }
6034
        global CONFIG_MMU_D16
6035
        if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_20 "16" }
6036
        global CONFIG_MMU_D32
6037
        if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_20 "32" }
6038
        global tmpvar_21
6039
        set tmpvar_21 "1"
6040
        global CONFIG_DSU_ITRACESZ1
6041
        if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_21 "1" }
6042
        global CONFIG_DSU_ITRACESZ2
6043
        if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_21 "2" }
6044
        global CONFIG_DSU_ITRACESZ4
6045
        if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_21 "4" }
6046
        global CONFIG_DSU_ITRACESZ8
6047
        if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_21 "8" }
6048
        global CONFIG_DSU_ITRACESZ16
6049
        if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_21 "16" }
6050
        global tmpvar_22
6051
        set tmpvar_22 "1"
6052
        global CONFIG_DSU_ATRACESZ1
6053
        if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_22 "1" }
6054
        global CONFIG_DSU_ATRACESZ2
6055
        if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_22 "2" }
6056
        global CONFIG_DSU_ATRACESZ4
6057
        if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_22 "4" }
6058
        global CONFIG_DSU_ATRACESZ8
6059
        if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_22 "8" }
6060
        global CONFIG_DSU_ATRACESZ16
6061
        if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_22 "16" }
6062
        global tmpvar_24
6063
        set tmpvar_24 "2"
6064
        global CONFIG_DSU_ETHSZ1
6065
        if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_24 "1" }
6066
        global CONFIG_DSU_ETHSZ2
6067
        if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_24 "2" }
6068
        global CONFIG_DSU_ETHSZ4
6069
        if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_24 "4" }
6070
        global CONFIG_DSU_ETHSZ8
6071
        if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_24 "8" }
6072
        global CONFIG_DSU_ETHSZ16
6073
        if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_24 "16" }
6074
        global tmpvar_25
6075
        set tmpvar_25 "1"
6076
        global CONFIG_SRCTRL_SRBANKS1
6077
        if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_25 "1" }
6078
        global CONFIG_SRCTRL_SRBANKS2
6079
        if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_25 "2" }
6080
        global CONFIG_SRCTRL_SRBANKS3
6081
        if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_25 "3" }
6082
        global CONFIG_SRCTRL_SRBANKS4
6083
        if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_25 "4" }
6084
        global CONFIG_SRCTRL_SRBANKS5
6085
        if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_25 "5" }
6086
        global tmpvar_26
6087
        set tmpvar_26 "0"
6088
        global CONFIG_SRCTRL_BANKSZ0
6089
        if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_26 "8" }
6090
        global CONFIG_SRCTRL_BANKSZ1
6091
        if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_26 "16" }
6092
        global CONFIG_SRCTRL_BANKSZ2
6093
        if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_26 "32" }
6094
        global CONFIG_SRCTRL_BANKSZ3
6095
        if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_26 "64" }
6096
        global CONFIG_SRCTRL_BANKSZ4
6097
        if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_26 "128" }
6098
        global CONFIG_SRCTRL_BANKSZ5
6099
        if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_26 "256" }
6100
        global CONFIG_SRCTRL_BANKSZ6
6101
        if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_26 "512" }
6102
        global CONFIG_SRCTRL_BANKSZ7
6103
        if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_26 "1024" }
6104
        global CONFIG_SRCTRL_BANKSZ8
6105
        if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_26 "2048" }
6106
        global CONFIG_SRCTRL_BANKSZ9
6107
        if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_26 "4096" }
6108
        global CONFIG_SRCTRL_BANKSZ10
6109
        if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_26 "8192" }
6110
        global CONFIG_SRCTRL_BANKSZ11
6111
        if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_26 "16384" }
6112
        global CONFIG_SRCTRL_BANKSZ12
6113
        if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_26 "32768" }
6114
        global CONFIG_SRCTRL_BANKSZ13
6115
        if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_26 "65536" }
6116
        global tmpvar_27
6117
        set tmpvar_27 "4"
6118
        global CONFIG_AHBRAM_SZ1
6119
        if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" }
6120
        global CONFIG_AHBRAM_SZ2
6121
        if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" }
6122
        global CONFIG_AHBRAM_SZ4
6123
        if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" }
6124
        global CONFIG_AHBRAM_SZ8
6125
        if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" }
6126
        global CONFIG_AHBRAM_SZ16
6127
        if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" }
6128
        global CONFIG_AHBRAM_SZ32
6129
        if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" }
6130
        global CONFIG_AHBRAM_SZ64
6131
        if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" }
6132
        global tmpvar_28
6133
        set tmpvar_28 "8"
6134
        global CONFIG_GRETH_FIFO4
6135
        if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" }
6136
        global CONFIG_GRETH_FIFO8
6137
        if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" }
6138
        global CONFIG_GRETH_FIFO16
6139
        if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" }
6140
        global CONFIG_GRETH_FIFO32
6141
        if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" }
6142
        global CONFIG_GRETH_FIFO64
6143
        if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" }
6144
        global tmpvar_29
6145
        set tmpvar_29 "8"
6146
        global CONFIG_PCI_FIFO0
6147
        if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_29 "None" }
6148
        global CONFIG_PCI_FIFO8
6149
        if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_29 "8" }
6150
        global CONFIG_PCI_FIFO16
6151
        if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_29 "16" }
6152
        global CONFIG_PCI_FIFO32
6153
        if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_29 "32" }
6154
        global CONFIG_PCI_FIFO64
6155
        if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_29 "64" }
6156
        global CONFIG_PCI_FIFO128
6157
        if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_29 "128" }
6158
        global tmpvar_30
6159
        set tmpvar_30 "256"
6160
        global CONFIG_PCI_TRACE256
6161
        if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_30 "256" }
6162
        global CONFIG_PCI_TRACE512
6163
        if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_30 "512" }
6164
        global CONFIG_PCI_TRACE1024
6165
        if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_30 "1024" }
6166
        global CONFIG_PCI_TRACE2048
6167
        if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_30 "2048" }
6168
        global CONFIG_PCI_TRACE4096
6169
        if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_30 "4096" }
6170
        global tmpvar_31
6171
        set tmpvar_31 "16"
6172
        global CONFIG_SPW_AHBFIFO4
6173
        if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_31 "4" }
6174
        global CONFIG_SPW_AHBFIFO8
6175
        if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_31 "8" }
6176
        global CONFIG_SPW_AHBFIFO16
6177
        if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_31 "16" }
6178
        global CONFIG_SPW_AHBFIFO32
6179
        if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_31 "32" }
6180
        global tmpvar_32
6181
        set tmpvar_32 "16"
6182
        global CONFIG_SPW_RXFIFO16
6183
        if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_32 "16" }
6184
        global CONFIG_SPW_RXFIFO32
6185
        if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_32 "32" }
6186
        global CONFIG_SPW_RXFIFO64
6187
        if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_32 "64" }
6188
        global tmpvar_33
6189
        set tmpvar_33 "64"
6190
        global CONFIG_SPW_RMAPBUF2
6191
        if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_33 "64" }
6192
        global CONFIG_SPW_RMAPBUF4
6193
        if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_33 "128" }
6194
        global CONFIG_SPW_RMAPBUF6
6195
        if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_33 "192" }
6196
        global CONFIG_SPW_RMAPBUF8
6197
        if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_33 "256" }
6198
        global tmpvar_34
6199
        set tmpvar_34 "2"
6200
        global CONFIG_SPW_GRSPW1
6201
        if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_34 "1" }
6202
        global CONFIG_SPW_GRSPW2
6203
        if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_34 "2" }
6204
        global tmpvar_35
6205
        set tmpvar_35 "1"
6206
        global CONFIG_UA1_FIFO1
6207
        if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_35 "1" }
6208
        global CONFIG_UA1_FIFO2
6209
        if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_35 "2" }
6210
        global CONFIG_UA1_FIFO4
6211
        if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_35 "4" }
6212
        global CONFIG_UA1_FIFO8
6213
        if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_35 "8" }
6214
        global CONFIG_UA1_FIFO16
6215
        if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_35 "16" }
6216
        global CONFIG_UA1_FIFO32
6217
        if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_35 "32" }
6218
        global tmpvar_36
6219
        set tmpvar_36 "1"
6220
        global CONFIG_UA2_FIFO1
6221
        if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_36 "1" }
6222
        global CONFIG_UA2_FIFO2
6223
        if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_36 "2" }
6224
        global CONFIG_UA2_FIFO4
6225
        if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_36 "4" }
6226
        global CONFIG_UA2_FIFO8
6227
        if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_36 "8" }
6228
        global CONFIG_UA2_FIFO16
6229
        if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_36 "16" }
6230
        global CONFIG_UA2_FIFO32
6231
        if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_36 "32" }
6232
}
6233
 
6234
 
6235
proc update_define_mainmenu {} {
6236
        global CONFIG_MODULES
6237
}
6238
 
6239
 
6240
# FILE: tail.tk
6241
# This file is boilerplate TCL/TK function definitions for 'make xconfig'.
6242
#
6243
# CHANGES
6244
# =======
6245
#
6246
# 8 January 1998, Michael Elizabeth Chastain, 
6247
# Arrange buttons in three columns for better screen fitting.
6248
#
6249
 
6250
#
6251
# Read the user's settings from .config.  These will override whatever is
6252
# in config.in.  Don't do this if the user specified a -D to force
6253
# the defaults.
6254
#
6255
 
6256
set defaults defconfig
6257
 
6258
if { [file readable .config] == 1} then {
6259
        if { $argc > 0 } then {
6260
                if { [lindex $argv 0] != "-D" } then {
6261
                        read_config .config
6262
                }
6263
                else
6264
                {
6265
                        read_config $defaults
6266
                }
6267
        } else {
6268
                read_config .config
6269
        }
6270
} else {
6271
        read_config $defaults
6272
}
6273
 
6274
update_define 1 $total_menus 0
6275
update_mainmenu
6276
 
6277
button .f0.right.save -anchor w -text "Save and Exit" -underline 0\
6278
    -command { catch {exec cp -f .config .config.old}; \
6279
                writeconfig .config config.h; wrapup .wrap }
6280
 
6281
button .f0.right.quit -anchor w -text "Quit Without Saving" -underline 0\
6282
    -command { maybe_exit .maybe }
6283
 
6284
button .f0.right.load -anchor w -text "Load Configuration from File" \
6285
    -command { load_configfile .load "Load Configuration from file" read_config_file
6286
}
6287
 
6288
button .f0.right.store -anchor w -text "Store Configuration to File" \
6289
    -command { load_configfile .load "Store Configuration to file" write_config_file }
6290
 
6291
#
6292
# Now pack everything.
6293
#
6294
 
6295
pack .f0.right.store .f0.right.load .f0.right.quit .f0.right.save \
6296
    -padx 0 -pady 0 -side bottom -fill x
6297
pack .f0.left .f0.middle .f0.right -side left -padx 5 -pady 0 -fill y
6298
pack .f0 -padx 5 -pady 5
6299
 
6300
update idletasks
6301
set winy [expr 10 + [winfo reqheight .f0]]
6302
set scry [lindex [wm maxsize .] 1]
6303
set winx [expr 10 + [winfo reqwidth .f0]]
6304
set scrx [lindex [wm maxsize .] 0]
6305
if {$winx < $scrx} then {set maxx -1} else {set maxx $winx}
6306
if {$winy < $scry} then {set maxy -1} else {set maxy $winy}
6307
.f0 configure -width $winx -height $winy
6308
wm maxsize . $maxx $maxy
6309
 
6310
#
6311
# If we cannot write our config files, disable the write button.
6312
#
6313
if { [file exists .config] == 1 } then {
6314
                if { [file writable .config] == 0 } then {
6315
                        .f0.right.save configure -state disabled
6316
                }
6317
        } else {
6318
                if { [file writable .] == 0 } then {
6319
                        .f0.right.save configure -state disabled
6320
                }
6321
        }
6322
 
6323
#if { [file exists include/linux/autoconf.h] == 1 } then {
6324
#               if { [file writable include/linux/autoconf.h] == 0 } then {
6325
#                       .f0.right.save configure -state disabled
6326
#               }
6327
#       } else {
6328
#               if { [file writable include/linux/] == 0 } then {
6329
#                       .f0.right.save configure -state disabled
6330
#               }
6331
#       }

powered by: WebSVN 2.1.0

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